Logo Espacio Linux Paypal - Acepta pagos con tarjeta en tu negocio      
Portada Taller Linux Descargas Foros Buscar Mapa del sitio Ayuda BlogEL
   Iniciar sesión | Registrarse    
 
Principal

Patrocinadores

Boletín Espacio Linux
Las novedades del sitio y el mundo Linux en tu email.


Taller Linux
 Estación de Trabajo en Audio
 HOWTO: Configuración básica de Ratpoison
 Guía de remasterización de Knoppix
 HOWTO: Nano, mi editor favorito
 HOWTO: Configuración Básica de IceWM


Sitios amigos

Consejos de Seguridad en Linux


En este artículo explicaré como hacer su estación Linux más segura tras tomar medidas de
seguridad básicas. Este artículo le permitirá a cualquiera ajustar la seguridad de una estación corriendo Red Hat Linux.

Seguridad de la BIOS
Siempre establezca una contraseña en la BIOS para prohibir la carga del sistema a través de un disquete cambiando la configuración de su BIOS. Esto le cerrará el paso a las personas no deseadas para que puedan cargar su sistema Linux con un disco especial de inicio y lo protegerá a usted de las personas que traten de cambiar las características de la BIOS como lo son iniciar el sistema de un disquete o cargar el servidor sin preguntar la contraseña.

Seguridad de LILO
Agregue estos tres parámetros en el archivo "/etc/lilo.conf", esto son, time-out, restricted y password. Estas opciones preguntarán por una contraseña si se le pasan parámetros al cargador de Linux durante el inicio (tales como "linux single").
Paso 1
Edite el archivo /etc/lilo.conf (vi /etc/lilo.conf) y agregue o cambie las tres opciones:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
time-out=00 #cambie esta línea a 00
prompt
Default=linux
restricted #agregue esta línea
password= #agregue esta línea y ponga su contraseña
image=/boot/vmlinuz-2.2.14-12
label=linux
initrd=/boot/initrd-2.2.14-12.img
root=/dev/hda6
read-only

Paso 2
El archivo "/etc/lilo.conf" debería tener permisos de lectura únicamente para root porque contiene contraseñas sin encriptar.
[root@kapil /]# chmod 600 /etc/lilo.conf (no tendrá permisos de lectura para nadie nunca más).

Paso 3
Actualice su archivo de configuración "/etc/lilo.conf" para que los cambios tengan efecto.
[Root@kapil /]# /sbin/lilo -v (para actualizar el archivo lilo.conf).

Paso 4
Una medida más de seguridad que usted puede tomar para asegurar el archivo "/etc/lilo.conf" es establecerlo como inalterable, utilizando el comando chattr.
* Para establecer al archivo como inalterable, simplemente utilice el comando:
[root@kapil /]# chattr +i /etc/lilo.conf
Esto prevendrá cualquier cambio (accidental u de otra forma) al archivo "lilo.conf".

Para más información acerca de la seguridad de lilo, lea mi artículo sobre LILO.

Deshabilitar todas las cuentas especiales
Usted debería borrar todos los usuarios por defecto y cuentas de grupo que usted no utilice en su sistema como lo son lp, sync, shutdown, halt, news, uucp, operator, games, gopher, etc.
Para borrar una cuenta de usuario:
[root@kapil /]# userdel LP

Para borrar un grupo:
[root@kapil /]# groupdel LP

Elegir las contraseñas adecuadas
Usted debería seguir la siguiente directiva antes de escoger la contraseña adecuada.

Longitud de la contraseña: La longitud mínima aceptable de la contraseña por defecto cuando usted instala su sistema Linux es 5. Esto no es suficiente y debe ser de 8. Para hacer esto usted debe editar el archivo login.defs (vi /etc/login.defs) y cambiar la línea que dice:

  • PASS_MIN_LEN 5
    para que diga:
    PASS_MIN_LEN 8

    "login.defs" es el archivo de configuración para el programa login.

Active el soporte para contraseñas shadow o "sombreadas"
Usted debería habilitar la característica de contraseñas sombreadas. Usted puede utilizar la utilidad "/usr/sbin/authconfig" para habilitar la característica de contraseñas sombreadas en su sistema. Si usted quiere convertir las contraseñas y grupos existentes en su sistema a contraseñas y grupos sombreados entonces usted puede usar los comandos pwconv, grpconv respectivamente.

La cuenta root
La cuenta "root" es la cuenta más privilegiada en un sistema Unix. Cuando el administrador olvida salir del prompt root del sistema antes de abandonar el sistema entonces el sistema debería automáticamente salir del shell o intérprete de comandos. Para hacer eso, usted debe establecer la variable especial llamada "TMOUT" especificando el tiempo en segundos.
Edite su archivo profile ("perfil"), "vi /etc/profile" y agregue la siguiente línea en algún lugar después de la línea que dice:
"HISTFILESIZE="
TMOUT=3600
El valor que ingresamos para la variable "TMOUT=" está en segundos y representa 1 hora (60 * 60 = 3600 segundos). Si usted pone esta línea en su archivo "/etc/profile", entonces la salida automática del sistema luego de una hora se aplicará para todos los usuarios en el sistema. Usted puede configurar esta variable en los archivos ".bashrc" individuales de cada usuario para sacarlos a ellos automáticamente del sistema después de un cierto tiempo. Después que este parámetro ha sido establecido en su sistema, usted debe salir del sistema y luego ingresar nuevamente (como root) para que los cambios tengan efecto.

Deshabilite todos los accesos de consolas y equivalentes para los usuarios regulares
Usted debería deshabilitar todos los accesos de consolas y equivalentes para los programas como shutdown, reboot, y halt para los usuarios regulares en su servidor.
Para hacer esto, ejecute el siguiente comando:
[root@kapil /]# rm -f /etc/security/console.apps/
Donde nombre_servicio es el nombre del programa al cual usted quiere deshabilitarle el acceso desde la consola y equivalentes.

Deshabilite y desinstale todos los servicios sin utilizar
Usted debería deshabilitar y desinstalar todos los servicios que usted no utiliza para que usted tenga una cosa menos de qué preocuparse. Mire su archivo "/etc/inetd.conf" y deshabilite lo que usted no necesita comentándolos (al agregar un # al comienzo de la línea), y luego envíele a su proceso inetd un comando SIGHUP para actualizarlo de acuerdo al actual archivo "inetd.conf". Para hacer esto:
Paso 1
Cambie los permisos en "/etc/inetd.conf" a 600, de esa forma solamente el root puede leer o escribir en él.
[Root@kapil /]# chmod 600 /etc/inetd.conf

Paso 2
ASEGÚRESE que el propietario del archivo "/etc/inetd.conf" es root.

Paso 3
Edite el archivo inetd.conf (vi /etc/inetd.conf) y deshabilite los servicios como:
ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth, etc a menos que usted planee utilizarlos. Si está apagado es mucho menos riesgo.

Paso 4
Envíe una señal HUP a su proceso inetd
[root@kapil /]# killall -HUP inetd

Paso 5
Establezca al archivo "/etc/inetd" inalterable, utilizando el comando chattr así nadie puede modificar ese archivo
* Para establecer al archivo como inalterable, simplemente ejecute el siguiente comando:
[root@kapil /]# chattr +i /etc/inetd.conf
Esto prevendrá cualquier cambio (accidental u de otra forma) al archivo "inetd.conf". La única persona que puede establecer o limpiar este atributo es el súper-usuario root. Para modificar el archivo inetd.conf usted necesitará desactivar la bandera inalterable:
* Para desactivar el atributo inalterable, simplemente ejecute el siguiente comando:
[root@kapil /]# chattr -i /etc/inetd.conf

TCP_WRAPPERS
Al utilizar TCP_WRAPPERS usted puede hacer a su servidor más seguro contra la intrusión exterior. La mejor política es negar todas las máquinas poniendo "ALL: ALL@ALL, PARANOID" en el archivo "/etc/host.deny" y luego explícitamente listar las máquinas de confianza que están permitidas en su máquina en el archivo "/etc/hosts.allow". TCP_WRAPPERS está controlado desde dos archivos y la búsqueda finaliza a la primera coincidencia.
/etc/hosts.allow
/etc/hosts.deny

Paso 1
Edite el archivo hosts.deny (vi /etc/hosts.deny) y agregue las líneas siguientes:
# Niega el acceso a todos.
ALL: ALL@ALL, PARANOID
Lo cual significa que todos los servicios, todos los lugares son bloqueados, a menos que ellos tengan permitido el acceso a través de las entradas en el archivo hosts.allow.

Paso 2
Edite el archivo hosts.allow (/etc/hosts.allow) y agregue por ejemplo, la siguiente línea:
ftp: 202.54.15.99 foo.com
Para su máquina cliente: 200.54.15.99 es la dirección IP y foo.com el nombre del sitio de uno de sus clientes que tienen permitido utilizar ftp.

Paso 3
El programa tcpdchk es el chequeador de configuraciones de tcpd wrapper. Examina su configuración tcp wrapper y reporta todos los problemas potenciales y reales que encuentra.

* Después de que su configuración está hecha, corra el programa tcpdchk.
[Root@kapil /]# tcpdchk

No permita que el archivo de asuntos del sistema sea mostrado
Usted no debería mostrar su archivo de asuntos del sistema cuando la gente ingresa en forma remota. Para hacer esto, usted puede
cambiar la opción de telnet en su archivo "/etc/inetd.conf".
Para hacer esto cambie la línea en "/etc/inetd.conf":

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
Para que luzca como:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
Agregando la bandera "-h" al final causará que el demonio no muestre ninguna información del sistema y sólo recibirá al usuario con "login:". Recomiendo utilizar sshd en lugar de eso.

Cambie el archivo "/etc/host.conf"
El archivo "/etc/host.conf" especifica de qué manera son resueltos los nombres.
Edite el archivo host.conf (vi /etc/host.conf) y agregue las siguientes líneas:
# Buscar nombres primero vía DNS luego retrocede hasta /etc/hosts.
order bind,hosts
# Tenemos máquinas con múltiples direcciones IP.
multi on
# Chequea IP spoofing (engaño).
nospoof on

La primera opción es para resolver el nombre de la máquina primero a través de DNS y luego el archivo hosts. La opción multi determina si una máquina en el archivo "/etc/hosts" puede tener direcciones IP múltiples (interfase múltiple de red).
La opción nospoof indica que cuide la permisión de engaño de direcciones IP en esta máquina.

Inmunizar el archivo "/etc/services"
Usted debe inmunizar el archivo "/etc/services" para prevenir borrados o agregados no autorizados de servicios.
* Para inmunizar el archivo "/etc/services", utilice el comando:
[root@kapil /]# chattr +i /etc/services

Prohíba el ingreso del root desde diferentes consolas
El archivo "/etc/securetty" le permite a usted especificar a cuales dispositivos TTY el usuario "root" puede acceder. Edite el archivo "/etc/securetty" para deshabilitar cualquier tty que usted no necesite comentándolas (# al comienzo de la línea).

Bloquear a cualquiera para que haga "su" y se convierta en root
El comando su (Usuario Substituto) le permite a usted convertirse en otro usuario existente en el sistema. Si usted no quiere que cualquiera haga "su" para convertirse en root o restringir el comando "su" para ciertos usuarios entonces agregue las dos líneas siguientes al comienzo del archivo de configuración de "su" en el directorio "/etc/pam-d".
Paso 1
Edite el archivo "su" (vi /etc/pam.d/su) y agregue las dos líneas siguientes al comienzo del archivo:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel

Lo cual significa que sólo los miembros del grupo "wheel" pueden hacer "su" para convertirse en root, además incluye el nombre de usuario para poder ingresar. Usted puede agregar los usuarios al grupo wheel para que sólo esos usuarios puedan hacer "su".

Shell
El intérprete de comandos bash guarda los últimos 500 comandos en el archivo "~/.bash_history" (donde "~/" es su directorio personal) para facilitarle a usted a repetir comandos largos. Cada usuario que tenga una cuenta en el sistema tendrá este archivo "Bash_history" en su directorio personal. El intérprete de comandos bash debería almacenar una menor cantidad de comandos y borrarlos cuando el usuario salga del sistema.
Paso 1
Las líneas HISTFILESIZE y HISTSIZE en el archivo "/etc/profile" determinan el tamaño de los viejos comandos que el archivo "Bash_logout" puede mantener para todos los usuarios en su sistema. Recomiendo sumamente configurar HISTFILESIZE y HISTSIZE dentro del archivo "/etc/profile" a un valor bajo como 30.
Edite el archivo profile (vi /etc/profile) y cambie las líneas a:
HISTFILESIZE=30
HISTSIZE=30
Lo cual significa que, el archivo "Bash_logout" dentro del directorio personal de cada usuario puede almacenar 30 viejos comandos y no más.
Paso 2
El administrador debería además agregar dentro del archivo "/etc/skel/Bash_logout" la línea "rm -f $HOME/Bash_history", para que cada vez que un usuario sale del sistema, su archivo "Bash_history" sea borrado.
Edite el archivo Bash_logout (vi /etc/skel/Bash_logout) y agregue la línea siguiente:
rm -f $HOME/Bash_history

Deshabilite el comando de apagado a través del teclado Control-Alt-Delete
Para hacer esto comente la línea (con un "#") listada más abajo en su archivo "/etc/inittab".
Para hacer esto, edite el archivo inittab (vi /etc/inittab) y cambie la línea:
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Para que diga:
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Ahora, para que el cambio tenga efecto escriba lo siguiente en el intérprete:
[root@kapil /]# /sbin/init q

Arreglar los permisos dentro del directorio "/etc/rc.d/init.d" para los archivos de guiones (scripts)
Arregle los permisos de los archivos de guiones que son responsables de iniciar y detener todos sus procesos normales que necesitan ser ejecutados al inicio del sistema. Para hacer esto:
[root@kapil/]# chmod -R 700 /etc/rc.d/init.d/*
Lo cual significa que sólo el usuario root tiene permisos de Lectura, Escritura y Ejecución para ejecutar los archivos de guiones dentro de este directorio.

Esconda la información de su sistema
Por defecto, cuando usted ingresa al sistema en una máquina Linux, le dice a usted el nombre de la distribución Linux, versión, versión del kernel, y el nombre del servidor. Esta es suficiente información para que un cracker obtenga información acerca de su servidor. Usted debería recibir a los usuarios con "Login:".
Paso 1
Para hacer esto, edite el archivo "/etc/rc.d/rc.local" y coloque un "#" al frente de las líneas siguientes como se muestra:

# This will overwrite /etc/issue at every boot. So, make any changes you
# want to make to /etc/issue here or you will lose them when you reboot.
#echo "" > /etc/issue
#echo "$R" >> /etc/issue
#echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue
#
#cp -f /etc/issue /etc/issue.net
#echo >> /etc/issue

Paso 2
Luego, quite los siguientes archivos: "issue.net" y "issue" dentro del directorio "/etc":
[root@kapil /]# rm -f /etc/issue
[root@kapil /]# rm -f /etc/issue.net

Deshabilite los programas SUID/SGID sin utilizar
Un usuario regular podrá ejecutar un programa como root si éste está establecido como SUID. Un administrador de sistemas debería minimizar el uso de estos programas SUID/SGID y deshabilitar los programas que no se necesitan.
Paso 1
* Para encontrar todos los archivos con el bit 's' de los programas que pertenecen al root, utilice el comando:
[root@kapil]# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls ­lg {} ;

* Para deshabilitar el bit suid en los programas seleccionados anteriormente, escriba el siguiente comando:
[root@kapil /]# chmod a-s [program]

Después de seguir las anteriores directivas de seguridad, un administrador de sistemas puede mantener un nivel básico de seguridad. Algunas de las tareas mencionadas anteriormente son un proceso continuo. El administrador del sistema continuamente tiene que seguir las directivas anteriores para mantener al sistema seguro.


Escrito por: Kapil Sharma
Correo electrónico: kapil@linux4biz.net
Website: http://www.linux4biz.net
Kapil Sharma es un consultor de seguridad en Linux e Internet. Él ha estado trabajando en varios sistemas Linux/Unix y seguridad en Internet por más de 2 años. Está manteniendo un sitio web http://www.linux4biz.net para suministrar soporte gratuito como así también comercial para soluciones web, Linux y Unix.





Copyright © 2000, Kapil Sharma
Publicado en la edición 58 de
La Gaceta de Linux,
Octubre del 2000

Traducción al Español por: Lucas Maximiliano Sola
el día 11 de Octubre 2000, para
La Gaceta de Linux

Fecha: 2003-06-16
(13650 Lecturas)



Copyright © 2003 por Espacio Linux


[ Volver Atrás ]
Content ©
 



Copyright | Términos de uso | Política de privacidad | Publicidad | Contáctanos | Blog