iptables -A INPUT -i eth0 -d 192.168.0.0/24 -p tcp -m multiport --sports 20,21,22,25,80,110,443 -m tcp --tcp-flags ACK ACK -j ACCEPT
iptables -A OUTPUT -o eth0 -s 192.168.0.0/24 -p tcp -m multiport --dports 20,21,22,25,80,110,443 -m tcp --tcp-flags SYN SYN -j ACCEPT
iptables -A OUTPUT -o eth0 -s 192.168.0.0/24 -p tcp -m multiport --dports 20,21,22,25,80,110,443 -m tcp --tcp-flags ACK ACK -j ACCEPT
sábado, 23 de janeiro de 2010
Statefull
iptables -A FORWARD -s 192.160.0.0/24 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 192.160.0.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -d 192.160.0.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state INVALID -j DROP
MSN
Bloquear MSN via Firewall
iptables -I FORWARD -p tcp --dport 1863 -j DROP
ATENÇÃO: Ao fazer isso o MSN tentará se conectar pela porta 80, você então deverá bloquea-lo através do squid.
iptables -I FORWARD -p tcp --dport 1863 -j DROP
ATENÇÃO: Ao fazer isso o MSN tentará se conectar pela porta 80, você então deverá bloquea-lo através do squid.
REDIRECT
Redirecionar trafego da porta 80 para a porta 3128 ( squid )
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
FTP
Liberando conexões FTP para as máquinas da rede
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 20 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT
Carregue os módulos de acompanhamento de conexão para o serviço FTP
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 20 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT
Carregue os módulos de acompanhamento de conexão para o serviço FTP
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
MASQUERADE - Compartilhar internet no Linux
Limitando o tamanho de pacotes IP com tamanho MSS
iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
Mascarando a conexão
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
Habilitando o repasse de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
ATENÇÃO: Para as máquinas da rede acessarem servidores FTP através de SNAT/MASQUERADE é necessário carregar alguns módulos.
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
Mascarando a conexão
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
Habilitando o repasse de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
ATENÇÃO: Para as máquinas da rede acessarem servidores FTP através de SNAT/MASQUERADE é necessário carregar alguns módulos.
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
Módulo geoip
Bloqueando as máquinas da rede para acessarem servidores do Brasil
iptables -A FORWARD -m geoip --dst-cc BR -j DROP
Bloqueando o acesso a servidores do Estados Unidos, França e Canadá
iptables -A FORWARD -m geoip --dst-cc US,FR,CA -j DROP
Fazendo o servidor recusar conexões vindas do Afeganistão e Argentina
iptables -A INPUT -m geoip --src-cc AF,AR -j DROP
IMPORTÂNTE: A lista de países usadas pelo geoip segue a ISO3166
iptables -A FORWARD -m geoip --dst-cc BR -j DROP
Bloqueando o acesso a servidores do Estados Unidos, França e Canadá
iptables -A FORWARD -m geoip --dst-cc US,FR,CA -j DROP
Fazendo o servidor recusar conexões vindas do Afeganistão e Argentina
iptables -A INPUT -m geoip --src-cc AF,AR -j DROP
IMPORTÂNTE: A lista de países usadas pelo geoip segue a ISO3166
sexta-feira, 22 de janeiro de 2010
Módulo iprange
Liberando acesso a porta 80 para as máquinas 192.168.0.131 até 192.168.0.140
iptables -A FORWARD -p tcp --dport 80 -m iprange --src-range 192.168.0.131-192.168.0.140 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -m iprange --src-range 192.168.0.131-192.168.0.140 -j ACCEPT
Módulo condition
iptables -A FORWARD -p tcp --dport 80 -m condition --condition internet -j DROP
echo 1 > /proc/net/nf_condition/internet
echo 1 > /proc/net/nf_condition/internet
Módulo layer7
Liberando acesso ao msn para uma máquina da rede
iptables -A FORWARD -s 192.168.0.3 -m layer7 --l7proto msnmessenger -j ACCEPT
iptables -A FORWARD -s 192.168.0.3 -m layer7 --l7proto msnmessenger -j ACCEPT
Módulo time
Liberando acesso para as máquinas da rede na porta 80 de 8 ás 9 da manhã
iptables -A FORWARD -p tcp --dport 80 -m time --timestart 8:00 --timestop 9:00 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -m time --timestart 8:00 --timestop 9:00 -j ACCEPT
Módulo connlimit
Limitando número de conexões a um serviço por host
iptables -A INPUT -p tcp --dport 21 -m connlimit --connlimit-above 1 -j DROP
iptables -A INPUT -p tcp --dport 21 -m connlimit --connlimit-above 1 -j DROP
Trabalhando com NAT
iptables -t nat -A PREROUTING -d 200.157.231.195 -p tcp --dport 5900 -j DNAT
--to-destination 192.168.0.253
iptables -t nat -A POSTROUTING -s 192.168.0.253 -p tcp --dport 5900 -j SNAT
--to-source 200.157.231.195
iptables -A FORWARD -d 192.168.0.253 -p tcp --dport 5900 -m state --state NEW,ESTABLISHED -j ACCEPT
--to-destination 192.168.0.253
iptables -t nat -A POSTROUTING -s 192.168.0.253 -p tcp --dport 5900 -j SNAT
--to-source 200.157.231.195
iptables -A FORWARD -d 192.168.0.253 -p tcp --dport 5900 -m state --state NEW,ESTABLISHED -j ACCEPT
Liberando acesso remoto por ssh com módulo recent
iptables -A INPUT -p tcp --dport 2221 -m recent --set --name SSH --rsource -j DROP
iptables -A INPUT -p tcp --dport 22 -m recent --rcheck --name SSH --rsource -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m recent --rcheck --name SSH --rsource -j ACCEPT
Módulo multiport
Liberando acesso a serviços específicos da máquina de firewall
iptables -A INPUT -p tcp -m multiport --dports 21,25,80,110 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 21,25,80,110 -m state --state NEW,ESTABLISHED -j ACCEPT
Permitindo que firewall e rede estabeleçam conexão com outras máquinas
iptables -A INPUT -p ! icmp -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p ! icmp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -p ! icmp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p ! icmp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p ! icmp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -p ! icmp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p ! icmp -m state --state NEW,ESTABLISHED -j ACCEPT
Liberando ping para máquina de firewall e para a rede
iptables -A INPUT -p icmp --icmp-type 0 -m limit --limit 1/sec -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 0 -m limit --limit 1/sec -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 0 -m limit --limit 1/sec -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
Módulo recent
Proteção contra "port scanner"
iptables -A INPUT -p tcp -m multiport --dports 1,5,10 -m recent --set --name DENY --rsource -j DROP
iptables -A INPUT -m recent --rcheck --name DENY --rsource -j DROP
iptables -A INPUT -p tcp -m multiport --dports 1,5,10 -m recent --set --name DENY --rsource -j DROP
iptables -A INPUT -m recent --rcheck --name DENY --rsource -j DROP
Liberando acesso para a interface local
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Setando a política padrão para DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Assinar:
Postagens (Atom)