Squid+iptables x cliente de e-mail [RESOLVIDO]

1. Squid+iptables x cliente de e-mail [RESOLVIDO]

Deuzenildo
deuz

(usa Debian)

Enviado em 13/01/2012 - 15:47h

Olá, bom, o problema é simples, apesar de nao saber como resolver, e extenso, veja meu squid.conf e script de firewall, ocorre que a rede consegue navegar na net, faz proxy das paginas certinho, bloqueia o q deve bloquear etc.. a unica coisa, nenhuma maquina da rede consegue enviar ou receber e-mail pelo outlook. nao sei se é no squid ou no firewall, se possivel os amigos em ajudarem nisso, fico muito grato.

Squid.conf:
[root@proxy ~]# cat /etc/squid/squid.conf
http_port 3128
visible_hostname proxy

# Configuraçs de cache, dono, logs, errors
cache_effective_user squid
cache_effective_group squid
cache_mem 700 MB
cache_dir diskd /etc/squid/cache/1 1999 128 512 Q1=64 Q2=72
cache_access_log /var/log/squid/access.log
cache_log /etc/squid/logs/cache.log
cache_store_log /etc/squid/logs/store.log
error_directory /usr/share/squid/errors/Portuguese

# Atualizaç do cache
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
auth_param basic children 5
auth_param basic realm Internet Security Pisa
auth_param basic credentialsttl 1 hours
auth_param basic casesensitive off
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

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 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT

# ---- Cache do Windows Update ----
refresh_pattern windowsupdate.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern www.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|dll|msi) 4320 100% 43200 reload-into-ims

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 redelocal src 192.168.1.0/24

acl nodown url_regex -i "/etc/squid/nodown"
http_access deny nodown

#Libera msn para os IP's inseridos no arquivo msn
acl IPLIBERAR src 192.168.1.248 192.168.1.249 192.168.1.253 192.168.1.2
http_access allow IPLIBERAR

acl libera url_regex "/etc/squid/libera"
http_access allow libera all
acl proibidos url_regex -i "/etc/squid/proibidos"
http_access deny proibidos all

http_access allow localhost
http_access allow redelocal

http_access deny all

Firewall
[root@proxy ~]# cat /etc/init.d/firewall
#/bin/sh
firewall_start() {
ipt="/sbin/iptables"
http=80
https=443
### Passo 1: Limpando as regras ###
echo "==============================================="
echo "| :: LIMPANDO REGRAS ANTIGAS :: |"
echo "==============================================="
$ipt -F INPUT
$ipt -F OUTPUT
$ipt -F FORWARD
echo "Limpando todas as regras .................[ OK ]"
# Definindo a Politica Default das Cadeias
#$ipt -P INPUT DROP
#$ipt -P FORWARD DROP
#$ipt -P OUTPUT ACCEPT
echo "Setando as regras padrao .................[ OK ]"
# Passo 2: Desabilitar o trafego IP entre as placas de rede ###
#echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Setando ip_foward ........................[ OK ]"

# Interfaces
IADSL=eth1
ILAN=eth0
ILocal=lo
# Redes Internas
LAN=192.168.1.0/255.255.255.0
#ADSL=10.1.1.5/255.0.0.0

### Passo 3: Carregando os modulos do iptables ###
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_MASQUERADE
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
echo "Carregando modulos do iptables ...........[ OK ]"

### Passo 4: Agora, vamos definir o que pode passar e o que nao ###
# Cadeia de Entrada
# LOCALHOST - ACEITA TODOS OS PACOTES
$ipt -A INPUT -i lo -j ACCEPT
#$ipt -A INPUT -i $ILAN -p tcp multiport 1863 -j ACCEPT
# PORTA $http - ACEITA PARA A REDE LOCAL
$ipt -A INPUT -i $ILAN -p tcp --dport $http -j ACCEPT
# PORTA 22 - ACEITA PARA A REDE LOCAL
$ipt -A INPUT -i $ILAN -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -i $ILAN -p tcp --dport 25 -j ACCEPT
$ipt -A INPUT -i $ILAN -p tcp --dport 110 -j ACCEPT
$ipt -A INPUT -i $ILAN -p tcp --dport 1392 -j ACCEPT
# No $ipt, temos de dizer quais sockets sao validos em uma conexao
$ipt -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
echo "Setando regras para INPUT ................[ OK ]"

# Manter conexoes ja estabelecidas para nao parar
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Cadeia de Reenvio (FORWARD).
# Primeiro, ativar o mascaramento (nat).
$ipt -t nat -F POSTROUTING

$ipt -t nat -A POSTROUTING -o $IADSL -j MASQUERADE
echo "Ativando mascaramento de IP ..............[ OK ]"

## Redireciona para SQUID
#iptables -A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dport 80,3128 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -s 192.168.1.0/24 -p tcp -m multiport --dport 80,3128 -m state --state NEW -j ACCEPT

$ipt -t nat -A PREROUTING -i $ILAN -p tcp -m multiport --dport 80,443,1863 -j REDIRECT --to-port 3128

#$ipt -t nat -A PREROUTING -i $ILAN -p tcp --dport $https -j REDIRECT --to-port 3128

# Agora dizemos quem e o que podem acessar externamente
# No $ipt, o controle do acesso a rede externa e feito na cadeia "FORWARD"
# Abre para a interface de loopback.
$ipt -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
# Abre para uma faixa de enderecos da rede local
$ipt -A INPUT -p tcp --syn -s $LAN -j ACCEPT

# Ignora pings
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# PORTA 3128 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport 3128 -j ACCEPT
# PORTA 53 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p udp --dport 53 -j ACCEPT
# PORTA 110 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport 110 -j ACCEPT
# PORTA 25 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport 25 -j ACCEPT
# PORTA 443 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport $https -j ACCEPT
# PORTA 21 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport 21 -j ACCEPT
# porta msn
$ipt -A FORWARD -i $ILAN -p tcp --dport 1863 -j ACCEPT
# No $ipt, temos de dizer quais sockets sao validos em uma conexao
$ipt -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
echo "Setando regras para FOWARD ...............[ OK ]"
# Apesar do padrao do forward ser bloqueio. Aqui a regra eh duplicada para gerar log,
# ou seja, tudo o que eh bloqueado por default no forward eh logado aqui
$ipt -A FORWARD -m limit --limit 2/m -j LOG --log-prefix "FORWARD: Bloqueio Padrao "
$ipt -A FORWARD -j DROP
# Finalmente: Habilitando o trafego IP, entre as Interfaces de rede
echo "1" > /proc/sys/net/ipv4/ip_forward
# Ignora qualquer pacote de entrada, vindo de qualquer endereco, a menos
# que especificado o contrario acima, Bloqueia tudo.
$ipt -A INPUT -p tcp --syn -j DROP
echo "Setando ip_foward: ON ....................[ OK ]"
echo "Firewall configurado com sucesso .........[ OK ]"

#iptables -A forward -p tcp -s 192.168.1.0/24 -d 0/0 --dport 110 -j MASQUERADE

}

firewall_restart() {
firewall_start
}

firewall_stop() {


echo "==========================================="
echo "| :: DESLIGANDO FIREWALL :: |"
echo "==========================================="

# Limpa as regras
$ipt -F INPUT
$ipt -F OUTPUT
$ipt -F FORWARD
echo "Limpando todas as regras .................[ OK ]"

}

case "$1" in
'start')
firewall_start
;;
'stop')
firewall_stop
;;
'restart')
firewall_restart
;;
*)
firewall_start
esac


qualquer dica, será valida.

grande abraço.


  


2. Re: Squid+iptables x cliente de e-mail [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 13/01/2012 - 16:01h

aplique as regras iptables abaixo no script


iptables -A FORWARD -s 192.168.1.0/24 -p tcp -m multiport --dport 80,443,53,25,110,3128 -m state --state NEW -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p udp -m multiport --dport 53 -m state --state NEW -j ACCEPT


dessa forma esta liberando para toda rede os serviços HTTP,HTTPS,DNS,SMTP,POP3,SQUID nas respectivas portas 80,443,53,25,110,3128


Outra coisa adicione no seu squid.conf
http_port 3128 transparent
SE E SOMENTE SE for proxy transparente


3. resposta

Bruno Mota da Silva
bruno mota

(usa Debian)

Enviado em 14/01/2012 - 11:08h



Bom dia prezado,

Isso também aconteceu comigo. Depois de muito tempo descobri que era problema de dns: fiz o seguinte teste: em uma estação que passava pelo squid e iptables coloquei nas propriedades da lan o dns da operadora manualmente, logo os e-mails pelo outlook conseguiam ser enviados e recebidos. Depois que instalei o BIND9 o problema normalizou e até agora não tive problema.

Faz o teste e coloca aqui o resultado.

Abaços


4. Re: Squid+iptables x cliente de e-mail [RESOLVIDO]

Deuzenildo
deuz

(usa Debian)

Enviado em 14/01/2012 - 13:46h

Olá, tentei as opções porem sem sucesso. Inseri as regras, coloquei o "transparent" no squid.conf e tambem coloquei nas config da placa de rede do cliente o DNS externo, mesmo assim nao deu certo.

Qualquer novidade eu falo, e se alguem mais souber, sinta a vontade para compartilhar.

Abraços..


5. Re: Squid+iptables x cliente de e-mail [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 14/01/2012 - 14:29h

## Redireciona para SQUID
#iptables -A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dport 80,3128 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -s 192.168.1.0/24 -p tcp -m multiport --dport 80,3128 -m state --state NEW -j ACCEPT

#$ipt -t nat -A PREROUTING -i $ILAN -p tcp --dport $https -j REDIRECT --to-port 3128


analisando seu script firewall esta comentado as regras com #
Descomente e reinicie o script de firewall.




6. Re: Squid+iptables x cliente de e-mail [RESOLVIDO]

Deuzenildo
deuz

(usa Debian)

Enviado em 14/01/2012 - 14:42h

Bom pessoal, abrigado pela ajuda, encontrei um script aqui VOL mesmo, peguei do post do prgs.linux em http://www.vivaolinux.com.br/etc/Firewall-paulod_dlua, com algumas modificações basicas, deu certo.

valeu a todos..






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts