Configuração básica do IPtables

Publicado por Buckminster em 25/09/2013

[ Hits: 30.397 ]

 


Configuração básica do IPtables



Segue abaixo, uma sugestão de configuração básica para o IPtables.

É somente um cabeçalho com regras iniciais, sendo que você pode adaptá-las livremente, acrescentar suas próprias regras, comentar o que não precisa, etc.

#!/bin/bash
#
#Desabilitando o tráfego entre as placas
#################################

echo 0 > /proc/sys/net/ipv4/ip_forward
#
##Apagando e restaurando as chains e tabelas
######################################

iptables -Z  # Zera as regras de todas as chains
iptables -F  # Remove as regras de todas as chains
iptables -X  # Apaga todas as chains
#iptables -t nat -Z
#iptables -t nat -F
#iptables -t nat -X
#iptables -t mangle -Z
#iptables -t mangle -F
#iptables -t mangle -X
#
##Proteção contra ping, SYN Cookies, IP Spoofing e proteções do kernel
##########################################################

echo 1 > /proc/sys/net/ipv4/tcp_syncookies          # Syn Flood (DoS)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts  # Port scanners
echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses      # Sem resposta remota
for i in  /proc/sys/net/ipv4/conf/*; do
echo 0 > $i/accept_redirects                # Sem redirecionar rotas
echo 0 > $i/accept_source_route            # Sem traceroute
echo 1 > $i/log_martians                # Loga pacotes suspeitos no kernel
echo 1 > $i/rp_filter                  # Ip Spoofing
echo 1 > $i/secure_redirects; done                      # Redirecionamento seguro de pacotes
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all        # Sem ping e tracert
#
# Carregando os módulos - Não é necessário todos os módulos,
# somente aqueles que você irá utilizar.
# O iptables, por padrão, carrega os módulos principais automaticamente.
# Para identificar qual módulo adicional carregar, você deve elaborar todo o script
# e depois de acordo com o nome do alvo utilizado, você carrega o mesmo módulo.
# Por exemplo, se você utilizar a seguinte regra:
# iptables -A FORWARD -p udp -m multiport --dport 80,1024:65535 -j DROP
# o módulo "ipt_multiport" deve ser carregado.
# Abaixo estão quase todos os módulos.
################################

modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe iptable_mangle
#
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_queue
modprobe ip_gre
#
modprobe ipt_LOG
modprobe ipt_MARK
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_TCPMSS
modprobe ipt_TOS
modprobe ipt_NETMAP
#
modprobe ipt_limit
modprobe ipt_mac
modprobe ipt_multiport
modprobe ipt_owner
modprobe ipt_state
modprobe ipt_tos
modprobe ipt_mark
modprobe ipt_tcpmss
modprobe ipt_string
modprobe ipt_statistic
#
modprobe nf_nat_pptp
modprobe nf_nat_proto_gre
#
# Definindo políticas padrões
######################

iptables  -P  INPUT DROP  # iptables a política padrão da chain INPUT é proibir tudo
iptables  -P  FORWARD DROP
iptables  -P  OUTPUT ACCEPT
#
# Liberando a Loopback
####################

iptables -A  INPUT -i lo -j ACCEPT
#
## Regras de segurança na internet e acessos
#####################################

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW !  -i  ethx -j DROP    # Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i ethx -j DROP    # Interface de entrada da internet
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#
# Redirecionamento para o Squid e mascaramento/compartilhamento
###########################################

iptables -t nat -A PREROUTING -i ethx -p tcp --dport 80 -j REDIRECT --to-port 3128  # Interface da rede interna
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE  # Interface de entrada da internet
#
# A partir daqui você pode inserir as regras de liberação e bloqueio, não esqueça habilitar no final o tráfego entre as placas.
#
# Habilitando o tráfego entre as placas
##########################

echo 1 > /proc/sys/net/ipv4/ip_forward
#

Depois de criar o script (com o nome de, por exemplo, firewall.sh), lembre de dar permissão de execução:

# chmod +x /caminho/do/script/firewall.sh

Exemplos:
  • No Debian é em: /ect/init.d/firewall.sh
  • No Slackware é em: /etc/rc.d/init.d/firewall.sh
  • No Red Hat é em: /etc/rc.d/init.d/firewall.sh
  • No openSuse é em: /ect/init.d/firewall.sh

O nome do script, aconselho a não colocar firewall.sh, pois é muito óbvio, coloque outro nome de sua escolha.

Aqui tem uma regra simples, feita pelo próprio Rusty Russel, à qual você pode acrescentar para dar maior segurança na sua rede interna:

## Carregando módulos de acompanhamento de conexões (desnecessário se compilados diretamente no kernel).
     insmod ip_conntrack
     insmod ip_conntrack_ftp

## Cria chain que rejeita novas conexões, exceto as vindas da rede interna.
     iptables -N block
     iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
     iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT  # em ppp0 coloque a sua interface de entrada da internet
     iptables -A block -j DROP

     ## Saltar das chains INPUT e FORWARD para a chain block.
     iptables -A INPUT -j block
     iptables -A FORWARD -j block

Retirado deste documento feito pelo próprio:
Conclusão: Estude o IPtables. Estude o IPtables. Estude o IPtables...

Outras dicas deste autor

Instalar Google Chrome no Slackware 15

Como encontrar e remover pacotes instalados que não foram fornecidos pelo Debian e encontrar e desmarcar pacotes retidos (hold)

Remapear e/ou trocar teclas no Linux

GRUB com senha criptografada no Debian Squeeze

Como verificar o hash de um arquivo baixado da Internet e como criar um hash

Leitura recomendada

Removendo senha do usuário root em 10 passos

Correção de segurança no quotacheck em rc.M

Primeira Conferencia Hacker no Brasil

Instalando Tcptrack no Slackware 13

Bloqueando MSN, Yahoo, ICQ com Iptables

  

Comentários
[1] Comentário enviado por JJSantos em 15/11/2014 - 22:09h

Melhor parte!!!

Conclusão: Estude o IPtables. Estude o IPtables. Estude o IPtables...



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts