Proxy transparente [RESOLVIDO]

13. Re: Proxy transparente [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/01/2012 - 14:55h

OK.


  


14. Re: Proxy transparente [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 04/01/2012 - 15:01h

@renato_hateen
para saber o caminho do executável do iptables no terminal digite: $whereis iptables
com o resultado mostrado do executável coloca no script!

exemplo
$IPT=/sbin/iptables

e assim utiliza a variável $IPT criada que informa o caminho do executável iptables


15. Re: Proxy transparente [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/01/2012 - 15:33h

Boa saitam.


16. Re: Proxy transparente [RESOLVIDO]

Ivan Carlos dos Santos
ivancsantos

(usa Debian)

Enviado em 04/01/2012 - 15:55h

Thalysson S escreveu:

No squid.conf coloque esta linha:

http_port ip_do_seu_servidor:3128 transparent

Depois, no arquivo de configuração do Iptables coloque esta regra, para jogar todo o tráfego para o squid.

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

Se achar melhor, poste as configurações que tu já fez.


Abraço.



Renato, boa tarde!

Quando for testar verifique se sua interface de rede interna é "eth0", se for é só utilizar a regra (acima) já postada pelo colega Thalysson, se não for, altere para o nome da interface interna (eth1, eth2, etc).

Mas precisa acrescentar mais uma regra (para maior organização é interessante que as variáveis fiquem no começo do script do firewall, todas juntas, mas pode fazer aqui também sem problemas) ficaria assim:


INT_NET="192.168.1.0/24"
IPTABLES=`/bin/which iptables`
$IPTABLES -t nat -A PREROUTING -i ethX -p tcp --dport 80 -j REDIRECT --to-port 3128
$IPTABLES -A INPUT -i ethX -s $INT_NET -p tcp --dport 3128 -j ACCEPT


OBS: Substitua o endereço de INT_NET pelo endereço de sua rede local. Por ex: se seu servidor tiver ip 192.168.0.254 então no INT_NET coloque 192.168.0.0/24.
Substitua ethX pela sua interface de rede interna.


Explicação: na regra que o colega Thalysson postou você altera a porta dos pacotes enviados à porta 80 (http) para a porta 3128 antes que o servidor faça o roteamento, então agora você deve liberar essa porta no INPUT do servidor. Faça exatamente como postei, para não haver o perigo de deixar o Proxy aberto para internet pois poderia ser usado por bots.


Espero ter ajudado no esclarecimento de sua dúvida,

Abraço!

Ivan Santos


17. Re: Proxy transparente [RESOLVIDO]

Ivan Carlos dos Santos
ivancsantos

(usa Debian)

Enviado em 04/01/2012 - 16:25h

Ahh outra coisa, o proxy transparente só trata o trafego http 80... logo os outros serviços que você configurou não serão liberados/bloqueados pelo proxy.

Para controlar o tráfego de outros serviços como ftp por ex. você deve utilizar o iptables. Se você está com dificuldades com iptables recomendo a leitura do livro "Dominando Firewall Iptables - Urubatan Neto" de linguagem muito simples, ótimo para aprender!



18. Re: Proxy transparente [RESOLVIDO]

Renato de Morais Rocha
renato_hateen

(usa Fedora)

Enviado em 04/01/2012 - 18:33h

cara por favor me da mais uma ajuda
olha ai meu iptables ta certo?
me desculpa mais ainda estou meio
perdido




# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth+ -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -o eth+ -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


19. Re: Proxy transparente [RESOLVIDO]

Renato de Morais Rocha
renato_hateen

(usa Fedora)

Enviado em 05/01/2012 - 08:33h

cara muito obrigado!!!
eu vou deixar meu iptables assim
como essa configuração que vc posto

obrigado!!!


20. Re: Proxy transparente [RESOLVIDO]

Ivan Carlos dos Santos
ivancsantos

(usa Debian)

Enviado em 05/01/2012 - 10:44h

Caro colega Saitam, seu script não está configurado para uso com proxy transparente, que é o caso do nosso amigo Renato.

@Renato, estou postando um script de iptables padrão que utilizo, ele deve ajudar no que você precisa atualmente mas provavelmente será necessário que você faça alterações para o ambiente em que ele irá rodar, por isso é recomendado a leitura que sugeri anteriormente, aqui está:



#!/bin/bash
#
# description: Este script controla o start/stop do servico de
# firewall baseado no IPTABLES.
#

case "$1" in
start)

echo -e "\nIniciando o FIREWALL...\n"

# ------------------------------------------------------------------------------
# Remove todas as regras
# ------------------------------------------------------------------------------
$BIN -F
$BIN -X
$BIN -Z
$BIN -F -t nat
$BIN -X -t nat
$BIN -F -t mangle
$BIN -X -t mangle
echo "Limpando Regras ............................. [ OK ]"

# ------------------------------------------------------------------------------
# Definicao de variaveis
# ------------------------------------------------------------------------------
IPTABLES="/sbin/iptables"
INT_NET="192.168.1.0/24" # Endereço da rede interna
EXT_IF="eth0" # Interface de rede Internet
INT_IF="eth1" # Interface de rede Intranet
EXT_IP=`ifconfig $EXT_IF | grep inet | cut -d : -f 2 | cut -d \ -f 1`
INT_IP="192.168.1.254 # IP da Interface INT_IF deste servidor

# ------------------------------------------------------------------------------
# Carregando Modulos
# ------------------------------------------------------------------------------
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_mark
modprobe ipt_MARK
modprobe ipt_string

# ------------------------------------------------------------------------------
# Politicas Padrao
# -----------------------------------------------------------------------------
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward

$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -i $INT_IF -s $INT_NET -j ACCEPT

echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth1/rp_filter

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

echo "Aplicando Politicas Padrao .................... [ OK ]"

# ------------------------------------------------------------------------------
# Portas permitidas
# ------------------------------------------------------------------------------
$IPTABLES -A FORWARD -i $INT_IF -s $INT_NET -o $EXT_IF -m multiport -p tcp --dport 20,21,22,25,53,110,143,443,587,993,3389 -j ACCEPT
$IPTABLES -A FORWARD -i $INT_IF -s $INT_NET -o $EXT_IF -p udp --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -i $INT_IF -s $INT_NET -o $EXT_IF -p icmp -j ACCEPT
------------------------------------------------------------------------------
# Servico publicado: ssh
# ------------------------------------------------------------------------------
$IPTABLES -A INPUT -i $EXT_IF -m state --state NEW -p tcp -d $EXT_IP --dport 22 -j ACCEPT

# ------------------------------------------------------------------------------

# ------------------------------------------------------------------------------
# Proxy Transparente
# ------------------------------------------------------------------------------
$IPTABLES -t nat -A PREROUTING -i $INT_IF -s $INT_NET -p tcp --dport 80 -j REDIRECT --to-port 3128

# ------------------------------------------------------------------------------
# Logando tudo o que nao e permitido
# ------------------------------------------------------------------------------
$IPTABLES -A INPUT -j LOG --log-prefix "BLOQUEIO DE INPUT:" -m limit --limit 5/minute
$IPTABLES -A OUTPUT -j LOG --log-prefix "BLOQUEIO DE OUTPUT:" -m limit --limit 5/minute
$IPTABLES -A FORWARD -j LOG --log-prefix "BLOQUEIO DE FORWARD:" -m limit --limit 5/minute


echo "Aplicando Politicas Customizadas ................ [ OK ]"

iptables-save > /var/firewall-last-state

;;


stop)
# ------------------------------------------------------------------------------
# Limpando todas as regras
# ------------------------------------------------------------------------------
$BIN -F
$BIN -X
$BIN -Z
$BIN -F -t nat
$BIN -X -t nat
$BIN -Z -t nat
$BIN -F -t mangle
$BIN -X -t mangle
$BIN -Z -t mangle

# ------------------------------------------------------------------------------
# Definindo politicas padrao
# ------------------------------------------------------------------------------
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

echo 0 > /proc/sys/net/ipv4/ip_forward


;;


restart)

$0 stop
$0 start

;;



*)

echo "Sintaxe: firewall {start|stop|restart}"

;;
esac




21. Re: Proxy transparente [RESOLVIDO]

Renato de Morais Rocha
renato_hateen

(usa Fedora)

Enviado em 09/01/2012 - 08:22h

pessoal vlw pela ajuda funciono
ta ok agora


22. Re: Proxy transparente [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/01/2012 - 08:34h

Por favor, caso seu problema esteja solucionado, marque como resolvido e escolha a melhor reposta.
A comunidade VOL agradece!



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts