Implementar un firewall de forma sencilla en tu Asterisk
Últimamente lo hago tanto, ya sabéis que los ataques a sistemas IP están a la orden del dÃa, de hecho hasta recibÃa ataques en un router con el 5060 y lo saturaban... , asà que aquà os pongo una forma fácil de implementar un firewall.
Partimos de la premisa que los accesos remotos, tienen ip fija o bien dominio dyndns.org y que trabajamos con una subred 192.168.1.x. También tengo como servicio de correo en la máquina gmail.
Tenemos los DNS de Google y Telefónica y usamos NTP hora.rediris.es para sincronizarnos la hora.
Primero haremos que el script se ejecute en nuestro arranque de la tarjeta de red, por lo que añadiremos en nuestro /etc/network/interfaces al final.
post-up /etc/network/if-up.d/iptables
Y editaremos /etc/network/if-up.d/iptables para que contenga lo siguiente:
#!/bin/sh
iptables-restore < /home/voipnovatos/firewall.conf
Daremos permiso de ejecución a ese archivo:
chmod a+x /etc/network/if-up.d/iptables
y ahora pasaremos a crear el archivo firewall.conf con las entradas en iptables que deseamos:
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# ip fijas administracion
-A INPUT -s 195.2.2.2 -j ACCEPT
# dns
-A INPUT -s 80.58.61.250 -j ACCEPT
-A INPUT -s 80.58.61.254 -j ACCEPT
-A INPUT -s 80.58.0.33 -j ACCEPT
-A INPUT -s 80.58.32.97 -j ACCEPT
-A INPUT -s 8.8.8.8 -j ACCEPT
-A INPUT -s 8.8.4.4 -j ACCEPT
# ips locales maquina
-A INPUT -s 127.0.0.1 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j ACCEPT
# ips dinamicas extensiones externas
-A INPUT -s mydyndns.dyndns.org -j ACCEPT
# ntp
-A INPUT -s hora.rediris.es -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp -m state -i eth0 --dport 995 --sport 1024:65535 --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp -i eth0 --dport 1024:65535 --sport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 587 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
Y salvaremos.
Ahora si reiniciamos la máquina o ejecutamos manualmente /etc/network/if-up.d/iptables nos recargará.
Pero que pasa si me cambia la ip de mi dyndns?
Tan sencillo como añadir al crontab
*/5 ***** /etc/network/if-up.d/iptables
Y esto nos refrescará la ip del dyndns en nuestro iptables.
Ahora a securizar vuestros sistemas de una forma sencilla
Partimos de la premisa que los accesos remotos, tienen ip fija o bien dominio dyndns.org y que trabajamos con una subred 192.168.1.x. También tengo como servicio de correo en la máquina gmail.
Tenemos los DNS de Google y Telefónica y usamos NTP hora.rediris.es para sincronizarnos la hora.
Primero haremos que el script se ejecute en nuestro arranque de la tarjeta de red, por lo que añadiremos en nuestro /etc/network/interfaces al final.
post-up /etc/network/if-up.d/iptables
Y editaremos /etc/network/if-up.d/iptables para que contenga lo siguiente:
#!/bin/sh
iptables-restore < /home/voipnovatos/firewall.conf
Daremos permiso de ejecución a ese archivo:
chmod a+x /etc/network/if-up.d/iptables
y ahora pasaremos a crear el archivo firewall.conf con las entradas en iptables que deseamos:
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# ip fijas administracion
-A INPUT -s 195.2.2.2 -j ACCEPT
# dns
-A INPUT -s 80.58.61.250 -j ACCEPT
-A INPUT -s 80.58.61.254 -j ACCEPT
-A INPUT -s 80.58.0.33 -j ACCEPT
-A INPUT -s 80.58.32.97 -j ACCEPT
-A INPUT -s 8.8.8.8 -j ACCEPT
-A INPUT -s 8.8.4.4 -j ACCEPT
# ips locales maquina
-A INPUT -s 127.0.0.1 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j ACCEPT
# ips dinamicas extensiones externas
-A INPUT -s mydyndns.dyndns.org -j ACCEPT
# ntp
-A INPUT -s hora.rediris.es -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp -m state -i eth0 --dport 995 --sport 1024:65535 --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp -i eth0 --dport 1024:65535 --sport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 587 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
Y salvaremos.
Ahora si reiniciamos la máquina o ejecutamos manualmente /etc/network/if-up.d/iptables nos recargará.
Pero que pasa si me cambia la ip de mi dyndns?
Tan sencillo como añadir al crontab
*/5 ***** /etc/network/if-up.d/iptables
Y esto nos refrescará la ip del dyndns en nuestro iptables.
Ahora a securizar vuestros sistemas de una forma sencilla
