joao.claudio
(usa Debian)
Enviado em 20/08/2007 - 14:32h
Galera tenho o seguinte ambiente:
Uma máquina linux com Debian Etch que possui três placas de rede, a eth0 foi configurado com o endereço da minha rede interna: 10.1.1.254 e as outras duas com dois endereços de válidos, exemplo:
eth1 200.200.200.200 e eth2 200.200.200.201.
A eth1 vai recebe o NAT para dar acesso à Internet para toda a minha rede interna.
A eth2 eu quero fazer toda a configuração de redirecionamento para meus servidores internos: como o Terminal Server, o RRAS, e o Servidor Web.
O problema é que todo esse ambiente só funciona quando deixo minhas regras padrões com ACCEPT.
Sei que isso é um enorme furo de segurança, mas não estou conseguindo resolver.
Ficaria muito grato que alguém da comunidade me ajudasse.
Segue abaixo todo o meu script de firewall:
#!/bin/bash
#Limpando regras
if [ "$1" = "flush" ]; then
echo -n "Limpando regras..."
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -F -t nat
iptables -X
iptables -X -t nat
iptables -Z
iptables -Z -t nat
echo "Regras Limpas"
fi
#Definindo políticas padrão
echo -n "Iniciando regras do firewall"
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -t nat -F
iptables -X
iptables -Z
#Criando variáis para as placas de rede
INTRA=10.1.1.254
INTER=200.200.200.200
DMZ=eth2
INT=eth0
INFO1=10.1.1.2
INFO2=10.1.1.3
INFO3=10.1.1.4
#Liberacao de Loopback
iptables -A INPUT -i lo -j ACCEPT
#Abrindo portas para conexõinternas
iptables -A OUTPUT -p tcp -s $INTRA -d 0/0 --destination-port 1024:65535 -j ACCEPT
iptables -A OUTPUT -p udp -s $INTRA -d 0/0 --destination-port 1024:65535 -j ACCEPT
#SSH
iptables -A INPUT -p tcp --dport 22 -s $INFO1 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s $INFO1 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s $INFO3 -j ACCEPT
# Regras Iptables para Bloquear ataques Brute Force no SSH
# copia da Dicas-L
#
http://www.dicas-l.com.br/dicas-l/20060724.php
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name sshattack --set
iptables -A INPUT -p tcp --dport 22 --syn -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j LOG --log-prefix 'SSH REJECT: '
iptables -A INPUT -p tcp --dport 22 --syn -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j REJECT --reject-with tcp-reset
iptables -A FORWARD -p tcp --syn --dport 22 -m recent --name sshattack --set
iptables -A FORWARD -p tcp --dport 22 --syn -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j LOG --log-prefix 'SSH REJECT: '
iptables -A FORWARD -p tcp --dport 22 --syn -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j REJECT --reject-with tcp-reset
#Liberando ping
iptables -A INPUT -p icmp --icmp-type 0 -s $INFO1 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -s $INFO1 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -s $INFO3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -s $INFO1 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -s $INFO1 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -s $INFO3 -j ACCEPT
#Conectividade social
CAIXA="200.252.47.0/24 200.201.160.0/20"
for ip in $CAIXA
do
iptables -t nat -A PREROUTING -p tcp -d $ip -j ACCEPT
iptables -A FORWARD -p tcp -d $ip -j ACCEPT
done
#Unibanco AIG
AIG="200.230.42.0/24"
for ip2 in $AIG
do
iptables -t nat -A PREROUTING -p tcp -d $ip2 -j ACCEPT
iptables -A FORWARD -p tcp -d $ip2 -j ACCEPT
done
### Regras PREROUTING
# Redireciona as conexõvindas da rede externa na porta 3389 para o ip 192.168.0.200
iptables -t nat -A PREROUTING -i $DMZ -p tcp --dport 3389 -j DNAT --to 10.1.1.4:3389
iptables -A FORWARD -i $INT -o $DMZ -p tcp --dport 3389 -j ACCEPT
#Teste de direcionamento de site
iptables -t nat -A PREROUTING -i $DMZ -p gre -j DNAT --to 10.1.1.9
iptables -t nat -A PREROUTING -i $DMZ -p tcp --dport 1723 -j DNAT --to 10.1.1.9
iptables -A FORWARD -i $INT -o $DMZ -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i $DMZ -p tcp -d 200.184.42.201 --dport 1723 -j ACCEPT
iptables -A INPUT -i $DMZ -p gre -j ACCEPT
#Virando os serviç FTP, SMTP, POP, DNS, HTTP, HTTPS, SQUID
#Entradas
iptables -A INPUT -p tcp --destination-port 20 -j ACCEPT # FTP
iptables -A INPUT -p tcp --destination-port 21 -j ACCEPT #FTP
iptables -A INPUT -p tcp --destination-port 25 -j ACCEPT #SMTP
iptables -A INPUT -p tcp --destination-port 47 -j ACCEPT #PPTP
iptables -A INPUT -p tcp --destination-port 53 -j ACCEPT #DNS
iptables -A INPUT -p udp --destination-port 53 -j ACCEPT #DNS
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT # HTTP (Apache)
iptables -A INPUT -p tcp --destination-port 110 -j ACCEPT # POP3
iptables -A INPUT -p tcp --destination-port 137 -j ACCEPT # NETBIOS
iptables -A INPUT -p tcp --destination-port 138 -j ACCEPT # NETBIOS
iptables -A INPUT -p tcp --destination-port 139 -j ACCEPT # NETBIOS
iptables -A INPUT -p tcp --destination-port 389 -j ACCEPT # LDAP
iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT # HTTPS
iptables -A INPUT -p tcp --destination-port 445 -j ACCEPT # LDAP
iptables -A INPUT -p tcp --destination-port 3128 -j ACCEPT # SQUID
iptables -A INPUT -p tcp --destination-port 1723 -j ACCEPT # PPTP
iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT # MYSQL
iptables -A INPUT -p tcp --destination-port 3389 -j ACCEPT # RDP
iptables -A INPUT -p tcp --destination-port 2323 -j ACCEPT # Sergio Franco
iptables -A INPUT -p tcp --destination-port 5000 -j ACCEPT # OpenVPN
iptables -A INPUT -p tcp --destination-port 8080 -j ACCEPT # Unibanco AIG
iptables -A INPUT -p gre -j ACCEPT
#Liberando ICMP para fora
iptables -A OUTPUT -p icmp -s $INTRA -d 0/0 -j ACCEPT
iptables -A INPUT -p icmp -s 10.1.1.0/255.255.255.0 -d 10.1.1.254 -j ACCEPT
#Mascarando endereç e definindo gateway
/sbin/modprobe iptable_nat
/sbin/modprobe ip_gre
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -j ACCEPT
#Definindo proxy transparente
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128