1. Firewall en Linux
El Firewall es un programa informático que controla el acceso de una computadora a la red y de elementos de la red a la computadora, por motivos de seguridad.
La función de un firewall, como ya hemos comentado, no es otra que la de registrar el tráfico en internet de un dispositivo con el objeto de proteger una red informática privada impidiendo el acceso de usuarios no autorizados a ella, para que no se produzca el robo de información confidencial o se instale un virus en la computadora. Por consiguiente, un cortafuegos sirve, en esencia, para preservar la seguridad y privacidad de los navegantes, proteger una red empresarial o doméstica de malévolos ataques y salvaguardar la información y los archivos en un buen estado.
Otra definición de Firewall sería "Un firewall es un dispositivo que filtra el tráfico entre redes, como mínimo dos. El firewall puede ser un dispositivo físico o un software sobre un sistema operativo. En general debemos verlo como una caja con DOS o mas interfaces de red en la que se establecen una reglas de filtrado con las que se decide si una conexión determinada puede establecerse o no. Incluso puede ir más allá y realizar modificaciones sobre las comunicaciones, como el NAT." Ver mas AQUI
2. Qué es iptables
El Firewall es un programa informático que controla el acceso de una computadora a la red y de elementos de la red a la computadora, por motivos de seguridad.
La función de un firewall, como ya hemos comentado, no es otra que la de registrar el tráfico en internet de un dispositivo con el objeto de proteger una red informática privada impidiendo el acceso de usuarios no autorizados a ella, para que no se produzca el robo de información confidencial o se instale un virus en la computadora. Por consiguiente, un cortafuegos sirve, en esencia, para preservar la seguridad y privacidad de los navegantes, proteger una red empresarial o doméstica de malévolos ataques y salvaguardar la información y los archivos en un buen estado.
Otra definición de Firewall sería "Un firewall es un dispositivo que filtra el tráfico entre redes, como mínimo dos. El firewall puede ser un dispositivo físico o un software sobre un sistema operativo. En general debemos verlo como una caja con DOS o mas interfaces de red en la que se establecen una reglas de filtrado con las que se decide si una conexión determinada puede establecerse o no. Incluso puede ir más allá y realizar modificaciones sobre las comunicaciones, como el NAT." Ver mas AQUI
2. Qué es iptables
IPtables es un sistema de firewall vinculado al kernel de linux que se ha extendido enormemente 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 algunavulnerabilidad 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 defirewall.
Notas: bueno, para los más geeks y tocapelotas. Vale, 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 iptables−save en un fichero y gestionar ese fichero con una aplicación o front−end desde la X o desde webmin.
Notas: bueno, para los más geeks y tocapelotas. Vale, 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 iptables−save 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 (digamos, un marrón ;) ) 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.
3. Como agregar/quitar permisos usando los Iptables (Modo Normal)
Para Iniciar/Parar/Reiniciar Iptables debemos ejecutar estos comandos:
- sudo service iptables start
- sudo service iptables stop
- sudo service iptables restart
Los principales comandos de IPtables son los siguientes (argumentos de una orden):
- -A –append → agrega una regla a una cadena.
- -D –delete → borra una regla de una cadena especificada.
- -R –replace → reemplaza una regla.
- -I –insert → inserta una regla en lugar de una cadena.
- -L –list → muestra las reglas que le pasamos como argumento.
- -F –flush → borra todas las reglas de una cadena.
- -Z –zero → pone a cero todos los contadores de una cadena.
- -N –new-chain → permite al usuario crear su propia cadena.
- -X –delete-chain → borra la cadena especificada.
- -P –policy → explica al kernel qué hacer con los paquetes que no coincidan con ninguna regla.
- -E –rename-chain → cambia el orden de una cadena.
Condiciones principales para Iptables:
- -p –protocol → la regla se aplica a un protocolo.
- -s –src –source → la regla se aplica a una IP de origen.
- -d –dst –destination → la regla se aplica a una Ip de destino.
- -i –in-interface → la regla de aplica a una interfaz de origen, como eth0.
- -o –out-interface → la regla se aplica a una interfaz de destino.
Condiciones TCP/UDP
- -sport –source-port → selecciona o excluye puertos de un determinado puerto de origen.
- -dport –destination-port → selecciona o excluye puertos de un determinado puerto de destino.
Existen muchas mas condiciones para una configuración avanzada del firewall, pero las elementales ya las tenemos listadas.
Configurar reglas por defecto
La configuración por defecto de un firewall debería ser, traducido al español, “bloquear todo excepto [reglas]”. Para configurar el firewall para que bloquee todas las conexiones debemos teclear:
- iptables -P INPUT DROP
- iptables -P FORWARD DROP
- iptables -P OUTPUT DROP
Con esto nos quedaremos sin internet, por lo que a continuación debemos empezar a crear reglas permisivas.
Para aplicar una regla que filtre un determinado puerto, debemos ejecutar:
- iptables -A INPUT -p tcp –sport 22 22 → crea una regla para el puerto de origen tcp 2222
- Para bloquear el tráfico procedente de una determinada IP, debemos ejecutar:
- iptables -A INPUT -p tcp -m iprange –src-range 192.168.1.13-192.168.2.19 (ejemplo de IP)
- También podriamos bloquear por MAC con la condición –mac-source.
- iptables -A INPUT -m mac –mac-source 00:00:00:00:00:01
Una vez ejecutadas las reglas que queramos aplicar, debemos guardarlas tecleando sudo service iptables save
Ver el estado del firewall
- iptables -L -n -v
El parámetro L muestra las líneas abiertas. V permite recibir más información sobre las conexiones y N nos devuelve las direcciones IP y sus correspondientes puertos sin pasar por un servidor DNS.
Eliminar las reglas existentes
Para borrar toda la configuración del firewall para volver a configurarlo de nuevo debemos teclear:
- iptables -F
Permitir conexiones entrantes
Teclearemos los siguientes parámetros:
- iptables -A INPUT -i [interface] -p [protocolo] –dport [puerto] -m state –state NEW,ESTABLISHED -j ACCEPT
- -i: debemos configurar la interfaz, por ejemplo, eth0. Esto es útil en caso de tener varias tarjetas de red, si tenemos sólo una, no tenemos por qué especificar este parámetro.
- -p: protocolo. Debemos especificar si el protocolo será TCP o UDP.
- –dport: el puerto que queremos permitir, por ejemplo, en caso de HTTP sería el 80.
Un ejemplo para permitir las conexiones entrantes desde páginas web:
- iptables -A INPUT -i eth0 -p tcp –dport 80 -m state –state NEW,ESTABLISHED -j ACCEPT
Permitir las conexiones salientes
- iptables -A OUTPUT -o [interfaz] -p [protocolo] –sport [puerto] -m state –state ESTABLISHED -j ACCEPT
-o: debemos configurar la interfaz, por ejemplo, eth0, al igual que en el caso anterior.
-p: protocolo. Debemos especificar si el protocolo será TCP o UDP.
–sport: el puerto que queremos permitir, por ejemplo, en caso de HTTPS sería el 443.
Un ejemplo para permitir el tráfico saliente hacia páginas web:
- iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m state –state ESTABLISHED -j ACCEPT
Permitir los paquetes ICMP
Por defecto, el ping está deshabilitado. Debemos habilitarlo manualmente añadiendo las correspondientes entradas en iptables. Para ello teclearemos:
Para poder hacer ping a otros servidores:
- iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT
Para permitir recibir solicitudes de ping de otros equipos:
- iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT
Permitir que el tráfico interno salga a internet
En el caso de tener 2 tarjetas de red (eth0 en local y eth1 conectada a internet) podemos configurar el firewall para que reenvíe el tráfico de la red local a través de internet. Para ello escribiremos:
- iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
Bloquear y prevenir ataques DDoS
- iptables -A INPUT -p tcp –dport 80 -m limit –limit 25/minute –limit-burst 100 -j ACCEPT
Consultar los paquetes rechazados por iptables
Para saber los paquetes que iptables ha rechazado debemos teclear:
- iptables -N LOGGING
4.Como agregar/quitar permisos con Iptables (Modo extra - rápido)
Como Iptables es usado para agregar permisos por IP para poder ingresar a cada uno de los puertos que nos bloquea el Firewall, entonces se puede agregar los IPs para aceptar o rechazar. Por ejemplo, un error común es que te instales el Putty e intentes acceder a un Servidor, pero como el firewall está activado, no te va a dejar acceder, igual que con el WinSCP.
Existen varias formas, como podras encontrar en Internet, como por ejemplo:
Agregar
sudo iptables -A INPUT -p tcp –dport 20000 -j ACCEPT
Quitar
sudo iptables -D INPUT -p tcp –dport 20000 -j ACCEPT
Además, para poder visualizar los bloqueos que existen, debes colocar el siguiente comando:
iptables --line-numbers -n -L
Pero yo prefiero hacer algo mas fácil, me gusta entrar directamente al directorio donde se encuentra el iptables y abrirlo, como editando un archivo. Lo que hago es simple:
Entrar a la carpeta sysconfig dentro de la carpeta etc
cd /etc/sysconfig
Luego ingresar a iptables:
vi iptables
Entrar a la carpeta sysconfig dentro de la carpeta etc
cd /etc/sysconfig
Luego ingresar a iptables:
vi iptables
dentro del iptables agregar los ip a incluir o excluir.
En esta imagen se ve que el puerto 22 está habilitado para todos.
En esta imagen se puede apreciar que los puertos 80,443,25,465,110,995,22 están habilitados.
Finalmente guardar las modificaciones con:
:wq!iptables --line-numbers -n -L
Luego, ya en la consola reiniciar los iptables:
service iptables restart
y con eso ya estaría hecho.
En esta imagen se ve que el puerto 22 está habilitado para todos.
En esta imagen se puede apreciar que los puertos 80,443,25,465,110,995,22 están habilitados.
Finalmente guardar las modificaciones con:
:wq!iptables --line-numbers -n -L
Luego, ya en la consola reiniciar los iptables:
service iptables restart
y con eso ya estaría hecho.


No hay comentarios:
Publicar un comentario