Como bloquear todas as portas usando iptables e posteriormente liberar somente as portas desejadas

1. Como bloquear todas as portas usando iptables e posteriormente liberar somente as portas desejadas

Jhonas Henrique
JhonasHenrique

(usa Debian)

Enviado em 29/06/2022 - 00:30h

Bem pessoal andei pesquisando na internet e até encontrei alguns tutoriais gringos sobre, porém não obtive sucesso em tal operação. Vasculhei este forúm aqui também, até encontrei assuntos relacionados porém nada!

#Coloco política de DROP em todas as chains da tabela filter para bloquear tudo

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
#Permito serviços básicos para navegação na web 80, 443, 53 > http, https, dns

#http
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

#https
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

#dns para fins de teste usei o da cloudflare setado em meu arquivo resolv.conf
iptables -A INPUT -p udp --dport 53 -d 1.1.1.1 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -d 1.1.1.1 -j ACCEPT

OBS: Não precisa usar tcp para dns, estive lendo sobre só e necessário se haver algum dns secundário. Eu até setei uma rule tcp pro dns mais mesmo assim com todas essas regras ainda não consigo o propósito desejado. Desde já companheiros a ajuda de vocês e extremamente bem-vinda!

Outro ponto a ser ressaltado: Há manipuladores do iptables como ufw que conseguem suprir o que quero, eu vi vídeos relacionados ao ufw no yotube. Porém eu gosto de fazer tudo na unha mesmo!


  


2. Navegando no site da RHEL encontrei o meu erro!

Jhonas Henrique
JhonasHenrique

(usa Debian)

Enviado em 29/06/2022 - 01:32h

O iptables renderiza todas as regras de cima para baixo semelhante ao browser. Então basicamente coloquei os DROPS por último. Ou seja as permissões devem vir primeiro! Funcionou aqui certinho. Já fica aí a dica para futuros usuários! ATT: Henrique.