Archivo de la categoría: Tutorial

SSH Public Key

Deshabilitando el acceso al SSH del usuario Root

Antes de seguir este tutorial, es necesario que se hayan completado todos los pasos del tutorial anterior: Crear un usuario para acceder por SSH.

Después de haber completado el tutorial anterior, sabemos que tenemos un usuario que puede acceder al SSH pero no puede realizar ningún tipo de tareas administrativas, para poder hacerlo, vamos a unir al usuario “guiavps” a la lista de sudoers.

para ello usamos el comando visudo

visudo

y añadimos esta linea

guiavps     ALL=(ALL)    ALL

Si todo va bien, podremos iniciar sesión con el nuevo usuario por medio de SSH y probar algún comando sudo.

Por ejemplo podríamos usar:

sudo free -m

En mi caso recibí este mensaje al hacerlo:

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

Que en pocas palabras quiere decir, que la condición de administrador es una gran responsabilidad, y te recuerda que debes respetar a los demás y pensar antes de escribir.

Y finalmente, deshabilitamos el acceso de root al ssh editando el archivo /etc/ssh/sshd_config como primera tarea importante de nuestro nuevo usuario.

sudo nano /etc/ssh/sshd_config

y colocamos la siguiente linea

PermitRootLogin no

Reiniciamos el servidor SSH

/etc/init.d/sshd restart

Y con eso ya tendremos deshabilitado el acceso de root.

SSH Public Key

Crear un usuario para acceder por SSH

Una de las maneras de tener mayor seguridad en el vps, es deshabilitando el acceso de root al SSH, ya que este usuario tiene demasiados permisos pudiendo ser un verdadero problema si alguien llegara a acceder.

Con este tutorial, vamos a crear un nuevo usuario llamado “guiavps” además, eliminaremos todos los directorios innecesarios de este usuario, y en la segunda parte lo añadiremos al grupo sudoers y deshabilitaremos el acceso al SSH del root.

Para empezar, debemos conectarnos a nuestro SSH usando root quizas por ultima vez

ssh root@guiavps.com

y creamos al nuevo usuario mediante el comando:

useradd guiavps

para verificar si fue creado correctamente hacemos ls al directorio home

ls /home -l

Nos debe aparecer la carpeta del nuevo usuario similar a esto

drwx------  2 guiavps   guiavps   4096 Aug 23 15:31 guiavps/

Ahora le asignamos una contraseña fuerte

passwd guiavps

el sistema nos mostrara un mensaje similar a este solicitandonos la contraseña para el nuevo usuario

Changing password for user guiavps.
New UNIX password:

Al colocarla la primera vez, el sistema nos pedira que verifiquemos la contraseña en caso de que hayamos cometido algun error.

Retype new UNIX password:

Al verificar la contraseña correctamente, nos indicara el sistema que todos los tokens de seguridad han sido actualizados.

passwd: all authentication tokens updated successfully.

Con esto ya deberia ser posible acceder al SSH con el nuevo usuario si no hemos deshabilitado el acceso por medio de contraseña

Al iniciar el SSH con el nuevo usuario, podemos crear una Public Key y Private Key para hacer mas exclusivo el acceso.

Ahora eliminaremos los directorios y archivos que no necesitamos con este usuario.
Podemos ver los directorios del usuario haciendo LS

ls /home/guiavps -l

Generalmente, podremos ver los directorios public_html y public_ftp que para este usuario no son nada utiles, por lo cual los eliminamos:

rm /home/rob/public_* -Rfv

Nota: Ten cuidado al usar este comando, ya que puedes borrar algo que realmente necesitas, por lo cual debes fijarte bien en el directorio que vas a borrar.

Si tenemos cPanel veremos algo así:

removed directory: `/home/guiavps/public_ftp'
removed directory: `/home/guiavps/public_html/cgi-bin'
removed directory: `/home/guiavps/public_html'

 

Sigue con la segunda parte: Deshabilitando el acceso al SSH del usuario Root

Primer Paso instalacion de cPanel

Instalar cPanel en un VPS

A la hora de instalar cPanel en un VPS es altamente recomendado que sea una instalación limpia.

La mayoría de los proveedores de VPS poseen una imagen de algún sistema operativo con cPanel/WHM pre-instalado, por lo cual la mejor opción es instalar alguna de estas imágenes directamente, como opinión personal, les sugiero instalar CentOS 5.5 32bit + cPanel/WHM si tienes menos de 4Gb de memoria RAM y CentOS 5.5 64bit + cPanel/WHM si tienen más de 4Gb de RAM.

Ya teniendo la imagen instalada en nuestro VPS lo primero que debemos hacer es seguir los pasos del tutorial: Primeros Pasos con el VPS, después de haberlos completado, abrimos desde el navegador la dirección IP de nuestro VPS con el puerto 2086.

por ejemplo:

http://100.100.100.100:2086

De esta manera veremos el primer paso de la instalación que se trata del acuerdo de licencia:

Primer Paso instalacion de cPanel

El segundo paso, se trata de la configuración de la red, por lo que nos pedirá un correo de Contacto del Administrador, el Nombre de Host, los Resolvers y el Dispositivo de Red. Por lo general los valores predeterminados son los correctos, de todas maneras si tienes alguna duda puedes pedir soporte para que te indiquen si los datos son correctos.

Segundo Paso instalacion de cPanel

En el tercer paso, simplemente nos mostrara las IPs que tenemos disponibles en nuestro servidor.

Tercer Paso instalacion de cPanel

El cuarto paso, se trata de la configuración del NameServer, eligir entre el servidor BIND o NSD donde nos marca los Pros y Contras de cada uno, luego debemos elegir los NS que usaran todos los dominios configurados, como minimo debemos crear 2, y explica los pasos para poder crearlos satisfactoriamente, entre ellos:

  1. Obtener al menos 2 direcciones IP (Esto se contrata con el Proveedor del VPS).
  2. Registrar los NS con la compañía donde compramos el dominio.
  3. Configurar la Reversa de DNS (Esto también debe configurarlo el Proveedor del VPS).
  4. Introducir los NS que ya fueron configurados en los campos que indica la instalación de cPanel/WHM.

Finalmente debemos de manera opcional añadir entradas “A” para nuestros NS y nuestro Hostname.

Cuarto Paso instalacion de cPanel

En el quinto paso, podemos elegir los servicios que estarán corriendo en nuestro servidor, específicamente lo que es FTP, Mail Server y cPHulk, los valores predeterminados están muy bien.

Quinto Paso instalacion de cPanel

El sexto y ultimo paso, solamente debemos elegir si vamos a usar o no las Quotas.

Sexto Paso instalacion de cPanel

Ya con esto tendremos completada la instalación de cPanel/WHM solo falta configurar cada aspecto que necesitamos, pero eso lo dejo PARA OTRO ARTICULO.

Resultado instalacion de cPanel

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