rodrigoh79
(usa Debian)
Enviado em 11/10/2010 - 13:17h
Blz galera. Dou descrever bem o assunto pois ká não sei mais o que fazer e preciso resolver com urgência. Implementei um proxy/firewall (Debian 5 com iptables e squid). Tenho o seguinte ambiente: Servidor Windows Server 2008 com Terminal Services. As estações com windows xp e Seven devem acessar via TS Local (raramente externo) o servidor para rodar o programa de contabilidade. Simplesmente não acessa. Dá erro na hora de conectar. Já percorri internet afora atrás de dicas e tutoriais. Nada resolveu. Segue meu script de firewall para análise. Já formatei, reinstalei, configurei do zero de novo, testei com outro script. Nada. Meu modem está como bridge, sem nenhuma configuração extra (DMZ e NAT).
## Ativa Modulos
# -------------------------------------------------------
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_state
modprobe ipt_REDIRECT
modprobe ipt_owner
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
## Zera regras
# -------------------------------------------------------
iptables -F
iptables -Z
iptables -X
iptables -t nat -F
## Determina a politica padrao
# -------------------------------------------------------
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
## Ativa roteamento no kernel
# -------------------------------------------------------
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
## Abre para a interface de loopback.
# -------------------------------------------------------
iptables -A INPUT -s 127.0.0.1 -i lo -j ACCEPT
#iptables -A INPUT -s 192.168.3.0 -i lo -j ACCEPT
#iptables -A INPUT -s 192.168.2.0 -i lo -j ACCEPT
## ACCEPT (libera) pacotes de retorno da internet
# -------------------------------------------------------
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
## Libera o HTTP
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
## DNS - Libera a resolucao de nomes
# -------------------------------------------------------
#INPUT
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT
## DHCP
# -------------------------------------------------------
#iptables -A INPUT -p udp -i eth1 --sport 79 -d 192.168.2.254 -j ACCEPT
## Mascaramento de rede para acesso externo
# -------------------------------------------------------
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
## Redirencionar portas 80 para 3128
# -------------------------------------------------------
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3128
# -------------------------------------------------------
iptables -I FORWARD -p tcp -i eth1 --dport 80 -j ACCEPT
iptables -I FORWARD -p tcp -i eth1 --dport 443 -j ACCEPT
## Fechando LocalHost:
# -------------------------------------------------------
iptables -A INPUT -m tcp -p tcp -s 127.0.0.1 --dport 3128 -j DROP
## Libera a conexao para a rede interna
# -------------------------------------------------------
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
## TLL
# -------------------------------------------------------
iptables -t mangle -A OUTPUT -o ppp0 -j TTL --ttl-set 200
## Aceita conexoes vindas da rede interna com destino ao web server
# -------------------------------------------------------
iptables -A INPUT -p tcp -i eth1 --syn --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --syn --dport 443 -j ACCEPT
## Abre para uma faixa de endereco da rede local
# -------------------------------------------------------
iptables -A INPUT -p tcp --syn -i eth1 -j ACCEPT
## Abre rede
# -------------------------------------------------------
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
iptables -A INPUT -i ppp0 -j ACCEPT
iptables -A OUTPUT -o ppp0 -j ACCEPT
## Libera o MSN
# -------------------------------------------------------
#iptables -A INPUT -p tcp --dport 1863 -j ACCEPT
## Terminal Server
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 3389 -i ppp0 -j DNAT --to 10.1.1.150:3389
## VNC
# -------------------------------------------------------
#iptables -A INPUT -p tcp --dport 5900 -j ACCEPT
#iptables -A INPUT -p tcp --dport 5800 -j ACCEPT
## Liberando SSH (porta 6689 e 22 )
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 6689 -j ACCEPT
## Liberando Webmin (porta 332)
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 332 -j ACCEPT
## Libera o mysql
# -------------------------------------------------------
#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
#iptables -A INPUT -p tcp --dport 3310 -j ACCEPT
## Libera o POP SMTP
# -------------------------------------------------------
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT #SMTP
#iptables -A INPUT -p tcp --dport 110 -j ACCEPT #POP
#iptables -A INPUT -p tcp --dport 465 -j ACCEPT #SMTP
#iptables -A INPUT -p tcp --dport 587 -j ACCEPT #SMTP
#iptables -A INPUT -p tcp --dport 995 -j ACCEPT #POP
## Fechando as portas do samba caso fique de cara para a internet.
# -------------------------------------------------------
iptables -A INPUT -p tcp -i ppp0 --syn --dport 137 -j DROP
iptables -A INPUT -p tcp -i ppp0 --syn --dport 138 -j DROP
iptables -A INPUT -p tcp -i ppp0 --syn --dport 139 -j DROP
iptables -A INPUT -p tcp -i ppp0 --syn --dport 445 -j DROP
## Bloqueando U89 - software burlador de proxy
# -------------------------------------------------------
iptables -A FORWARD -p tcp --dport 9666 -j DROP
##Bloqueio de Multicast
# -------------------------------------------------------
iptables -A INPUT -s 224.0.0.0/8 -d 0/0 -j DROP
iptables -A INPUT -s 0/0 -d 224.0.0.0/8 -j DROP
##Bloqueio de Black Orifice
# -------------------------------------------------------
iptables -A INPUT -p tcp -i ppp0 --dport 12345:12345 -j DROP
iptables -A INPUT -p udp -i ppp0 --dport 12345:12345 -j DROP
##Bloqueio acesso X server
# -------------------------------------------------------
iptables -A INPUT -p tcp -i ppp0 --dport 5999:6003 -j DROP
iptables -A INPUT -p udp -i ppp0 --dport 5999:6003 -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 7100 -j DROP
##Bloqueio de NetBus
# -------------------------------------------------------
iptables -A INPUT -p tcp -i ppp0 --dport 31337 -j DROP
iptables -A INPUT -p udp -i ppp0 --dport 31337 -j DROP
##Proteç Contra IP Spoofing
# -------------------------------------------------------
iptables -A INPUT -s 10.0.0.0/8 -i ppp0 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -i ppp0 -j DROP
iptables -A INPUT -s 172.16.0.0/16 -i ppp0 -j DROP
iptables -A INPUT -s 192.168.0.0/24 -i ppp0 -j DROP
## Protecao diversas contra portscanners, ping of death, ataques DoS, etc.
# -------------------------------------------------------
#INPUT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state INVALID -j REJECT
iptables -A INPUT -p tcp -i ppp0 --dport 1023:65535 -j ACCEPT
iptables -A INPUT -p udp -i ppp0 --dport 1023:65535 -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -i ppp0 --dport 33435:33525 -j REJECT
iptables -A INPUT -p icmp -i ppp0 -j DROP
iptables -A INPUT -p icmp --icmp-type echo-reply -s 0/0 -i ppp0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 -i ppp0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -s 0/0 -i ppp0 -j ACCEPT
iptables -A OUTPUT -p icmp -o ppp0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p icmp -j DROP
iptables -A INPUT -i ppp0 -p tcp --syn -j DROP
#FORWARD
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --dport 135 -i ppp0 -j REJECT
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
#VALID
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,RST,ACK,FIN,URG -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
# Protecao contra port scanners
# -------------------------------------------------------
iptables -N SCANNER
iptables -A SCANNER -m limit --limit 5/m -j LOG --log-level 6 --log-prefix "FIREWALL: port scanner: "
iptables -A SCANNER -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL NONE -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL ALL -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i ppp0 -j SCANNER
# Protecao contra tronjans
# -------------------------------------------------------
iptables -N TROJAN
iptables -A TROJAN -m limit --limit 5/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan: "
iptables -A TROJAN -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 666 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 666 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 4000 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 6000 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 6006 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 16660 -j TROJAN
# Protecao contra trinoo
# -------------------------------------------------------
iptables -N TRINOO
iptables -A TRINOO -m limit --limit 5/m -j LOG --log-level 6 --log-prefix "FIREWALL: trinoo: "
iptables -A TRINOO -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 1524 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 27444 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 27665 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 31335 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 34555 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 35555 -j TRINOO
##Negar Ident
# -------------------------------------------------------
iptables -A INPUT -p tcp -m tcp --dport 113 -j REJECT --reject-with tcp-reset
## Reset em conexoes para portas desconhecidas
# ---------------------------------------------------------
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
## Esta regra e coracao do firewall ,
# -------------------------------------------------------
iptables -A INPUT -p tcp --syn -j DROP
Conecto a net através do pppoeconf. minha rede interna tem faixa de ip 10.1.1.0, a eth0 (ligada ao modem) está com 192.168.1.3 e o modem com 192.168.1.1.
Já estou tão ferrado que aceito scripts prontos, ou um endereço de msn para ajuda.
Grato desde já.