slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

1. slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Marcos Vinícius Silva
marvinoliveiras

(usa Slackware)

Enviado em 25/11/2011 - 10:58h

Bom dia, estou aqui tentando aprender sobre como usar o squid como proxy transparente e acontece que o squid está rodando assim como o meu arquivo rc.firewall mas não consigo navegar. O conteúdo do meu squid. conf é esse:
http_port 3128 transparent
visible_hostname casa
cache_mgr marvinoliveiras@dominio
error_directory /usr/share/squid/errors/pt-br

hierarchy_stoplist cgi-bin ?
cache_mem 32 MB
maximum_object_size_in_memory 2048 KB
maximum_object_size 100 MB
cache_dir ufs /var/log/squid/cache 2048 16 256
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl localnet src 192.168.2.0/24

refresh_pattern ^ftp: 360 20% 10080
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

access_log /var/log/squid/access.log

acl Safe_ports port 21 #ftp
acl Safe_ports port 70 #gopher
acl Safe_ports port 80 #http
acl Safe_ports port 210
acl Safe_ports port 280
acl Safe_ports port 443
acl Safe_ports port 488
acl Safe_ports port 563
acl Safe_ports port 591
acl Safe_ports port 631
acl Safe_ports port 777
acl Safe_ports port 873
acl Safe_ports port 901
acl Safe_ports port 1025-65535
acl connect method CONNECT
acl SSL_ports port 443
acl SSL_ports port 563
acl SSL_ports port 873
http_access deny connect !SSL_ports

acl autenticados proxy_auth REQUIRED

acl permitidos src 192.168.2.0/24

http_access allow permitidos
http_access deny all

acl domains dstdomain "/etc/squid/domains"
http_access deny domains

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

acl extensions urlpath_regex -i "/etc/squid/extensions"
http_access deny extensions



e o meu arquivo rc.firewall:

##!bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP


iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport 3128 -i eth1 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth1 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -i eth1 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -i eth1 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -i eth1 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o -eth0 -j MASQUERADE

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


desde já agradeço a atenção de todos


  


2. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Thiago Dias
thiago_dias

(usa CentOS)

Enviado em 25/11/2011 - 12:05h

Seu squid esta desorganizado, mais vamos por parte, primeiro me responda, você consegue navegar se você parar o squid e retirar a linha do firewall que faz o redirecionamento da porta 80 para a porta 3128?


3. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Marcos Vinícius Silva
marvinoliveiras

(usa Slackware)

Enviado em 25/11/2011 - 12:35h

acabo de testar e não consigo


4. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Thiago Dias
thiago_dias

(usa CentOS)

Enviado em 25/11/2011 - 12:43h

Então o problema ainda não é o Squid, deve ser o Firewall bloqueando. Pelas suas regras do Firewall você consegue navegar a partir do próprio servidor, mais não nos clientes. Você setou a politica padrão do FORWARD como DROP e não criou uma regra para liberação abaixo, quando um cliente acessa um site, globo.com por exemplo, ele utiliza a politica FORWARD e a mesma esta bloqueada por padrão, pois você liberou a porta 80 apenas para INPUT. Tem que rever suas regras de firewall.


5. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 25/11/2011 - 19:21h

Além disso você precisa ativar o ip forward

Caso não o tenha feito siga os procedimentos abaixo

chmod +x /etc/rc.d/rc.ip_forward

/etc/rc.d/rc.ip_forward start


Isso vai fazer com que sempre que você inicie o Slackware o ip forward seja ativado por padrão.


6. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 25/11/2011 - 22:59h

antes de tudo essa máquina precisa de duas interfaces de rede
1 interface para conexão (internet) = eth0
1 interface para rede (intranet) = eth1

Para compartilhar a internet adicione no script de firewall a regra abaixo:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


Nas máquinas cliente (estação) configure um ip fixo na mesma faixa de sua rede apontando para o ip do servidor que compartilha a conexão com internet (gw) e algum servidor dns
Se preferir que a estação receba ip+masc+gw+dns automático então configure o DHCP.

Segue abaixo guias de configuração do DHCP e Squid

http://mundodacomputacaointegral.blogspot.com/2011/09/configurando-servidor-dhcp-no-linux.html

http://mundodacomputacaointegral.blogspot.com/2011/11/configurando-servidor-proxy-com-squid.html




7. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Marcos Vinícius Silva
marvinoliveiras

(usa Slackware)

Enviado em 28/11/2011 - 10:28h

thiago_dias escreveu:

Então o problema ainda não é o Squid, deve ser o Firewall bloqueando. Pelas suas regras do Firewall você consegue navegar a partir do próprio servidor, mais não nos clientes. Você setou a politica padrão do FORWARD como DROP e não criou uma regra para liberação abaixo, quando um cliente acessa um site, globo.com por exemplo, ele utiliza a politica FORWARD e a mesma esta bloqueada por padrão, pois você liberou a porta 80 apenas para INPUT. Tem que rever suas regras de firewall.


o que você me sugere que mude???


8. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Thiago Dias
thiago_dias

(usa CentOS)

Enviado em 28/11/2011 - 11:23h

Primeiramente, faça o que o Saitam falou:
Crie duas interfaces de rede, uma para internet e uma para rede local, segue o exemplo do saitam:

1 interface para conexão (internet) = eth0
1 interface para rede (intranet) = eth1

e compartilhe a internet da seguinte forma:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Crie um script para facilitar sua vida.

Como o saitam dissse, configure um ipfixo em cada cliente colocando o gateway como o servidor Linux.

Depois disso tudo tente navegar nas máquinas clientes, conseguindo navegar, podemos passar para a próxima etapa.

Abraços


9. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Marcos Vinícius Silva
marvinoliveiras

(usa Slackware)

Enviado em 28/11/2011 - 12:14h

como já tenho aquele script "rc.firewall" rodando eu dei um stop depois apaguei todas as linhas e deixei apenas esses duas q vc me passou.

OBS.: O meu cenário é um pouco diferente tenho a eth1 conectada na internet e a eth0 na rede local.

complementando: não navegou


10. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Thiago Dias
thiago_dias

(usa CentOS)

Enviado em 28/11/2011 - 12:20h

Neste caso mude o eth0 por eth1 na segunda linha do compartilhamento.


11. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Marcos Vinícius Silva
marvinoliveiras

(usa Slackware)

Enviado em 28/11/2011 - 12:26h

fuçando aqui vi outro problema, antes conseguia pingar no globo.com por exemplo, agora quando tento ele aparece o ip do servidor da globo porém não dá retorno.


12. Re: slackware 13.1 + squid + iptables (firewall) [RESOLVIDO]

Thiago Dias
thiago_dias

(usa CentOS)

Enviado em 28/11/2011 - 12:29h

Isso acontece no servidor ou nos clientes?
Coloque a saída do comando: iptables -nL e iptables -t nat -nL
e coloque a saída do comando: cat /etc/resolv.conf








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts