andre_ramos
(usa openSUSE)
Enviado em 03/12/2010 - 12:24h
Boa Tarde!
Estou com duvidas sobre regras para liberar meu firewall para eu acessar a vpn de um cliente.
meu cenário e o seguinte:
tenho minha rede interna que preciso acessar uma VPN de um Servidor de um parceiro nosso. ou seja preciso liberar meu firewall para eu conseguir ter este acesso
segue meu scrip de firewall
agradeço os colegar desde já
#!/bin/bash
IPTABLES=/usr/sbin/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
# Compartilhamento da internet para a rede interna
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 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
# Ignora pings
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# Bloqueia traceroute
$IPTABLES -A INPUT -p udp --dport 33435:33525 -j DROP
# Protecoes contra ataques
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A INPUT -i $NETWORK -s ! 192.168.0.0/24 -j DROP
# Carregamento de Modulos
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_tables
modprobe ip_conntrack
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
# Aceita todo o trafego vindo do loopback e indo pro loopback
$IPTABLES -t filter -A INPUT -i lo -j ACCEPT
# 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
## Redirecionamento de porta 3389 para o Servidor Conecta
PTABLES -I FORWARD -p tcp --dport 3389 -j ACCEPT
$IPTABLES -t nat -I PREROUTING -p tcp -i eth0 --dport 3389 -j DNAT --to-destination 192.168.0.202:3389
# liberar OpenVPN Porta 5000
$IPTABLES -A FORWARD -p tcp --dport 5000 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 5000 -j ACCEPT
# Liberar o MSN
$IPTABLES -A FORWARD -s 192.168.0.221/24 -p tcp --dport 1863 -j ACCEPT # HUMBERTO
$IPTABLES -A FORWARD -s 192.168.0.221/24 -d loginnet.passport.com -j ACCEPT # HUMBERTO
# Bloquear o MSN
$IPTABLES -A FORWARD -s 192.168.0.0/24 -p tcp --dport 1863 -j REJECT
$IPTABLES -A FORWARD -s 192.168.0.0/24 -d loginnet.passport.com -j REJECT
# Bloquear IPS de sites proibidos
$IPTABLES -I FORWARD -s 192.168.0.0/24 -d 74.208.12.174 -j DROP # koolim.com
$IPTABLES -I FORWARD -s 192.168.0.0/24 -d 210.17.215.19 -j DROP #imunitive.com
$IPTABLES -I FORWARD -s 192.168.0.0/24 -d 64.13.161.58 -j DROP # imo.im
$IPTABLES -I FORWARD -s 192.168.0.0/24 -d 64.13.161.61 -j DROP # imo.im
# Regras para liberar o outlook
$IPTABLES -A FORWARD -p udp -s 192.168.0.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.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 192.168.0.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.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 192.168.0.0/24 --dport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 192.168.0.0/24 --dport 587 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 192.168.0.0/24 --dport 110 -j ACCEPT # POP3
# Regras para liberar o FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 192.168.0.0/24 --dport 20 -j ACCEPT # FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 192.168.0.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
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 3389 -j ACCEPT # Conexão Remota
# 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 -p tcp --dport 3389 -j ACCEPT # Conexão Remota
$IPTABLES -A FORWARD -i $NETWORK -s 192.168.0.0/24 -j ACCEPT
#--------------------------------------------------------------------------------------
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