configuracao basica iptables servidor linux
Autor: José Ulisses | Publicado: 2017-04-13T22:40:00-03:00

https://www.vivaolinux.com.br/dica/Configuracao-basica-do-IPtables


CONFIGURAÇÃO BÁSICA DO IPTABLES

&nbsp;

Segue abaixo, uma sugestão de configuração básica para o&nbsp;IPtables.&nbsp;É 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.&nbsp;
#!/bin/bash##Desabilitando o tráfego entre as placas#################################echo 0 &gt; /proc/sys/net/ipv4/ip_forward###Apagando e restaurando as chains e tabelas######################################iptables -Z&nbsp;&nbsp;# Zera as regras de todas as chainsiptables -F&nbsp;&nbsp;# Remove as regras de todas as chainsiptables -X&nbsp;&nbsp;# 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 &gt; /proc/sys/net/ipv4/tcp_syncookies&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Syn Flood (DoS)echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&nbsp;&nbsp;# Port scannersecho 0 &gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Sem resposta remotafor i in&nbsp;&nbsp;/proc/sys/net/ipv4/conf/*; doecho 0 &gt; $i/accept_redirects&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Sem redirecionar rotasecho 0 &gt; $i/accept_source_route&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Sem tracerouteecho 1 &gt; $i/log_martians&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Loga pacotes suspeitos no kernelecho 1 &gt; $i/rp_filter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Ip Spoofingecho 1 &gt; $i/secure_redirects; done&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Redirecionamento seguro de pacotesecho 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 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_tablesmodprobe iptable_natmodprobe iptable_filtermodprobe iptable_mangle#modprobe ip_conntrackmodprobe ip_conntrack_ftpmodprobe ip_nat_ftpmodprobe ip_queuemodprobe ip_gre#modprobe ipt_LOGmodprobe ipt_MARKmodprobe ipt_REDIRECTmodprobe ipt_REJECTmodprobe ipt_MASQUERADEmodprobe ipt_TCPMSSmodprobe ipt_TOSmodprobe ipt_NETMAP#modprobe ipt_limitmodprobe ipt_macmodprobe ipt_multiportmodprobe ipt_ownermodprobe ipt_statemodprobe ipt_tosmodprobe ipt_markmodprobe ipt_tcpmssmodprobe ipt_stringmodprobe ipt_statistic#modprobe nf_nat_pptpmodprobe nf_nat_proto_gre## Definindo políticas padrões######################iptables&nbsp;&nbsp;-P&nbsp;&nbsp;INPUT DROP&nbsp;&nbsp;# iptables a política padrão da chain INPUT é proibir tudoiptables&nbsp;&nbsp;-P&nbsp;&nbsp;FORWARD DROPiptables&nbsp;&nbsp;-P&nbsp;&nbsp;OUTPUT ACCEPT## Liberando a Loopback####################iptables -A&nbsp;&nbsp;INPUT -i lo -j ACCEPT### Regras de segurança na internet e acessos#####################################iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -m state --state NEW !&nbsp;&nbsp;-i&nbsp;&nbsp;ethx -j DROP&nbsp;&nbsp;&nbsp;&nbsp;# Interface de entrada da internetiptables -A FORWARD -m state --state NEW ! -i ethx -j DROP&nbsp;&nbsp;&nbsp;&nbsp;# Interface de entrada da internetiptables -A INPUT -m state --state INVALID -j DROPiptables -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&nbsp;&nbsp;# Interface da rede internaiptables -t nat -A POSTROUTING -o ethx -j MASQUERADE&nbsp;&nbsp;# 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 &gt; /proc/sys/net/ipv4/ip_forward#
Depois de criar o script (com o nome de, por exemplo,&nbsp;firewall.sh), lembre de dar permissão de execução:&nbsp;# chmod +x /caminho/do/script/firewall.sh&nbsp;Exemplos:
No&nbsp;Debian&nbsp;é em: /ect/init.d/firewall.sh
No&nbsp;Slackware&nbsp;é em: /etc/rc.d/init.d/firewall.sh
No&nbsp;Red Hat&nbsp;é em: /etc/rc.d/init.d/firewall.sh
No&nbsp;openSuse&nbsp;é em: /ect/init.d/firewall.sh

O nome do script, aconselho a não colocar&nbsp;firewall.sh, pois é muito óbvio, coloque outro nome de sua escolha.&nbsp;Aqui tem uma regra simples, feita pelo próprio&nbsp;Rusty Russel, à qual você pode acrescentar para dar maior segurança na sua rede interna:&nbsp;
## Carregando módulos de acompanhamento de conexões (desnecessário se compilados diretamente no kernel).&nbsp;&nbsp;&nbsp;&nbsp; insmod ip_conntrack&nbsp;&nbsp;&nbsp;&nbsp; insmod ip_conntrack_ftp## Cria chain que rejeita novas conexões, exceto as vindas da rede interna.&nbsp;&nbsp;&nbsp;&nbsp; iptables -N block&nbsp;&nbsp;&nbsp;&nbsp; iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT&nbsp;&nbsp;&nbsp;&nbsp; iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT&nbsp;&nbsp;# em ppp0 coloque a sua interface de entrada da internet&nbsp;&nbsp;&nbsp;&nbsp; iptables -A block -j DROP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## Saltar das chains INPUT e FORWARD para a chain block.&nbsp;&nbsp;&nbsp;&nbsp; iptables -A INPUT -j block&nbsp;&nbsp;&nbsp;&nbsp; iptables -A FORWARD -j block
Retirado deste documento feito pelo próprio:
HOWTO « netfilter.org

Conclusão: Estude o IPtables. Estude o IPtables. Estude o IPtables...&nbsp;