Bloquear porta 80 [RESOLVIDO]

1. Bloquear porta 80 [RESOLVIDO]

Tiago Prado
tiago2001

(usa Debian)

Enviado em 04/09/2013 - 17:10h

Seguinte, estou utilizando uma máquina como gateway, ela separa duas redes e neste mesmo servidor tem o squid configurado.
As redes se conversam normalmente, tanto que utilizo apenas um IP para ser o servidor proxy.

--------------------
Rede 192.168.1.0
Gateway 192.168.1.1 (placa desse servidor)
Servidor proxy: 192.168.1.1
---------------------------------------------

Rede 192.168.4.0
Gateway 192.168.4.1 (placa desse servidor)
Servidor proxy: 192.168.1.1
--------------------------------------------


Quero bloquear as redes para não ter acesso diretamente a porta 80, faço da seguinte forma:

# iptables -I FORWARD -p tcp -s 192.168.1.0/24 --dport 80 -j DROP

Porém não posso fazer da mesma forma com a rede 192.168.4.0, pq aí não funciona a Internet, tanto colocando o proxy como sem.

Já tive a idéia de colocar o proxy 192.168.4.1 na rede 192.168.4.0, assim consigo fazer o bloqueio com

# iptables -I FORWARD -p tcp -s 192.168.4.0/24 --dport 80 -j DROP

A idéia não é muito boa pq quando uma pessoa que está na rede por exemplo 1.0 logar na rede 4.0 irá trazer as configurações de proxy padrão dela, que é 192.168.1.1 e não vai funcionar novamente.

Alguém tem alguma saída?



  


2. Re: Bloquear porta 80 [RESOLVIDO]

Alex Silva
l0g1in

(usa FreeBSD)

Enviado em 04/09/2013 - 17:40h

Para bloquear tenta assim
iptables -A FORWARD -p tcp --destination-port 80 -s 192.x.x.x/24 -j DROP ai ninguém terá acesso a internet se não tiver com o Proxy configurado ou você liberar iptables -A FORWARD -p tcp --destination-port 80 -s 192.x.x.y -j ACCEPT



3. Re: Bloquear porta 80 [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 04/09/2013 - 18:46h

Posta aqui o squid.conf e o script do iptables.


4. N funciona

Tiago Prado
tiago2001

(usa Debian)

Enviado em 04/09/2013 - 19:14h

root360... A rede 192.168.1.0 funciona normal saindo pelo proxy 192.168.1.1, o problema é bloquear a rede 192.168.4.0 usando o proxy 192.168.1.1 também

Buckminster

Somente o básico mesmo para teste:

Squid
----------------------------
http_port 3128
visible_hostname gdh
acl all src 0.0.0.0/0.0.0.0
http_access allow all
----------------------------

Iptables
------------------------------------------------------------------
# iptables -I FORWARD -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
# iptables -I FORWARD -p tcp -s 192.168.4.0/24 --dport 80 -j DROP
------------------------------------------------------------------


Configurado proxy em ambas as redes: 192.168.1.1:3128

A rede 1.0 funciona, na rede 4.0 não funciona, pode colocar o proxy que não funciona.

Se n rede 4.0 eu colocar 192.168.4.1:3128 no proxy funciona, mas a idéia n é funcionar assim e sim usando somente o proxy 192.168.1.1:3128




5. Re: Bloquear porta 80 [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 04/09/2013 - 20:05h

tiago2001 escreveu:

root360... A rede 192.168.1.0 funciona normal saindo pelo proxy 192.168.1.1, o problema é bloquear a rede 192.168.4.0 usando o proxy 192.168.1.1 também

Buckminster

Somente o básico mesmo para teste:

Squid
----------------------------
http_port 3128
visible_hostname gdh
acl all src 0.0.0.0/0.0.0.0
http_access allow all
----------------------------

Iptables
------------------------------------------------------------------
# iptables -I FORWARD -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
# iptables -I FORWARD -p tcp -s 192.168.4.0/24 --dport 80 -j DROP
------------------------------------------------------------------


Configurado proxy em ambas as redes: 192.168.1.1:3128

A rede 1.0 funciona, na rede 4.0 não funciona, pode colocar o proxy que não funciona.

Se n rede 4.0 eu colocar 192.168.4.1:3128 no proxy funciona, mas a idéia n é funcionar assim e sim usando somente o proxy 192.168.1.1:3128



Provavelmente você configurou essas duas redes no servidor DHCP.
Você pode bloquear a porta 80 com essas regras aí em cima sem problemas.
Como teu proxy não é transparente, basta você setar o proxy (192.168.1.1) nos navegadores das duas redes e no Iptables redirecionar o proxy da porta 80 para a 3128 e depois dessa regra de redirecionamento colocar as duas regras de bloqueio da porta 80.

Outra coisa: você tem quantas placas de rede nesse servidor?


6. Re: Bloquear porta 80 [RESOLVIDO]

Tiago Prado
tiago2001

(usa Debian)

Enviado em 04/09/2013 - 20:57h

Buckminster escreveu:

tiago2001 escreveu:

root360... A rede 192.168.1.0 funciona normal saindo pelo proxy 192.168.1.1, o problema é bloquear a rede 192.168.4.0 usando o proxy 192.168.1.1 também

Buckminster

Somente o básico mesmo para teste:

Squid
----------------------------
http_port 3128
visible_hostname gdh
acl all src 0.0.0.0/0.0.0.0
http_access allow all
----------------------------

Iptables
------------------------------------------------------------------
# iptables -I FORWARD -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
# iptables -I FORWARD -p tcp -s 192.168.4.0/24 --dport 80 -j DROP
------------------------------------------------------------------


Configurado proxy em ambas as redes: 192.168.1.1:3128

A rede 1.0 funciona, na rede 4.0 não funciona, pode colocar o proxy que não funciona.

Se n rede 4.0 eu colocar 192.168.4.1:3128 no proxy funciona, mas a idéia n é funcionar assim e sim usando somente o proxy 192.168.1.1:3128



Provavelmente você configurou essas duas redes no servidor DHCP.
Você pode bloquear a porta 80 com essas regras aí em cima sem problemas.
Como teu proxy não é transparente, basta você setar o proxy (192.168.1.1) nos navegadores das duas redes e no Iptables redirecionar o proxy da porta 80 para a 3128 e depois dessa regra de redirecionamento colocar as duas regras de bloqueio da porta 80.

Outra coisa: você tem quantas placas de rede nesse servidor?



Buckminster,

Já tentei fazer dessa maneira, acredito que dê algum problema referente a quando passa de uma rede para outra, pois na mesma rede do proxy funciona normal, para rede 192.168.4.0 que é feito o roteamento, não funciona...
Tenho mais uma placa de rede que é a saída pra internet.



7. Re: Bloquear porta 80 [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 04/09/2013 - 23:18h

Tem 3 placas de rede no total então?


8. Ta difícil

Tiago Prado
tiago2001

(usa Debian)

Enviado em 05/09/2013 - 21:05h

Buckminster escreveu:

Tem 3 placas de rede no total então?


Correto, 3 placas.


9. Re: Bloquear porta 80 [RESOLVIDO]

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 05/09/2013 - 23:33h

Tente habilitar o forward entre a rede 2 e o IP do firewal

iptables -I FORWARD -p tcp -s 192.168.4.0/24 -d 192.168.1.1 -j ACCEPT




10. Re: Bloquear porta 80 [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 06/09/2013 - 02:12h

Se você tem 3 placas de rede, acredito que por uma entra a internet, vamos chamar ela de eth0.
A eth0 provavelmente está conectada no modem/roteador (a não ser que você tenha dois links de internet).

As outras duas placas, eth1 e eth2 são as placas das redes internas e provavelmente estão conectadas cada uma em um switch diferente... ou não? (mas não influi no problema)

O compartilhamento no Iptables, por exemplo:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Essa regra acima diz para a placa de rede eth0 compartilhar os dados/internet com as outras placas na máquina, não importando quantas placas a mais tenha, 2, 4, 5, etc... a regra irá compartilhar com todas.

No Squid não importa se tu colocar o IP de uma rede interna tua ou da outra (http_port xxx.xxx.xxx.xxx:3128), o que importa é tu setar no navegador o IP correto do proxy (já que ele não é transparente).

Os bloqueios das portas você faz pelo Iptables ou pelo Squid mesmo daí, mas aconselho fortemente a fazer somente pelo Iptables.

Veja bem, se você não está conseguindo bloquear a porta 80 pelo Iptables, isso tem nada a ver com o Squid.
Provavelmente você está colocando as regras de bloqueio em lugar errado, talvez antes da regra de redirecionamento para o Squid, ou talvez nem tenha essa regra no teu Iptables.

Por isso pedi para você postar os dois, para analisar.
Se o teu squid.conf e o teu Iptables são somente isso daí que tu postou, não vai funcionar mesmo.

Regras de redirecionamento que deveria ter no Iptables:

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

Veja bem, essas regras acima redirecionam o tráfego da porta 80 para a 3128 do Squid. Todo bloqueio da porta 80 você faz depois dessas regras porque tanto o Iptables quanto o Squid lêem as regras de cima para baixo.

As regras abaixo redirecionam a porta 80 das duas placas das redes internas para o Squid e depois o tráfego é bloqueado para as duas redes caso alguma coisa consiga passar pelo redirecionamento:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -I FORWARD -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
iptables -I FORWARD -p tcp -s 192.168.4.0/24 --dport 80 -j DROP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

E veja bem de novo, tu está colocando as regras com -I, o -I coloca a regra no topo da chain, o -A coloca a regra na sequência, ou seja, essas duas regras acima com -I e na mesma chain (FORWARD), a regra debaixo (com 192.168.4.0) é que vai ser executada primeiro. Claro que nesse caso não influi, mas atente para isso nas próximas vezes.

Tu pode numerar as regras com -I. Mas a numeração só vale dentro de cada chain, por exemplo:

iptables -I FORWARD 1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
iptables -I FORWARD 2 -p tcp -s 192.168.4.0/24 --dport 80 -j DROP
iptables -I INPUT 1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
iptables -I INPUT 2 -p tcp -s 192.168.4.0/24 --dport 80 -j DROP

Assim ficaria na ordem, a regra com o número 1 será executada primeiro e assim sucessivamente dentro de cada chain.
Mas no exemplo de cima, as duas regras com FORWARD serão executadas primeiro que as regras com INPUT, pois estão antes.

A diferença entre o -A e o -I é que com -A as regras são lidas e executadas na sequência que estão no script e com -I sem numeração a coisa se inverte, a última regra colocada será a primeira a ser executada, dentro de cada chain.

http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras


11. Já tinha

Tiago Prado
tiago2001

(usa Debian)

Enviado em 06/09/2013 - 12:32h

andrecanhadas escreveu:

Tente habilitar o forward entre a rede 2 e o IP do firewal

iptables -I FORWARD -p tcp -s 192.168.4.0/24 -d 192.168.1.1 -j ACCEPT




Eu havia habilitado o FORWARD,mas mesmo assim testei a regra dessa forma, e não deu certo.


12. Não deu certo

Tiago Prado
tiago2001

(usa Debian)

Enviado em 06/09/2013 - 12:34h

Buckminster escreveu:

Se você tem 3 placas de rede, acredito que por uma entra a internet, vamos chamar ela de eth0.
A eth0 provavelmente está conectada no modem/roteador (a não ser que você tenha dois links de internet).

As outras duas placas, eth1 e eth2 são as placas das redes internas e provavelmente estão conectadas cada uma em um switch diferente... ou não? (mas não influi no problema)

O compartilhamento no Iptables, por exemplo:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Essa regra acima diz para a placa de rede eth0 compartilhar os dados/internet com as outras placas na máquina, não importando quantas placas a mais tenha, 2, 4, 5, etc... a regra irá compartilhar com todas.

No Squid não importa se tu colocar o IP de uma rede interna tua ou da outra (http_port xxx.xxx.xxx.xxx:3128), o que importa é tu setar no navegador o IP correto do proxy (já que ele não é transparente).

Os bloqueios das portas você faz pelo Iptables ou pelo Squid mesmo daí, mas aconselho fortemente a fazer somente pelo Iptables.

Veja bem, se você não está conseguindo bloquear a porta 80 pelo Iptables, isso tem nada a ver com o Squid.
Provavelmente você está colocando as regras de bloqueio em lugar errado, talvez antes da regra de redirecionamento para o Squid, ou talvez nem tenha essa regra no teu Iptables.

Por isso pedi para você postar os dois, para analisar.
Se o teu squid.conf e o teu Iptables são somente isso daí que tu postou, não vai funcionar mesmo.

Regras de redirecionamento que deveria ter no Iptables:

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

Veja bem, essas regras acima redirecionam o tráfego da porta 80 para a 3128 do Squid. Todo bloqueio da porta 80 você faz depois dessas regras porque tanto o Iptables quanto o Squid lêem as regras de cima para baixo.

As regras abaixo redirecionam a porta 80 das duas placas das redes internas para o Squid e depois o tráfego é bloqueado para as duas redes caso alguma coisa consiga passar pelo redirecionamento:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -I FORWARD -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
iptables -I FORWARD -p tcp -s 192.168.4.0/24 --dport 80 -j DROP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

E veja bem de novo, tu está colocando as regras com -I, o -I coloca a regra no topo da chain, o -A coloca a regra na sequência, ou seja, essas duas regras acima com -I e na mesma chain (FORWARD), a regra debaixo (com 192.168.4.0) é que vai ser executada primeiro. Claro que nesse caso não influi, mas atente para isso nas próximas vezes.

Tu pode numerar as regras com -I. Mas a numeração só vale dentro de cada chain, por exemplo:

iptables -I FORWARD 1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
iptables -I FORWARD 2 -p tcp -s 192.168.4.0/24 --dport 80 -j DROP
iptables -I INPUT 1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
iptables -I INPUT 2 -p tcp -s 192.168.4.0/24 --dport 80 -j DROP

Assim ficaria na ordem, a regra com o número 1 será executada primeiro e assim sucessivamente dentro de cada chain.
Mas no exemplo de cima, as duas regras com FORWARD serão executadas primeiro que as regras com INPUT, pois estão antes.

A diferença entre o -A e o -I é que com -A as regras são lidas e executadas na sequência que estão no script e com -I sem numeração a coisa se inverte, a última regra colocada será a primeira a ser executada, dentro de cada chain.

http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras


Já havia feito todos esses procedimentos, porém na rede 192.168.4.0 não dá. Bloqueia com ou sem proxy.




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts