caio.thimons
(usa Ubuntu)
Enviado em 07/02/2012 - 11:55h
#!/bin/bash
############# Script###########
################################################################################
#################### Inicio Firewall ###########################################
################################################################################
#echo"## Limpando as Regras existentes #######"
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -Z
#echo"## Definindo politica padrão (Nega entrada e permite saida)"
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
################################################################################
######################## Protege contra ataques diversos #######################
################################################################################
###### Protege contra synflood
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
###### Protecao contra ICMP Broadcasting ######
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
###### Protetecao Contra IP Spoofing
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
###### Protecao diversas contra portscanners, ping of death, ataques DoS, pacotes danificados e etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP
################################################################################
############################ Input Rede Interna #################################
################################################################################
## Estabelece relação de confiança entre maquinas da rede local eth0(rede local)##
iptables -A INPUT -i eth0 -s 10.0.0.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
################################################################################
############################ Liberando o INPUT #################################
################################################################################
echo "liberando o INPUT externo"
iptables -A INPUT -i eth1 -p tcp -m multiport --dport 1050,8086,80,8080,21,22,23,24 -j ACCEPT
################################################################################
############################ Redirecionamentos #################################
################################################################################
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 1050 -j DNAT --to-destination 10.0.0.50:1050
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 8086 -j DNAT --to-destination 10.0.0.153:8086
################################################################################
############################ Drop Input #################################
################################################################################
#echo"## Fechando portas não abertas acima ##"
#iptables -A INPUT -i eth1 -j REJECT
################################################################################
############################ Compartilhamento Internet #########################
################################################################################
echo"Compartilhando Internet"
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo"Firewall Ativo"
################################################################################
######################## Fim ###################################
##############################################################################
desse cehito indentico só coloquei comentario no DROP INPUT
#iptables -A INPUT -i eth1 -j REJECT