Capítulo 2. Cómo proteger la red
2.1. Seguridad de estación de trabajo
2.1.1. Evaluación de la seguridad de la estación de trabajo
- BIOS y Seguridad del gestor de arranque — ¿Puede un usuario no autorizada acceder físicamente a la máquina y arrancar como usuario único o modo de rescate sin una contraseña?
- Seguridad de contraseña — ¿Qué tan seguras están sus contraseñas de cuenta de usuario en la máquina?
- Controles administrativos — ¿Quíen tiene una cuenta en el sistema y cuánto control administrativo tiene?
- Servicios de redes disponibles — ¿Qué servicios escuchan las solicitudes desde la red y deben estarse ejecutando?
- Cortafuegos personales — ¿Qué tipo de cortafuegos , si lo hay, es necesario?
- Herramientas de protección de comunicación mejoradas — ¿Qué herramientas deben utilizarse para comunicarse entre estaciones de trabajo y cuáles deberían evitarse?
2.1.2. BIOS y seguridad del gestor de arranque
2.1.2.1. Contraseñas de BIOS
- Evitar cambios a la configuración del BIOS — Si los intrusos tienen acceso al BIOS, pueden configurarlo para que arranque desde un disquete o un CD-ROM. Esto les permite entrar en modo de rescate y a su vez, iniciar procesos arbitrarios en el sistema o copiar datos confidenciales.
- Evitar arrancar el sistema — Algunos BIOS permiten la protección de contraseña del proceso de arranque. Cuando están activados, el agresor es obligado a ingresar una contraseña antes de que el BIOS lance el gestor de arranque.
2.1.2.1.1. Cómo proteger las plataformas que no son x-86
2.1.2.2. Contraseñas de gestor de arranque
- Evitar el acceso en modo monousuario — Si los agresores pueden arrancar el sistema en modo monousuario, se pueden registrar automáticamente como root sin que se les pida la contraseña de root.
- Evitar el acceso a la consola de GRUB — Si la máquina utiliza a GRUB como el gestor de arranque, el agresor puede utilizar la interfaz del editor de GRUB para cambiar la configuración o para reunir información mediante el comando
cat
. - Evitar el acceso a sistemas operativos inseguros — Si se trata de un sistema de doble arranque, el agresor puede seleccionar un sistema operativo en tiempo de arranque (por ejemplo, DOS), el cual ignora los controles de acceso y los permisos de archivos.
2.1.2.2.1. Contraseña de protección de GRUB
/sbin/grub-md5-crypt
/boot/grub/grub.conf
. Abra el archivo y debajo de la línea timeout
en la sección principal del documento, añada la siguiente línea:
password --md5 <password-hash>
/sbin/grub-md5-crypt
[12].
/boot/grub/grub.conf
.
title
del sistema operativo que desea proteger y añada una línea con la directiva lock
inmediatamente.
title DOS lock
Aviso
password
debe estar presente en la sección principal del archivo /boot/grub/grub.conf
para que este método funcione correctamente. De lo contrario puede acceder a la interfaz del editor de GRUB y retirar la línea de bloqueo.
lock
a la estanza, seguida de una línea de contrasaña.
title DOS lock password --md5 <password-hash>
2.1.3. Seguridad de contraseña
/etc/passwd
, lo que hace al sistema vulnerable a ataques de piratas de contraseñas fuera de línea. Si el intruso puede obtener acceso a la máquina como un usuario normal, puede copiar el archivo /etc/passwd
en su propia máquina y ejecutar cualquier cantidad de programas para descifrar las contraseñas. Si hay una contraseña insegura en el archivo, es sólo cuestión de tiempo antes de que el pirata la descubra.\n
/etc/shadow
, el cual únicamente puede ser leído por el usuario root.
2.1.3.1. Cómo crear contraseñas fuertes
- No utilice solo palabras o números — Nunca use únicamente números o palabras en la contraseña.Algunos ejemplos inseguros se incluyen a continuación:
- 8675309
- juan
- hackme
- No utilice palabras reconocibles — Palabras tales como nombres propios, palabras de diccionario, o incluso términos de los programas de televisión o novelas deben evitarse, incluso si terminan en números.Algunos ejemplos inseguros se incluyen a continuación:
- john1
- DS-9
- mentat123
- No utilice palabras en otro idioma — Los programas para descubrir contraseñas suelen comparar todas las listas de los diccionarios en muchos idiomas. Depender de idiomas extranjeros para proteger sus contraseñas no es seguro.Algunos ejemplos inseguros se incluyen a continuación:
- cheguevara
- bienvenido1
- 1dumbKopf
- No utilice terminología de hacker — Si piensa que pertenece a una élite porque utiliza en su contraseña terminología de hacker — conocida también como l337 o LEET — ¡piénselo dos veces!. Muchas listas de palabras incluyen LEET.Algunos ejemplos inseguros se incluyen a continuación:
- H4X0R
- 1337
- No use información personal — Evite el uso de información personal en sus contraseñas. Si el agresor conoce su identidad, la tarea de deducir su contraseña será más fácil. A continuación se enumeran los tipos de información que se deben evitar al crear una contraseña:Algunos ejemplos inseguros se incluyen a continuación:
- Su nombre
- Los nombres de mascotas
- Los nombres de miembros de familia
- Las fechas de cumpleaños
- Su número telefónico o código postal
- No ponga al revés palabras reconocibles — Los revisores de contraseñas siempre reversan las palabras comunes, por lo tanto al invertir una mala contraseña no la hace más segura.Algunos ejemplos inseguros se incluyen a continuación:
- R0X4H
- nauj
- 9-DS
- No anote su contraseña — Nunca escriba una contraseña en papel. Es más seguro memorizarla.
- No use la misma contraseña para todas las máquinas — Es importante crear contraseñas independientes para cada máquina. De esta forma si un sistema pierde su caracter confidencial, no todas sus máquinas estarán en riesgo.
- Cree una contraseña de por lo menos ocho caracteres — Entre más larga su contraseña, mejor. Si utiliza contraseñas MD5, debe ser por lo menos de 15 caracteres. Con contraseñas DES, use la longitud máxima (ocho caracteres).
- Mezcle letras mayúsculas y minúsculas — Red Hat Enterprise Linux es sensible a mayúsculas y minúsculas, por lo tanto, mezcle las mayúsculas y minúsculas para fortalecer la contraseña.
- Mezcle letras y números — Si añade números a contraseñas, especialmente en el medio (no solo al comienzo o al final), puede mejorar la fortaleza de la contraseña.
- Incluya caracteres no alfanuméricos — Caracteres especiales tales como &, $, y > pueden mejorar ampliamente la fortaleza de la contraseña (no es posible si se utilizan contraseñas DES).
- Elija una contraseña que usted recuerde — La mejor contraseña del mundo no sirve de nada si usted no la recuerda; use acrónimos u otros dispositivos nemotécnicos para ayudar a memorizar las contraseñas.
2.1.3.1.1. Metodología para la creación de una contraseña segura
- Piense en una frase fácil de recordar, tal como esta en Inglés:"over the river and through the woods, to grandmother's house we go."
- Luego conviértala en un acrónimo (incluyendo la puntuación)
otrattw,tghwg.
- Añada complejidad al sustituir por números y símbolos las letras en el acrónimo. Por ejemplo, substituya
7
parat
y el símbolo de arroba (@
) paraa
:o7r@77w,7ghwg.
- Añada más complejidad al poner en mayúsculas al menos una letra, tal como
H
.o7r@77w,7gHwg.
- Por último, no utilice nunca la contraseña del ejemplo anterior para ningún sistema.
2.1.3.2. Cómo crear contraseñas de usuario dentro de una organización
2.1.3.2.1. Cómo forzar contraseñas fuertes
passwd
, la cual reconoce los Módulos de autenticación conectables (PAM) y por lo tanto verifica si la contraseña es demasiado corta o fácil de averiguar. Esta revisión se realiza mediante el módulo PAM de pam_cracklib.so
. Puesto que PAM puede personalizarse, es posible añadir más revisores de integridad de contraseñas, tales como pam_passwdqc
(disponible en http://www.openwall.com/passwdqc/) o escribir un nuevo módulo. Para obtener una lista de los módulos PAM disponibles, consulte http://www.kernel.org/pub/linux/libs/pam/modules.html. Para mayor información sobre PAM, consulte Managing Single Sign-On and Smart Cards.
- John The Ripper — Un programa rápido y flexible de violación de contraseñas. Permite el uso de múltiples listas de palabras y puede usar la fuerza bruta para violar las contraseñas. Está disponible en http://www.openwall.com/john/.
- Crack — Quizás el software de violación de contraseñas más conocido, Crack también es rápido, aunque no fácil de usar como John The Ripper. Puede encontrarlo en http://www.crypticide.com/alecm/security/crack/c50-faq.html.
- Slurpie — Slurpie es una aplicación similar a John The Ripper y Crack, pero está diseñada para ser ejecutada en varios equipos al mismo tiempo, creando un ataque de violación de contraseñas distribuido. Se encuentra junto con otro número de herramientas de evaluación de seguridad de ataques distribuidos en http://www.ussrback.com/distributed.htm.
Aviso
2.1.3.2.2. Frases de paso
2.1.3.2.3. Caducidad de las contraseñas
chage
o la aplicación gráfica Administrador de usuario (system-config-users
).
-M
del comando chage
especifica el número de días máximo que la contraseña es válida. Por ejemplo, para establecer una contraseña de usuario que expire en 90 días, use el siguiente comando:
chage -M 90 <username>
99999
después de -M
(esto equivale a un poco más de 273 años).
chage
en modo interactivo para modificar la caducidad de varias contraseñas e información de cuentas. Use el siguiente comando para ingresar en modo interactivo:
chage <username>
[root@myServer ~]# chage davido Changing the aging information for davido Enter the new value, or press ENTER for the default Minimum Password Age [0]: 10 Maximum Password Age [99999]: 90 Last Password Change (YYYY-MM-DD) [2006-08-18]: Password Expiration Warning [7]: Password Inactive [-1]: Account Expiration Date (YYYY-MM-DD) [1969-12-31]: [root@myServer ~]#
- Haga clic en el menúen el panel, señale y luego haga clic en para desplegar el administrador de usuario. De modo alternativo, escriba el comando
system-config-users
en el indicador de shell. - Haga clic en la pestaña Usuarios y seleccione el usuario requerido en la lista de usuarios.
- Haga clic enen la barra de herramientas para desplegar el cuadro de diálogo del usuario (o elija en el menú ).
- Haga clic en Información de contraseña, y selecciones la cajilla de verificación para Habilitar expiración de contraseña.
- Ingrese el valor requerido en el campo Días antes del cambio requerido y haga clic en .

Figura 2.1. Cómo especificar opciones de caducidad de contraseñas
2.1.4. Controles administrativos
sudo
o su
. Un programa de setuid es el que funciona con el ID de usuario (UID) del propietaio del programa en lugar del usuario que opera el programa. Dichos programas se indican con una s
en la sección de listado de formato largo, como en el siguiente ejemplo:
-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su
Nota
s
puede estar en minúscula o mayúscula. Si aparece en mayúscula, significa que el bit de permiso subyacente aún no se ha establecido.
pam_console.so
, algunas actividades normalmente reservadas para el usuario root, tales como reinicio o el montaje de medios extraíbles, para el primer usuario que ingrese en la consola física (consulte la Managing Single Sign-On and Smart Cards para obtener más información acerca del módulo pam_console.so
) Sin embargo, otras tareas administrativas del sistema, tales como alterar la configuración de red, configurar un nuevo ratón o montar dispositivos de red, no son posibles sin privilegios de administrador. Como resultado, los administradores de sistemas deben decidir cuánto acceso pueden tener los usuarios en la red.
2.1.4.1. Permitir acceso de root
- Error en la configuración de la máquina — Los usuarios con acceso de root pueden desconfigurar las máquinas y necesitarán ayuda para resolver los problemas. Peor aún, podrían abrir agujeros de seguridad sin saberlo.
- Ejecutar servicios inseguros — Los usuarios con acceso de root pueden ejecutar servicios inseguros en sus máquinas, tales como FTP o Telnet, poniendo en riesgo los nombres de usuario y contraseñas. Estos servicios transmiten la información a través de la red en texto plano.
- Ejecutar anexos de correo-e como root — Aunque escasos, los virus de correo-e que afectan a Linux existen. No obstante, el único momento en que son una amenaza, es cuando son ejecutados por el usuario root.
2.1.4.2. Desactivación del acceso root
Tabla 2.1. Métodos para desactivar la cuenta de root
Método | Descripción | Efectos | No afecta | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cambio de shell de root. | Edite el archivo /etc/passwd y cambie el shell de /bin/bash a /sbin/nologin . |
|
| |||||||||||||||
Desactivación del acceso de root a través de un dispositivo de consola (tty). | Un archivo vacío /etc/securetty impide el ingreso de root a los dispositivos conectados al equipo. |
|
| |||||||||||||||
Desactivación de nombres de usuario de root SSH. | Edite el archivo /etc/ssh/sshd_config y establezca el parámetro PermitRootLogin a no . |
|
| |||||||||||||||
Use PAM para limitar el acceso de root a servicios. | Edite el archivo para el servicio de destino en el directorio /etc/pam.d/ . Asegúrese de que pam_listfile.so se requiera para la autenticación.[a] |
|
| |||||||||||||||
[a]
Consulte la Sección 2.1.4.2.4, “Desactivación de root mediante PAM” for details.
|
2.1.4.2.1. Desactivación del shell de root
/sbin/nologin
en el archivo /etc/passwd
. Así impide el acceso a la cuenta de root a través de los comandos que requieren un shell, tal como los comandos su
y ssh
.
Importante
sudo
, aún pueden acceder a la cuenta de root.
2.1.4.2.2. Desactivación de los nombres de usuario de root
/etc/securetty
. Este archivo muestra todos los dispositivos a los que el usuario de root puede conectarse. Si el archivo no existe en absoluto, el usuario puede conectarse a través de cualquier dispositivo de comunicación en el sistema, ya sea a través de la consola o una interfaz de red cruda. Esto es peligroso, ya que un usuario puede conectarse a su máquina como root a través de Telnet, la cual transmite por la red a contraseña en texto plano. De forma predeterminada, el archivo /etc/securetty
de Red Hat Enterprise Linux solamente permite que el usuario de root inicie sesión en la consola conectada físicamente a la máquina. Para impedir que root ingrese, retire el contenido de este archivo mediante el siguiente comando:
echo > /etc/securetty
Aviso
/etc/securetty
no impide que el usuario de root ingrese de forma remota mediante el paquete de herramientas de OpenSSH porque la consola no se abre sino después de la autenticación.
2.1.4.2.3. Desactivación de los nombres de usuario de root SSH
/etc/ssh/sshd_config
). Cambie la línea que se lee:
PermitRootLogin yes
PermitRootLogin no
kill -HUP `cat /var/run/sshd.pid`
2.1.4.2.4. Desactivación de root mediante PAM
/lib/security/pam_listfile.so
, permite gran flexibilidad en la negación de cuentas específicas. El administrador puede usar este módulo para hacer referencia a una lista de usuarios que no tienen permiso de ingreso. A continuación verá un ejemplo de cómo se utiliza el módulo para el servidor FTP de vsftpd
en el archivo de configuración /etc/pam.d/vsftpd
(el caracter \
al final de la primera línea en el siguiente ejemplo no es necesario si la directiva está un una línea):
auth required /lib/security/pam_listfile.so item=user \ sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
/etc/vsftpd.ftpusers
y niegue el acceso al servicio para cualquier usuario en la lista. El administrador puede cambiar el nombre de este archivo y mantener listas independientes para cada servicio o usar una lista central para negar acceso a múltiples servicios.
/etc/pam.d/pop
y /etc/pam.d/imap
para clientes de correo o /etc/pam.d/ssh
para clientes SSH.
2.1.4.3. Limitación del acceso de root
su
o sudo
.
2.1.4.3.1. El comando su
su
se le solicitará la contraseña de root y después de la autenticación, se le dará un indicador de shell de root.
su
, el usuario se convierte en el usuario de root y tiene acceso administrativo total en el sistema[13]. Además, una vez que el usuario se convierta en root, le será posible utilizar el comando su
para cambiar a cualquier otro usuario en el sistema sin que se le solicite una contraseña.
usermod -G wheel <username>
wheel
.
- Haga clic en el menúen el panel, señale y luego haga clic en para desplegar el administrador de usuario. De modo alternativo, escriba el comando
system-config-users
en el indicador de shell. - Haga clic en la pestaña Usuarios y seleccione el usuario requerido en la lista de usuarios.
- Haga clic enen la barra de herramientas para desplegar el cuadro de diálogo del usuario (o elija en el menú ).
- Haga clic en la pestaña Groups, seleccione la cajilla de verificación para el grupo wheel y luego haga clic en el botón . Consulte la Figura 2.2, “Adición de usuarios al grupo "wheel".”.

Figura 2.2. Adición de usuarios al grupo "wheel".
su
(/etc/pam.d/su
) en un editor de texto y retire el comentario # de la siguiente línea:
auth required /lib/security/$ISA/pam_wheel.so use_uid
wheel
pueden usar este programa.
Nota
wheel
de forma predeterminada.
2.1.4.3.2. El comando sudo
sudo
ofrece otro método para proporcionar acceso administrativo a los usuarios. Cuando los usuarios fiables preceden un comando administrativo con sudo
, se les solicitará su propia contraseña. Luego, cuando el usuario ha sido autenticado y se supone que el comando es permitido, el comando administrativo se ejecutará como si el usuario fuera root.
sudo
es el siguiente:
sudo <command>
mount
.
Importante
sudo
deben tener extremo cuidado al salir antes de abandonar las máquinas ya que los usuarios de sudo pueden usar el comando otra vez en un lapso de 5 minutos sin que se les pregunte la contraseña. Esta configuración puede modificarse en el archivo de configuración, /etc/sudoers
.
sudo
permite un alto grado de flexibilidad. Por ejemplo, solamente los usuarios listados en el archivo de configuración /etc/sudoers
tienen permiso para usar el comando sudo
y el comando se ejecuta en el shell del usuario, no en el shell de root. Esto significa que el shell de root puede estar completamente desactivado, como se muestra en la Sección 2.1.4.2.1, “Desactivación del shell de root”.
sudo
también proporciona un rastro de auditoría integral. Cada autenticación correcta se registra en el archivo /var/log/messages
y el comando expedido junto con el nombre de usuario de quien lo expide se registran en el archivo /var/log/secure
.
sudo
es que el administrador puede permitir a diferentes usuarios el acceso a comandos específicos con base en sus necesidades.
sudo
, deben usar el comando visudo
.
visudo
y añada una línea similar a la siguiente en la sección de especificación de privilegios del usuario.
juan ALL=(ALL) ALL
juan
, puede usar sudo
desde cualquier host y ejecutar cualquier comando.
sudo
:
%users localhost=/sbin/shutdown -h now
/sbin/shutdown -h now
siempre y cuando se ejecute desde la consola.
sudoers
tiene un listado detallado de las opciones para este archivo.
2.1.5. Servicios de red disponibles
2.1.5.1. Riesgos para los servicios
- Ataques de denegación de servicio (DoS) Al inundar un servicio con solicitudes, un ataque de denegación de servicio puede volver inservible a un sistema, ya que trata de registrar y responder a cada solicitud.
- Ataque de denegación de servicio distribuido (DDoS) — Un tipo de ataque DoS que utiliza varias máquinas que han perdido su caracter confidencial (a menudo enumerándolas en miles o más) para dirigir un ataque coordinado en un servicio, inundarlo con solicitudes y convertirlo en inservible.
- Ataques de vulnerabilidad de Scripts — Si un servidor utiliza scripts para ejecutar acciones relacionadas con el servidor, como comúnmente lo hacen los servidores de Web, un cracker puede atacar incorrectamente los scripts escritos. Estos ataques de vulnerabilidades de script pueden conducir a una condición de desbordamiento de buffer o permitir que el agresor altere los archivos en el sistema.
- Ataques de desbordamientos de buffer — Los servicios que se conectan a puertos enumerados del 0 al 1023 deben ser ejecutados como usuario administrativo. Si la aplicación sufre un desbordamiento de buffer, el atacante podría obtener acceso al sistema como el usuario al ejecutar el demonio. Puesto que los desbordamientos de buffer existen, los agresores utilizan herramientas automatizadas para identificar vulnerabilidades en los sistemas, y una vez que han obtenido acceso, utilizarán rootkits para mantener el acceso al sistema.\n
Nota
Importante
2.1.5.2. Identificación y configuración de servicios
cupsd
— El servidor de impresión predeterminado para Red Hat Enterprise Linux.lpd
— Un servidor de impresión alternativo.xinetd
— Un súper servidor que controla conexiones para un rango de servidores subordinados, tales comogssftp
ytelnet
.sendmail
— El Mail Transport Agent (MTA) de Sendmail está habilitado de forma predeterminada, pero no solamente escucha conexiones desde el host local.sshd
— El servidor de OpenSSH, el cual es un remplazo seguro para Telnet.
cupsd
ejecutándose. Lo mismo se cierto para portmap
. Si usted no monta volúmenes NFSv3 o usa NIS (el servicio ypbind
), entonces portmap
debe estar desactivado.

Figura 2.3. Services Configuration Tool
2.1.5.3. Servicios inseguros
- Transmitir por la red nombres de usuarios y contraseñas sin cifrar — Muchos protocolos anteriores, tales como Telnet y FTP, no cifran la sesión de autenticación y deben evitarse cuando sea posible.
- Transmitir por la red datos confidenciales sin cifrar — Muchos protocolos transmiten datos sin cifrar por la red. Estos protocolos incluyen Telnet, FTP, HTTP, y SMTP. Muchos sistemas de archivos de red, tales como NFS y SMB, también transmiten información sin cifrar por la red. Es responsabilidad del usuario cuando use estos protocolos, limitar el tipo de datos que se transmite.Servicios de volcado de memoria, tales como
netdump
, transmiten el contenido de memoria por la red sin cifrar. Los volcados de memoria pueden contener contraseñas o incluso peor, entradas de base de datos y otra información confidencial.Otros servicios comofinger
yrwhod
revelan información sobre usuarios del sistema.
rlogin
, rsh
, telnet
, y vsftpd
.
rlogin
, rsh
, and telnet
) deben evitarse en favor de SSH. Consulte la Sección 2.1.7, “Herramientas de comunicación de Seguridad Mejorada ” para obtener mayor información sobre sshd
.
finger
authd
(conocido comoidentd
en lanzamientos anteriores de Red Hat Enterprise Linux.)netdump
netdump-server
nfs
rwhod
sendmail
smb
(Samba)yppasswdd
ypserv
ypxfrd
2.1.6. Cortafuegos personales
Importante
system-config-firewall
). Esta herramiena crea amplias reglas iptables
para un cortafuegos de propósitos generales mediante una interfaz de panel de control.
iptables
probablemente es una mejor opción. Consulte la Sección 2.5, “Cortafuegos” para obtener más información. Consulte la Sección 2.6, “IPTables” para obtener una guía integral de iptables
.
2.1.7. Herramientas de comunicación de Seguridad Mejorada
- OpenSSH — Una implementación libre de protocolo SSH para cifrar la comunicación de redes.
- Gnu Privacy Guard (GPG) — Una aplicación de cifrado PGP (Pretty Good Privacy) para cifrado de datos.
telnet
y rsh
. OpenSSH incluye un servicio de red llamado sshd
y tres aplicaciones de cliente de línea de comandos:
ssh
— Un cliente de consola de acceso remoto seguro.scp
— Un comando de copia remoto seguro.sftp
— Un seudo cliente ftp que permite sesiones de transferencia de archivos.
Importante
sshd
es esencialmente seguro, el servicio debe mantenerse actualizado para prevenir amenazas de seguridad. Consulte la Sección 1.5, “Actualizaciones de seguridad” para obtener mayor información.