You are on page 1of 12

Certificacin LPIC-1

Configuracin de OpenSSH.
Introduccin.
Acerca de SSH.
SSH (Secure Shell) es un conjunto de estndares y protocolo de red que permite
establecer una comunicacin a travs de un canal seguro entre un cliente local y un
servidor remoto. Utiliza una clave pblica cifrada para autenticar el servidor remoto y,
de manera opcional, permitir al servidor remoto autenticar al usuario. SSH provee
confidencialidad e integridad en la transferencia de los datos utilizando criptografa y
MAC (Message Authentication Codes o Cdigos de Autenticacin de Mensaje). De
modo predeterminado, escucha peticiones a travs del puerto 22 por TCP.
Acerca de SFTP.
SFTP (SSH File Transfer Protocol) es un protocolo que provee funcionalidad de
transferencia y manipulacin de archivos a travs de un flujo confiable de datos.
Comnmente se utiliza con SSH para proveer a ste de transferencia segura de archivos.
Acerca de SCP.
SCP (Secure Copy o Copia Segura) es una protocolo seguro para transferir archivos
entre un anfitrin local y otro remoto, a travs de SSH. Bsicamente, es idntico a RCP
(Remote Copy o Copia Remota), con la diferencia de que los datos son cifrados durante
la transferencia para evitar la extraccin potencial de informacin a travs de programas
de captura de las tramas de red (packet sniffers). SCP slo implementa la transferencia
de archivos, pues la autenticacin requerida es realizada a travs de SSH.
Acerca de OpenSSH.
OpenSSH (Open Secure Shell) es una alternativa de cdigo fuente abierto, con licencia
BSD, hacia la implementacin propietaria y de cdigo cerrado SSH creada por Tatu
Ylnen. OpenSSH es un proyecto creado por el equipo de desarrollo de OpenBSD y
actualmente dirigido por Theo de Raadt. Se considera es ms segura que la versin
privativa Ylnen, gracias a la constante auditora que se realiza sobre el cdigo fuente
por parte de una enorme comunidad de desarrolladores, una ventaja que brinda el
Software Libre.
OpenSSH incluye servicio y clientes para los protocolos SSH, SFTP y SCP.
URL: http://www.openssh.org/.
1
Certificacin LPIC-1

Equipamiento lgico necesario.
En CentOS, Fedora y Red Hat Enterprise Linux.
Si realiz una instalacin mnima, ejecute lo siguiente para instalar la paquetera
necesaria:
yum- y i nst al l openssh openssh- ser ver openssh- cl i ent s
En openSUSE y SUSE Linux Enterprise.
Si realiz una instalacin mnima, ejecute lo siguiente para instalar la paquetera
necesaria:
yast - i openssh
Activar, desactivar, iniciar, detener y reiniciar el
servicio ssh.
De modo predeterminado, el servicio sshd est activo en los niveles de ejecucin 2, 3, 4
y 5.
En CentOS, Fedora y Red Hat Enterprise Linux.
Ejecute lo siguiente slo si necesita desactivar el servicio sshd de todos los niveles de
ejecucin:
chkconf i g sshd of f
Ejecute lo siguiente para ejecutar por primera vez el servicio sshd:
ser vi ce sshd st ar t
Ejecute lo siguiente para hacer que surtan efecto los cambios hechos a la configuracin
del servicio sshd:
ser vi ce sshd r est ar t
Ejecute lo siguiente para detener el servicio sshd:
r csshd st op
En openSUSE y SUSE Linux Enterprise.
Ejecute lo siguiente slo si necesita desactivar el servicio sshd de todos los niveles de
ejecucin:
2
Certificacin LPIC-1

i nsser v - r sshd
Ejecute lo siguiente para ejecutar por primera vez el servicio sshd:
r csshd st ar t
Ejecute lo siguiente para hacer que surtan efecto los cambios hechos a la configuracin
del servicio sshd:
r csshd r est ar t
Ejecute lo siguiente para detener el servicio sshd:
ser vi ce sshd st op
Modificaciones necesarias en el muro cortafuegos.
Es necesario abrir el puerto 22 por TCP (SSH) o bien el puerto que se haya
seleccionado para el servicio.
En CentOS, Fedora y Red Hat Enterprise Linux.
Servicio iptables.
Puede utilizar iptables, ejecutando lo siguiente:
i pt abl es - A I NPUT - mst at e - - st at e NEW- mt cp - p t cp - - dpor t 22 - j ACCEPT

ser vi ce i pt abl es save
O bien aada lo siguiente al archivo /etc/sysconfig/iptables:
- A I NPUT - mst at e - - st at e NEW- mt cp - p t cp - - dpor t 22 - j ACCEPT
Y reinicie el servicio iptables:
ser vi ce i pt abl es r est ar t
Shorewall.
Edite el archivo /etc/shorewall/rules:
vi m/ et c/ shor ewal l / r ul es
Las reglas corresponderan a algo similar a lo siguiente:
#ACTI ON SOURCE DEST PROTO DEST SOURCE
# PORT PORT( S) 1
3
Certificacin LPIC-1

ACCEPT net f w t cp 22
#LAST LI NE - - ADD YOUR ENTRI ES BEFORE THI S ONE - - DO NOT
REMOVE
Si la red de rea local (LAN) va a acceder hacia el servidor recin configurado, es
necesario abrir el puerto correspondiente.
#ACTI ON SOURCE DEST PROTO DEST SOURCE
# PORT PORT( S) 1
ACCEPT net f w t cp 22
ACCEPT loc fw tcp 22
#LAST LI NE - - ADD YOUR ENTRI ES BEFORE THI S ONE - - DO NOT
REMOVE
O bien, hacer todo lo anterior, con una sola regla, que permita el acceso desde cualquier
zona del muro cortafuegos:
#ACTI ON SOURCE DEST PROTO DEST SOURCE
# PORT PORT( S) 1
ACCEPT all fw tcp 22
#LAST LI NE - - ADD YOUR ENTRI ES BEFORE THI S ONE - - DO NOT
REMOVE
Si se decidi ofuscar el puerto de SSH, puede utilizar la siguiente regla, donde, en lugar
de 52341, deber especificar el puerto que haya elegido:
#ACTI ON SOURCE DEST PROTO DEST SOURCE
# PORT PORT( S) 1
ACCEPT all fw tcp 52341
#LAST LI NE - - ADD YOUR ENTRI ES BEFORE THI S ONE - - DO NOT
REMOVE
Al terminar de configurar las reglas para Shorewall, reinicie el muro cortafuegos,
ejecutando el siguiente mandato:
ser vi ce shor ewal l r est ar t
En openSUSE y SUSE Linux Enterprise.
Ejecute el mandato yast del siguiente modo:
yast f i r ewal l
Habilite Secure Shell Server o bien el puerto seleccionado para utilizar el servicio y
aplique los cambios.
4
Certificacin LPIC-1


Mdulo de cortafuegos de YaST, habilitando Secure Shell Server.
SELinux y el servicio sshd.
Si utiliza openSUSE y SUSE Linux Enterprise omita la siguiente seccin.
Si se utiliza de CentOS, Fedora o Red Hat Enterprise Linux, el sistema incluye
tres polticas para el servicio sshd.
Poltica ssh_chroot_rw_homedirs.
Esta poltica habilita o deshabilita, la lectura y escritura de archivos a travs de SFTP en
los directorios de inicio de los usuarios enjaulados. El valor predeterminado es
deshabilitado. Para habilitar, ejecute lo siguiente
set sebool - P ssh_chr oot _r w_homedi r s 1
Poltica fenced_can_ssh.
Esta poltica habilita o deshabilita, que usuarios enjaulados a travs de SFTP puedan
ingresar tambin a travs de SSH. El valor predeterminado es deshabilitado. Para
habilitar, ejecute lo siguiente
set sebool - P f enced_can_ssh 1
Poltica ssh_sysadm_login.
Esta poltica habilita o deshabilita, el acceso a travs del servicio de SSH como
administrador del sistema (contextos sysadm_r:sysadm_t, que corresponden a los del
5
Certificacin LPIC-1

directorio de inicio del usuario root o bien que pueden ser aplicados al directorio de
inicio de otro usuario con privilegios). El valor predeterminado es deshabilitado. Para
habilitar, ejecute lo siguiente
set sebool - P ssh_sysadm_l ogi n 1
Poltica allow_ssh_keysign.
Esta poltica habilita o deshabilita, el acceso a travs de ssh utilizando firmas digitales.
El valor predeterminado es deshabilitado. Para habilitar, ejecute lo siguiente
set sebool - P al l ow_ssh_keysi gn 1
Para ms detalles, consulte el documento titulado Cmo utilizar OpenSSH con
autenticacin a travs de firma digital..
Contexto ssh_home_t.
El contexto de SELinux para de los directorios ~/.ssh y sus contenidos, debe ser tipo
ssh_home_t. En caso de haber actualizado el sistema desde versiones anteriores a
CentOS 6.3 o Red Hat Enterprise Linux 6.3, puede re-establecer los contextos
ejecutando lo siguiente:
r est or econ - R / r oot
r est or econ - R / home
O bien ejecutando:
chcon - R - t ssh_home_t / r oot / . ssh
chcon - R - t ssh_home_t / home/ */ . ssh
Archivos de configuracin.
/etc/ssh/sshd_config
Archivo principal de configuracin del servidor SSH.
/etc/ssh/ssh_config
Archivo principal de configuracin de los clientes SSH utilizados desde el
anfitrin local.
~/.ssh/config
Archivo personal para cada usuario, que almacena la configuracin utilizada
por los clientes SSH utilizados desde el anfitrin local. Permite al usuario
local utilizar una configuracin distinta a la definida en el archivo
/etc/ssh/ssh_config.
~/.ssh/known_hosts
6
Certificacin LPIC-1

Archivo personal para cada usuario, el cual almacena las firmas digitales de
los servidores SSH a los que se conectan los clientes. Cuando stas firmas
cambian, se pueden actualizar utilizando el mandato ssh-keygen con la
opcin -R y el nombre del anfitrin como argumento, el cual elimina la
entrada correspondiente del archivo ~/.ssh/known_hosts, permitiendo aadir
de nuevo el anfitrin con una nueva firma digital. Ejemplo: ssh-keygen -R
nombre.dominio.tld.
~/.ssh/authorized_keys
Archivo personal para cada usuario, el cual almacena los certificados de los
clientes SSH, para permitir autenticacin hacia servidores SSH sin requerir
contrasea. Consulte el documento titulado Cmo utilizar OpenSSH con
autenticacin a travs de firma digital.
Cuando se utilizan cuentas con acceso al intrprete de mandatos, las opciones
suministradas al mandato ssh tienen precedencia sobre las opciones establecidas en el
archivo ~/.ssh/config, que a su vez tiene precedencia sobre las opciones definidas en el
archivo /etc/ssh/ssh_config.
Procedimientos.
Edite el archivo /etc/ssh/sshd_config.
vi m/ et c/ ssh/ sshd_conf i g
A continuacin se analizarn las opciones bsicas que se recomienda modificar.
Parmetro Port.
Una forma de elevar considerablemente la seguridad al servicio de SSH, consiste en
cambiar el nmero de puerto utilizado por el servicio, por otro que slo conozca el
administrador del sistema. A este tipo de tcnicas se les conoce como Seguridad por
Oscuridad. La mayora de los delincuentes informticos utiliza guiones que buscan
servidores que respondan a peticiones a travs del puerto 22. Cambiar de puerto el
servicio de SSH disminuye considerablemente la posibilidad de una intrusin a travs
de este servicio.
Por t 22
SSH trabaja a travs del puerto 22 por TCP. Puede elegirse cualquier otro puerto entre
el 1025 y 65535. En el siguiente ejemplo, se establecer el puerto 52341:
Por t 52341

7
Certificacin LPIC-1

Parmetro ListenAddress.
De modo predeterminado, el servicio de SSH responder peticiones a travs de todas las
direcciones presentes en todas las interfaces de red del sistema. En el siguiente ejemplo,
el servidor a configurar tiene la direccin IP 192.168.1.254, la cual slo podra ser
accedida desde la red local:
Li st enAddr ess 192. 168. 1. 254
Parmetro PermitRootLogin.
Establece si se va a permitir el ingreso directo del usuario root al servidor SSH. Si se va
a permitir el ingreso hacia el servidor desde redes pblicas, resultar prudente utilizar
este parmetro con el valor no, de modo que sea necesario ingresar primero con una
cuenta de usuario activa, con un intrprete de mandatos que permita el acceso.
Per mi t Root Logi n no
Parmetro X11Forwarding.
Establece si se permitir la ejecucin remota de aplicaciones grficas que utilicen el
servidor X11. Resultar conveniente para algunas tareas administrativas que slo
puedan llevarse a cabo con herramientas grficas o bien si se requiere utilizar una
aplicacin grfica en particular. Para este fin, este parmetro puede establecerse con el
valor yes.
X11For war di ng yes
Parmetro AllowUsers.
Permite restringir el acceso por usuario y/o por anfitrin. El siguiente ejemplo restringe
el acceso hacia el servidor SSH para que slo puedan hacerlo los usuarios fulano y
mengano, desde cualquier anfitrin.
Al l owUser s f ul ano mengano
El siguiente ejemplo restringe el acceso hacia el servidor SSH para que slo puedan
hacerlo los usuarios fulano y mengano, pero slo desde los anfitriones 10.1.1.1 y
10.2.2.1.
Al l owUser s f ul ano@10. 1. 1. 1 mengano@10. 1. 1. 1 f ul ano@10. 2. 2. 1
mengano@10. 2. 2. 1
Parmetro UseDNS.
Cuando un cliente realiza una conexin hacia un servidor SSH, ste ltimo intentar
resolver en el DNS predeterminado del sistema, la direccin IP del cliente. Si el servidor
DNS predeterminado del sistema carece de una zona de resolucin inversa que resuelva
8
Certificacin LPIC-1

un nombre para la direccin IP del cliente, la conexin se demorar algunos segundos
ms de lo normal. Algunos administradores prefieren desactivar esta funcin, con el fin
de agilizar las conexiones SSH en redes donde se carece de servidores DNS que tengan
zonas de reenvo para resolver los nombres o zonas de resolucin inversa para resolver
las las direcciones IP de los segmentos de red local, definiendo el valor no para este
parmetro.
UseDNS no
Del lado del cliente se realiza un proceso de validacin, que tiene como objetivo
verificar si se estn falsificando registros en un servidor DNS, en el caso de que ste
ltimo se haya visto comprometido en su seguridad. La opcin que controla esta
funcin es CheckHostIP, tiene establecido yes como valor predeterminado y se define
en el archivo /etc/ssh/ssh_config (archivo de configuracin para los clientes SSH del
anfitrin local). Por lo general se recomienda dejar intacta esta opcin, con el valor
predeterminado, salvo que los servidores SSH involucrados carezcan de resolucin en
algn servidor DNS. Establecer el valor no, tiene como riesgo el ser susceptible de
conectarse inadvertidamente a un servidor distinto al que realmente se quera utilizar,
cuya resolucin de nombre de anfitrin haya sido falsificada y que pudiera estar siendo
utilizado con malas intenciones para engaar y poder capturar nombres de usuario y
contraseas, para posteriormente ser utilizados para acceder al servidor verdadero.
Probando OpenSSH.
Acceso con intrprete de mandatos.
Para acceder con intrprete de mandatos hacia el servidor, basta con ejecutar desde el
sistema cliente el mandato ssh, definiendo como argumentos el usuario a utilizar, una
arroba y la direccin IP o nombre del servidor al cual se quiera conectar:
ssh usuar i o@nombr e. domi ni o. t l d
Si el servidor SSH opera en un puerto diferente al 22, se puede utilizar la opcin -p con
el nmero de puerto utilizado como argumento. En el siguiente ejemplo, utilizando la
cuenta del usuario juan, se intentar acceder hacia el servidor con direccin IP
192.168.70.99, el cual tiene un servicio de SSH que responde peticiones a travs del
puerto 52341.
ssh - p 52341 j uan@192. 168. 70. 99
Transferencia de archivos a travs de SFTP.
Para acceder a travs de SFTP hacia el servidor, basta con ejecutar desde el sistema
cliente el mandato sftp definiendo el usuario a utilizar y el servidor al cual conectar:
sf t p usuar i o@ser vi dor
9
Certificacin LPIC-1

El intrprete de mandatos de SFTP es muy similar al utilizado para el protocolo FTP y
tiene las mismas funcionalidades.
Para acceder hacia un puerto en particular, en el cual est trabajando el servicio de SSH,
se hace travs de el parmetro -o, con la opcin Port=nmero de puerto. En el
siguiente ejemplo, utilizando la cuenta del usuario juan, se acceder a travs de SFTP
hacia el servidor 192.168.70.99, el cual tiene trabajando el servicio de SSH en el puerto
52341.
sf t p - o Por t =52341 j uan@192. 168. 70. 99
Si dispone de un escritorio en GNU/Linux, con GNOME 2.x, puede acceder hacia
servidores SSH a travs del protocolo SFTP utilizando el administrador de archivos
(Nautilus) para realizar transferencias y manipulacin de archivos, especificando el
URI (Uniform Resource Locator o Localizador Uniforme de Recursos) sftp:,
seguido del servidor y la ruta hacia la que se quiere acceder, seguido del puerto, en el
caso que sea distinto al 22.

Nautilus, accediendo hacia un directorio remoto a travs de SFTP.
Jaulas para los usuarios que acceden a travs de SFTP.
La funcin de chroot (jaula de confinamiento de los usuarios) viene incluida desde la
versin 4.9p1 de OpenSSH. Para habilitarla, es necesario editar el archivo
/etc/ssh/sshd_config:
vi m/ et c/ ssh/ sshd_conf i g
Casi al final del archivo, localice la siguiente lnea:
Subsyst em sf t p / usr / l i bexec/ openssh/ sf t p- ser ver
10
Certificacin LPIC-1

Comente la lnea con una almohadilla y aada el siguiente contenido:
#Subsyst em sf t p / usr / l i bexec/ openssh/ sf t p- ser ver
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Guarde el archivo y regrese al intrprete de mandatos
Reinicie el servicio sshd ejecutando lo siguiente:
ser vi ce sshd r est ar t
Utilice el mandato groupadd para crear el grupo sftpusers.
gr oupadd sf t puser s
Aada a los usuarios a los cuales se quiera enjaular, al grupo sftpusers.
gpasswd - a per engano sf t puser s
Cambie los permisos del directorio de inicio de los usuarios involucrados, para que
pertenezcan a root y tengan permiso de acceso 755.
chown r oot : r oot / home/ per engano
chmod 755 / home/ per engano
Finalmente, cambie el intrprete de mandatos de los usuarios involucrados a
/sbin/nologin.
user mod - s / sbi n/ nol ogi n per engano
A partir de este momento, los usuarios involucrados podrn ingresar al sistema a travs
de SFTP, pero slo podrn tener acceso a su directorio de inicio.
[ f ul ano@cent os6 ~] $ sftp per engano@192. 168. 80. 8
per engano@192. 168. 80. 8' s passwor d:
Connect ed t o 192. 168. 80. 8.
sf t p> pwd
Remot e wor ki ng di r ect or y: /
sf t p> ls -a
. . . . bash_l ogout . bash_pr of i l e . bashr c
sf t p>
Transferencia de archivos a travs de SCP.
Para realizar transferencias de archivos a travs de SCP, es necesario conocer las rutas
de los directorios objetivo del anfitrin remoto. A continuacin se describen algunas de
las opciones ms importantes del mandato scp.
11
Certificacin LPIC-1

12
-p (minscula)
Preserva el tiempo de modificacin, tiempos de acceso y los modos del
archivo original.
-P (mayscula)
Especifica el puerto para realizar la conexin.
-r
Copia en modo descendente de los directorios especificados.
En el siguiente ejemplo, se transferir el archivo algo.txt, preservando tiempos y
modos, hacia el directorio de inicio del usuario fulano en el servidor 192.169.0.99.
scp - p al go. t xt f ul ano@192. 168. 70. 99: ~/
En el siguiente ejemplo, se transferir la carpeta Mail, junto con todo su contenido,
preservando tiempos y modos, hacia el directorio de inicio del usuario fulano en el
servidor 192.169.0.99.
scp - r p Mai l f ul ano@192. 168. 70. 99: ~/
En el siguiente ejemplo, se transferir la carpeta Mail, junto con todo su contenido,
desde el directorio de inicio del usuario fulano en el servidor 192.169.0.99, cuyo
servicio de SSH escucha peticiones a travs del puerto 52341, preservando tiempos y
modos, hacia el directorio del usuario con el que se est trabajando en el anfitrin local.
scp - P 52341 - r p f ul ano@192. 168. 70. 99: ~/ Mai l . /

You might also like