Aqui está o arquivo que eu carrego com iptables-restore
em um Debian 8 recém-instalado:
A única coisa que eu mudei é usar a porta 22022 para SSH no arquivo /etc/ssh/sshd_config
.
----- CONSULTE ACIMA ABAIXO -----
Assim que carregar este arquivo, não posso acessar esse debian de nenhuma maneira; mesmo ping não está funcionando. Não há nada no arquivo / var / log / messages sobre qualquer erro.
Esta é minha primeira tentativa de configurar o iptables. Eu li muitos docs sobre isso, mas há algo que estou fazendo errado em algum lugar. Você poderia apontar o que aconteceu aqui?
*filter
#----------
# Local loop
#----------
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
#----------
# Connexions already established
#----------
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#----------
# PING
#----------
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#----------
# SSH
#----------
-A INPUT -p tcp --dport 22022 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 22022 -m state --state NEW,ESTABLISHED -j ACCEPT
#----------
# HTTP
#----------
-A INPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --dport 80 -j ACCEPT
#----------
# HTTPS
#----------
-A INPUT -p tcp --dport 443 -j ACCEPT
-A OUTPUT -p tcp --dport 443 -j ACCEPT
#----------
# FTP
#----------
-A INPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
#----------
# Logs
#----------
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 4
#----------
# DROP everything else
#----------
-A INPUT -j DROP
-A OUTPUT -j DROP
-A FORWARD -j DROP
COMMIT
----- UPDATE -----
Agora tenho NTP, Ping, DNS, Whois, SSH, HTTP (S) e FTP funcionando. Hourra
Aqui está o novo arquivo, se você ver algo estranho, me diga.
Eu também aprendi que usar FTP (TLS / SSL) com vsftp (que eu uso) precisa de algumas boas habilidades para configurar, e não encontrei nenhuma boa solução por enquanto.
Eu realmente espero que eu descubra isso, porque eu não vou manter FTP "limpo" assim. Se você tem alguma ideia.
Thx novamente por sua ajuda, ambas as respostas foram boas, eu não posso escolher uma;)
(a propósito, eu uso um script sh agora para carregar módulos)
#!/bin/sh
#----------
# Load needed modules
#----------
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
#----------
# Local loop
#----------
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
#----------
# Connexions already established
#----------
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#----------
# NTP
#----------
iptables -A INPUT -p udp --sport 123 -j ACCEPT
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
#----------
# PING
#----------
iptables -A INPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#----------
# DNS
#----------
# UDP
iptables -A INPUT -i eth0 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
# TCP
iptables -A INPUT -i eth0 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
#----------
# WHOIS
#----------
iptables -A INPUT -p tcp --sport 43 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 43 -j ACCEPT
#----------
# SSH
#----------
# Incoming
iptables -A INPUT -i eth0 -p tcp --dport 22022 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22022 -m state --state ESTABLISHED -j ACCEPT
# Outgoing
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#----------
# HTTP
#----------
# Incoming
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# Outgoing
iptables -A INPUT -i eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#----------
# HTTPS
#----------
# Incoming
iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
# Outgoing
iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
#----------
# FTP
#----------
#incoming
iptables -A INPUT -i eth0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
#----------
# Logs
#----------
#-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 4
#----------
# DROP everything else
#----------
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP
iptables -A FORWARD -j DROP
exit 0