Script para Firewall - Utlizando iptables
Publicado por Marcos Estival 14/11/2003
[ Hits: 13.694 ]
Homepage: www.mgconline.com.br
Script para Firewall, utiliza variaveis de ambiente, muito facil de mudar, quando necessário muda-se apenas as variaveis e pronto.
# # SCRIPT FIREWALL # # By Estival # #!/bin/sh # # Adicionando modulos do iptables (OBS: remova o serviço de iptables e ipchains na inicialização) modprobe ip_tables modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe iptable_nat modprobe ip_nat_ftp # Definicoes das Variaveis de Ambiemte, utilize a IR0 para interface da rede local, e IR1 para interface # externa, se a mesma for Speedy ou qualquer outra que usa ppp, coloque nesta variavel a interface que # esta sendo utilizada, exemplo ppp0, eth1 # RINTERNA coloque o endereço de sua rede interna # ENDREMOTO coloque o endereço de internet valido para acesso via SSH caso vai fazer conexões # remotas neste host para gerencia-lo IR0="eth0" IR1="ppp0" RINTERNA="10.62.3.0/24" ENDREMOTO= 200.200.200.100 UP_PORTS="1024:" D_PORTS=":1024" ##### Definicao 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 ##### Protecao 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 "4096" > /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 tambem aceito iptables -A INPUT -s $RINTERNA -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 # Porta 22 (SSH) iptables -A INPUT -i $IR1 -s 200.193.231.163 -p tcp --dport 22 -j ACCEPT # Liberando Portas Altas 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 e 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 servicoos serao registrados no syslog # do sistema e serao bloqueados pelas 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 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: netbios " iptables -A INPUT -i $IR1 -p udp --dport 137:139 -j LOG --log-level 6 --log-prefix "FIREWALL: netbios " # Bloqueia qualquer tentativa de nova conexao de fora para esta maquina iptables -A INPUT -i $IR1 -m state --state ! ESTABLISHED,RELATED -j LOG --log-level 6 --log-prefix "FIREWALL: IN " 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 (somente para proxy 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 # Exemplo de redirecionamento de portas para HOST na Rede interna iptables -t nat -A PREROUTING -p tcp -i $IR1 --dport 4899 -j DNAT --to 10.62.3.55:4899 iptables -t nat -A PREROUTING -p udp -i $IR1 --dport 4899 -j DNAT --to 10.62.3.55:4899 # Masquerade iptables -t nat -A POSTROUTING -o $IR1 -j MASQUERADE
Script de Backup para FITA DAT usando "afio"
Fazer backup de todas base de dados no PostgreSQL
Fluxbox - Slideshow de wallpapers aleatórios
E-mails através de um servidor remoto
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Preciso resolver um erro de DPKG (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (2)
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta