Squid + Iptables - Combinação Infalível

Neste artigo, veremos como criar um Firewall e Proxy com autenticação para uma rede pequena, e também,
veremos como debugar alguns erros que podem acontecer no dia a dia.

[ Hits: 147.157 ]

Por: Phillip Vieira em 13/03/2012


O que veremos neste artigo?



Neste artigo, iremos aprender a fazer um Firewall/Proxy para uma rede pequena. O Proxy irá trabalhar com autenticação e iremos dividir todos os usuários em grupos.

Todos os exemplos deste artigo são baseados no Debian, por ser uma das distros mais usadas, mas nada impede que você adapte para outas distros.

Iremos ver também como debugar alguns erros comuns, tornando nossas vidas um pouco mais tranquilas.

Para melhor entendimento deste artigo, o leitor deve ter os seguintes conhecimentos:
  • Comandos Linux;
  • Noções de redes;
  • Configurar interfaces de rede (não abordado neste artigo).

Nosso cenário será o seguinte:
  • Firewall/Proxy : Com Debian (pode ser 5 ou 6) com 2 interfaces de rede
  • Estações : Windows

O tipo de autenticação usada será a 'ncsa_auth', que para este artigo é simples, pois trataremos de uma rede pequena.

Em outro artigo, falarei como realizar a autenticação no AD da Microsoft.

Apertem os cintos e vamos lá!

Instalando tudo

Para ter melhor aproveitamento, além do IPtables e Squid, teremos mais algumas ferramentas que irão nos ajudar, então vamos às ferramentas e instalações.

- Squid versão 3

O Squid é o Proxy propriamente dito, é com ele que iremos criar as regras para o controle de acesso a sites da Internet.

Instalação:

# apt-get update
# apt-get install squid3


- Sarg (Squid Analysis Report Generator)

Este é o programa que vai gerar para você, os relatórios dos acessos aos sites.

Instalação:

# apt-get install sarg

- Apache 2

Servidor WEB que, neste caso, precisaremos para acessar os relatórios gerados pelo Sarg e também para criar as senhas de autenticação.

Instalação:

# apt-get install apache2

- IPtables

O IPtables já vem pronto para o uso na maioria das distribuições, portanto dispensa explicações aqui.

Ou, você pode juntar tudo em um comando só:

# apt-get update && apt-get install -y squid3 sarg apache2

Traduzindo: O APT-GET vai atualizar as listas de pacotes, e se o comando for bem sucedido, ele irá instalar o Squid3 e o Sarg.

Com as ferramentas acima instaladas, podemos começar a configurá-las e utilizá-las.
    Próxima página

Páginas do artigo
   1. O que veremos neste artigo?
   2. IPtables
   3. Squid
   4. Squid.conf
   5. Sarg
   6. Debugando possíveis erros
Outros artigos deste autor

Recuperando dados do Windows usando um live-CD

Iptables - Segurança total para sua rede

Linux e Windows - Prós e Contras

Instalando o Linux Fedora 8 no Notebook Positivo v53

Samba - Dançando conforme a música

Leitura recomendada

Virtualização com Proxmox VE

Programas em Modo Texto (on Shell)

Instalando o asterisk no Debian GNU/Linux

K12LTSP - Executando o Mozilla antes do GDM

Servidor Messenger Openfire passo-a-passo no Linux

  
Comentários
[1] Comentário enviado por blaiser em 13/03/2012 - 22:43h

Mandou bem garoto..



me fala ai. meu sarg com o passar dos dias ele gera uma zica no browse do tipo DIARIO MENSAL E ANUAL. que lance é esse?

[2] Comentário enviado por phrich em 13/03/2012 - 22:57h

Obrigado blaiser!

Bom no exemplo eu utilizei o parâmetro daily do sarg, que gera os relatórios separados por dia, se vc der o comando sarg sem nenhum argumento, ele salva o relatório do que estiver no arquivo de log do squid até o momento e não mostra mais as opções de diário, semanal,etc.

Para você ver um pouco mais dos parâmetro disponíveis no sarg, consulte o manual com:

# man sarg

[3] Comentário enviado por cirinho em 16/04/2012 - 19:52h

Está "bugadão" os scripts e .conf

Eu não conseguir visualizar nada, está tudo junto. Não teve espaços nem quebra de linha. Assim fica difícil de entender, ficou bagunçado.

Não sei se o problema foi quando vc enviou se já veio assim, ou se foram os moderadores ao postar. Bom há também a possibilidade do problema ser cmgo.

[4] Comentário enviado por phrich em 16/04/2012 - 19:59h

Aqui aparece normal...

Talvez tenha dado erro no script do site na hora em que vc abriu... recarregue a página.

[5] Comentário enviado por Thiago Emannuel em 19/04/2012 - 09:43h

Na minha configuracao ta dando erro na linha

acl rede_interna 10.0.0.0/24

segue meu interfaces

thiago@ORBITA:~$ su
Senha:
root@ORBITA:/home/thiago# cd /etc/squid/
root@ORBITA:/etc/squid# ls
acls grupos sarg.conf.bak squid.conf squid.conf.bak
root@ORBITA:/etc/squid# vim squid.conf
root@ORBITA:/etc/squid# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 08:43:19| Parsing Config File: Unknown authentication scheme 'bacis'.
2012/04/19 08:43:19| Invalid Proxy Auth ACL 'acl internal_lan proxy_auth REQUIRED' because no authentication schemes are fully configured.
FATAL: Bungled squid.conf line 28: acl internal_lan proxy_auth REQUIRED
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid# cd grupos
root@ORBITA:/etc/squid/grupos# ls
moderado restrito total
root@ORBITA:/etc/squid/grupos# cat moderado
luiz.gonzaga:Mx7QbjJ4GmQp.
joaquim.juliao:aT5SmGf6ie/xY
root@ORBITA:/etc/squid/grupos# cat restrito
armando.reis:ny9XYfx8Jhix2
arthur.reis:EUXdsh0ttW.ac
root@ORBITA:/etc/squid/grupos# cat total
thiago.emannuel:xvLjfWqFsQVxk
amanda.reis:ttlNeoctSsT.c
root@ORBITA:/etc/squid/grupos#
root@ORBITA:/etc/squid/grupos# cd ..
root@ORBITA:/etc/squid# vim squid.conf
root@ORBITA:/etc/squid# ls
acls grupos sarg.conf.bak squid.conf squid.conf.bak
root@ORBITA:/etc/squid# htpasswd -c /etc/squid/grupos/Administradores thiago.emannuel
New password:
Re-type new password:
Adding password for user thiago.emannuel
root@ORBITA:/etc/squid# cd grupos/
root@ORBITA:/etc/squid/grupos# ls
Administradores moderado restrito total
root@ORBITA:/etc/squid/grupos# cat Administradores
thiago.emannuel:2HItEIt3cqFDk
root@ORBITA:/etc/squid/grupos# cd ..
root@ORBITA:/etc/squid# vim squid.conf
root@ORBITA:/etc/squid# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 08:52:13| Parsing Config File: Unknown authentication scheme 'bacis'.
2012/04/19 08:52:13| Invalid Proxy Auth ACL 'acl internal_lan proxy_auth REQUIRED' because no authentication schemes are fully configured.
FATAL: Bungled squid.conf line 28: acl internal_lan proxy_auth REQUIRED
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid# vim squid.conf
root@ORBITA:/etc/squid# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 08:52:56| Parsing Config File: Unknown authentication scheme 'bacis'.
2012/04/19 08:52:56| Invalid Proxy Auth ACL 'acl Administradores proxy_auth "/etc/squid/grupos/Administradores"' because no authentication schemes are fully configured.
FATAL: Bungled squid.conf line 33: acl Administradores proxy_auth "/etc/squid/grupos/Administradores"
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid# vim squid.conf
root@ORBITA:/etc/squid# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 08:54:17| Parsing Config File: Unknown authentication scheme 'bacis'.
2012/04/19 08:54:17| Invalid Proxy Auth ACL 'acl total proxy_auth "/etc/squid/grupos/total"' because no authentication schemes are fully configured.
FATAL: Bungled squid.conf line 36: acl total proxy_auth "/etc/squid/grupos/total"
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid#
root@ORBITA:/etc/squid# vim squid.conf
root@ORBITA:/etc/squid# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:02:40| strtokFile: /etc/squid/acls/palavras_permitidas not found
2012/04/19 09:02:40| aclParseAclLine: WARNING: empty ACL: acl palavras_permitidas url_regex "/etc/squid/acls/palavras_permitidas"
2012/04/19 09:02:40| strtokFile: /etc/squid/acls/sites_restritos not found
2012/04/19 09:02:40| aclParseAclLine: WARNING: empty ACL: acl sites_restritos dstdomain "/etc/squid/acls/sites_restritos"
2012/04/19 09:02:40| aclParseAclLine: Invalid ACL type 'localhost'
FATAL: Bungled squid.conf line 63: acl to localhost dst 127.0.0.0/8
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid#










root@ORBITA:/etc/squid# ls
acls grupos sarg.conf.bak squid.conf squid.conf.bak
root@ORBITA:/etc/squid# cd acls/
root@ORBITA:/etc/squid/acls# ls
palavras_proibidas sites_restrito
root@ORBITA:/etc/squid/acls# vim palavras_proibidas
root@ORBITA:/etc/squid/acls#
















root@ORBITA:/etc/squid/acls# ls
palavras_proibidas sites_restrito
root@ORBITA:/etc/squid/acls# touch palavras_permitidas
root@ORBITA:/etc/squid/acls# ls
palavras_permitidas palavras_proibidas sites_restrito
root@ORBITA:/etc/squid/acls# cat palavras_proibidas
sexo*
jogo*
jogatina*
facebook*
youtube*
orkut*
messenger*
msn*
playboy*
root@ORBITA:/etc/squid/acls# vim palavras_permitidas
root@ORBITA:/etc/squid/acls# vim sites_restrito
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# ls
palavras_permitidas palavras_proibidas sites_restrito
root@ORBITA:/etc/squid/acls#


root@ORBITA:/etc/squid/acls# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:24:42| aclParseAclLine: Invalid ACL type 'localhost'
FATAL: Bungled squid.conf line 63: acl to localhost dst 127.0.0.0/8
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:25:57| aclParseAclLine: Invalid ACL type 'interna'
FATAL: Bungled squid.conf line 64: acl rede interna 10.0.0.0/24
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:26:41| aclParseAclLine: Invalid ACL type '10.0.0.0/24'
FATAL: Bungled squid.conf line 64: acl rede_interna 10.0.0.0/24
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid/acls#


root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 10.0.1.1
netmask 255.255.255.0
network 10.0.1.0
broadcast 10.0.1.255

auto eth1:rede2
iface eth1:rede2 inet static
address 10.0.2.1
netmask 255.255.255.0
network 10.0.2.0
broadcast 10.0.2.255
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls#
root@ORBITA:/etc/squid/acls# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:29:28| aclParseAclLine: Invalid ACL type '10.0.0.0/24'
FATAL: Bungled squid.conf line 64: acl rede_interna 10.0.0.0/24
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:29:58| aclParseAclLine: Invalid ACL type '10.0.2.0/24'
FATAL: Bungled squid.conf line 64: acl rede_interna 10.0.2.0/24
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:30:51| aclParseAclLine: Invalid ACL type '10.0.1.0/24'
FATAL: Bungled squid.conf line 64: acl rede_interna 10.0.1.0/24
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:31:25| aclParseAclLine: Invalid ACL type '10.0.2.12.1'
FATAL: Bungled squid.conf line 64: acl rede_interna 10.0.2.12.1
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:31:55| aclParseAclLine: Invalid ACL type '10.0.2.1/24'
FATAL: Bungled squid.conf line 64: acl rede_interna 10.0.2.1/24
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid/acls#
root@ORBITA:/etc/squid/acls# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 10.0.1.1
netmask 255.255.255.0
network 10.0.1.0
broadcast 10.0.1.255

auto eth1:rede2
iface eth1:rede2 inet static
address 10.0.2.1
netmask 255.255.255.0
network 10.0.2.0
broadcast 10.0.2.255
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# /etc/init.d/squid restart
Restarting Squid HTTP proxy: squid2012/04/19 09:38:21| aclParseAclLine: Invalid ACL type '10.0.0.0/8'
FATAL: Bungled squid.conf line 64: acl rede_interna 10.0.0.0/8
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
failed!
root@ORBITA:/etc/squid/acls#
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# vim /etc/squid/squid.conf
root@ORBITA:/etc/squid/acls# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 10.0.1.1
netmask 255.255.255.0
network 10.0.1.0
broadcast 10.0.1.255

auto eth1:rede2
iface eth1:rede2 inet static
address 10.0.2.1
netmask 255.255.255.0
network 10.0.2.0
broadcast 10.0.2.255

Agradeceria quem pudesse me ajudar

[6] Comentário enviado por phrich em 19/04/2012 - 10:35h

Bom dia Thiago Emanuel!

Eu sugiro que vc abra um tópico na comunidade http://www.vivaolinux.com.br/comunidade/Squid-Iptables

Assim poderemos te ajudar, já explique o que vc disse aqui e poste o seu squid.conf lá, assim será melhor para responder ok?

[7] Comentário enviado por Thiago Emannuel em 19/04/2012 - 11:47h

ok.... estarei postando la

[8] Comentário enviado por kakashi963 em 17/05/2012 - 20:32h

Meu squid bloqueia o acesso a todos os sites. A politica de segurança aqui deve ser:
Alguns ips com acesso total a internet: ipsLiberados
Alguns ips com acesso total mas com filtro de palavras: ipsLiberadosRestritos
Palavras que não podem conter nos acessos: palavras bloqueadas
Sites permitidos a todos os usuários da rede: sitesLiberados
Download é bloqueado: download
Acesso a site de antivirus é liberado: antivirus

Para o caso dos ipsLiberadosRestritos, da certo, se o usuário tem seu ip nessa listagem, ele acessa tudo menos o conteudo das palavras, ta ok.

Entretando, para o restante dos usuários da rede que deveriam poder acessar pelo menos os sitesLiberados, tudo fica como bloqueado.

Minhas acls:

acl antivirus dstdomain "/etc/squid3/acls/antivirus"

acl ipsLiberados src "/etc/squid3/acls/ipsLiberados"

acl ipsLiberadosRestritos src "/etc/squid3/acls/ipsLiberadosRestritos"

acl palavrasBloqueadas url_regex -i "/etc/squid3/acls/palavrasBloqueadas"

acl sitesLiberados dstdomain "/etc/squid3/acls/sitesLiberados"

acl download url_regex -i "/etc/squid3/acls/download"

acl localnet src 192.168.0.0/24
acl localhost src 127.0.0.1/32



E meus http_access:


http_access allow antivirus
http_access allow ipsLiberados
http_access deny download
http_access allow ipsLiberadosRestritos !palavrasBloqueadas
http_access allow localhost

http_access deny all !sitesLiberados

[9] Comentário enviado por phrich em 17/05/2012 - 21:15h

Prezado kakashi963 eu recomendo que vc abra um tópico na comunidade sobre squid / iptables pois lá além de ser o local correto para dúvidas, vc terá mais pessoas para ajudar.

Abraços.

[10] Comentário enviado por afdominguez em 23/05/2012 - 23:42h

Amigo, esta dando o seguinte erro:


root@lorrany:~# /etc/rc.local
iptables v1.4.10: REDIRECT: Bad value for "--to-ports" option: "10.15.84.20:3389"
Try `iptables -h' or 'iptables --help' for more information.


[11] Comentário enviado por phrich em 23/05/2012 - 23:46h

Cara, depende de como vc colocou a regra...

Seria mais interessante vc utilizar o fórum para postar suas dúvidas, além de ser o mais correto, vc estaria sendo ajudado por outras pessoas e ajudaria também.

http://www.vivaolinux.com.br/comunidade/Squid-Iptables

[12] Comentário enviado por johnnyb em 13/07/2012 - 14:27h

amigo não intendi essa parte e habilitar ou desabilitar ?

# REMOVE ARQUIVOS TEMPORÁRIOS, SE VOCÊ HABILITAR ESTA OPÇÃO CORRE O RISCO DE ENCHER O DISCO
remove_temp_files yes

[13] Comentário enviado por phrich em 13/07/2012 - 15:45h

Caro johnnyb, se vc habilitar vc irá remover os arquivos temporários gerados pelo SARG, na hora da escrita eu errei, mas habilite para esvaziar o disco ok?

[14] Comentário enviado por ronymoliveira em 11/09/2012 - 11:50h

Bom dia, como faço para implementar o IPTables + squid tendo a seguinte situação:
Internet da GVT: 192.168.25.1
Rede Interna: 192.168.1.1 a 192.168.1.254
Sou novato aqui, estou usando o Debian, se tiver como me ajudar, agradeço.

Atenciosamente,

Rony

[15] Comentário enviado por phrich em 12/09/2012 - 12:11h

A situação é a mesma, basta vc adaptar para sua necessidade.

Qqr coisa, vá até http://www.vivaolinux.com.br/comunidade/Squid-Iptables e abra um tópico lá, mas com este artigo vai ser tranquilo vc fazer, basta adaptar, além é claro das demais configurações de rede.

[16] Comentário enviado por nene_guitar em 25/10/2012 - 20:47h

seguindo os passos
cheguei a esse erro.
ja instalei via yast
o apache2 e também o pacote apache2-utils

linux-62cn:~ # htpasswd -c /etc/squid/grupos/sala1
Could not open passwd file -c for reading.
Use -c option to create new one.

linux-62cn:/ # zypper se htpasswd
Loading repository data...
Reading installed packages...
No packages found.

linux-62cn:/ # find / -name htpasswd
find: `/var/lib/ntp/proc/3517/net': Invalid argument
find: `/var/lib/ntp/proc/3519/net': Invalid argument
find: `/var/lib/ntp/proc/3755/net': Invalid argument
^[[/usr/bin/htpasswd
find: `/proc/3517/net': Invalid argument
find: `/proc/3519/net': Invalid argument
find: `/proc/3755/net': Invalid argument
find: `/run/user/jesse/gvfs': Permission denied
linux-62cn:/ # find / -name apache2
/etc/apache2
/etc/init.d/apache2
/etc/sysconfig/apache2
/etc/sysconfig/SuSEfirewall2.d/services/apache2
/etc/logrotate.d/apache2
/var/cache/apache2
/var/lib/apache2
/var/lib/systemd/migrated/apache2
find: `/var/lib/ntp/proc/3517/net': Invalid argument
find: `/var/lib/ntp/proc/3519/net': Invalid argument
find: `/var/lib/ntp/proc/3755/net': Invalid argument
/var/log/apache2
/usr/lib64/apache2
/usr/share/apache2
/usr/share/doc/packages/apache2
find: `/proc/3517/net': Invalid argument
find: `/proc/3519/net': Invalid argument
find: `/proc/3755/net': Invalid argument
find: `/run/user/jesse/gvfs': Permission denied




[17] Comentário enviado por phrich em 26/10/2012 - 10:52h

Cara vc está com vários erros de permissões aí...

Faz o seguinte, abre um tópico na comunidade www.vivaolinux.com.br/comunidade/Squid-Iptables lá terão vários usuários para ajudar além de ser o local adequado para isto ok?

[18] Comentário enviado por xirux em 11/07/2014 - 12:19h

Cara, muito bom o artigo, realmente show. Foi pros favoritos e será de valia nos meus arquivos com certeza!
Se posso opinar, no squid.conf eu impediria o uso do proxy por rede externa limitando com a adição do ip do FW, antes da porta na linha:

http_port 10.0.0.254:3128

E adicionaria em sarg.conf um limite de logs para o squid, impedindo problemas com espaço:

lastlog 10

Parabéns!

[19] Comentário enviado por phrich em 11/07/2014 - 16:14h

Obrigado xiux, essa opção do SARG é ótima!
Com relação ao proxy, bloqueamos isso no iptables, visto que a porta 3128 está liberada apenas para a rede interna.
abs!

[20] Comentário enviado por jnt.santos em 14/10/2014 - 11:40h

Obrigado pelo Tutorial
Mais quando tento logar nao pede usuário nem senha.
Estou fazendo em teste então mantive o seu mesmo script no meu squid3(so alterando os erros), a UNICA DIFERENÇA FOI NO IPTABLES só possuo uma placa de rede então configurei assim o IPtables:
# Carrega os modulos
#modprobe iptables
modprobe iptable_nat
# Limpa a tabela filter
iptables -F
iptables -t nat -F
iptables -t mangle -F

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

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

iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 110 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 25 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 587 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3128 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 137 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 139 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 88 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 53 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 445 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 111 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 901 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 548 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 2049 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3000 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3389 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3900 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 4900 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 23 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 2323 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 9100 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 1723 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 47 -j ACCEPT

# Abre para a rede local
iptables -A INPUT -p tcp --syn -s 192.168.10.0/255.255.255.0 -j ACCEPT

Depois na estação configuro para o IP so server e para a porta 3128, o que pode estar errado?

[21] Comentário enviado por phrich em 14/10/2014 - 11:54h

Caro jnt.santos,

Autenticação com proxy transparent e 1 placa de rede?

Só com mágica mesmo rsrsrs.

Remova as linhas de redirecionamento que vai funcionar.

[22] Comentário enviado por jnt.santos em 14/10/2014 - 12:06h

Opa Princh Tbm, Valeu pela ajuda, MAIS ainda não pede nada =/, cara esta assim agora
# Carrega os modulos
#modprobe iptables
modprobe iptable_nat
# Limpa a tabela filter
iptables -F
iptables -t nat -F
iptables -t mangle -F

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

# Proxy Transparente
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#ptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3128

iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 110 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 25 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 587 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3128 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 137 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 139 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 88 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 53 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 445 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 111 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 901 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 548 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 2049 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3000 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3389 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3900 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 4900 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 23 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 2323 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 9100 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 1723 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 47 -j ACCEPT

# Abre para a rede local
iptables -A INPUT -p tcp --syn -s 192.168.10.0/255.255.255.0 -j ACCEPT

[23] Comentário enviado por phrich em 14/10/2014 - 12:09h

Veja as suas regras novamente, estão faltando algumas coisas nelas, compare novamente com o artigo e imagine como seu script deve ser adaptado.

O correto mesmo para as dúvidas é no fórum, onde poderemos compartilhar com outras pessoas tbém ;-)

[24] Comentário enviado por ronivonjunio em 21/10/2015 - 18:43h



[25] Comentário enviado por ronivonjunio em 21/10/2015 - 18:46h

BOA TARDE ! OTIMO ARTIGO , GOSTEI MUITO, SOU INICIANTE E USO O OPEN SUSE TERIA UM TUTORIAL DO OPEN SUSE? COM ESSE MSMO ARTIGO?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts