IP TABLES ASTERISK
Enviado por Hernandolopez • 16 de Enero de 2014 • 2.242 Palabras (9 Páginas) • 393 Visitas
Bloquear/Desbloquear IP en ubuntu con iptables
La utilidad iptables se puede usar como un firewall para monitorear conexiones en el equipo y tomar medidas de acuerdo a reglas que son definidas por el sistema y otras que pueden ser definidas por el usuario.
Entonces si lo que se desea es bloquear conexiones desde determinada ip, lo que se debe hacer es agregar dicha expresion como regla. Textualmente seria como decirle:
Cuando la ip x.x.x.x haga una conexion debes ignorarla
Entonces la traduccion
sudo iptables -A INPUT -s x.x.x.x -j DROP
-A indica que se va a agregar una regla, lo que continue a esto sera la definicion de la regla.
INPUT indica que la regla se aplica a conexiones entrantes, es decir, conexiones que hacen otros equipos hacia el nuestro.
-s Permite especificar a continuacion la fuente de la conexion, puede ser la IP, el nombre del host, el nombre de la red. Pero especificar el nombre implica que se use el servicio de DNS para resolver la IP asi que no es recomendable.
x.x.x.x Es la ip que se desea bloquear.
-j Indica que hacer cuando se detecte la fuente de la conexion entrante. En este caso "saltara" a la opcion DROP especificada mas adelante.
DROP esta opcion manda los paquetes al "suelo", los ignora, y por lo tanto cuando la conexion entrante nos mande paquetes simplemente los ignorara.
Ahora para desbloquear la ip, escribiremos la misma orden anterior solo que al inicio no sera -A sino -D asi:
sudo iptables -D INPUT -s x.x.x.x -j DROP
Listo!, haz la prueba con un ping desde la ip a bloquear.
ÍNDICE
• IPTABLES
• CONSTRUCCIÓN DE REGLAS
• ESTRUCTURA BASICA DEL COMANDO
o CREAR UN FIREWALL CON IPTABLES
o ACTIVAR EL FUNCIONAMIENTO DE LAS IPTABLES
o PROTEGER LA PROPIA MÁQUINA
CÓMO DEPURAR EL FUNCIONAMIENTO DEL FIREWALL
Iptables
IPtables es un sistema de firewall vinculado al kernel de linux que se ha extendido normemente a partir del kernel 2.4 de este sistema operativo. Al igual que el anterior sistema ipchains, un firewall de iptables no es como un servidor que lo iniciamos o detenemos o que se pueda caer por un error de programación (esto es una pequeña mentira, ha tenido alguna vulnerabilidad que permite DoS, pero nunca tendrá tanto peligro como las aplicaciones que escuchan en determinado puerto TCP): iptables esta integrado con el kernel, es parte del sistema operativo. ¿Cómo se pone en marcha? Realmente lo que se hace es aplicar reglas. Para ellos se ejecuta el comando iptables, con el que añadimos, borramos, o creamos reglas. Por ello un firewall de iptables no es sino un simple script de shell en el que se van ejecutando las reglas de firewall.
Nota: Bueno, se puede implementar un script de inicio en /etc/rc.d/INIT.d (o /etc/INIT.d ) con el que hagamos que iptables se “inicie o pare” como un servidor más. Lo podemos hacer nosotros o es probable que venga en la distribución (como en redhat por ejemplo). También se pueden salvar las reglas aplicadas con el comando iptablessave en un fichero y gestionar ese fichero con una aplicación o front-end desde la X o desde webmin.
Vale, tenemos una máquina linux con soporte para iptables, tiene reglas aplicadas y empiezan
a llegar/salir/pasar paquetes. No nos liemos: olvidemos cuantas tarjetas de red hay, que
direcciones ip tiene la máquina y olvidemos si el paquete entra o sale. Las reglas de firewall
están a nivel de kernel, y al kernel lo que le llega es un paquete y tiene que decidir que hacer con él. El kernel lo que hace es, dependiendo si el paquete es para la propia maquina o para otra maquina, consultar las reglas de firewall y decidir que hacer con el paquete según mande el firewall. Este es el camino que seguiría un paquete en el kernel:
Como se ve en el gráfico, básicamente se mira si el paquete esta destinado a la propia maquina o si va a otra. Para los paquetes (o datagramas, según el protocolo) que van a la propia maquina se aplican las reglas INPUT y OUTPUT, y para filtrar paquetes que van a otras
redes o maquinas se aplican simplemente reglas FORWARD.
INPUT, OUTPUT y FORWARD son los tres tipos de reglas de filtrado. Pero antes de aplicar
esas reglas es posible aplicar reglas de NAT: Estas se usan para hacer redirecciones de
puertos o cambios en las IPs de origen y destino.
E incluso antes de las reglas de NAT se pueden meter reglas de tipo MANGLE, destinadas a
modificar los paquetes; son reglas poco conocidas y es probable que no las usen.
Por tanto tenemos tres tipos de reglas en iptables:
- MANGLE
- NAT: reglas PREROUTING, POSTROUTING
- FILTER: reglas INPUT, OUTPUT, FORWARD.
Construcción de reglas
Estructura básica del comando:
Iptables [tabla] <comando> <filtro> <objetivo/salto>
-t MANGLE: sirve para alterar el estado de un paquete.
-t NAT: reglas PREROUTING, POSTROUTING. (masquerading) para hacer que otros ordenadores se conecten a través del nuestro a una serie de servicios pero con nuestra ip, pareciendo que esas conexiones vienen de nuestro equipo.
-t FILTER: reglas INPUT, OUTPUT, FORWARD. Aquí se produce el filtrado de paquetes; (esta tabla no hace falta nombrarla).
Comando
"A cadena "> Añadir regla al final
"D cadena "> Borrar
"R cadena num "> Reemplazar
"I cadena num "> Insertar
"L "> Listar
"F "> Limpiar
"N cadena "> Crear cadena
"X "> Eliminar cadena
"P "> Cambiar política
Filtro: especificación de qué paquetes se verán afectados por la regla
Genéricos
"p protocolo
TCP
""sport o -s puerto origen
""dport o -d puerto destino
"tcp"flags
UDP
""sport o -s y ""dport o -d.
ICMP
""icmp"type "> tipo de paquete icmp (echo"reply, echo - request...) "> identificados por valor o nombre
"s dirección IP fuente
"d dirección IP destino
"i interfaz de entrada
"o interfaz de salida
Objetivo/Salto: Qué hacer con el paquete (parámetro "j)
ACCEPT
DROP
REJECT
LOG
Cadena definida por el usuario
Crear un firewall con iptables
Lo primero es asegurarse de que los siguientes módulos están cargados, y si no están, entonces insertamos los módulos que
...