você está aqui: Home  → Arquivo de Mensagens Workshop Gratuito: Os Segredos do Shell, com o Prof. Julio Neves

Compartilhando a Internet e Bloqueando servicos de sua Lan

Colaboração: Alexis Alves

Data de Publicação: 27 de Outubro de 2004

Neste artigo mostrarei como criar um script de firewall usando iptables para compartilhar a conexao e bloquear servicos de lan como messenger e kaZaa e outros:

Após a criacão deste script salve em "/usr/local/bin" com o nome de blok_firewall como exemplo e mude sua permisão de execução utilizando o comando "chmod a+x blok_firewall" no diretorio salvo. Para o script inicializar junto com a maquina salve em "/etc/rc.d/rc.local":

Utilize um editor de texto de sua preferencia como "vi" ou "mcedit". Caracteres como "#" (cerquilha) indicam comentarios. Para tornar valido retire a "#" quando desejado.

Para executar o script manualmente execute o comando "./blok_firewall" após ter salvo em "/usr/local/bin" e alterado as permissões de execução.

#!/bin/bash
#############################################################################
#                                                                           #
#     ScripT de Regras de Firewall [ IPTABLES ]                             #
#     Autor: Alexis Alves [ alexis.alves@GLOBO.COM ]                        #
#                                                                           #
#############################################################################
#Adicionar em /etc/rc.d/rc.local a
#Linha /usr/local/bin/blok_firewall
#==========================================================================================
# Carrega os m?ulos do IPtables
#==========================================================================================
modprobe iptables
modprobe iptable_nat
iptables -F
#==========================================================================================
#Bloquear pessoas que tentarem enviar qualquer pacotes
#com IPs locais, como se fossem de uma rede interna
#(Esse c?igo n? ?recomendado para pessoas que utilizem rede local)
#==========================================================================================
#iptables -A INPUT -s 10.0.0.0/255.0.0.0 -j DROP
#iptables -A INPUT -s 172.0.0.0/255.0.0.0 -j DROP
#iptables -A INPUT -s 192.0.0.0/255.0.0.0 -j DROP
#==========================================================================================
#Protege contra pacotes danificados
#Portscanners, Ping of Death, ataques DoS, Etc.
#==========================================================================================
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP
#==========================================================================================
iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP
#==========================================================================================
#Se voc?quiser que o PC tamb? n? responda a ICMP Broadcasting,Ping,synflood
#==========================================================================================
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#==========================================================================================
# Compartilha a conex?,  ""eth0** se refere a sua iterface com a internet"
#modprobe iptable_nat
#==========================================================================================
#iptables -t nat -A POSTROUTING -o eth0** -j MASQUERADE
#echo 1 > /proc/sys/net/ipv4/ip_forward
#==========================================================================================
# Abre algumas portas
#==========================================================================================
#iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
#iptables -A INPUT -p tcp --destination-port 1021 -j ACCEPT
#iptables -A INPUT -p tcp --destination-port 1080 -j ACCEPT
#==========================================================================================
# Abre para a rede local
#==========================================================================================
#iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT
#==========================================================================================
# Fecha o resto
#==========================================================================================
#iptables -A INPUT -p tcp --syn -j DROP
#==========================================================================================
#Em seguida vem as regras para fazer o foward da porta.
#Neste caso estou direcionando a porta 22 (do SSH) na conex? com a
#internet (eth0) para o micro 192.168.0.2 da rede local:
#==========================================================================================
#iptables -t nat -A PREROUTING -i etho -p tcp --dport 22 -j DNAT --to-dest 192.168.0.2
#iptables -A FORWARD -p tcp -i eth0 --dport 22 -d 192.168.0.2 -j ACCEPT
#==========================================================================================
#
#Bloqueando servicos P2P e chat
#
#Bloqueando MSN
#iptables -A FORWARD -s LAN* -p tcp --dport 1863 -j REJECT
#iptables -A FORWARD -s LAN* -d loginnet.passport.com -j REJECT
# *LAN Rede Local
#===========================================================================================
#Bloqueando WebMsn
#===========================================================================================
#iptables -A FORWARD -s *LAN -d webmessenger.msn.com -j REJECT
#===========================================================================================
#*LAN = Rede interna (192.168.0.0/24)
#===========================================================================================
#Bloquear IMesh com IPTables:
#===========================================================================================
iptables -A FORWARD -d 216.35.208.0/24 -j REJECT
#===========================================================================================
#Bloquear Bearshare com IPTables:
#===========================================================================================
iptables -A FORWARD -p TCP --dport 6346 -j REJECT
#===========================================================================================
#Bloquear ToadNode com IPTables:
#===========================================================================================
iptables -A FORWARD -p TCP --dport 6346 -j REJECT
#===========================================================================================
#Bloquear WinMX com IPTables:
#===========================================================================================
iptables -A FORWARD -d 209.61.186.0/24 -j REJECT
iptables -A FORWARD -d 64.49.201.0/24 -j REJECT
#===========================================================================================
#Bloquear Napigator com IPTables:
#===========================================================================================
iptables -A FORWARD -d 209.25.178.0/24 -j REJECT
#===========================================================================================
#Bloquear Morpheus com IPTables:
#===========================================================================================
iptables -A FORWARD -d 206.142.53.0/24 -j REJECT
iptables -A FORWARD -p TCP --dport 1214 -j REJECT
#===========================================================================================
#Bloquear KaZaA com IPTables:
#===========================================================================================
iptables -A FORWARD -d 213.248.112.0/24 -j REJECT
iptables -A FORWARD -p TCP --dport 1214 -j REJECT
#===========================================================================================
#Bloquear Limewire com IPTables:
#===========================================================================================
iptables -A FORWARD -p TCP --dport 6346 -j REJECT
#===========================================================================================
#Bloquear Audiogalaxy com IPTables:
#===========================================================================================
iptables -A FORWARD -d 64.245.58.0/23 -j REJECT
#===========================================================================================
#Bloquear AIM com IPTables:
#===========================================================================================
iptables -A FORWARD --dport 5190 -j REJECT
iptables -A FORWARD -d login.oscar.aol.com -j REJECT
#===========================================================================================
#Bloquear ICQ com IPTables:
#===========================================================================================
iptables -A FORWARD -p TCP --dport 5190 -j REJECT
iptables -A FORWARD -d login.icq.com -j REJECT
#===========================================================================================
#Bloquear MSN Messenger com IPTables:
#===========================================================================================
iptables -A FORWARD -p TCP --dport 1863 -j REJECT
iptables -A FORWARD -d 64.4.13.0/24 -j REJECT
#===========================================================================================
#Bloquear Yahoo Messenger com IPTables:
#===========================================================================================
iptables -A FORWARD -d cs.yahoo.com -j REJECT
iptables -A FORWARD -b scsa.yahoo.com -j REJECT
#===========================================================================================
#Bloquear Napster com IPTables
#===========================================================================================
iptables -A FORWARD -d 64.124.41.0/24 -j REJECT
#===========================================================================================

Sugestões para melhoria ou correção de erros neste script podem ser enviadas para <alexis alves (a) GLOBO COM>.



Veja a relação completa dos artigos de Alexis Alves