emerson.cosmo
(usa Debian)
Enviado em 26/06/2009 - 15:36h
Renato Pacheco,
Segue ai meu script.
Valeu pela força.
#!/bin/sh
#############
##variaveis##
#############
IPT=$(which iptables)
iptables=/sbin/iptables
externo=eth0
interno=eth1
NET="0/0"
PA=1024:65535
LO=127.0.0.1
###################
##Ativando modulo##
###################
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
##############################
##Modulo FTP PASSIVO e ATIVO##
##############################
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_tables
modprobe iptable_nat
############################
##Protecao contra spoofing##
############################
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
####################
##Limpando tabelas##
####################
$iptables -F
$iptables -X
$iptables -F -t nat
$iptables -X -t nat
$iptables -X -t mangle
##################################
##Determinando a politica padrao##
##################################
$iptables -P INPUT DROP
$iptables -P OUTPUT DROP
$iptables -P FORWARD DROP
######################
##LIberando LOOPBACK##
######################
$iptables -A INPUT -i lo -d $LO -j ACCEPT
$iptables -A OUTPUT -o lo -d $LO -j ACCEPT
#####################
##Regras de filtros##
#####################
#Aceitar pacotes que realmente devem entrar
#------------------------------------------
$iptables -A INPUT -i ! $externo -j ACCEPT
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -i $externo -m state --state ESTABLISHED,RELATED -j ACCEPT #ftp
$iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
$iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
#Protecao contra worms
#----------------------
$iptables -A FORWARD -p tcp --dport 135 -i $interno -j REJECT
#Protecao contra syn-flood
#-------------------------
$iptables -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT
#Protecao contra port scanners
#------------------------------
$iptables -N SCANNER
$iptables -A SCANNER -j DROP
$iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $externo -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags ALL NONE -i $externo -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags ALL ALL -i $externo -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $externo -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $externo -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $externo -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $externo -j SCANNER
################################################
##Liberando acesso externo a determinada porta##
################################################
$iptables -A INPUT -p tcp --dport 22 -i $externo -j ACCEPT
$iptables -A INPUT -p tcp --dport 22 -i $interno -j ACCEPT
#############
##Regra MSN##
#############
##bloqueio
$iptables -I FORWARD -s 192.168.10.0/24 -p tcp --dport 1863 -j DROP
$iptables -I FORWARD -s 192.168.10.0/24 -d loginnet.password.com -j DROP
$iptables -I FORWARD -s 192.168.10.0/24 -d hotmail.com -j DROP
$iptables -I FORWARD -s 192.168.10.0/24 -d hotmail.com.br -j DROP
##Liberando
$iptables -I FORWARD -s 192.168.10.9 -p tcp --dport 1863 -j ACCEPT
$iptables -I FORWARD -s 192.168.10.9 -d loginnet.password.com -j DROP
$iptables -I FORWARD -s 192.168.10.9 -d hotmail.com -j DROP
$iptables -I FORWARD -s 192.168.10.9 -d hotmail.com.br -j DROP
#####################
## Regra POP e SMTP##
#####################
$iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o $externo -m multiport -p tcp --dport 25,110 -j MASQUERADE
#################
##liberando FTP##
#################
$iptables -A INPUT -p tcp --dport 20 -j ACCEPT
$iptables -A INPUT -p tcp --dport 21 -j ACCEPT
$iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
$iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
$iptables -A FORWARD -p tcp -s 192.168.10.0/24 --dport 20 -j ACCEPT
$iptables -A FORWARD -p tcp -s 192.168.10.0/24 --dport 21 -j ACCEPT