Archivo del Autor: admin

Proxy Firefox SSH Tunneling

Proxy mediante SSH Tunneling

Si necesitamos navegar seguramente o anonimamente, podemos utilizar nuestro propio VPS creando un túnel de SSH

Primero nos conectamos al SSH de nuestro VPS

ssh root@guiavps.com

y editamos el archivo /etc/ssh/sshd_config

nano /etc/ssh/sshd_config

y verificamos que están en yes las siguientes configuraciones:

AllowTcpForwarding yes
GatewayPorts yes
TCPKeepAlive yes

Cerramos, guardamos cambios y reiniciamos el servidor SSH

/etc/rc.d/init.d/sshd restart

Finalizamos la conexión con el SSH

exit

Y conectamos nuevamente, esta vez utilizando la opción -D seguida del numero de puerto donde queremos abrir el túnel, por ejemplo si lo deseamos en el puerto 6383 seria así.

ssh -D 6383 root@guiavps.com

Al establecerse la conexión ya tendremos el túnel abierto.

Ahora, para conectarnos debemos revisar en las opciones del navegador, la configuración de proxy y añadirlo en el método socks. por ejemplo para firefox seria asi:

Proxy Firefox SSH Tunneling

Proxy Firefox 2 SSH Tunneling

Proxy Firefox SSH Tunneling

SSH Public Key

Convertir llaves DSA de OpenSSH para PuTTY

Si eres usuario de windows y usas PuTTY para conectarte por SSH y seguiste el tutorial: Restringiendo el Acceso al SSH esto te va a ser muy útil. Como sabres, OpenSSH genera llaves que no son compatibles directamente con PuTTY, ya que PuTTY utiliza un formato .ppk En este tutorial, mostraremos de forma breve, como transformar las llaves DSA de OpenSSH a .PPK Lo primero que debemos hacer es descargar la herramienta PuTTYgen, ejecutamos PuTTYgen.

PuTTYgen-1

Vamos a Conversions -> Import Key y seleccionamos nuestro id_dsa (si asignaste una Passphrase, te la pedira para poder abrirlo).

PuTTYgen-2

Ahora le demos a “Save private key”.

PuTTYgen-3

la podemos guardar con cualquier nombre, por ejemplo id_dsa.ppk y saldrá un mensaje pidiendo la Passphrase, esto creara un archivo llamado id_dsa.ppk el cual tenemos que usar para poder conectarnos con PuTTY.

PuTTYgen-4

SSH Public Key

Restringiendo el acceso al SSH

Existe un método de para hacer más seguro nuestro SSH, consiste en crear lo que se llama Public Key Authentication. Esto aumenta la seguridad del SSH ya que no sera posible conectarse si no se tiene la llave privada.

Utilizando estas llaves, se hace imposible para cualquier persona que desea acceder a nuestro SSH utilizar metodos de fuerza bruta, ya que para poder acceder a nuestro SSH es necesario que tenga nuestra llave privada y porsupuesto… no se la vamos a dar.

Accedemos como siempre a nuestro SSH

ssh -p 5685 root@127.0.0.1

Y ahora creamos las llaves con ssh-keygen

ssh-keygen -t dsa

Le damos enter a todas las preguntas que aparecen, ya que en este caso lo predeterminado esta perfecto, en uno de los pasos nos pedirá una passphrase para doble seguridad, no es necesario tenerla pero si la necesitas, ponla.

Al finalizar, movemos el archivo recien creado a ~/.ssh/authorized_keys

mv ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys

Si nos advierte que se va a sobre-escribir algo, le decimos que si.

ahora cambiamos los permisos de los archivos.

chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/*
chmod 0751 ~

Y pedimos que nos muestre la llave privada.

cat ~/.ssh/id_dsa

en la terminal nos aparecerá algo como esto:

-----BEGIN DSA PRIVATE KEY-----
MIIBugIBAAKBgQC/v+peIz+W3casWGsSiGZpjuW6q4kTv/2zv5/AhXeO7n8yvRwE
XyBE+FVID/EhifJwMg4/wXNprw79m9u7uVpeUrLXT+cg091uAgaU7Y/htncaX1cG
GzHnyr+lQ0oFeBHq1hsdfsdfwsw4pMeFvKMmKVIWLZssQ5cGCK2IpTqajvQIVAL7W
gi0D2Ac77t08yJg9oT+OFJ+lAoGAQLxdr8okIiWKkcBTfx710t1zhrr4Z4md3siK
0c9g4mhFbrBcDH1b2TaZz652XE1UwC7XF3N7ll+Jx/G8vmjbWdQzl6AbAp6bR28O
XItBba/BgZ9bAqwkzd4ZcSSRtbdhdFh9ng0gkgZwVJTCgaLF05XOa++aBY8AGl7p
erery45y56y6h6dswvbbbfVScq7n2gy3ta+kz7B9uPMUBmwxcSHlmS6mEmfVNTk
KR1ACDQSJfV+Py32V3z5Q9VSdm4e67exqx5+m5X7SW21TzB+rEY5Wmuryz1K4slf
nBZ/pOu+VQEqmILUR5WOqREfW9Y6TjFXQ0eAqUjKQwUHWYLzLYK28gIUYogpUYPO
+6g232CwQMxebTPYV5U=
-----END DSA PRIVATE KEY-----

Copiamos eso, lo pegamos en un editor de texto y lo guardamos en la computadora local como id_dsa, o si lo prefieren, pueden descargarlo por medio de FTP.

Despues de haber guardado el archivo en la computadora local, debemos borrarlo del VPS ya que no debe permanecer en él. Se puede borrar por FTP o usando el comando:

rm -f ~/.ssh/id_dsa

Ahora con el archivo que nos quedo en la PC local, tenemos 2 casos.

Si la computadora local también tiene linux, debemos mover el archivo id_dsa a la carpeta .ssh del usuario que utilizamos para la computadora local, lo podemos hacer usando la interfaz gráfica o más rápido por la terminal.
Por ejemplo, si lo guardamos el archivo id_dsa en el escritorio, debemos moverla así:

mv /home/usuario/Escritorio/id_dsa /home/usuario/.ssh

Por otro lado, si tenemos Windows y usamos PuTTY para conectarnos al SSH, debemos seguir las instrucciones en el tutorial:Convertir Llaves DSA de OpenSSH para PuTTY

Finalmente, debemos deshabilitar el acceso al SSH por medio de contraseña, para hacer esto, editamos el archivo /etc/ssh/sshd_config

nano /etc/ssh/sshd_config

y editamos algunas lineas para que queden asi: (OJO: los […] los coloco para indicar que son otras lineas solo para ubicarnos relativamente en el documento.)

[...]
# Autehentication:
[...]
RSAAuthentication yes
PubkeyAuthentication yes
[...]
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
[...]
ChallengeResponseAuthentication no
[...]
UsePAM no

Reiniciamos el servidor SSH:

/etc/init.d/ssh reload

Ya con esto, la única manera de conectarse al SSH es teniendo la llave DSA.

Alerta SSH thumbnail

Alerta de acceso SSH root

Con este tutorial,El sistema nos enviará un correo electrónico cada vez que se acceda al SSH en con el usuario root.

Para hacer eso simplemente editamos el archivo /root/.bash_profile

nano /root/.bash_profile

y añadimos esta linea, modificando tu correo electrónico.

echo ‘[SSH] – Se Accedio al SSH el:’ `date` `who` | mail -s “Acceso al SSH por `who | cut -d”(” -f2 | cut -d”)” -f1`” tu@email.ltd

Así obtendremos la fecha, hora y dirección IP de la cual se accedió al SSH. Además de esto, podemos crear un mensaje de bienvenida alertando al usuario que accede que sus acciones estan siendo grabadas en un log.

para eso tenemos que editar el archivo /etc/motd

nano /etc/motd

Podriamos colocar por ejemplo esto:

ALERTA: Usted esta accediendo a un area restrigida, si no esta autorizado para hacerlo
le recordamos que todas sus acciones estan siendo grabadas, así como sus datos de
navegación, los cuales serán investigados y entregados a las autoridades competentes.

Con esto avisaremos al usuario que accedió al SSH que sus datos están siendo almacenados.

Virtualmin Webmin

Instalando Webmin y Virtualmin

Si no tenemos suficiente dinero para instalar un panel de control como Plesk o CPanel tendremos que optar por alguna que sea gratuita, investigando un poco conseguí que las más importantes son IPSConfig y Webmin+Virtualmin por lo que intenté con los 2 y por eso la web estuvo inactiva por unas horas.

Según pude leer en algunos foros y otros blogs, IPSConfig tiene prestaciones increíbles y ademas es muy fácil de usar, a pesar de que no trae características tan avanzadas como Webmin+Virtualmin y por esa razón intente instalar primero IPSConfig, la instalación es muy larga, fastidiosa y llena de posibles errores, en mi intento por instalarlo, en el último paso hubo un error de que no reconocía mi “Sistema Operativo” por lo que inmediatamente empecé a instalar Webmin+Virtualmin y ese es el tutorial que les traigo en esta ocasión.

Webmin y virtualmin han diseñado un script para que la instalación sea automática por lo que no se encontraran con mayores problemas al momento de instalarlo.

Lo primero que tenemos que hacer, claro esta es conectarnos a nuestro servidor via SHH

ssh -p 5685 root@127.0.0.1

Luego crearemos un repositorio de yum, para ello usamos:

nano /etc/yum.repos.d/webmin.rep

Como lo estamos creando estara en blanco, por lo cual en un copy & paste pondremos esto:

[Webmin]
name=Repositorio de Webmin
baseurl=http://download.webmin.com/download/yum
enabled=1

Guardamos el archivo (Ctrl+x “y”) y añadimos la GPG key correspondiente:

rpm --import http://www.webmin.com/jcameron-key.asc

Ahora simplemente instalamos:

yum install webmin

Al finalizar la instalación, ya podremos acceder a webmin con la IP de nuestro servidor y el puerto 10000 desde un explorador de internet

por ejemplo: http://server.guiavps.com:10000

Ya con webmin instalado, podemos instalar Virtualmin, utilizaremos la carpeta temporal para no llenar de basura nuestro VPS.

cd /tmp

Ahora descargamos el script de instalación

wget http://software.virtualmin.com/gpl/scripts/install.sh

Le damos permisos de ejecución:

chmod +x install.sh

y lo ejecutamos

./install.sh

se tardara un tiempo mientras instala todo el software necesario. Al finalizar, podremos ingresar desde un explorador de Internet en este caso a https://tuservidor:10000

Por ejemplo: https://server.guiavps.com:10000

Y allí el sistema por ser la primera ejecución nos dará instrucciones para la configuración básica, en mi caso prefiero darle a todo next y dejar todo predeterminado por ahora.

De esta manera ya tendremos instalado y funcionando Webmin+Virtualmin.

Les dejo una imagen de como se ve en mi servidor.

Virtualmin Webmin

Conectado al VPS desde VNC

Administrar un VPS por medio de VNC

A muchas personas no les gusta la terminal o simplemente prefieren hacer todo en una interfaz agradable.

Si este es tu caso, en este tutorial voy a explicar paso a paso como instalar en un Virtual Private Server todo lo necesario para poder controlarlo de manera remota por medio de un cliente VNC.

Antes de ver este tutorial, deberías seguir antes los tips: “Primeros pasos con un VPS“.

Empezamos conectándonos al SSH de nuestro VPS

ssh -p 5685 root@guiavps.com

Luego instalamos la interfaz de usuario, pueden utilizar KDE o Gnome, no es necesario que instalen los 2, con uno es mas que suficiente.
Para KDE:

yum groupinstall "X Window System" “KDE (K Desktop Environment)”

Para Gnome

yum groupinstall "X Window System" "GNOME Desktop Environment"

Este proceso puede tardar entre 10-40 minutos dependiendo de la conexión a Internet de tu VPS y la velocidad de procesador.

Ahora instalamos el VNC:

yum -y install vnc

Ya con esto podemos probar si todo funciona correctamente

startx
startkde

Nota: si instalaron gnome cambien startkde por startgnome.

vncserver

Con esto el sistema te pedirá una contraseña para el VNC la cual debes colocar 2 veces, al hacerlo, verificamos que este funcionando correctamente con el comando:

ps-ef | grep vncserver

Si nos aparece todo bien, finalizamos el proceso para continuar con la configuración

pkill -9 vnc

Borramos todos los archivos temporales que se generaron para la configuración del VNC.

rm -rf /tmp/.X1*

Ahora editamos el archivo /root/.vnc/xstartup usando:

nano /root/.vnc/xstartup

veremos algo así:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

En la ultima linea, borramos lo que aparece que generalmente es “twm &” y colocamos si instalamos KDE “startkde &” o si instalamos Gnome “startgnome &”.

quedando algo así:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
startkde &

Guardamos los cambios (Ctrl+x y luego “Y”) y reiniciamos el servicio vncserver

vncserver

Con esto listo ahora podemos conectarnos a nuestro VPS desde un cliente VNC, si tienes Ubuntu en tu pc como es mi caso solo necesito buscar la aplicación vinagre, para eso presionamos Alt+F2 escribimos “vinagre” y presionamos enter o aceptar. Si tienes Windows, podrás utilizar TightVNC que es gratuito y ligero.

Para conectarte simplemente debes colocar la IP del VPS y el display que si seguiste los pasos tal como indique debe ser 1

Por ejemplo: 127.0.0.1:1

Luego el sistema les pedirá la contraseña que configuraron hace poco y el usuario root.

VNC con Vinagre

Y con eso ya podrán conectarse al su VPS desde un cliente VNC. Espero que les sirva de ayuda y por favor comenten si les ha funcionado o si tienen algún problema, con mucho gusto les ayudare.

Así es como se ve el servidor desde Vinagre:

Conectado al VPS desde VNC

SSH Public Key

Primeros pasos con un VPS

Después de haber comprado el VPS y de haber recibido el correo de confirmación de servicio, es hora de meterle mano al VPS. Lo primero seria escoger el sistema operativo del VPS, como toda mi experiencia esta basada en Ubuntu, quería usar ese S.O. pero luego de instalarlo, me di cuenta que tenia problemas con la virtualización y el arranque, por lo menos para mi proveedor (EnjoyVPS) por lo cual me decidí por el CentOS un sistema operativo robusto y especializado con las virtualizaciones. Con el VPS ya corriendo la ultima version de CentOS, lo primero que me pregunte fue:

¿Como me conecto a mi VPS de la manera mas sencilla por SSH?

Claro esta que con un cliente SSH, con lo que me consegui con Putty, muy facil de usar y todo pero, prefiero la Terminal. Si tienes alguna distribucion de Linux instalada en tu computadora, te puedes conectar al SSH de tu VPS usando este comando:

ssh -p puerto usuario@ipdelvps

¿Simple verdad? por ejemplo si mi usuario es root, el puerto ssh es el 22 y la ip de mi VPS es 127.0.0.1 entonces me tengo que conectar asi:

ssh -p 22 root@127.0.0.1

Con el cual si también instalaste CentOS, te pedirá que cambies la contraseña de root y aqui viene lo bueno.

Seguridad Básica para tu VPS

Todas tus contraseñas deben ser fuertes

Usa mayusculas, minusculas, numeros y caracteres especiales por ejemplo una buena contraseña seria: Au434/&$$kM Si no logras conseguir una buena contraseña puedes usar un generador online.

Actualiza tu VPS

Cada vez que puedas actualiza tu VPS, si tienes CentOS como yo, antes que cualquier cosa usa el comando:

yum clean all && yum makecache

Con esto actualizaras el cache y eliminas toda la basura que pueda haber después de la instalación del sistema operativo, después de eso, usa el comando:

yum list updates
$yum update

Cambia los puertos predeterminados

Es de vital importancia cambiar puertos de algunos servicios, como por ejemplo de SHH en este caso les mostrare como cambiar este puerto. Primero un editor de textos, mi preferido nano para ello usamos la terminal asi:

yum install nano

Una vez finalizada la instalación de nano, debemos editar el archivo /etc/ssh/sshd_config para eso en la terminal ponemos:

nano /etc/ssh/sshd_config

y veremos algo así:

#Port 22
#Protocol 2,1
Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

Descomentamos la linea

#Port 22

y cambiamos el 22 por algun numero aleatorio que no sea un puerto que utilicemos podría ser por ejemplo 5685 quedando todo así:

Port 5685
#Protocol 2,1
Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

hecho esto guardamos los cambios presionando Ctrl+x y luego “Y” despues reiniciamos el servicio SSH

service sshd reload

allí perderemos la conexión que ya habíamos establecido y esta vez para volver a conectarnos debemos usar:

ssh -p 5685 root@127.0.0.1

Con esto ya tenemos un nivel de seguridad básico pero eficiente.