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
# 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
# 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
# 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