Bom dia.
De tanto buscar soluções e essas em alguns momentos me deixarem na mão. Após obter uma solução consistente e funcional, decidi compartilhar a informação com os amigos da VOL.
1º PASSO
Ter um arquivo denominado "ip_excecoes", onde como o próprio nome já diz, iremos informar para quais IPs o servidor não irá redirecionar para a porta proxy (squid), que nesse nosso exemplo será 3128.
Criando o arquivo:
a. Criando o arquivo:
# nano /usr/local/sbin/ip_excecoes
b. Conteúdo do arquivo:
200.201.166.0/24;ConectividadeSocial_0
200.201.173.0/24;ConectividadeSocial_1
200.201.174.0/24;ConectividadeSocial_2
c. Dando permissão para executar:
# chmod +x /usr/local/sbin/ip_excecoes
2º PASSO
Fazer com que os IPs acrescentados na relação do arquivo /usr/local/sbin/ip_excecoes não sejam redirecionados para o Proxy, acrescentando ao seu script de Firewall na área do Proxy transparente as seguintes linhas de código:
Antes identifique a linha no firewall referente ao seu Proxy, a minha estava como essa aqui:
#=============================================
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#=============================================
Troquei então por:
#=============================================
# Proxy transparente com Conectividade Social
/sbin/iptables -t nat -A POSTROUTING -o eth0 -m multiport -p tcp --dports 20,21,22,25,53,110,443,465,995,1479,2083,2631,3007,3456 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth0 -m multiport -p udp --dports 20,21,53,443 -j MASQUERADE
EXCESSOES='/usr/local/sbin/ip_excecoes'
for iCaixa in `cat $EXCESSOES`; do
IPCaixa=`echo $iCaixa | cut -d ';' -f 1`
DescricaoCaixa=`echo $iCaixa | cut -d ';' -f 2`
/sbin/iptables -t nat -A PREROUTING -i eth1 -s 10.0.0.0/24 -p tcp --dport 80 -d ! $IPCaixa -j REDIRECT --to-port 3128
echo ' [ok] Exceção IP: '$IPCaixa' para '$DescricaoCaixa'...'
done
# Liberando o acesso a porta 2631
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 2631 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 2631 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -p tcp --dport 2631 -j ACCEPT
# Redireciona a porta 2631 para a mesma porta do servidor Proxy
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 2631 -j DNAT --to 10.0.0.1:2631
# Proxy transparente com Conectividade Social
#=============================================
Sumário:
eth0
Minha placa de rede externa ligado ao modem/internet
eth1
Minha placa de rede interna ligado ao hub/clientes
10.0.0.0/24
Minha rede, ou seja oc cliente recebem IPs tipo 10.0.0.2 ... Caso o servidor da sua rede tenha ip tipo 192.168.0.1 255.255.255.0, basta então substitui o IP colocado por 192.168.0.0/24.
10.0.0.1
Endereço IP do servidor Proxy
for iCaixa in `cat $EXCESSOES`; do ;done
Vai fazer um loop no arquivo de exceções, identificando cada IP e criando o linha no firewall para a liberação dos mesmos, que são separados por (;) para identificar durante o decorrer da execução do firewall, para que IPs foram abertas exceções.
Observação:
a) Após inclusão de IPs no arquivo "/usr/local/sbin/ip_excecoes" será necessário a execução do script de Firewall;
b) Nos nomes colocados no arquivo "/usr/local/sbin/ip_excecoes", NÃO utilize espaços.
Espero de algum forma ter auxiliado alguém com minha solução.
ESTOU USANDO E FUNCIONA NORMALMENTE.