iptables
INPUT - FORWARD - OUTPUT
Netfilter
Kernel
====== iptables ======
iptables
INPUT - FORWARD (routers) - OUTPUT
Netfilter
Kernel
iptables -A OUTPUT -o enp0s3 -d IP -p tcp --dport 80 -j ACCEPT/REJECT/DROP/LOG
iptables -A OUTPUT [-i/-o] INTERFAZ [-s/-d] IP -p [tcp/udp] [--dport/-sport] PUERTO -j ACCEPT/REJECT/DROP/LOG
iptable -L
iptables -P OUTPUT DROP
iptables -P OUTPUT DROP
iptables -A INPUT -d 0.0.0.0/0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m state --state=ESTABLISHED,RELATED -j ACCEPT
iptables-save
iptables-restore
====== firewalld ======
Habitualmente se usa en sistemas RedHat.
* **zone**: Colecciones de tarjetas de red.
* **interfaces**: Se asignan a las zonas
* **services**: Archivo XML para habilitar algun servicio
* **forward port**: Enviar el trafico desde un puerto a otro puerto que puede ser otra maquina
* **Masquerading**: Provee NAT en un router
* **Rich rules**: Extensión para la sintaxis y hacer cosas mas complicadas
firewalld-cmd
firewalld-cmd --list-services
firewalld-cmd --get-services
firewalld-cmd --add-service=servicio --permanent
firewalld-cmd --remove-service=servicio
firewalld-cmd --add-port=por=222:proto=tcp:toport=22
ls /usr/lib/firewalld/services
====== ufw ======
ufw enable
ufw allow ssh
ufw reject out ssh
ufw status
ufw delete reject out ssh
ufw deny proto tcp from 10.10.0.10 to any port 22
ufw reset
ufw app list
ufw app info ssh
ufw logging on
man ufw
* https://www.linux.com/tutorials/introduction-uncomplicated-firewall-ufw/
====== Ejemplos ======
Quitar permiso que el usuario con ID 1000 no pueda acceder al todos los hosts en el puerto 22
iptables -I OUTPUT -o lo -p tcp --dport 5000 --match owner --uid-owner 1000 -j DROP
ip6tables -I OUTPUT -o lo -p tcp --dport 5000 --match owner --uid-owner 1000 -j DROP
Reenvio del puerto 8080 al puerto 22 en la interfaz eth0
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 22
Bloqueo de un puerto 25
iptables -A INPUT -s 0.0.0.0/0 -p tcp --destination-port 25 -j DROP
====== Referencias ======
* https://unix.stackexchange.com/questions/486945/restrict-local-port-access-to-a-specific-user
* https://www.cyberciti.biz/faq/linux-port-redirection-with-iptables/
* https://www.cyberciti.biz/faq/how-do-i-block-an-ip-on-my-linux-server/
* https://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/
* https://www.tecmint.com/setup-linux-as-router/
* https://www.thomas-krenn.com/en/wiki/Saving_Iptables_Firewall_Rules_Permanently
* http://jensd.be/343/linux/forward-a-tcp-port-to-another-ip-or-port-using-nat-with-iptables