informatica:linux:iptables
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
informatica:linux:iptables [2012/05/10 17:16] – javi | informatica:linux:iptables [2012/10/17 07:16] – javi | ||
---|---|---|---|
Line 10: | Line 10: | ||
===== Escribir en log ===== | ===== Escribir en log ===== | ||
- | Vamos a anyadir una entrada en un archivo por cada regla que se aplique, típicamente para registrar cada vez que se bloquea un determinado acceso. | + | 2 objetivos: |
- | 1. Crear un archivo | + | -Anyadirle una etiqueta a cada tipo de mensaje en funcion de la cadena que coincide, al objeto de facilitar posteriormente el analisis de los logs |
+ | -Escribir (con rsyslog) en un log distinto a /var/log/messages | ||
- | sudo vim /var/log/ | + | 1. Ejemplo del script para crear reglas de iptables, lo grabamos como '/tmp/cortafuegos.sh': |
- | 2. Modificar el archivo de configuración del demonio de log (syslog o rsyslog): | + | < |
+ | #!/bin/bash | ||
- | sudo cp /etc/rsyslog.conf / | + | # Creamos variables |
+ | IPTABLES=/sbin/iptables | ||
- | Y anyadir la siguiente linea: | + | # Borrado de reglas de iptables |
+ | $IPTABLES -F INPUT | ||
+ | $IPTABLES -F OUTPUT | ||
+ | $IPTABLES -F FORWARD | ||
+ | $IPTABLES -t filter -F | ||
+ | $IPTABLES -t nat -F | ||
+ | $IPTABLES -t mangle -F | ||
- | ... | + | ########################## |
- | kern.warning / | + | |
- | 3. Reiniciar el servicio y asegurarnos que arranca correctamente: | + | LOG_PREFIX=" |
- | sudo /etc/init.d/rsyslog restart | + | # Si las reglas no funcionan escribo una linea |
- | | + | $IPTABLES -A FORWARD -j LOG --log-prefix " |
+ | $IPTABLES -A INPUT -j LOG --log-prefix " | ||
+ | $IPTABLES -t nat -A PREROUTING -j LOG --log-prefix " | ||
+ | $IPTABLES -t nat -A POSTROUTING -j LOG --log-prefix " | ||
+ | $IPTABLES -t nat -A OUTPUT -j LOG --log-prefix " | ||
+ | $IPTABLES -A OUTPUT -j LOG --log-prefix " | ||
+ | |||
+ | ########################## | ||
+ | |||
+ | # Cierro todo a cal y canto | ||
+ | $IPTABLES -P INPUT DROP | ||
+ | $IPTABLES -P FORWARD DROP | ||
+ | </code> | ||
+ | |||
+ | En este ejemplo el prefijo es " | ||
+ | |||
+ | 2. Damos permisos de ejecucion y lo ejecutamos: | ||
+ | |||
+ | chmod +x /tmp/ | ||
+ | | ||
- | 4. Crear un archivo | + | 3. Crear el siguiente |
- | sudo mkdir /etc/iptables | + | sudo mkdir -p /etc/rsyslog.conf/iptables.conf |
- | sudo vim /etc/iptables/ | + | |
Con el siguiente contenido: | Con el siguiente contenido: | ||
< | < | ||
- | *filter | + | :msg, contains, " |
- | -A INPUT -p tcp --dport 666 -m limit --limit 5/min -j LOG --log-prefix "iptables | + | & ~ |
- | COMMIT | + | |
</ | </ | ||
- | Creo que no hace falta ' | + | 4. Reiniciar el servicio y asegurarnos |
- | 5. Cargar las reglas: | + | sudo /etc/init.d/rsyslog restart |
- | + | ps ax | grep syslog | |
- | iptables-restore < /etc/iptables/iptables.test.rules | + | |
- | + | ||
- | 6. Probar: | + | |
- | En el servidor: | + | 5. Probamos a conectarnos al puerto TCP 666: |
- | | + | |
- | En el cliente: | + | 6. En otor terminal, en el mismo servidor: |
- | | + | |
- | Deberiamos ver la siguiente linea en el servidor (mapear puertos en el router...): | + | Y veremos algo asi: |
- | May 9 10:11:32 jj kernel: | + | Oct 17 09:15:13 kvm kernel: |
===== Ejemplo OpenVZ ===== | ===== Ejemplo OpenVZ ===== | ||
Line 162: | Line 184: | ||
#$IPTABLES -A INPUT -j LOG --log-prefix "INPUT " | #$IPTABLES -A INPUT -j LOG --log-prefix "INPUT " | ||
#$IPTABLES -A OUTPUT -j LOG --log-prefix " | #$IPTABLES -A OUTPUT -j LOG --log-prefix " | ||
+ | </ | ||
+ | |||
+ | ===== Mostrar numero de paquetes ===== | ||
+ | |||
+ | < | ||
+ | sudo iptables -L -n -v -x | ||
+ | |||
+ | Chain INPUT (policy ACCEPT 384086 packets, 61462048 bytes) | ||
+ | pkts bytes target | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) | ||
+ | pkts bytes target | ||
+ | 156432 229715525 ACCEPT | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Chain OUTPUT (policy ACCEPT 370021 packets, 87787030 bytes) | ||
+ | pkts bytes target | ||
</ | </ |
informatica/linux/iptables.txt · Last modified: 2015/04/13 20:19 by 127.0.0.1