Documentos de Académico
Documentos de Profesional
Documentos de Cultura
APLICACIN Y MANEJO DE
SISTEMAS OPERATIVOS
DEBER #1
IPTABLES
Integrante:
CASTRO LEN WILLIAM
Docente:
Ing. Parraga Valle Jos Eduardo
6to A
PERIODO MAYO - SEPTIEMBRE 2016
Contenido
1. IPTABLES.............................................................................................................. 3
1.1. INTRODUCCIN.............................................................................................. 3
1.2. REGLAS DE IPTABLES..................................................................................... 3
1.3. FUNCIONAMIENTO DE IPTABLES....................................................................4
1.4. EL COMANDO IPTABLES.................................................................................6
1.5. TRABAJANDO CON IPTABLES..........................................................................8
1.6. Un caso real: Una Home-LAN...........................................................................11
1.7. Anexo: Script de iptables para una Home-Lan.....................................................14
1.8. POLITICAS.................................................................................................... 23
Equipamiento lgico necesario...................................................................................23
Instalacin a travs de yum.................................................................................... 23
1.9. PROCEDIMIENTOS........................................................................................ 23
Reglas de destino.................................................................................................. 23
2. Polticas por defecto........................................................................................ 24
Limpieza de reglas especficas................................................................................24
2.1. Reglas especficas........................................Error! Marcador no definido.
Ejemplos de reglas................................................Error! Marcador no definido.
Eliminar reglas......................................................Error! Marcador no definido.
Mostrar la lista de cadenas y reglas.........................Error! Marcador no definido.
Iniciar, detener y reiniciar el servicio iptables..........Error! Marcador no definido.
Agregar el servicio iptables al arranque del sistema.. Error! Marcador no definido.
2.2. Bibliografa...................................................................................................... 25
1. IPTABLES
1.1. INTRODUCCIN
Las reglas se agrupan en cadenas, las cuales a su vez estn agrupadas en tablas. A
continuacin, se expone informacin ms detallada acerca de las mismas.
Cadenas
Una cadena es una lista ordenada de reglas. Cuando recogemos un paquete se
enva a una cadena y se compara, en orden, con cada una de las reglas de la
cadena. La regla define qu caractersticas debe tener el paquete para que la
regla se active, tales como tipo de protocolo, direccin IP origen/destino o
nmero de puerto. Tras la comparacin, la regla puede haber sido activada o
no. En caso de que no se haya activado la regla el proceso contina con la
siguiente regla. Si el paquete, por el contrario, coincide con la regla, las
especificaciones indicadas en la regla para tratar el paquete se siguen. Por lo
general, cualquier otro procesamiento de la cadena normalmente se aborta.
Tablas
En Iptables se definen tres tablas principales: Filter, Nat y Mangle.
Tabla Filter. Esta tabla es la encargada de filtrar los paquetes. Se comparan los
paquetes con las condiciones indicadas en las reglas y en funcin del resultado
se realiza una accin como aceptar el paquete o descartarlo. La tabla Filter est
compuesta por cadenas predefinidas:
Un paquete entra por una interfaz de red como puede ser una tarjeta de red o
mdem. El paquete se dirige al firewall. ste empieza a procesarlo. El paquete
atraviesa las tablas de Iptables con sus correspondientes cadenas. El paquete,
ir pasando secuencialmente por cada una de las reglas de la cadena hasta
coincidir con el patrn de alguna de ellas. Cuando esto ocurra, el paquete se
tratar segn indique la accin de la regla. Si tras recorrer toda la lista, el
paquete no coincide con ninguna de las reglas, se ejecutar la accin por
defecto asociada a esa cadena.
Campos UDP:
--sport: indica el puerto origen que debe contener el datagrama para que se
active la regla.
--dport: indica el puerto destino que debe contener el datagrama para que se
active la regla.
Campos ICMP:
--icmp-type: especifica el tipo de mensaje ICMP. Se puede especificar mediante
su nmero asociado o por los siguientes identificadores: echo- request, echo-
reply, source-quench, time-exceeded, destination- unreachable, network-
unreachable, host-unreachable, protocol- unreachable y port-unreachable.
Campos MAC:
--mac -source: especifica la direccin MAC. Este campo slo tiene sentido en la
cadena INPUT y FORWARD.
f: esta opcin se usa cuando se fracciona un datagrama porque supera el MTU
de la Red. Permite especificar acciones sobre el segundo y restantes fragmentos
del datagrama.
! : invierte el valor lgico de la condicin de la regla.
Existen ms posibilidades de filtrado, estn son las que ms hemos utilizado
durante el desarrollo del proyecto para la deteccin de comportamientos de la Red.
sudo iptables L n
Figura 6: Listar
reglas en Iptables
sudo iptables F
Mdulo String
El mdulo String busca en el contenido del paquete una determinada
cadena de caracteres. Existen dos parmetros --from y --to que se
utilizan para indicar el comienzo y el final donde se desea buscar los
datos. En caso de omitir dichos parmetro la bsqueda se realiza en el
paquete entero.
Mdulo Recent
EXT_IP="`ifconfig $EXT_IF | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"
#Servicio FTP
iptables -t filter
-A INPUT -p TCP -s 0/0 --dport 21 -j allowed
#Servicio SSH
iptables -t filter -A INPUT -p TCP -s 0/0 --dport 22 -j allowed
#Servicio HTTP
iptables -t filter -A INPUT -p TCP -s 0/0 --dport 80 -j allowed
#!/bin/bash
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
azul="${esc}[34m"
echo "${rojo}"
echo "---------------------------------------------"
echo "${azul}
echo "---------------------------------------------"
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
echo "${azul}"
echo -n " ---- Configurando Variables ---- "
IPPRIVADACLASE_B="172.16.0.0/12"
IPPRIVADACLASE_C="192.168.0.0/16"
CLASE_D_MULTICAST="224.0.0.0/4"
CLASE_E_RESERVADAS="240.0.0.0/5"
echo "${verde}"
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
echo "${azul}"
echo -n " ---- Cargando mdulos requeridos de NetFiler ----"
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_MASQUERADE
#/sbin/modprobe ipt_owner
#/sbin/modprobe ipt_REJECT
#/sbin/modprobe ip_conntrack_ftp
#/sbin/modprobe ip_conntrack_irc
echo "${verde}"
#echo "lsmod"
echo "Hecho!"
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
echo "{azul}
echo -n "---- Estableciendo parametros del Kernel en /proc/sys/net/ipv4 ----"
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > $f
done
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo "0" > $f
done
# Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo "0" > $f
done
# DESHABILITAMOS la posibilidad de enviar paquetes ICMP del tipo
# Redirect Acceptance.
for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo "0" > $f
done
for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo "0" > $f
done
echo "${verde}"
#---------------------------------------------------------------------------
echo "${azul}"
echo -n "... Inicializando NetFilter ... "
# Con las TODAS las cadenas vacas, dejamos slo las cadenas por defecto
$IPTABLES -t filter --delete-chain
echo "${verde}"
echo -n " [.] Tablas y cadenas vaciadas. Establecidas polticas por defecto"
echo "Hecho!"
#---------------------------------------------------------------------------
echo "${azul}"
echo -n ".... Comienza la insercin de reglas de cortafuefos .... "
$IPTABLES -N bad_tcp_packets
$IPTABLES -N bad_tcp_input_packets
NEW -j DROP
RELATED -j ACCEPT
-j ACCEPT
#Servicio FTP
#Servicio IDENTD
# Los paquetes que provienen de Internet deben ser alguno de los definidos
# Reglas especiales
RELATED -j ACCEPT
#reglas anteriores
#reglas anteriores
#reglas anteriores
echo "${verde}"
#---------------------------------------------------------------------------
# exterior
echo "${azul}"
echo -n ".... Configuracin de NAT .... "
echo "${verde}"
echo -n " [.] Poltica de enmascaramiento establecida"
echo "Hecho!"
1.8. POLITICAS
Establecer algunas polticas bsicas desde el comienzo puede servir como una
base para la construccin de reglas ms detalladas definidas por el
usuario. Iptables utiliza polticas (-P) para crear reglas por defecto. Los
administradores orientados a la seguridad usualmente eligen descartar todos
los paquetes como una poltica y solamente permiten paquetes especficos
basados en el caso. Las reglas siguientes bloquean todo los paquetes
entrantes y salientes en una puerta de enlace de red.
iptablesPINPUTDROP
iptablesPOUTPUTDROP
iptablesPFORWARDDROP
Despus de configurar las cadenas de polticas, puede crear las nuevas reglas
para su red y requerimientos de seguridad particulares. Las secciones
siguientes resaltan algunas reglas que puede implementar en el curso de la
construccin de su cortafuegos iptables.
Si utiliza CentOS 5 y 6, Red Hat Enterprise Linux 5 o 6, solo se necesita realizar lo siguiente
para instalar o actualizar el equipamiento lgico necesario:
1.9. PROCEDIMIENTOS.
Cadenas.
Las cadenas pueden ser para trfico entrante (INPUT), trfico saliente (OUTPUT) o trfico
reenviado (FORWARD).
Reglas de destino.
Las reglas de destino pueden ser aceptar conexiones (ACCEPT), descartar conexiones (DROP),
rechazar conexiones (REJECT), encaminamiento posterior (POSTROUTING), encaminamiento
previo (PREROUTING), SNAT, NAT, entre otras.
Establecen cual es la accin a tomar por defecto ante cualquier tipo de conexin. La opcin
-P cambia una poltica para una cadena. En el siguiente ejemplo se descartan (DROP) todas
las conexiones que ingresen (INPUT), todas las conexiones que se reenven (FORWARD) y
todas las conexiones que salgan (OUTPUT), es decir, se descarta todo el trfico que entre
desde una red pblica y el que trate de salir desde la red local.
A fin de poder crear nuevas reglas, se deben borrar las existentes, para el trfico entrante,
trfico reenviado y trfico saliente as como el NAT.
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F -t nat
2.1. Bibliografa
Publicaciones:
Firewalls Linux: gua avanzada. Robert L. Ziegler. Ed. Prentice-Hall, D.L.
2000.
Networking Linux. A practical Guide to TCP/IP. Pat Eyler. 2001 by New
Riders Publishing. Iptables tutorial. Completo tutorial de Oskar
Andreasson, que nos explica y complementa con ejemplos el howto y faq
del netfilter: http://people.unix-fu.org/andreasson/index.html
http://www.linuxguruz.org/iptables/.