All pastes #246602 Raw Edit

Anonymous

public text v1 · immutable
#246602 ·published 2006-11-12 12:06 UTC
rendered paste body
#!/bin/bash
# Script de Firewall

#####################################
### Passo 1: Primeiro vamos arrumar a casa :) ###
#####################################

# Limpando as Regras
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F
iptables -t nat -F

# Definindo a Politica Default das Cadeias
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP


######################################
### Passo 2: Antes de Servir, vamos nos proteger ! ###
######################################

# Desabilitando o trafego IP Entre as Placas de Rede
echo "0" > /proc/sys/net/ipv4/ip_forward

# Configurando a Protecao anti-spoofing
echo "Setting anti-spoofing .....[ OK ]"
for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do
        echo "1" > $spoofing
done


#######################################
### Passo 3: Carregando os modulos do iptables ###
#######################################

modprobe ip_tables
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_MASQUERADE
echo "Setting rules .............[ OK ]"

#######################################
### Passo 4: Agora, vamos definir o que pode passar e o que nao ###
#######################################

# Qualquer pacote IP que venha do localhost, Ok.
iptables -A INPUT -i lo -j ACCEPT

# REDE INTERNA LIBERADA
iptables -A INPUT -i eth0 -j ACCEPT

#LIBERANDO PORTAS
iptables -A INPUT -p tcp -m multiport --dport 139,445,3128,10000 -j ACCEPT
#iptables -A INPUT -s 192.168.2.0/255.255.255.0 -p tcp --dport 4899 -j ACCEPT
#iptables -A INPUT -s 192.168.1.0/255.255.255.0 -p tcp --dport 4899 -j ACCEPT
#iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT
#iptables -t nat -A PREROUTING -p tcp --dport 4899 -j DNAT --to 192.168.1.12

#libera acesso para cabo frio
#iptables -I FORWARD -s 192.168.1.0/24 -d 192.168.2.0/24 -j ACCEPT
#iptables -I FORWARD -d 192.168.1.0/24 -s 192.168.2.0/24 -j ACCEPT
#iptables -I INPUT -s 192.168.2.0/24 -j ACCEPT

# No iptables, temos de dizer quais sockets sao validos em uma conexao
iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP


# Proteç contra worms
# Proteç contra ping da morte
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#Bloqueio de NetBios
iptables -t nat -A PREROUTING -p tcp --dport 445 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 135 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 137 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 138 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 139 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 445 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 135 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 137 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 138 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 139 -j DROP


# Loga tentativa de acesso a determinadas portas
iptables -A INPUT -p tcp --dport 21 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
iptables -A INPUT -p tcp --dport 23 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
iptables -A INPUT -p tcp --dport 25 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: smtp: "
iptables -A INPUT -p tcp --dport 80 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
iptables -A INPUT -p tcp --dport 110 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: pop3: "
iptables -A INPUT -p udp --dport 111 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: rpc: "
iptables -A INPUT -p tcp --dport 113 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: identd: "
iptables -A INPUT -p tcp --dport 137:139 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
iptables -A INPUT -p udp --dport 137:139 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
iptables -A INPUT -p tcp --dport 161:162 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: snmp: "
iptables -A INPUT -p tcp --dport 6667:6668 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: irc: "
iptables -A INPUT -p tcp --dport 3128 -i ppp0 -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "

# Cadeia de Reenvio (FORWARD)

# Primeiro, ativar o mascaramento (nat).
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#libera email para os computadores
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 25 -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 110 -j ACCEPT

#bloqueia determinadas portas de determinados ips
#iptables -t nat -I PREROUTING -s 192.168.1.209 -p tcp --dport 445 -j DROP


#bloqueia internet de determinados ips
#iptables -t nat -I PREROUTING -s 192.168.1.251 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.151 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.21 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.22 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.23 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.134 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.133 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.162 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.111 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.112 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.113 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.114 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.115 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.116 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.117 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.118 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.119 -p tcp --dport 80 -j DROP
#iptables -t nat -I PREROUTING -s 192.168.1.209 -p tcp --dport 80 -j DROP

#libera acesso sem passar pelo dansguardian
#iptables -t nat -A PREROUTING -s 192.168.1.12 -p tcp --dport 80 -j REDIRECT --to-port 3128

# Redireciona porta 80 para 3128 (squid)
#iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 8070
#iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p udp --dport 80 -j REDIRECT --to-port 8070
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p udp --dport 8080 -j REDIRECT --to-port 3128

#liberando acesso sem precisar do cache da pagina a determinados sites
#iptables -t nat -A PREROUTING -i eth1 -p tcp -d ! 161.148.231.100 --dport 80 -j REDIRECT --to-port 8070

#Bloqueando/liberando MSN:
#iptables -t nat -I PREROUTING -s 192.168.1.12 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.4 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.11 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.31 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.32 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.111 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.112 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.113 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.114 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.115 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.116 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.117 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.118 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.119 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.53 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.200 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.71 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.72 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.73 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.151 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.152 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.21 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.22 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.23 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.141 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.132 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.133 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.134 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.31 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.51 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.52 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -I PREROUTING -s 192.168.1.209 -p tcp --dport 1863 -j REDIRECT --to-port 3128


########################################
### Finalmente, podemos "Ligar" o foward (clientes) :) ###
########################################

# Habilitando o trafego Ip, entre as Interfaces de rede
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Firewall OK ...............[ OK ]"