wesleymauricio
(usa Debian)
Enviado em 14/03/2011 - 13:57h
Estou criando um firewall para deixar apenas a porta 3128 do squid liberada com opção de proxy transparente, ou seja, redirecionando a porta 80 para a 3128 e deixando tbm a porta 67 do DHCP liberada.
Está tudo funcionando, exceto que os clientes não estão pegando IP automatico, quando deixo sem regras e com a politica padrão ACCEPT funciona, os clientes pegam IP automatico, então o problema é nas regras que liberam o DHCP mesmo.
Estou usando a ultima versão do DHCPD que é udhcpd (1:1.17.1-8) e não tenho certeza que a porta que ele utiliza é mesmo a 67.
Segue abaixo o script do firewall:
#!/bin/bash
iniciar(){
#POLITICA PADRAO DROP
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
#Liberando o Ping pra internet
iptables -A OUTPUT -p icmp --icmp-type 8 -s 192.168.1.132 -d 0/0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -s 0/0 -d 192.168.1.132 -j ACCEPT
#Liberando o Ping pra rede externa
iptables -A OUTPUT -p icmp --icmp-type 8 -s 192.168.0.1 -d 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -s 192.168.0.0/24 -d 192.168.0.1 -j ACCEPT
#Liberando loopback
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -d 127.0.0.1 -j ACCEPT
#Liberando consultas DNS para o servidor
iptables -A OUTPUT -p udp -s 192.168.1.132 --sport 1024:65535 -d 0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 --sport 53 -d 192.168.1.132 --dport 1024:65535 -j ACCEPT
#Liberando acesso http para o servidor
iptables -A OUTPUT -p tcp -s 192.168.1.132 --sport 1024:65535 -d 0/0 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 80 -d 192.168.1.132 --dport 1024:65535 -j ACCEPT
#Liberando acesso ssl para o servidor
iptables -A OUTPUT -p tcp -s 192.168.1.132 --sport 1024:65535 -d 0/0 --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 443 -d 192.168.1.132 --dport 1024:65535 -j ACCEPT
#Liberando acesso ftp para o servidor
iptables -A OUTPUT -p tcp -s 192.168.1.132 --sport 1024:65535 -d 0/0 --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 21 -d 192.168.1.132 --dport 1024:65535 -j ACCEPT
#Liberando o Squid para a rede externa
iptables -A INPUT -p tcp -s 192.168.0.0/24 --sport 1024:65535 -d 192.168.0.1 --dport 3128 -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.0.1 --sport 3128 -d 192.168.0.0/24 --dport 1024:65535 -j ACCEPT
#Liberando SSH
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.1.0/24 --sport 22 -j ACCEPT
#Liberando o DHCP para a rede externa
iptables -A INPUT -i eth1 -p tcp --sport 1024:65535 --dport 67 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 67 --dport 1024:65535 -j ACCEPT
#Redirecionando a porta 80 para o proxy
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d 192.168.0.1 -p tcp --dport 80 -j REDIRECT --to-port 3128
}
parar(){
iptables -F
iptables -F -t nat
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parametros start, stop ou restart!"
esac