Hola Taringueros
En mi tercer post les vengo a dejar este pequeño manual para cofigurar el servicio SSH en Ubuntu:
De rapido explico que el protocolo SSH (Secure Shell) es una herramienta que nos permite conectarnos a equiposremotos (Servidores en Producción) así mismo, nos da la capacidad de llevar a cabo tareas administrativas dentro del mismo como, activar o apagar servicios; también nos permite copiar datos de forma segura, gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.
Como les mostraré el proceso de instalación y configuración de OpenSSH les explico, OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten realizar comunicaciones cifradas a través de una red, usando como base al protocolo SSH.
Instalación de OpenSSH
A partir de este punto empezaremos a descargar los paquetes necesarios para el perfecto funcionamiento de openSSH, de esta manera si usted se encuentra trabajando bajo algún ambiente gráfico, sea KDE o GNOME le pedimos abra una terminal de BASH, por otra parte si
usted se encuentra trabajando bajo linea de comandos no tendrá que hacer nada.
Los paquetes a descargar son los siguientes:
● ssh
La forma en que se instalaran estos paquetes sera tecleando en consola lo siguiente:
root@server1:~$aptget install ssh
Al instalar el servicio ssh, el también instala el servidor y cliente.
Configuración de OpenSSH
OpenSSH dispone de dos conjuntos diferentes de ficheros de configuración: uno completamente dedicado al cliente (ssh, scp y sftp) y otro orientado completamente al servidor.
Archivos de configuración del servidor
La ubicación de los ficheros referentes al servidor se encuentran en la ruta: /etc/ssh/
Dentro del directorio podemos encontrar los siguientes ficheros de configuración:
moduli: Contiene grupos Diffie-Hellman usados para el intercambio de la clave Diffie-Hellman que es imprescindible para la construcción de una capa de transporte seguro. Cuando se intercambian las claves al inicio de una sesión SSH, se crea un valor secreto y compartido que no puede ser determinado por ninguna de las partes individualmente. Este valor se usa para proporcionar la autenticación del host.
ssh_config El archivo de configuración del sistema cliente SSH por defecto. Este archivo se sobrescribe si hay alguno ya presente en el directorio principal del usuario
sshd_config El archivo de configuración para el demonio sshd
ssh_host_dsa_key La clave privada DSA usada por el demonio sshd
ssh_host_dsa_key.pub La clave pública DSA usada por el demonio sshd
ssh_host_rsa_key La clave privada RSA usada por el demonio sshd para la versión 2 del protocolo SSH.
ssh_host_rsa_key.pub La clave pública RSA usada por el demonio sshd para la versión 2 del protocolo SSH.
Archivos de configuración del cliente
La ubicación de los ficheros referentes al cliente se encuentran almacenados en el directorio de trabajo de cada usuario:
Ejemplo: “/home/miusuario/.ssh/”
Dentro del directorio podemos encontrar los siguientes ficheros de configuración:
identity.pub La clave pública RSA usada por ssh para la versión 1 del protocolo SSH.
known_hosts Este archivo contiene las claves de host DSA de los servidores SSH a los cuales el usuario ha accedido. Este archivo es muy importante para asegurar que el cliente SSH está conectado al servidor SSH correcto.
Configuración de fichero sshd_config
La función que desempeñan los ficheros de configuración de openSSH son de vital importancia para la seguridad de nuestro servidor , ya que si no se llegaran a configurar apropiadamente estos ficheros la vulnerabilidad de nuestro servidor seria demasiado sensible a ataques informáticos, es por ello que le enseñaremos la manera apropiada en la que deberá ser configurado este vital fichero.
Blindando el fichero sshd_config
Este fichero lo podrá localizar en en la siguiente ruta
/etc/ssh/
El siguiente paso sera abrir el fichero con la ayuda del editor de textos VI
[root@server1:~$ vim /etc/ssh/sshd_config
A partir de este punto comenzaremos a blindar SSH.
Cambiando el puerto
SSH tiene asignado por defecto el puerto 22, esto es algo que conocen todos nuestros posibles atacantes , por lo que es una buena idea cambiarlo.
Para modificar esta opción y las siguientes que iremos mencionando editaremos el fichero de configuración sshd_config, que por defecto se encuentra en el directorio /etc/ssh/. Se recomienda usar un puerto cualquiera por encima del 1024, así que usted puede elegir el que quiera. En el ejemplo usaremos el 59345, por lo que tendrá que editar el parámetro Port del fichero de configuración el cual deberá quedar así:
Port 59345
Protocolos ssh
Hay dos versiones de ssh en cuanto a su protocolo de comunicación, estas son:
● Versión 1
● Versión 2.
La versión 1 de openSSH hace uso de varios algoritmos de cifrado de datos mas sin embargo, algunos de estos algoritmos han dejado de ser mantenidos por sus creadores y por lo tantopresenta serios huecos de seguridad que potencialmente permite a un intruso insertar datos en el canal de comunicación. Para evitar el uso del protocolo 1 y sus posibles ataques a este, basta con indicar que solo admita comunicaciones de ssh basadas en el protocolo 2.
Por default en debian/ubuntu ya viene configurado en el versión 2 del protocolo.
Parámetro PermitRootLogin
Este es quizá el parámetro mas importante de seguridad que podemos indicar para blindar nuestro servidor. Prácticamente la mayoría de sistemas operativos Linux crean por defecto al usuario root , es por ello que la mayoría de los ataques informáticos se concentran en atacar al equipo a través de la cuenta de root y mucho mas si la cuenta tiene asignada una contraseña débil, una manera de deshabilitar el logeo al sistema a través de la cuenta de root es poner en 'no' la variable PermitRootLogin , con esto el usuario root no tendrá permiso de acceder mediante ssh y por lo tanto cualquier intento de ataque directo a root será inútil. Con esto siempre tendremos que ingresar como un usuario normal y ya estando adentro entonces mediante un su – cambiarnos a la cuenta de root.
Para llevar a cabo estos cambios tendrá que editar el parámetro PermitRootLogin del fichero de configuración el cual deberá quedar de la siguiente manera:
PermitRootLogin no
Parámetro X11Forwarding
Si nuestro servidor no tienen entorno gráfico instalado, o no queremos que los usuarios se conecten a él, definiremos esta opción en el fichero de configuración:
Para llevar a cabo estos cambios tendrá que editar el parámetro X11Forwarding del fichero de configuración el cual deberá quedar de la siguiente manera:
X11Forwarding no
Parámetro LoginGraceTime
El número indica la cantidad de segundos en que la pantalla de login estará disponible para que el usuario capture su nombre de usuario y contraseña, si no lo hace, el login se cerrará, evitando así dejar por tiempo indeterminado pantallas de login sin que nadie las use, o peor aun, que alguien este intentando mediante un script varias veces el adivinar un usuario y contraseña. Si somos el único
usuario del sistema considero que con 20 o 30 segundos es mas que suficiente.
Para llevar a cabo estos cambios tendrá que editar el parámetro LoginGraceTime del fichero de configuración el cual deberá quedar de la siguiente manera:
LoginGraceTime 30
Permitiendo AllowUsers
Este parámetro solo permitirá la conexión a los usuario que este registrados del archivo de configuración del openssh, el parámetro no existe nosotros lo podemos agregar el parámetro al final del archivo.
AllowUsers curso
Donde curso sería el nombre del usuario.
Guardamos la nueva configuración y con esto ya tendremos configurado nuestro servicio OpenSSH.
Iniciando el servicio SSH
Llegado a este punto usted ya deberá contar con las configuraciones de seguridad apropiadas, por lo que solo faltaría iniciar el servicio de SSH.
Para iniciar el servicio de SSH tendrá que teclear en consola y como root lo siguiente:
root@server1:~# /etc/init.d/ssh restart
*Restarting OpenBSD Secure Shell server sshd [ OK ]
Igualmente existen otras opciones:
start Inicia el servicio
stop Detiene el servicio
restart Reinicia el servicio.-La diferencia con reload radica en que al ejecutar un restart este mata todos los procesos relacionado con el servicio y los vuelve a generar de nueva cuenta
reload Recarga el servicio.-La diferencia con restart radica en que al ejecutar un reload este solamente carga las actualizaciones hechas al fichero de configuración del servicio sin necesidad de matar los procesos relacionados con el mismo, por lo que podría entenderse que hace el ambio en caliente.
Para establecer la conexión SSH a nuestro Servidor Ubuntu:
1. Desde Linux: ir a la consola y escribir " [root@localhost]# ssh usuario@ipservidor, en caso de estar por default el puerto 22
pero como nosotros cambiamos el puerto: " [root@localhost]# ssh -p[puerto] usuario@ipservidor
Bueno eso es todo en este basico manual
Si les sirvie dejen comentarios
Saludos
En mi tercer post les vengo a dejar este pequeño manual para cofigurar el servicio SSH en Ubuntu:
De rapido explico que el protocolo SSH (Secure Shell) es una herramienta que nos permite conectarnos a equiposremotos (Servidores en Producción) así mismo, nos da la capacidad de llevar a cabo tareas administrativas dentro del mismo como, activar o apagar servicios; también nos permite copiar datos de forma segura, gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.
Como les mostraré el proceso de instalación y configuración de OpenSSH les explico, OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten realizar comunicaciones cifradas a través de una red, usando como base al protocolo SSH.
Instalación de OpenSSH
A partir de este punto empezaremos a descargar los paquetes necesarios para el perfecto funcionamiento de openSSH, de esta manera si usted se encuentra trabajando bajo algún ambiente gráfico, sea KDE o GNOME le pedimos abra una terminal de BASH, por otra parte si
usted se encuentra trabajando bajo linea de comandos no tendrá que hacer nada.
Los paquetes a descargar son los siguientes:
● ssh
La forma en que se instalaran estos paquetes sera tecleando en consola lo siguiente:
root@server1:~$aptget install ssh
Al instalar el servicio ssh, el también instala el servidor y cliente.
Configuración de OpenSSH
OpenSSH dispone de dos conjuntos diferentes de ficheros de configuración: uno completamente dedicado al cliente (ssh, scp y sftp) y otro orientado completamente al servidor.
Archivos de configuración del servidor
La ubicación de los ficheros referentes al servidor se encuentran en la ruta: /etc/ssh/
Dentro del directorio podemos encontrar los siguientes ficheros de configuración:
moduli: Contiene grupos Diffie-Hellman usados para el intercambio de la clave Diffie-Hellman que es imprescindible para la construcción de una capa de transporte seguro. Cuando se intercambian las claves al inicio de una sesión SSH, se crea un valor secreto y compartido que no puede ser determinado por ninguna de las partes individualmente. Este valor se usa para proporcionar la autenticación del host.
ssh_config El archivo de configuración del sistema cliente SSH por defecto. Este archivo se sobrescribe si hay alguno ya presente en el directorio principal del usuario
sshd_config El archivo de configuración para el demonio sshd
ssh_host_dsa_key La clave privada DSA usada por el demonio sshd
ssh_host_dsa_key.pub La clave pública DSA usada por el demonio sshd
ssh_host_rsa_key La clave privada RSA usada por el demonio sshd para la versión 2 del protocolo SSH.
ssh_host_rsa_key.pub La clave pública RSA usada por el demonio sshd para la versión 2 del protocolo SSH.
Archivos de configuración del cliente
La ubicación de los ficheros referentes al cliente se encuentran almacenados en el directorio de trabajo de cada usuario:
Ejemplo: “/home/miusuario/.ssh/”
Dentro del directorio podemos encontrar los siguientes ficheros de configuración:
identity.pub La clave pública RSA usada por ssh para la versión 1 del protocolo SSH.
known_hosts Este archivo contiene las claves de host DSA de los servidores SSH a los cuales el usuario ha accedido. Este archivo es muy importante para asegurar que el cliente SSH está conectado al servidor SSH correcto.
Configuración de fichero sshd_config
La función que desempeñan los ficheros de configuración de openSSH son de vital importancia para la seguridad de nuestro servidor , ya que si no se llegaran a configurar apropiadamente estos ficheros la vulnerabilidad de nuestro servidor seria demasiado sensible a ataques informáticos, es por ello que le enseñaremos la manera apropiada en la que deberá ser configurado este vital fichero.
Blindando el fichero sshd_config
Este fichero lo podrá localizar en en la siguiente ruta
/etc/ssh/
El siguiente paso sera abrir el fichero con la ayuda del editor de textos VI
[root@server1:~$ vim /etc/ssh/sshd_config
A partir de este punto comenzaremos a blindar SSH.
Cambiando el puerto
SSH tiene asignado por defecto el puerto 22, esto es algo que conocen todos nuestros posibles atacantes , por lo que es una buena idea cambiarlo.
Para modificar esta opción y las siguientes que iremos mencionando editaremos el fichero de configuración sshd_config, que por defecto se encuentra en el directorio /etc/ssh/. Se recomienda usar un puerto cualquiera por encima del 1024, así que usted puede elegir el que quiera. En el ejemplo usaremos el 59345, por lo que tendrá que editar el parámetro Port del fichero de configuración el cual deberá quedar así:
Port 59345
Protocolos ssh
Hay dos versiones de ssh en cuanto a su protocolo de comunicación, estas son:
● Versión 1
● Versión 2.
La versión 1 de openSSH hace uso de varios algoritmos de cifrado de datos mas sin embargo, algunos de estos algoritmos han dejado de ser mantenidos por sus creadores y por lo tantopresenta serios huecos de seguridad que potencialmente permite a un intruso insertar datos en el canal de comunicación. Para evitar el uso del protocolo 1 y sus posibles ataques a este, basta con indicar que solo admita comunicaciones de ssh basadas en el protocolo 2.
Por default en debian/ubuntu ya viene configurado en el versión 2 del protocolo.
Parámetro PermitRootLogin
Este es quizá el parámetro mas importante de seguridad que podemos indicar para blindar nuestro servidor. Prácticamente la mayoría de sistemas operativos Linux crean por defecto al usuario root , es por ello que la mayoría de los ataques informáticos se concentran en atacar al equipo a través de la cuenta de root y mucho mas si la cuenta tiene asignada una contraseña débil, una manera de deshabilitar el logeo al sistema a través de la cuenta de root es poner en 'no' la variable PermitRootLogin , con esto el usuario root no tendrá permiso de acceder mediante ssh y por lo tanto cualquier intento de ataque directo a root será inútil. Con esto siempre tendremos que ingresar como un usuario normal y ya estando adentro entonces mediante un su – cambiarnos a la cuenta de root.
Para llevar a cabo estos cambios tendrá que editar el parámetro PermitRootLogin del fichero de configuración el cual deberá quedar de la siguiente manera:
PermitRootLogin no
Parámetro X11Forwarding
Si nuestro servidor no tienen entorno gráfico instalado, o no queremos que los usuarios se conecten a él, definiremos esta opción en el fichero de configuración:
Para llevar a cabo estos cambios tendrá que editar el parámetro X11Forwarding del fichero de configuración el cual deberá quedar de la siguiente manera:
X11Forwarding no
Parámetro LoginGraceTime
El número indica la cantidad de segundos en que la pantalla de login estará disponible para que el usuario capture su nombre de usuario y contraseña, si no lo hace, el login se cerrará, evitando así dejar por tiempo indeterminado pantallas de login sin que nadie las use, o peor aun, que alguien este intentando mediante un script varias veces el adivinar un usuario y contraseña. Si somos el único
usuario del sistema considero que con 20 o 30 segundos es mas que suficiente.
Para llevar a cabo estos cambios tendrá que editar el parámetro LoginGraceTime del fichero de configuración el cual deberá quedar de la siguiente manera:
LoginGraceTime 30
Permitiendo AllowUsers
Este parámetro solo permitirá la conexión a los usuario que este registrados del archivo de configuración del openssh, el parámetro no existe nosotros lo podemos agregar el parámetro al final del archivo.
AllowUsers curso
Donde curso sería el nombre del usuario.
Guardamos la nueva configuración y con esto ya tendremos configurado nuestro servicio OpenSSH.
Iniciando el servicio SSH
Llegado a este punto usted ya deberá contar con las configuraciones de seguridad apropiadas, por lo que solo faltaría iniciar el servicio de SSH.
Para iniciar el servicio de SSH tendrá que teclear en consola y como root lo siguiente:
root@server1:~# /etc/init.d/ssh restart
*Restarting OpenBSD Secure Shell server sshd [ OK ]
Igualmente existen otras opciones:
start Inicia el servicio
stop Detiene el servicio
restart Reinicia el servicio.-La diferencia con reload radica en que al ejecutar un restart este mata todos los procesos relacionado con el servicio y los vuelve a generar de nueva cuenta
reload Recarga el servicio.-La diferencia con restart radica en que al ejecutar un reload este solamente carga las actualizaciones hechas al fichero de configuración del servicio sin necesidad de matar los procesos relacionados con el mismo, por lo que podría entenderse que hace el ambio en caliente.
Para establecer la conexión SSH a nuestro Servidor Ubuntu:
1. Desde Linux: ir a la consola y escribir " [root@localhost]# ssh usuario@ipservidor, en caso de estar por default el puerto 22
pero como nosotros cambiamos el puerto: " [root@localhost]# ssh -p[puerto] usuario@ipservidor
Bueno eso es todo en este basico manual
Si les sirvie dejen comentarios
Saludos