Estou procurando uma maneira de permitir conexões em todas as portas do meu servidor Debian apenas para um IP local (192.168.2.*), exceto duas portas específicas X e Y, que devem ser permitidas para qualquer IP. Se o IP não for local, todas as conexões com todas as portas, exceto as portas X e Y, deverão ser bloqueadas.
Como posso lidar com essa situação com o Iptables?
Responder1
Não tenho certeza se entendi bem, mas aqui está como fazer isso.
Para permitir todas as portas para o intervalo de IP local 192.168.2.0/24, exceto duas portas (X e Y), você pode usar uma regra como:
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport X -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport Y -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp -j ACCEPT
Para outros IPs não locais, permita conexões SOMENTE para X e Y, você pode usar:
iptables -A INPUT -p tcp --dport X -j ACCEPT
iptables -A INPUT -p tcp --dport Y -j ACCEPT
iptables -A INPUT -p tcp -j DROP
Você não especificou o protocolo (TCP ou UDP) e estou assumindo o TCP como está claro acima. Você precisa inserir as regras nesta ordem específica e não presumo nenhuma outra regra predefinida.