Buckminster
(usa Debian)
Enviado em 04/11/2013 - 20:20h
Segue aí um script básico:
#!/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 das chains
iptables -F # Remove as regras das chains
iptables -X # Apaga 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 Cookie, IP Spoofing e proteções do kernel
#####################################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies #Syn Flood-DoS
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter #Ip Spoofing
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts #Sem ping e port scanners
echo 1 > /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 0 > $i/secure_redirects; done #Sem redirecionamento de pacotes
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #Sem ping e tracert
#
#Carregando os módulos.
#######################
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe iptable_mangle
#
##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 # adiciona regra na chain INPUT para liberar a loopback
#
##Regras de segurança na internet e de aceitação de pacotes
###########################################################
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
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#
# Mascaramento, compartilhamento e redirecionamento
###################################################
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i ethX -p tcp --dport 80 -j REDIRECT --to-port 3128 << AQUI VAI A PLACA DA REDE INTERNA
iptables –t nat –A POSTROUTING –o ethX –j MASQUERADE << AQUI VAI A PLACA QUE ESTÁ RECEBENDO A INTERNET
Veja bem: em "Proteção contra ping, SYN Cookie..." você pode comentar o que não quiser e em "Liberando portas para a rede interna" você pode comentar as portas dos serviços que não está utilizando.
Nas políticas padrões o ideal é sempre bloquear as chains INPUT e FORWARD e depois ir liberando somente o que você quer.