andre_ramos
(usa openSUSE)
Enviado em 01/07/2010 - 12:33h
Caro amigos estou com uma duvida em relação a uma regra do firewall e gostaria de uma explicação
no script do firewall tenho uma regras a seguinte:
$IPTABLES -A INPUT -i eth1 -j ACCEPT
se eu comentar essa regra, as maquinas da rede nao conecta na internet
para que serve esta regra? esta correto ter essa regra no firewall? nao deixa o firewal vulneravel?
outra duvida e o seguinte se eu deixar a regra acima eu posso comentar a regra do direcionamento para a porta 3128 que as maquina funciona normalmente.
outra duvida, gostaria de saber o significado dessa regra e para que serve
$IPTABLES -A INPUT -i $NETWORK -s ! 192.168.1.0/24 -j DROP
meu script segue abaixo
gostaria que os amigos desse sugestões sobre o script para eu dar uma melhorada grato
#!/bin/bash
# Autor: Andre Chagas Ramos
# Data Criacao: 25/09/2009
# Data Modificacao: 09/12/2009
IPTABLES=/usr/sbin/iptables/iptables
NETWORK=eth1
WEB=eth0
iniciar () {
# Limpando as regras
$IPTABLES -F
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
# Compatilhamento da conexao
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Ativando compatilhamento!"
# Politicas de acesso geral
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
# Manter conexoes ja estabelecidas para nao parar
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state INVALID -j DROP
# Bloqueia pacotes intencionamente mal-formados
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
# Evitando SYN_Flood
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Carregamento de Modulos
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_tables
modprobe ip_conntrack
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
modprobe ipt_layer7
# Aceita todo o trafego vindo do loopback e indo pro loopback
$IPTABLES -t filter -A INPUT -i lo -j ACCEPT
# Protecoes contra ataques #
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A INPUT -i $NETWORK -s ! 192.168.1.0/24 -j DROP
# Redirecionando o trafego para a porta 3128
$IPTABLES -t nat -A PREROUTING -i $NETWORK -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128
#$IPTABLES -t nat -A PREROUTING -i $NETWORK -p tcp -d ! 200.201.174.207 --dport 443 -j REDIRECT --to-port 3128
$IPTABLES -A INPUT -i eth1 -j ACCEPT
# Bloquear IPS de sites proibidos
$IPTABLES -I FORWARD -s 192.168.1.0/24 -d 74.208.12.174 -j DROP # koolim.com
$IPTABLES -I FORWARD -s 192.168.1.0/24 -d 210.17.215.19 -j DROP #imunitive.com
$IPTABLES -I FORWARD -s 192.168.1.0/24 -d 64.13.161.58 -j DROP # imo.im
$IPTABLES -I FORWARD -s 192.168.1.0/24 -d 64.13.161.61 -j DROP # imo.im
# Bloquear o MSN
##$IPTABLES -I FORWARD -s 192.168.1.0/24 -p tcp --dport 1863 -j REJECT
#$IPTABLES -I FORWARD -s 192.168.1.0/24 -d loginnet.passport.com -j REJECT
#$IPTABLES -A FORWARD -s 192.168.0.0/24 -p tcp -m -d imo.im -j REJECT
# Regras para liberar o outlook
$IPTABLES -A FORWARD -p udp -s 192.168.1.0/24 -d 200.175.182.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.182.139 --sport 53 -d 192.168.1.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 192.168.1.0/24 -d 200.175.5.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.5.139 --sport 53 -d 192.168.1.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 192.168.1.0/24 --dport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 192.168.1.0/24 --dport 587 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 192.168.1.0/24 --dport 110 -j ACCEPT # POP3
# Regras para liberar o FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 192.168.1.0/24 --dport 20 -j ACCEPT # FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 192.168.1.0/24 --dport 21 -j ACCEPT # FTP
# INPUT # Pacotes que entram na rede
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 80 -j ACCEPT # HTTP
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 443 -j ACCEPT # HTTPS
# FORWARD # Pacotes que circulam na rede
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 8333 -j ACCEPT # HTTP
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 443 -j ACCEPT # HTTPS
$IPTABLES -A FORWARD -i $NETWORK -s 192.168.1.0/24 -j ACCEPT
# Mascaramento da rede para acesso externo
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#--------------------------------------------------------------------------------------
echo "Firewall Ativado"
}
parar(){
echo "Regras de firewall e compartilhamento desativados"
iptables -F
iptables -t nat -F
iptables -t mangle -F
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar;;
*)echo "Use os paramentros start ou stop"
esac