Guía básica para asegurar un Debian Etch recién instalado
Bueno, esto intenta ser una mini-guia / rejunte de cosas a hacer, para asegurar un poco tu Debian recien instalado.
Configuramos apt para usar unos sources bonitos…
cd /etc/apt/ mv sources.list sources.list.old wget storm.malditainternet.com/files/debian/sources.list.deb40 mv sources.list.deb40 sources.list
Upgradear la distribución e instalar los paquetes básicos para poder compilar cosas…
apt-get clean # limpiar cache de packages locales apt-get update # upgradear listado de apt apt-get dist-upgrade
Instalar aplicaciones/herramientas varias..
apt-get install build-essential ntpdate mc nmap screen rsync cvs subversion
Agregamos un cron, para que cada tanto se sincronize la hora del servidor…
ejecutamos ‘crontab -e’, y agregar algo como:
55 * * * * /usr/sbin/ntpdate pool.ntp.org 1>/dev/null 2>/dev/null
(verificar que el timezone del server este bien con tzconfig)
Le cambiamos para usar los DNS servers de OpenDNS:
vim /etc/resolv.conf
Poner:
nameserver 208.67.222.222
nameserver 208.67.220.220
Instalar anti-root-kits:
apt-get install chkrootkit rkhunter
Cambiar algunas opciones del sysctl…
Editar /etc/sysctl.conf y agregar:
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.tcp_fin_timeout = 25
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_reordering = 5
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_max_syn_backlog = 2048
net.core.netdev_max_backlog = 1024
# net.core.hot_list_length = 256
net.ipv4.tcp_max_tw_buckets = 360000
net.core.rmem_default = 65535
net.core.rmem_max = 8388608
net.ipv4.tcp_rmem = 4096 87380 8388608
net.core.wmem_default = 65535
net.core.wmem_max = 8388608
net.ipv4.tcp_wmem = 4096 65535 8388608
net.ipv4.tcp_mem = 8388608 8388608 8388608
net.core.optmem_max = 40960
Luego ejecutar: sysctl -p
Eliminamos usuarios no usados…
userdel adm >/dev/null 2>&1 userdel lp >/dev/null 2>&1 userdel shutdown >/dev/null 2>&1 userdel halt >/dev/null 2>&1 userdel news >/dev/null 2>&1 userdel uucp >/dev/null 2>&1 userdel operator >/dev/null 2>&1 userdel games >/dev/null 2>&1 userdel gopher >/dev/null 2>&1 groupdel lp >/dev/null 2>&1 groupdel news >/dev/null 2>&1 groupdel uucp >/dev/null 2>&1 groupdel games >/dev/null 2>&1 groupdel dip >/dev/null 2>&1
Editar /etc/hosts.conf y agregar al final:
nospoof on
spoofalert on
Si tenemos el /tmp en una particion aparte, podemos poner en el fstab algo como:
/dev/hda4 /tmp ext3 rw,nosuid,nodev,noexec 0 2
y luego ejecutar: mount -o remount /tmp
Con esto, no se pueden crear archivos setuid o ejecutables dentro de /tmp
(se puede, pero al ejecutarlos, da error de permisos)
Reinstalamos el SSH y lo cambiamos de puerto:
apt-get remove openssh-client apt-get install openssh-client apt-get install openssh-server
Editar /etc/ssh/sshd_config y cambiar la linea que dice:
Port 22
por otro puerto, como ser: Port 65000
(asi el ssh atenderá en el puerto 65000, en vez del 22 por default).
Tambien, bloqueamos el acceso del usuario ‘root’ por ssh, cambiando la opción:
PermitRootLogin No
Instalar integrit:
Con esta herramienta vamos a poder controlar todos los cambios que sufren los binarios / archivos importantes de nuestro sistema. Para mas información podes leer: http://www.malditainternet.com/integrit.
Lo primero que debemos hacer, es instalarlo:
apt-get install integrit vim /etc/integrit/integrit.conf integrit -C /etc/integrit/integrit.conf -u mv /var/lib/integrit/current.cdb /var/lib/integrit/known.cdb
Editar un nuevo script para upgradear los cambios del integrit, cada vez que modificamos algo:
vim /usr/local/sbin/upgrade_integrit.sh
Pegamos adentro:
#!/bin/bash integrit -C /etc/integrit/integrit.conf -u mv /var/lib/integrit/known.cdb /var/lib/integrit/known.cdb_`date +%Y%m%d%H%M` mv /var/lib/integrit/current.cdb /var/lib/integrit/known.cdb mail [email protected] -s 'Integrit Database Updated in SERVERNAME' < /dev/null
Y le damos permiso de ejecucion al script creado: chmod 700 /usr/local/sbin/upgrade_integrit.sh
Editamos la configuración de debian para Integrit, para poner nuestro mail, etc:
vim /etc/integrit/integrit.debian.conf
Debian automaticamente agrega un cron, por lo tanto ya se ejecutará solo todas las noches.
Cuando aparece algun cambio, luego de chequearlo y asegurarnos que esta todo OK, debemos ejecutar /usr/local/sbin/upgrade_integrit.sh
Instalar cron-apt:
apt-get install cron-apt
Luego, editamos la configuración: vim /etc/cron-apt/config
y cambiamos como minimo, estas 2 lineas:
MAILTO=»tu_direccion_de_correo»
MAILON=»upgrade»
Con eso, el cron-apt cada vez que encuentre un upgrade disponible en los repositorios de Debian, nos mandará un mail avisando a la casilla especificada.
…
Luego lo actualizaré un poco