- Esta guía explica los mecanismos de seguridad utilizados en los servidores de la SIUA
- Dependencias:
apt-get install make build-essential net-tools -y
- Es necesario que el servidor pueda enviar correos para esto, seguir la guía
RKhunter
- Descarga de programa: rkhunter-1.4.6.tar.gz
- Instalamos rkhunter que es un escáner que analiza y busca en nuestro ordenador, backdoors, exploits, sniffers y por supuesto rootkits, realizando diferentes pruebas a nuestro sistema
- Ingresamos a tmp para que después del siguiente reinicio se eliminen los archivos:
cd /tmp
wget https://ugit.blog.siua.ac.cr/Archivos/rkhunter/rkhunter-1.4.6.tar.gz
tar -zxf rkhunter-1.4.6.tar.gz
cd rkhunter-1.4.6
./installer.sh --install
- Podemos verificar la versión:
rkhunter --versioncheck
[ Rootkit Hunter version 1.4.6 ]
Checking rkhunter version...
This version : 1.4.6
Latest version: 1.4.6
- Actualizamos la base de datos
rkhunter --update
[ Rootkit Hunter version 1.4.6 ]
Checking rkhunter data files...
Checking file mirrors.dat [ No update ]
Checking file programs_bad.dat [ No update ]
Checking file backdoorports.dat [ No update ]
Checking file suspscan.dat [ No update ]
Checking file i18n/cn [ No update ]
Checking file i18n/de [ No update ]
Checking file i18n/en [ No update ]
Checking file i18n/tr [ No update ]
Checking file i18n/tr.utf8 [ No update ]
Checking file i18n/zh [ No update ]
Checking file i18n/zh.utf8 [ No update ]
Checking file i18n/ja [ No update ]
- Crea el archivo rkhunter.dat
rkhunter --propupd
- Ahora verificamos el sistema
rkhunter -c
- Ahora creamos un crob mensual para que verifique nuestro sistema
- Creamos una archivo en:
nano /etc/cron.monthly/rkhunter.sh
#!/bin/bash
(
rkhunter --versioncheck
rkhunter --update
rkhunter -c --cronjob --report-warnings-only
)| mail -a "From: interuniversitariadealajuela@gmail.com" -s "rkhunter: $(hostname -s)" interuniversitariadealajuela@gmail.com
chmod +x /etc/cron.monthly/rkhunter.sh
- Si deseamos consultar el log file
nano /var/log/rkhunter.log
chkrootkit
- Programa que permite buscar rootkits
- Ingresamos a /tmp para que los archivos sean eliminados después de reiniciar
cd /tmp
wget https://ugit.blog.siua.ac.cr/Archivos/chkrootkit/5.02/chkrootkit.tar.gz
tar xvfz chkrootkit.tar.gz
cd chkrootkit-0.52/
make sense
- Regresamos un nivel en la capeta
cd ..
- Movemos el contenido a /usr/local/chkrootkit
mv chkrootkit-0.52/ /usr/local/chkrootkit
- ingresamos a la carpeta para verificar que existenlos archivos
cd /usr/local/chkrootkit/
- Creamos una enlace simbolico
ln -s /usr/local/chkrootkit/chkrootkit /usr/local/bin/chkrootkit
#Muestra todo la salida
chkrootkit
#Muestra solo las detecciones
chkrootkit -q
- Creamos un crobjob que se ejecute todos los meses
- Ejecutamos:
crontab -e
@monthly /usr/local/chkrootkit/chkrootkit -q | mail -s "chkrootkit: $(hostname -s)" interuniversitariadealajuela@gmail.com
Logwatch
- Logwatch
es un sistema de monitoreo de logs personalizable. Su función es
revisar los logs del sistema en un período de tiempo determinado y
elaborar un resumen con el nivel de detalle que se desee. Luego es capaz
de enviar el resumen por mail en forma de reporte. Es muy útil para
monitorear la actividad de los servidores y detectar posibles abusos,
intentos de intrusión, consumo de recursos, etc.
- Es importante
saber que logwatch se instala en «/usr/share/logwatch» pero crea una
estructura de archivos en /etc/logwatch, la idea es que toda
configuración «adicional» la hagamos aquí y esta sobreescriba a la de
/usr/share/logwatch
- Los instalamos
apt-get install logwatch -y
- Copiamos el archivos de configuración de «fábrica»
cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
- Creamos una carpeta requerida
mkdir /var/cache/logwatch
nano /etc/logwatch/conf/logwatch.conf
--------------------------------------------------------------
Output = stdout
X
Output = mail
--------------------------------------------------------------
Format = text
X
Format = html
--------------------------------------------------------------
MailTo = root
X
MailTo = interuniversitariadealajuela@gmail.com
--------------------------------------------------------------
MailFrom = Logwatch
X
MailFrom = Logwatch_POSEIDON
--------------------------------------------------------------
Range = yesterday
X
Range = yesterday
--------------------------------------------------------------
Detail = Low
X
Detail = 8
--------------------------------------------------------------
- Si fuera necesario modificar el archivo:
nano /etc/cron.daily/00logwatch
OpenSSH
Autenticación por llave
- Si deseamos permitir el acceso por llaves: aquí
Fail2ban
- Para instalar y configurar fail2ban seguimos las siguientes guías:
- Instalación: aquí
- Para añadir el servidor a la base centralizada: aquí
Configurar el módulo recent para mitigar ataques de fuerza bruta en el servicio SSH
- El
módulo recent sirve para limitar el número de conexiones por segundo a
nivel de IP, esto es ideal para protegernos de ataques al puerto SSH
porque un atacante probará múltiples contraseñas. En el siguiente
ejemplo, daremos de alta en una base de datos todas las conexiones al
puerto TCP 22445 de destino, y daremos de alta el origen de esas
conexiones (la IP pública de un posible atacante).
- Posteriormente,
chequeamos que en la tabla no haya más de 4 coincidencias en los
últimos 60 segundos. Si hay más de 4 coincidencias, procedemos a
bloquear todas las conexiones a partir de ahí.
- El parámetro -i indica la interfaz de red a la que le queremos aplicar la regla
- Sobre puerto 22
iptables -A INPUT -p tcp --dport 22 -i vmbr5 -m conntrack --ctstate NEW -m recent --set --name ssh --rsource
iptables -A INPUT -p tcp --dport 22 -i vmbr5 -m state --state NEW -m recent --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j DROP
iptables -A INPUT -p tcp --dport 44 -i vmbr5 -m conntrack --ctstate NEW -m recent --set --name ssh --rsource
iptables -A INPUT -p tcp --dport 44 -i vmbr5 -m state --state NEW -m recent --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j DROP
Port-Knocking para “esconder” el servicio SSH
https://www.redeszone.net/seguridad-informatica/servidor-ssh-en-linux-manual-de-configuracion-para-maxima-seguridad/