Olha, prefira criar um script de firewall pra você, fica bem melhor.
Vou postar aqui um exemplo simples de firewall de acordo com sua rede, ok?
Abra o terminal, abra um novo arquivo com o seguinte comando.
sudo gedit /etc/init.d/firewall
Dentro dessa janela, cole o seguinte conteúdo:
#!/bin/bash
#### Declarando variáveis ####
# Interface da Internet:
ifinternet="eth0"
# Interface da Rede Local
iflocal="eth1"
# IP da Internet
ip_internet="192.168.1.40"
# IP da Rede Local
rede_local="192.168.10.0/24"
#### Função "start" ####
iniciar(){
## Limpa todas as regras ##
iptables -F
iptables -t nat -F
iptables -t mangle -F
## Carrega módulos ##
modprobe ip_tables
modprobe iptable_mangle
modprobe iptable_nat
## Habilita roteamento no kernel ##
echo 1 > /proc/sys/net/ipv4/ip_forward
## Compartilha a internet ##
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
#### Regras de Firewall ####
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 80 -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -i $iflocal -j ACCEPT
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p udp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --syn -s $rede_local -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#### Tráfego para Squid #####
iptables -A INPUT -i $iflocal -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -i $iflocal -p udp --dport 3128 -j ACCEPT
iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i $iflocal -p udp --dport 80 -j REDIRECT --to-port 3128
}
parar(){
iptables -F
iptables -F -t nat
}
status (){
iptables -L -v -n
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
"status")status;;
*) echo "Use os parâmetros start, stop ou status"
esac
Mais uma vez volto a repetir, se a eth1 é o gateway, então não precisa definir gateway para ela no interfaces.
Então, deixe-o assim:
auto lo
iface lo inet loopback
## Interface da Internet ##
auto eth0
iface eth0 inet static
address 192.168.1.40
netmask 255.255.255.0
gateway 192.168.1.1
## Interface da Rede Local ##
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
O que acha de deixar o squid.conf assim:
http_port 3128 transparent
visible_hostname Escola
cache_mem 350 MB
cache_access_log /var/log/squid3/access.log
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl bloqueados dstdomain redtube.com
http_access deny bloqueados
acl palavrasproibidas dstdom_regex "/etc/squid3/palavrasproibidas"
http_access deny palavrasproibidas
acl url url_regex -i "/etc/squid3/palavrasproibidas"
http_access deny url
acl redelocal src 192.168.10.0/24
http_access allow localhost
http_access allow redelocal
http_access deny !redelocal
http_access deny all
Obs: Aqui acl bloqueados dstdomain redtube.com você deve colocar os sites (URL's) que deseja bloquear.
Agora, também, você deve criar o arquivo /etc/squid3/palavrasproibidas e dentro dele colocar as palavras que você quer que sejam bloqueadas.
Agora, vamos funcionar o Firewall, apague as entradas de seu firewall no /etc/rc.local, dê permissão de execução ao novo script de firewall com sudo chmod +x /etc/init.d/firewall, então execute-o com sudo service firewall start, reinicie o squid com sudo service squid3 restart, então teste sua rede.
Duvido que tenha somente 5 máquinas na rede, então aumente a range do DHCP, deixe-o assim:
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option routers 192.168.10.1;
option broadcast-address 192.168.10.255;
}
Reinicie o serviço com sudo service isc-dhcp-server restart
Se tudo der certo, coloque agora os serviços para iniciarem durante a carga do sistema.
sudo update-rc.d isc-dhcp-server defaults
sudo update-rc.d squid3 defaults
sudo update-rc.d firewall start 99 2 3 4 5 . stop 0 1 6