Securizando el sistema – Parte III

Publicado: marzo 3, 2014 en Seguridad, System
Etiquetas:, , , ,

malware
En los artículos anteriores, vimos cómo detectar rootkits y la utilización de antivirus y antispam. En éste, vamos a ver unas herramientas para proteger nuestra red.

Lo primero que no debe faltar en nuestro equipo, es un cortafuegos. Disponemos de múltiples alternativas. Una bastante fácil de utilizar es UFW, que es un front-end de iptables. Es decir, utiliza iptables, pero la creación de reglas es mucho más sencilla.

sudo pacman -Syu ufw ufw-extras
sudo ufw enable
sudo systemctl enable ufw

Podemos, también, instalar alguna GUI para su administración:

  • Para GTK:
wget https://aur.archlinux.org/packages/gu/gufw/gufw.tar.gz
tar -xzf gufw.tar.gz
cd gufw
makepkg -si
cd ..
rm -r gufw*
  • Para KDE (módulo para systemsettings):
wget https://aur.archlinux.org/packages/kc/kcm-ufw/kcm-ufw.tar.gz
tar -xzf kcm-ufw.tar.gz
cd kcm-ufw
makepkg -si
cd ..
rm -r kcm-ufw*

Por defecto, permitirá todas las conexiones salientes, y bloqueará las entrantes.

Es muy interesante protegernos de ataques arp-spoofing. Para ello, podemos instalar arpon. En este artículo, de María José,  podéis ver cómo.

Además, para controlar los dispositivos que se conectan a nuestra red, podemos utilizar arpwath. Esta utilidad nos enviará un correo cada vez que un dispositivo nuevo se conecta a nuestra, o realice algún cambio en su configuración. Nos vendrá bien para controlar si tenemos intrusos, por ejemplo, en redes wifi.

Para mantenernos informados de lo que ha ocurrido en el sistema, podemos utilizar logwatch, que nos enviará un informe diario del contenido de los logs del sistema (intentos de conexión y login fallidos, utilización de sudo, etc.).

sudo pacman -Syu arpwatch logwatch

Para que funcionen las notificaciones, que serán correos, debemos poder enviarlos. Para configurar esto, aquí os explico cómo hacerlo con exim y, aquí, con herramientas smtp-forward. Además, deberá estar activado cron:

sudo systemctl enable cronie

Para la navegación, en el caso de Firefox, podemos utilizar las extensiones

  • firefox-extension-https-everywhere: Para activar por defecto la navegación por https. Está disponible en el AUR.
  • firefox-noscript: Para deshabilitar por defecto los scripts, permitiendo habilitarlos de manera selectiva. Disponible en el repositorio community.

Estos artículos están orientados, sobre todo, a equipos de escritorio. En el caso de servidores, habrá que utilizar más herramientas. Por ejemplo, si utilizáis ssh, ftp, etc. será interesante, como mínimo, tener instalado fail2ban o sysguard. Estas herramientas nos protegen de ataques de fuerza bruta. Recomiendo leer este artículo, para echar a andar fail2ban.

También es interesante utilizar, siempre que sea posible, alguna medida de protección adicional, como Port Knocking. Esta técnica consiste en realizar un “toque” a determinados puertos para abrir el puerto en cuestión. Estos puertos estarán cerrados, hasta que se produzcan estos “toques” y, automáticamente, se cerrarán tras un tiempo determinado de inactividad.

Tal como vemos en la wiki de Arch, podemos configurar esto de dos maneras, mediante un demonio, knockd, o, directamente, configurando el cortafuegos.

Si optamos por implementar el método de iptables, hay que tener en cuenta que estamos utilizando UFW. Básicamente, editamos el archivo /etc/ufw/before.rules, dejándolo de manera similar a:

...
...
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]
# End required lines

# port knocking
:TRAFFIC - [0:0]
:SSH-INPUT - [0:0]
:SSH-INPUTTWO - [0:0]
# fin port knocking
...
...
# TRAFFIC  Port Knocking. The correct port sequence in this example is  8881 -> 7777 -> 9991
-A INPUT -j TRAFFIC
-A TRAFFIC -p icmp --icmp-type any -j ACCEPT
-A TRAFFIC -m state --state ESTABLISHED,RELATED -j ACCEPT
-A TRAFFIC -m state --state NEW -m tcp -p tcp --dport 22 -m recent --rcheck --seconds 30 --name SSH2 -j ACCEPT
-A TRAFFIC -m state --state NEW -m tcp -p tcp -m recent --name SSH2 --remove -j DROP
-A TRAFFIC -m state --state NEW -m tcp -p tcp --dport 9991 -m recent --rcheck --name SSH1 -j SSH-INPUTTWO
-A TRAFFIC -m state --state NEW -m tcp -p tcp -m recent --name SSH1 --remove -j DROP
-A TRAFFIC -m state --state NEW -m tcp -p tcp --dport 7777 -m recent --rcheck --name SSH0 -j SSH-INPUT
-A TRAFFIC -m state --state NEW -m tcp -p tcp -m recent --name SSH0 --remove -j DROP
-A TRAFFIC -m state --state NEW -m tcp -p tcp --dport 8881 -m recent --name SSH0 --set -j DROP
-A SSH-INPUT -m recent --name SSH1 --set -j DROP
-A SSH-INPUTTWO -m recent --name SSH2 --set -j DROP
-A TRAFFIC -j DROP
#fin port knocking

# don't delete the 'COMMIT' line or these rules won't be processed

COMMIT

Debemos tener en cuenta que, los puertos utilizados, son a modo de ejemplo, así que, es conveniente cambiarlos por otros.

Esto es todo por hoy, ¡espero que os sea útil!

Anuncios
comentarios
  1. dmacias dice:

    Leyendo tranquilo y en cuanto tenga tiempo poniendo en marcha.
    Buen post como nos tienes acostumbrados.

    Un saludo

  2. xphnx dice:

    Yo en lugar de UFW utilizo un scritp con las reglas que quiero aplicar (algo como esto http://blog.desdelinux.net/iptables-para-novatos-curiosos-interesados-2da-parte/#comment-110443). Si ejecuto el scritp, me vale para esa sesion, al reiniciar vuelvo a la configuracion predeterminada anteriormente. Para ver reglas # iptables -nvL. Y si quiero que la nueva tabla sea la predeterminada # iptables-save > /etc/iptables/iptables.rules.
    Tengo que estudiar el tema de arpon, creia que con una tabla de ARP estatica podria ser suficiente.
    Gradisima serie de articulos¡¡

    • Archuser dice:

      La propuesta de UFW es porque es más fácil que incluir reglas a iptables directamente. Además, con las GUIS es muy sencillo de administrar. Ando mirando cómo va el nftables, tiene muy buena pinta 😉

      Para el tema de ARP, lo mejor es probar si es posible hacer algún ataque. En el link hay un ejemplo muy sencillo de aplicar, prueba si es posible, igual no necesitas añadir nada más.

      Muchas gracias!

  3. que buena serie de tutoriales sobre seguridad en nuestro sistemas, muchas gracias… poniendo en practica

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s