FIREWALL COM IPTABLES
Publicado por Joabes Carlos de Carvalho 13/09/2003
[ Hits: 12.286 ]
Homepage: http://www.fwsnet.com.br / http://www.bookmail.com.br
Download script_firewall_iptables.txt
Esse é um script de firewall com iptables, ele está bem detalhado e comentado as linhas, para que você saiba o que cada uma delas significa.
Dúvids entre em contato
# FIREWALL COM IPTABLES # # #**SCRIPT DE FIREWALL***# #!/bin/sh # Load the NAT module (this pulls in all the others). #modprobe iptable_nat # Turn on IP forwarding #echo 1 > /proc/sys/net/ipv4/ip_forward # In the NAT table (-t nat), Append a rule (-A) after routing (POSTROUTING) # which says to MASQUERADE the connection (-j MASQUERADE). iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE # Allows forwarding specifically to our LAN iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT # Allow dhcp requests #iptables -A INPUT -i eth0 -p udp --sport bootpc --dport bootps -j ACCEPT #iptables -A INPUT -i eth0 -p tcp --sport bootpc --dport bootps -j ACCEPT #iptables -A INPUT -i eth0 -p udp --sport bootps --dport bootpc -j ACCEPT #iptables -A INPUT -i eth0 -p tcp --sport bootps --dport bootpc -j ACCEPT # Allow dns requests iptables -A INPUT -i eth0 -p udp --dport domain -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport domain -j ACCEPT iptables -A OUTPUT -s 192.168.0.0/24 -p tcp --dport domain -j ACCEPT iptables -A OUTPUT -s 192.168.0.0/24 -p udp --dport domain -j ACCEPT #Início do meu FIREWALL # ########### # Opcões de configuracão : Isto irá fazer o script funcionar mais rápido acelera#ndo acesso às informacões necessárias. LAN_IP_RANGE="192.168.0.0/24" LAN_IP="192.168.0.1/24" LAN_BCAST_ADRESS="192.168.0.255/24" LOCALHOST_IP="127.0.0.1/8" STATIC_IP="10.0.0.10/24" INET_IFACE="ppp0" LAN_IFACE="eth0" IPTABLES="/sbin/iptables" ######### # Carregando os modulos necessários do IPTABLES # # Isto deveria checar as dependências de todos os módulos mas deixa o script mui #to lento e não é necessário #/sbin/depmod -a # # Adiciona alguns caminhos do IPTABLES como LOG, REJECT e MASQUERADE. # /sbin/modprobe ipt_LOG /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_MASQUERADE /sbin/modprobe iptable_nat # # Suporte para owner (só permite certas conexões a certos usuários) # #/sbin/modprobe ipt_owner # # Suporte para connection tracking de FTP e IRC. # /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_conntrack_irc # # Habilita o IPFORWARD # echo 1 > /proc/sys/net/ipv4/ip_forward # #Protecao contra spoof de IP # echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter # #Para uso com IP dinâmico (nao foi preciso) # #echo "1" > /proc/sys/net/ipv4/ip_dynaddr # # Habilita IP Forwarding and Masquerading simples # $IPTABLES -t nat -A POSTROUTING -o $LAN_IFACE -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE # # Pacotes alterados de TCP indesejáveis se ferram aqui # $IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Novo pacote não syn:" $IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP # # Aceita os pacotes que realmente devem entrar # $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD pacote morreu: " # # Seta a politica default para INPUT, FORWARD e OUTPUT, ou seja: NÃO!!! # $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT # # Cria cadeias separadas para ICMP, TCP e UDP passarem # $IPTABLES -N icmp_packets $IPTABLES -N tcp_packets $IPTABLES -N udpincoming_packets # # A cadeia allowed para conexões TCP # $IPTABLES -N allowed $IPTABLES -A allowed -p TCP --syn -j ACCEPT $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A allowed -p TCP -j DROP # # Regras ICMP # $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT # # Regras TCP # $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed # # Regras UDP # $IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT $IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 123 -j ACCEPT $IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 2074 -j ACCEPT #$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 4000 -j ACCEPT # # Cadeia PREROUTING # # Faz algumas checagens para IP's obviamente alterados # $IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 192.168.0.0/16 -j DROP $IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 10.0.0.0/8 -j DROP $IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 172.16.0.0/12 -j DROP # # Cadeia INPUT # # Toma conta de pacotes alterados de TCP indesejáveis # $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Novo pacote não syn:" $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP # # Regras para pacotes vindos da internet internet # $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets $IPTABLES -A INPUT -p TCP -i $INET_IFACE --dport 27665 -j DROP #Proteção contra TRINOO $IPTABLES -A INPUT -p TCP -i $INET_IFACE --dport 27444 -j DROP $IPTABLES -A INPUT -p TCP -i $INET_IFACE --dport 31335 -j DROP #Protecão contra Tronjans $IPTABLES -A INPUT -p TCP -i $INET_IFACE --dport 666 -j DROP $IPTABLES -A INPUT -p TCP -i $INET_IFACE --dport 666 -j DROP $IPTABLES -A INPUT -p TCP -i $INET_IFACE --dport 4000 -j DROP #$IPTABLES -A INPUT -p UDP -i $INET_IFACE --dport 4000 -j DROP #$IPTABLES -A INPUT -p TCP -i $INET_IFACE --dport 5190 -j DROP #$IPTABLES -A INPUT -p UDP -i $INET_IFACE --dport 5190 -j DROP #Proteção contra acesso externo ao NETBIOS $IPTABLES -A INPUT -p TCP -i $INET_IFACE -d 192.168.0.1 --dport 137:139 -j DROP #Proteção contra acesso externo ao TELNET $IPTABLES -A INPUT -p TCP -i $INET_IFACE -d 192.168.0.1 --dport telnet -j DROP #Barramento do Samba a internet # # Regras para rede interna e localhost # $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT $IPTABLES -A INPUT -p ALL -d $LOCALHOST_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -d $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -d $STATIC_IP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: " # # Cadeia OUTPUT # $IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Novo pacote nao syn:" $IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $STATIC_IP -j ACCEPT $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT pacote morreu: " ####FIM DO SCRIPT DE FIREWALL
Backup de vários servidores, diferenciado a rotina pela aplicação
Desligamento programado com interface gráfica em Zenity
Gerenciamento com firewalld no CentOS 7
Usando netstat para verificar conexões e portas
Verifica Falha Humana de Segurança em e-mail (usada por SPAMERS)
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
Excluir banco de dados no xampp (1)
phpmyadmin não abre no xampp (2)
[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