User Tools

Site Tools


informatica:linux:iptables

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatica:linux:iptables [2012/05/16 14:37] javiinformatica:linux:iptables [2015/04/13 20:19] (current) – external edit 127.0.0.1
Line 6: Line 6:
  
 http://wiki.legido.com/doku.php?id=informatica:linux:red:mapear_trafico_entre_interfaces http://wiki.legido.com/doku.php?id=informatica:linux:red:mapear_trafico_entre_interfaces
 +
 +
  
 ===== 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 de log dedicado:+-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/iptables.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):+<code> 
 +#!/bin/bash
  
-  sudo cp /etc/rsyslog.conf /etc/rsyslog.conf.bak+# 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
  
-  ... +########################## LOG ###############################
-  kern.warning /var/log/iptables.log+
  
-3. Reiniciar el servicio y asegurarnos que arranca correctamente:+LOG_PREFIX="IPTABLES -"
  
-  sudo /etc/init.d/rsyslog restart +# Si las reglas no funcionan escribo una linea 
-  ps ax | grep syslog+$IPTABLES -A FORWARD -j LOG --log-prefix "$LOG_PREFIX FILTER_FORWARD " --log-tcp-options --log-ip-options 
 +$IPTABLES -A INPUT -j LOG --log-prefix "$LOG_PREFIX INPUT " --log-tcp-options --log-ip-options 
 +$IPTABLES -t nat -A PREROUTING -j LOG --log-prefix "$LOG_PREFIX NAT_PREROUTING " --log-tcp-options --log-ip-options 
 +$IPTABLES -t nat -A POSTROUTING -j LOG --log-prefix "$LOG_PREFIX NAT_POSTROUTING " --log-tcp-options --log-ip-options 
 +$IPTABLES -t nat -A OUTPUT -j LOG --log-prefix "$LOG_PREFIX NAT_OUTPUT " --log-tcp-options --log-ip-options 
 +$IPTABLES -A OUTPUT -j LOG --log-prefix "$LOG_PREFIX OUTPUT " --log-tcp-options --log-ip-options
  
-4. Crear un archivo que contenga las reglas del cortafuegos (iptables):+########################## DROP ###############################
  
-  sudo mkdir /etc/iptables +# Cierro todo a cal y canto 
-  sudo vim /etc/iptables/iptables.test.rules+$IPTABLES -P INPUT DROP 
 +$IPTABLES -P FORWARD DROP 
 +</code> 
 + 
 +En este ejemplo el prefijo es "IPTABLES -". 
 + 
 +2. Damos permisos de ejecucion y lo ejecutamos: 
 + 
 +  chmod +x /tmp/cortafuegos.sh 
 +  sudo /tmp/cortafuegos.sh 
 + 
 +3. Crear el siguiente archivo: 
 + 
 +  sudo mkdir -p /etc/rsyslog.conf/iptables.conf
  
 Con el siguiente contenido: Con el siguiente contenido:
  
 <code> <code>
-*filter +:msg, contains, "IPTABLES --/var/log/iptables.log 
--A INPUT -p tcp --dport 666 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 4 +& ~
-COMMIT+
 </code> </code>
  
-Creo que no hace falta '--log-level 4', se tiene que probar+4. Reiniciar el servicio y asegurarnos que arranca correctamente:
  
-5Cargar las reglas:+  sudo /etc/init.d/rsyslog restart 
 +  ps ax | grep syslog
  
-  iptables-restore < /etc/iptables/iptables.test.rules+5Probamos a conectarnos al puerto TCP 666:
  
-6. Probar:+  telnet localhost 666
  
-En el servidor:+6. En otor terminal, en el mismo servidor:
  
-  sudo tail -F /var/log/iptables.log+  sudo tail -F /var/log/iptables.log 
  
-En el cliente:+Y veremos algo asi:
  
-  telnet nombre.publico.servidor 666+  Oct 17 09:15:13 kvm kernel: [746890.975199] IPTABLES - OUTPUT IN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=40 TOS=0x10 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=666 DPT=55703 WINDOW=0 RES=0x00 ACK RST URGP=0 
  
-Deberiamos ver la siguiente linea en el servidor (mapear puertos en el router...):+7. (OPCIONALRotamos logs:
  
-  May  9 10:11:32 jj kernel: iptables denied: IN=vmbr0 OUT= MAC=00:22:64:b1:c5:0a:64:68:0c:7e:f9:0d:08:00 SRC=IP_PUBLICA_CLIENTE DST=192.168.1.200 LEN=60 TOS=0x00 PREC=0x00 TTL=53 ID=31566 DF PROTO=TCP SPT=35538 DPT=666 WINDOW=14600 RES=0x00 SYN URGP=0 +<code> 
 +/etc/logrotate.d/iptables 
 + 
 +/var/log/iptables.log 
 +
 + rotate 7 
 + daily 
 + missingok 
 + notifempty 
 + delaycompress 
 + compress 
 + postrotate 
 + invoke-rc.d rsyslog reload > /dev/null 
 + endscript 
 +
 +</code>
  
 ===== Ejemplo OpenVZ ===== ===== Ejemplo OpenVZ =====
informatica/linux/iptables.txt · Last modified: 2015/04/13 20:19 by 127.0.0.1