Hardening Debian Squeeze & Wheezy

Posted by Unknown | Posted on 15:15

Saludos a todos, tiempo sin escribir. Por aquí tengo una pequeña guía de ayuda para prevenir un poco la intrusión a nuestro servidor, un pequeño hardening para debian que sirve para squeeze y para wheezy. Agunas cosas las consegui en la web, con la ayuda de otros blog y algunas notas que tenia por alli. Claramente lo primero que debemos hacer es tener nuestro servidor montado e instalado.


Luego de una instalación por defecto verificamos que servicios tenemos escuchando:

# netstat -putan |grep LISTEN

Instalamos rcconf para bajar servicios que no utilizamos:

# aptitude install rcconf

# rcconf
Destildar todos los servicios que no vayamos a utilizar, como por ejemplo exim4, portmap, etc...



# reboot

Volvemos a verificar los servicios que escuchan luego de deshabilitar los que no son necesarios:

# netstat -putan|grep LISTEN

Todavia SSH nos queda escuchando en todas las ips y en ipv6, lo cambiamos:

# cp -pf /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

# vim /etc/ssh/sshd_config
Port 2222
ListenAddress 192.168.1.x (colocamos esta opción en caso de solo utilizar ipv4)
Protocol 2
PermitRootLogin no
PermitEmptyPasswords no

# /etc/init.d/ssh restart


Volvemos a verificar que ahora no esta escuchando SSH en ipv6, fue cambiado el puerto y además restringida a una determinada ip:

# netstat -putan |grep LISTEN

Ips desde donde permitimos acceso ssh:

# vim /etc/hosts.allow
sshd : 192.168.1.0/255.255.255.0 : allow

# vim /etc/hosts.deny
sshd : ALL : deny

Eliminamos paquetes innecesarios como exim4, dhcpclient:

# aptitude remove --purge exim4-config exim4-base dhcp-client isc-dhcp-client isc-dhcp-common eject setserial fdutils discover info nano telnet makedev perl gcc libdiscover lighttpd sendmail

Deshabilitar el reinicio con ctrl+alt+del:

Comentamos la linea en el inittab

# vim /etc/inittab
#ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

# telinit q

Eliminamos la linea de la disquetera del fstab:

# vim /etc/fstab
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Y si no usamos la lectora de cd:

/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Deshabilitamos las shells para los usuarios que no lo necesitan:

# vipw

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/false
bin:x:2:2:bin:/bin:/bin/false
sys:x:3:3:sys:/dev:/bin/false
games:x:5:60:games:/usr/games:/bin/false
man:x:6:12:man:/var/cache/man:/bin/false
lp:x:7:7:lp:/var/spool/lpd:/bin/false
mail:x:8:8:mail:/var/mail:/bin/false
news:x:9:9:news:/var/spool/news:/bin/false
uucp:x:10:10:uucp:/var/spool/uucp:/bin/false
proxy:x:13:13:proxy:/bin:/bin/false
www-data:x:33:33:www-data:/var/www:/bin/false
backup:x:34:34:backup:/var/backups:/bin/false
list:x:38:38:Mailing List Manager:/var/list:/bin/false
irc:x:39:39:ircd:/var/run/ircd:/bin/false
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/false
nobody:x:65534:65534:nobody:/nonexistent:/bin/false
libuuid:x:100:101::/var/lib/libuuid:/bin/false
sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin


Eliminar bits suid y guid:

# find / -path /proc -prune -o -type f -perm +6000 -ls
1646604 72 -rwsr-xr-x 1 root root 68316 Jan 25 16:19 /bin/mount
1646635 32 -rwsr-xr-x 1 root root 31360 Oct 14 2010 /bin/ping
1646602 48 -rwsr-xr-x 1 root root 47304 Jan 25 16:19 /bin/umount
1646686 32 -rwsr-xr-x 1 root root 29152 Feb 15 17:50 /bin/su
1646636 36 -rwsr-xr-x 1 root root 35252 Oct 14 2010 /bin/ping6
1741025 12 -rwxr-sr-x 1 root mail 10164 Feb 13 2010 /usr/bin/dotlockfile
1738793 36 -rwsr-xr-x 1 root root 34740 Feb 15 17:50 /usr/bin/passwd
1739777 32 -rwxr-sr-x 1 root crontab 30248 Dec 18 20:46 /usr/bin/crontab
1738792 56 -rwsr-xr-x 1 root root 50388 Feb 15 17:50 /usr/bin/gpasswd
1737577 28 -rwsr-xr-x 1 root root 25184 Feb 15 17:50 /usr/bin/newgrp
1739927 40 -rwsr-sr-x 1 daemon daemon 40704 Nov 30 2009 /usr/bin/at
1738796 36 -rwsr-xr-x 1 root root 36372 Feb 15 17:50 /usr/bin/chfn
1741800 80 -rwsr-sr-x 1 root mail 75896 Apr 26 2010 /usr/bin/procmail
1738797 28 -rwsr-xr-x 1 root root 27956 Feb 15 17:50 /usr/bin/chsh
1739731 8 -rwxr-sr-x 1 root tty 7784 Jun 17 2010 /usr/bin/bsd-write
1741801 16 -rwxr-sr-x 1 root mail 13172 Apr 26 2010 /usr/bin/lockfile
1741277 32 -rwxr-sr-x 1 root mlocate 30492 Nov 4 2009 /usr/bin/mlocate
1737470 12 -rwxr-sr-x 1 root tty 9944 Jan 25 16:19 /usr/bin/wall
1741309 8 -rwxr-sr-x 1 root mail 7768 Jan 14 12:08 /usr/bin/mutt_dotlock
1738795 56 -rwxr-sr-x 1 root shadow 49556 Feb 15 17:50 /usr/bin/chage
1738794 16 -rwxr-sr-x 1 root shadow 14840 Feb 15 17:50 /usr/bin/expiry
1741396 100 -rwxr-sr-x 1 root ssh 95564 Dec 26 15:12 /usr/bin/ssh-agent
1777703 196 -rwsr-xr-x 1 root root 194680 Dec 26 15:12 /usr/lib/openssh/ssh-keysign
1737861 12 -rwsr-xr-x 1 root root 9676 Jan 23 21:10 /usr/lib/pt_chown
1433660 28 -rwxr-sr-x 1 root shadow 27900 Oct 19 2010 /sbin/unix_chkpwd
1433707 84 -rwsr-xr-x 1 root root 80600 Aug 26 2010 /sbin/mount.nfs


# chmod ug-s /usr/bin/wall /usr/bin/newgrp /usr/bin/chsh............


Permitir su - solo a los usuarios que pertenezcan al grupo wheel:

# addgroup --system wheel

# usermod -G wheel usuario_para_elevar_a_root

# vim /etc/pam.d/su
Descomentar:
auth required pam_wheel.so

Configurar maximo retries, tiempo máximo de login y Habilitar opción para registrar logins fallidos

Comandos:
# vim /etc/login.defs
##En el archivo login.defs se cambian los tiempos de las siguientes lineas:
LOGIN_RETRIES 3
LOGIN_TIMEOUT 30
LOG_UNKFAIL_ENAB yes

Bloquear las TTY para no acceder directamente como root

#vim /etc/securetty
ejecutar lo siguiente para comentar las tty
:1,$s/tty/#tty

Proteger los scripts de inicio.

#chmod -R 700 /etc/init.d/*

Chequeo de seguridad:

# aptitude install tiger

Editar el archivo de configuración /etc/tiger/tigerrc para activar y desactivar las opciones que se requieren revisar.

Automáticamente la aplicación instala el paquete tripwire, que se utiliza para realizar la verificación de los archivos y directorios de nuestro sistema, en caso de que se realice una modificación el lo informara.
Dentro de la ruta de configuración del tiger, existe un archivo llamado cronrc, que es utilizado para realizar la revisión del sistema en ciertos horarios, esto se puede utilizar para obtener información en caso de una intrusión a nuestro sistema.

# tiger

Instalar postfix
#aptitude install postfix
Colocar el email hacia donde se enviaran las alertas
# vim /etc/aliases
root: usuario@tudominio.com
# postalias /etc/aliases

Habilitar sudo, y configurar los logs de sudo
visudo
en la seccion de Defaults poner
Defaults loglinelen=0 # disable line wrapping in log.
Defaults logfile=/var/log/sudo.log # or some other filename.

Instalar el paquete "acct" para llevar mas auditoría sobre las
cuentas de usuario
#aptitude install acct

Auditar por medio del historial
Editar /etc/profile y colocar

#vim /etc/profile

HISTFILE=~/.bash_history
HISTSIZE=10000
HISTFILESIZE=999999
# Don't let the users enter commands that are ignored
# in the history file
HISTIGNORE=""
HISTCONTROL=""
readonly HISTFILE
readonly HISTSIZE
readonly HISTFILESIZE
readonly HISTIGNORE
export HISTFILE HISTSIZE HISTFILESIZE HISTIGNORE HISTCONTROL

Comentar los repositorios de debian y solo dejar el de seguridad.

#deb http://ftp.us.debian.org/debian/ squeeze main

deb http://security.debian.org/ wheezy/updates main



Comments (0)

Publicar un comentario