Iptables (iptables.sh)

Bloqueando MSN de máquinas cadastradas em um arquivo

Categoria: Segurança

Software: Iptables

[ Hits: 28.334 ]

Por: Ricardo Lino Olonca


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

[3] Comentário enviado por wellingtonpg em 08/05/2007 - 09:33h

Kra gostei muito disto.
Coloquei istoaqui na empresa e ficou beleza, porem eu não consegui que uma máquina "X" use o MSN e outras não.

Alguem pode me dar uma luz?

[4] Comentário enviado por neonx em 15/05/2007 - 15:32h

wellingtonpg... libere a porta 1863 para o ip da maquina...

iptables -A FORWARD -s IP_DA_MAQUINA -p tcp --dport 1863 -j ACCEPT

[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?

[6] Comentário enviado por Gabriel_h em 10/09/2007 - 20:54h

tem como se bloquear direto no modem não, no meu speedstream 5200 tinha uma aba pra isso

[7] Comentário enviado por lipecys em 27/09/2007 - 08:46h

Cara, valew pelo .conf, muito bom.

[8] Comentário enviado por caosdp em 13/10/2007 - 09:54h

ñ é mais facil fazer o bloqueio do msn com regras do squid?
e pq vc não carrega os modprobe do iptables no inicio do script?

[9] Comentário enviado por mourackb em 16/10/2007 - 09:43h

Em qal arquivo eu coloco essas alterações

[10] Comentário enviado por nadsat em 28/01/2008 - 13:38h

alguem percebeu que ha uma porta 53 no inicio do script ?

ele indica varias portas porem não descreve oque é a porta 53.
suspeito heim :P

[11] Comentário enviado por SyN em 28/01/2008 - 14:32h

53 seria dns

[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)

Ao rodrigomoschetto
Eu uso Jabber na empresa.

[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...


[15] Comentário enviado por comfaa em 28/10/2008 - 10:45h

muito bom !!

[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


Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts