Inicio > Techs > Guía básica para asegurar un Debian Etch recién instalado

Guía básica para asegurar un Debian Etch recién instalado

domingo, 31 de agosto de 2008 Dejar un comentario Ir a comentarios

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 hostmaster@domain.com -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

Categories: Techs Tags: ,
  1. Sin comentarios aún.
  1. Sin trackbacks aún.