Este arquivo, além de ter uma configuração típica de firewall, também bloqueia o acesso ao MSN de algumas máquinas, cadastradas em um outro arquivo.
É útil quando você tem que bloquear várias máquinas com ip's saltados, ou seja, que não estão em seqüência, além de deixar o arquivo mais limpo, facilitando a leitura.
A linha do MSN usa um "for", lendo o arquivo /etc/sem_msn, que contém uma relação de IPs que devem ser bloqueados.
Uma outra idéia é permitir que uma pessoa (um gerente, por exemplo) consiga mudar as permissões do MSN quando quiser, sem precisar solicitar à área de Informática (acreditem, passei por isso!). Neste caso, o arquivo deve estar no Home do usuário, e um script no cron checaria quando esse arquivo fosse alterado.
# Ativando o roteamento
echo 1 > /proc/sys/net/ipv4/ip_forward
# Limpando as regras do firewall
iptables -F
iptables -F -t nat
iptables -A FORWARD -j LOG
# Liberando os serviços
# 22 - ssh (necessário para acessar o servidor)
# 25 - smtp (envio de email)
# 110 - pop3 (recebimento de email)
# 80 - http (páginas web)
# 443 - https (páginas seguras)
# 21 - ftp (transferências de arquivos)
# 3128 - proxy (necessário para as estações navegarem na internet)
iptables -A FORWARD -s 10.0.0.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -p icmp -j ACCEPT
# Liberando tudo para o Diretor
iptables -A FORWARD -s 10.0.0.10 -j ACCEPT
# Bloqueando acessos suspeitos
iptables -A FORWARD -d 212.211.132.32 -p tcp --dport 80 -j DROP
iptables -A FORWARD -d 199.239.233.9 -p tcp --dport 80 -j DROP
iptables -A FORWARD -d 209.8.40.140 -p tcp --dport 80 -j DROP
iptables -A FORWARD -d 209.59.139.38 -p tcp --dport 80 -j DROP
iptables -A FORWARD -d 66.7.200.245 -p tcp -j DROP
iptables -A FORWARD -d 66.150.14.24 -p tcp --dport 80 -j DROP
iptables -A FORWARD -d 208.111.159.15 -p tcp --dport 80 -j DROP
#Bloqueio do Msn
for i in `cat /etc/sem_msn.lst`
do
iptables -A FORWARD -s $i -p tcp --dport 1863 -j REJECT
iptables -A FORWARD -s $i -d loginnet.passport.com -j REJECT
done
# Liberando o acesso ao site da Debian para o servidor de arquivos
iptables -A FORWARD -s 10.0.0.2 -d 200.211.132.32 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.2 -d 128.101.240.212 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.2 -d 128.135.136.147 -p tcp --dport 80 -j ACCEPT
# Liberando o site de atualização do antivírus
iptables -A FORWARD -s 10.0.0.0/24 -d 193.86.3.38/29 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -d 200.204.102.154/31 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -d 193.86.103.18 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -d 207.46.225.221 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -d 206.154.203.13 -p tcp --dport 80 -j ACCEPT
# Liberando a atualização do Ad-ware
iptables -A FORWARD -s 10.0.0.0/24 -d 82.99.19.14/28 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -d 207.44.136.40 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -d 72.246.49.42/27 -p tcp --dport 80 -j ACCEPT
# Liberando acesso ao Windows Update
iptables -A FORWARD -s 10.0.0.0/24 -d 207.46.209.122 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -d 64.4.21.91 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -d 200.171.222.93 -p tcp --dport 86 -j ACCEPT
# Bloqueando o restante
iptables -A FORWARD -s 10.0.0.0/24 -j REJECT
# Liberando o acesso do proxy
iptables -A INPUT -s 10.0.0.0/24 -d 10.0.0.1 -p tcp --dport 3128 -j ACCEPT
iptables -A OUTPUT -s 192.168.0.3 -d 0/0 -j ACCEPT
# Habilitando o mascaramento (necessário para sair sem o proxy)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Comentários
[1] Comentário enviado por eversonamancio em 28/04/2007 - 11:48h
Ótima dica.
Falando em MSN, alguém da comunidade sabe se, existe uma maneira de permitir que um usuário do MSN numa LAN consiga conversar somente com usuários dessa mesma LAN ?
[2] Comentário enviado por removido em 02/05/2007 - 14:01h
Então everson, o msn nao disponibiliza isso se nao tiver a conecção com a internet, mas tem outros programas que fazem isso que vc deseja. ja vi para o windows esse tipo de programa, mas ele nao reconhece como usuariu e sim como pc da rede. O nome do software é winmessenger.
fl
[5] Comentário enviado por novato2007 em 29/08/2007 - 10:49h
Olá aproveitando essa publicação, eu preciso fazer aqui na empresa um bloqueio de acesso de sites na propria maquina linux da empresa que usamos como servidor do sistema da empresa, como o sistema é leve e a empresa não é grande, usamos a maquina como estação de trabalho, no caso tenho percebido que quem está utilizando ela constantemente vem abrindo site "orkut, webmessenger, webmail".. nesse pc tem linux conectiva 10, gostaria de saber como faço desde o começo para criar algum comando que impessa a placa de rede dele (eth0) de enviar os dados desses sites para o modem qdo ele tentar acessar no navegador.... não é para bloquear os pcs que conectam nele para usar o sistema e sim bloquear ele mesmo, mas apenas alguns sites... o acesso a net aqui na empresa é feito atravez de modem adsl que está ligado no hub e cada pc está ligado tbem no hub... então de qualquer maquina vai direto para o modem, sem passar por um servidor de controle de trafego, queria bloquear apenas nessa propria maquina linux alguns sites... não sei como fazer, alguém pode me ajudar?
[12] Comentário enviado por rodrigomoschetto em 06/07/2008 - 14:34h
Mudando um pouco de assunto, eu vi alguém discutindo aqui sobre como bloquear msn somente para acesso externo e lembrei de uma coisa. Alguém aqui lembra do ICQ Corp??? Era um ICQ soh pra rede local... eta tempo bão... hehehehehe
[13] Comentário enviado por ricardoolonca em 09/07/2008 - 13:42h
Ao novato2007
Uma forma simples de fazer isso é colocar no arquivo /etc/hosts a seguinte entrada:
127.0.0.1 www.orkut.com
Isso faz com que o nome www.orkut.com sempre seja traduzido para o endereço local da estação. Logo, a página fica inacessível,
Ao caosdp
A escolha é sua. Mas se bloquear no proxy vc vai ter que garantir que todos os usuário usam proxy nos seus msn.
Quanto ao modprobe, só é necessário usá-lo se o módulo do iptables estiver compilado como "modulo"no kernel. Como o kernel que eu uso já incorpora o módulo por padrão não é necessário chamá-lo com modprobe
Ao mourackb
Esse script deve ser rotado ao iniciar a máquina. Dependendo da sua distro, pode ser /etc/init.d/iptables, ou /etc/rc.d/rc.firewall, etc. Em caso de dúvida, coloque ele em /etc/rc.local.
Ao nadsat
A porta 53 (udp) é usada para resoluções dns. Sem esse acesso, nenhum estação da rede poderia navegar por nome (por exemplo, www.uol.com.br estaria bloqueado, mas se fosse acessar por ip - 200.221.2.45 - estaria liberado)
[14] Comentário enviado por heroes em 18/08/2008 - 15:04h
Oi...
O script ta bem detalhado, aborda pontos importante, testei na minha rede, mas meu problema eh com a caixa e o conectividade socil, se aponto para porta 3128 nao abre, se libero o user do RH para acesso sem a porta 3128 controlada pelo squid acabo deviando do foco e meu chefe fica stressado pq la ta liberado a navegação...
sou novato na nisso, mas tem como leberar os pedidos para o ip da caixa para que nao passem pela porta 3128? no meu caso nao eh proxy transparente...
Alguem falou sobre msn somente na lan, usa o openfire com o spark...
[16] Comentário enviado por pqd em 19/10/2010 - 16:00h
Parabéns jhow por esse seu artigo, para mim foi de grande utilidade pq lendo essas informaçoes me sanaram mtas duvidas, este tuto e mais um livro que comprei, que tbm gostaria de recomendar o Dominando firewall IPTABLES do Urubatan Neto.
Mais uma vez meus parabens