Firewall simples com iptables
Publicado por Romulo 20/08/2003
[ Hits: 15.590 ]
Este é script simples usando iptables pode ser utilizado em conjunto com um squid em modo transparente.
# # Script Simples para Firewall com opção de proxy transparente # #!/bin/sh modprobe ip_tables modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe iptable_nat modprobe ip_nat_ftp # Definicoes das Variaveis # Variavel das interfaces de rede IR0="eth0" IR1="eth1" # Estes são os endereços de sua rede RINTERNA="192.168.0.0/24" RFILIAL1="192.168.1.0/24" RFILIAL2="192.168.2.0/24" # Portas Altas e baixas UP_PORTS="1024:" D_PORTS=":1024" ##### Definição de Policiamento ##### # Tabela filter iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT ACCEPT iptables -t filter -P FORWARD ACCEPT # Tabela nat iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t nat -P POSTROUTING ACCEPT ##### Proteçaõ contra IP Spoofing ##### for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 >$i done ##### Ativamos o redirecionamento de pacotes (requerido para NAT) ##### echo "1" >/proc/sys/net/ipv4/ip_forward echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max ############################################################### # Tabela filter # ############################################################### ##### Chain INPUT ##### # Aceita todo o trafego vindo do loopback e indo pro loopback iptables -A INPUT -i lo -j ACCEPT # Todo trafego vindo da rede interna e das Filiais tambem sao aceitos iptables -A INPUT -s $RINTERNA -i $IR0 -j ACCEPT iptables -A INPUT -s $RFILIAL1 -i $IR0 -j ACCEPT iptables -A INPUT -s $RFILIAL2 -i $IR0 -j ACCEPT # Liberacao de PING (ICMP) na Interface Externa com certa limitacao iptables -A INPUT -i $IR1 -p icmp -m limit --limit 2/s -j ACCEPT # Liberacao de Portas de Servico para interface externa # Porta 22 (SSH) iptables -A INPUT -i $IR1 -p tcp --sport 22 -j ACCEPT # Liberando Portas Altas e DNS para interface externa iptables -A INPUT -i $IR1 -p udp --sport 53 -j ACCEPT iptables -A INPUT -i $IR1 -p udp --dport 53 -j ACCEPT iptables -A INPUT -i $IR1 -p udp --dport $UP_PORTS -j ACCEPT iptables -A INPUT -i $IR1 -p tcp --dport $UP_PORTS -j ACCEPT # Qualquer outra conexao desconhecida é imediatamente registrada e derrubada iptables -A INPUT -j LOG --log-level 6 --log-prefix "FIREWALL: INPUT " iptables -A INPUT -j DROP # A tentativa de acesso externo a estes serviços serão registrados no syslog # do sistema e serão bloqueados regras abaixo. iptables -A INPUT -i $IR1 -p tcp --dport 23 -j LOG --log-level 6 --log-prefix "FIREWALL: telnet" iptables -A INPUT -i $IR1 -p tcp --dport 110 -j LOG --log-level 6 --log-prefix "FIREWALL: pop3 " iptables -A INPUT -i $IR1 -p tcp --dport 113 -j LOG --log-level 6 --log-prefix "FIREWALL: identd " iptables -A INPUT -i $IR1 -p tcp --sport 21 -j LOG --log-level 6 --log-prefix "FIREWALL: ftp " iptables -A INPUT -i $IR1 -p udp --dport 111 -j LOG --log-level 6 --log-prefix "FIREWALL: rpc" iptables -A INPUT -i $IR1 -p tcp --dport 111 -j LOG --log-level 6 --log-prefix "FIREWALL: rpc" iptables -A INPUT -i $IR1 -p tcp --dport 137:139 -j LOG --log-level 6 --log-prefix "FIREWALL: samba " iptables -A INPUT -i $IR1 -p udp --dport 137:139 -j LOG --log-level 6 --log-prefix "FIREWALL: samba " # Bloqueia qualquer tentativa de nova conexão de fora para esta maquina iptables -A INPUT -i $IR1 -m state --state ! ESTABLISHED,RELATED -j LOG --log-level 6 --log-prefix "FIREWALL: IN eth1 " iptables -A INPUT -i $IR1 -m state --state ! ESTABLISHED,RELATED -j DROP # Qualquer outro tipo de trafego é aceito iptables -A INPUT -i $IR1 -j ACCEPT ####################################################### # Tabela nat # ####################################################### ##### Chain PREROUTING ##### # Redirecionando Porta 80 para SQUID Transparente iptables -t nat -A PREROUTING -p tcp -i $IR0 --dport 80 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -p udp -i $IR0 --dport 80 -j REDIRECT --to-port 3128 # Masquerade (NAT) iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Configuraçao da rede wireless no slackware
NetScan - o seu scanner de rede!
Front-end para backup em CDRW e DVDRW
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (19)
material de assembly x64 [RESOLVIDO] (3)
Como configurar o Openvpn do pfSense para entregar da memsa faixa de I... (1)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba