Un artículo para tener en cuenta algunas de las acciones que podemos llevar a cabo para securizar Ubuntu Maverick Meerkat. Algunos programas para facilitar la tarea de controlar los intentos de acceso al sistema:

ufw

ufw es una forma sencilla de manejar un cortafuegos. Nada más instalarlo, lo habilitamos:

$ sudo ufw enable

Damos de alta los servicios^1^ que queremos que estén disponibles:

$ sudo ufw allow http
$ sudo ufw allow https
$ sudo ufw allow 1234

Si queremos deshacer alguna de estas acciones, por ejemplo, eliminar la regla para el puerto 1234:

$ sudo ufw delete 1234

Comprobamos el estado:

$ sudo ufw status
Estado: activo
Hasta                      AcciónDesde
-----                      ------------------------
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
1234                       ALLOW       Anywhere`

fail2ban

fail2ban busca intentos de acceso por SSH fallidos en /var/log/auth.log y bloquea las IPs de forma temporal. Podemos poner que se permitan hasta 3 intentos y si se falla se banea la IP durante, por ejemplo, 10 minutos. En el archivo /etc/fail2ban/jail.conf, además de poder poner un correo electrónico al cual nos lleguen los avisos, está la configuración para cada servicio que queramos controlar. Por ejemplo:

[ssh]
enabled = true
port    = 1234
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 3

[apache]
enabled = true
port    = http,https
filter  = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 3

En el fichero también vienen configuración para Apache, varios servidores de FTP, de correo y DNS.

Para controlar el estado ejecutamos el cliente, por ejemplo:

$ sudo fail2ban-client status
Status
|- Number of jail:      2
`- Jail list:           apache, ssh

$ sudo fail2ban-client status ssh
    Status for the jail: ssh
    |- filter
    |  |- File list:        /var/log/auth.log
    |  |- Currently failed: 0
    |  `- Total failed:     3
    `- action
       |- Currently banned: 0
       |  `- IP list:
       `- Total banned:     0

denyhosts

denyhosts es parecido a fail2ban. Comprueba los intentos de acceso por SSH fallidos en /var/log/auth.log y añade las IPs al fichero /etc/hosts.deny.

You are being monitored

psad

psad monitoriza los logs del iptables para detectar intentos de intrusión y tráfico sospechos. Se pueden configurar incontables parámetros en /etc/psad/psad.conf. Para comprobar el estado ejecutamos:

$ sudo psad -S
    [+] psadwatchd (pid: 18853)  %CPU: 0.0  %MEM: 0.0
        Running since: Mon Mar  7 19:34:09 2011

    [+] psad (pid: 18851)  %CPU: 0.0  %MEM: 0.4
        Running since: Mon Mar  7 19:34:09 2011
        Command line arguments: [none specified]
        Alert email address(es): karpoke@localhost

    [+] Version: psad v2.1.5

    [+] Top 50 signature matches:
            [NONE]

    [+] Top 25 attackers:
            [NONE]

    [+] Top 20 scanned ports:
            [NONE]

    [+] iptables log prefix counters:
            [NONE]

        Total packet counters: tcp: 0, udp: 0, icmp: 0

    [+] IP Status Detail:
            [NONE]

        Total scan sources: 0
        Total scan destinations: 0

    [+] These results are available in: /var/log/psad/status.out

Tiger

Tiger es una herramienta de detección de intrusiones. Para ejecutarlo (Ojo! el análisis es bastante intenso en términos de CPU):

$ sudo tiger
    Configuring...

    Will try to check using config for 'i686' running Linux 2.6.32-28-generic...
    --CONFIG-- [con005c] Using configuration files for Linux 2.6.32-28-generic. Using
               configuration files for generic Linux 2.
    Tiger security scripts *** 3.2.2, 2007.08.28.00.00 *__
    20:38> Beginning security report for terminus.
    20:38> Starting file systems scans in background...
    20:38> Checking password files...
    20:38> Checking group files...
    20:38> Checking user accounts...
    20:40> Checking .rhosts files...
    20:40> Checking .netrc files...
    20:40> Checking ttytab, securetty, and login configuration files...
    20:40> Checking PATH settings...
    20:40> Checking anonymous ftp setup...
    20:40> Checking mail aliases...
    20:40> Checking cron entries...
    20:40> Checking 'inetd' configuration...
    20:40> Checking 'tcpd' configuration...
    20:40> Checking 'services' configuration...
    20:40> Checking NFS export entries...
    20:40> Checking permissions and ownership of system files...
    --CONFIG-- [con010c] Filesystem 'devtmpfs' used by 'none' is not recognised as a valid filesystem
    20:40> Checking for indications of break-in...
    --CONFIG-- [con010c] Filesystem 'devtmpfs' used by 'none' is not recognised as a valid filesystem
    20:40> Performing rootkit checks...
    20:41> Performing system specific checks...
    20:44> Performing root directory checks...
    20:44> Checking for secure backup devices...
    20:44> Checking for the presence of log files...
    20:44> Checking for the setting of user's umask...
    20:44> Checking for listening processes...
    20:44> Checking SSHD's configuration...
    20:44> Checking the printers control file...
    20:44> Checking ftpusers configuration...
    20:44> Checking NTP configuration...
    20:44> Waiting for filesystems scans to complete...
    20:44> Filesystems scans completed...
    20:44> Performing check of embedded pathnames...
    20:45> Security report completed for terminus.
    Security report is in `/var/log/tiger/security.report.terminus.110307-20:38'.

Para evitar el aviso:

–CONFIG– [con010c] Filesystem 'devtmpfs' used by 'none' is not recognised as a valid filesystem

editamos el fichero de configuración, /etc/tiger/tigerrc, y añadimos el sitema de ficheros devtmpfs como válido. Para esto buscamos la clave Tiger_FSScan_Local y la modificamos:

Tiger_FSScan_Local='devtmpfs'

logwatch

logwatch analiza los logs del sistema y nos envía un repote de las áreas a analizar que le especifiquemos. Se ejecuta diariamente. Podemos configurar el correo al que envía los reportes dándole un valor a la variable de entorno MAILTO. Añadimos la siguiente línea al fichero /etc/bash.bashrc:

MAILTO=user@localhost

Para probar el funcionamiento ejecutamos:

$ /usr/sbin/logwatch --debug 10

logcheck

logcheck, otro analizador de logs. Es posible que empecemos a recibir demasiados mensajes debido a la sincronización de ntp, pero podemos configurarlo para que los ignore. El fichero de configuración está en /etc/logcheck/logcheck.conf.

1 Podemos encontrar una lista de los servicios más comunes en el fichero /etc/services.


Entradas relacionadas


Published

Category

admin

Tags

Contacto