Comecei a trabalhar com
Linux este ano, e mesmo assim procuro compartilhar minhas descobertas sobre este SO com os colegas.
Ao começar a utilizar o
Squid, que diga-se de passagem é um maravilhoso proxy de código aberto, me deparei com vários problemas que estou resolvendo aos poucos, através de pesquisa em fóruns e sites especializados na internet.
Agora me deparo com outro problema, os posts e dicas que venho encontrando não são claros o suficiente para que pessoas, que como eu não estão completamente familiarizados com os detalhes do Linux e pior ainda, do iptables.
Bem, vamos ao que importa, como liberar o acesso à internet de alguns programas que não funcionam através de proxy.
Em primeiro lugar precisamos saber quais e que tipos de portas o programa utiliza, vamos usar como exemplo o email (pop, smtp), normalmente utilizando o outlook. Esses programas não conseguem utilizar o Squid, pois ele não consegue gerenciar os protocolos pop e nem o smtp, por isso o único caminho é o firewall. Usaremos o iptables, que é nativo da maioria das distribuições Linux.
Logue como root. Abra um documento de texto com o seu editor preferido, eu uso o vim, e crie um arquivo com um nome qualquer, o qual eu chamarei de firewall. Digite as seguintes linhas:
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
#até aqui você avisa o kernel que quer compartilhar a conexão com a internet
iptables -F
iptables -t nat -F
iptables -t mangle -F
#até aqui você limpou todos as regras existentes no firewall
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# no meu caso, a internet é a conexão ppp0, caso a sua seja outra, basta trocar o ppp0
#pelo nome da sua conexão, por exemplo eth0.
#aqui você ativou o compartilhamento de internet através de mascaramento, ou nat. O
#famoso rotear a internet. neste momento é como se seu servidor Linux fosse apenas um
#roteador, aqueles dlink da vida e qualquer pessoa que colocar o ip do seu servidor
#como gateway vai ter acesso total à net, sem precisar passar pelo Squid, e todos os
#serviços de internet da sua rede estarão funcionando, inclusive os indesejados, por isso
#vamos trancar ó nosso gateway e liberar somente o que queremos.
iptables -P FORWARD DROP
#Aqui, eu disse para o iptables que apesar de a internet estar compartilhada, ele não
#deve deixar passar informação entre a internet e a rede local, isolando-as.
# Agora é só começar a liberar as portas que nos interessam, obrigatoriamente temos
#que liberar o DNS, senão o outlook não vai conseguir encontrar o seu provedor.
iptables -A FORWARD -p udp --sport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
# pronto, o dns já está liberado, se você estiver em um computador que usa seu servidor
#como gateway e de um ping em algum site, o site será encontrado mas não responderá,
#afinal só liberamos a porta 53 do protocolo udp, e o ping usa protocolo ICMP.
iptables -A FORWARD -p tcp --sport 25 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --sport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
# caso você queira que outro programas funcionem, basta criar uma linha destas para
#cada porta usada pelo programa que você quer fazer funcionar.
Salve o arquivo e saia.
Obs: respeite maiúsculas e minúsculas, senão não funciona.
Ainda como root, vamos tornar este arquivo executável com o seguinte comando dentro do diretório em que você criou o arquivo:
# chmod +x firewall
Agora copie o arquivo para o diretório /sbin:
# cp firewall /sbin/
Pronto, agora é só digitar no prompt:
# firewall
E o outlook estará funcionando enquanto o servidor não for reiniciado, depois você terá que digitar firewall novamente para aplicar as regras.
Você pode colocá-lo para executar automaticamente na inicialização, procure aqui no VOL que tem como fazer isso.
Logue como root. Abra um documento de texto com o seu editor preferido, eu uso o vim, e crie um arquivo com um nome qualquer, o qual eu chamarei de firewall.
Amigo, eu usei o nome firewall para o arquivo, mas poderia ter colocado qualquer um, como firewall.sh, libera portas, café-com-manteiga,etc.
qualquer nome pode ser usado, desde que voce consiga associar do que se trata depois..
eu uso o editor vim , então fica assim
# vim firewall
pronto, agora é só seguir o restante da dica.
falow