#!/bin/sh # Limpando as tabelas iptables -F iptables -X iptables -Z #iptables -t nat -F #iptables -t nat -X #iptables -t nat -Z iptables -t mangle -F iptables -t mangle -X
# Definindo polÃtica padrão: iptables -P INPUT DROP iptables -P OUTPUT ACCEPT #iptables -P FORWARD DROP # Checagem de Sanidade iptables -N sanity iptables -F sanity iptables -A INPUT -j sanity #iptables -A FORWARD -j sanity # Libera saida e entrada de pacotes: iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT #SSH #iptables -A INPUT -p tcp --destination-port 22 -j DROP #iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT #DHCP iptables -A INPUT -p tcp -m multiport --dports 67,68 -j ACCEPT iptables -A INPUT -p udp -m multiport --dports 67,68 -j ACCEPT iptables -A INPUT -p tcp -m multiport --sports 67,68 -j ACCEPT iptables -A INPUT -p udp -m multiport --sports 67,68 -j ACCEPT # Qualquer conexão desconhecida Ã(c) imediatamente registrada e derrubada iptables -A INPUT -j LOG --log-prefix "FIREWALL: INPUT " #Habilitando porta de DNS iptables -A INPUT -p udp -s 192.168.1.3 --source-port 53 -j ACCEPT iptables -A INPUT -p tcp --destination-port 53 -j DROP # Libera o loopback iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Libera Bittorrent somente para esta maquina iptables -A INPUT -p tcp --destination-port 6881:6889 -j ACCEPT # Performance - Setando acesso a web com delay minimo iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 20 -j TOS --set-tos 0x10 iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 21 -j TOS --set-tos 0x10 iptables -t mangle -A OUTPUT -o eth0 -p udp --dport 53 -j TOS --set-tos 0x10 iptables -t mangle -A OUTPUT -o eth0 -p udp --dport 80 -j TOS --set-tos 0x10 iptables -t mangle -A OUTPUT -o eth0 -p udp --dport 587 -j TOS --set-tos 0x10 iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 4661 -j TOS --set-tos 0x10 iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 4662 -j TOS --set-tos 0x10 iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 4662 -j TOS --set-tos 0x10 iptables -t mangle -A OUTPUT -o eth0 -p udp --dport 4672 -j TOS --set-tos 0x00 iptables -t mangle -A PREROUTING -i eth0 -p udp --sport 4672 -j TOS --set-tos 0x08 iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 5222 -j TOS --set-tos 0x10 iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 8118 -j TOS --set-tos 0x10 iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 9050 -j TOS --set-tos 0x10 # # #Bloqueia qualquer tentativa de conexao de fora para dentro por TCP #Problema com amule #iptables -A INPUT -i ppp+ -p tcp --syn -j DROP #Mesmo assim fechar todas as portas abaixo de 32000 #Problema com amule #iptables -A INPUT -i eth0 -p tcp --dport :32000 -j DROP #Protege contra Syn-floods iptables -A INPUT -p tcp --syn -m limit --limit 2/s -j ACCEPT #Protege contra port scanners ocultos iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT #Protege contra ping da morte iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j DROP #Contra ataques smurf iptables -A INPUT -p icmp --icmp-type 8 -j DROP #Logar os pacotes mortos por inatividade #iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG #Responde pacotes icmp especificados e rejeita o restante iptables -A INPUT -i ppp+ -p icmp --icmp-type host-unreachable -j ACCEPT iptables -A INPUT -i ppp+ -p icmp --icmp-type source-quench -j ACCEPT iptables -A INPUT -i ppp+ -p icmp -j REJECT --reject-with icmp-host-unreachable #A regra acima Ã(c) interessante, pois da a impressão q o host não esta on-line #aMule iptables -v -A INPUT -p tcp --dport 4661:4662 -j ACCEPT iptables -v -A INPUT -p udp --dport 4665 -j ACCEPT iptables -v -A INPUT -p udp --dport 4672 -j ACCEPT #Fecha as portas udp de 1 a 1024, abre para o localhost iptables -A INPUT -p udp -s 127.0.0.1/255.0.0.0 -j ACCEPT iptables -A INPUT -p udp --dport 1:1024 -j DROP iptables -A INPUT -p udp --dport 59229 -j DROP #Definindo permissões de fora pra dentro por porta: #iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT #SIP #iptables -A INPUT -p udp --dport 5060 -j ACCEPT #iptables -A FORWARD -o eth0 -p udp --dport 5060 -j ACCEPT #Algumas boas ideias retiradas do Arno's iptables firewall iptables -N VALID_CHECK iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,ACK,FIN,RST,PSH,URG -j DROP iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP iptables -A VALID_CHECK --protocol tcp --tcp-flags ALL SYN,ACK -j DROP iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP iptables -A VALID_CHECK -p tcp --tcp-option 64 -j DROP iptables -A VALID_CHECK -p tcp --tcp-option 128 -j DROP iptables -A VALID_CHECK -m state --state INVALID -j DROP iptables -A VALID_CHECK -p tcp -m state --state NEW ! --syn -j DROP iptables -A VALID_CHECK -p tcp --syn -j DROP iptables -A VALID_CHECK -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP iptables -A INPUT -j VALID_CHECK #iptables -A FORWARD -j VALID_CHECK # Fecha tudo ultima regra iptables -A INPUT -p tcp --syn -j DROP #iptables -A FORWARD -p tcp --syn -j DROP iptables -A INPUT -i eth0 -j DROP #iptables -A FORWARD -i eth0 -j DROP --------------------------------------------------------------------------- Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br Regras de utilização da lista: http://linux-br.conectiva.com.br FAQ: http://www.zago.eti.br/menu.html
