Script para Firewall - Utlizando iptables
Publicado por Marcos Estival 14/11/2003
[ Hits: 14.039 ]
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
ipshow - exibir informações de sua rede
Transforme a manpage e infopage em pdf e texto
Backup diario rotativo MySQL + Backup semanal mantendo uma cópia local e remota
Ajuste de horário e sincronismo
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - APAGA AS MSG <.APAGADAS> GERADAS PELO SCRIPT delete_all_u
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Quais os códigos mais dificeis que vcs sabem fazer? (4)
Fiz uma pergunta no fórum mas não consigo localizar (14)
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (1)
Não consigo instalar distro antiga no virtualbox nem direto no hd (7)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)









