#!/bin/bash
#----
# Habilita roteamento
# Pode ser habilitado no /etc/sysctl.conf
#----
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "8192" > /proc/sys/net/ipv4/ip_conntrack_max
#
#----
# Variaveis de Sistema
#----
IPTABLES="/usr/local/sbin/iptables"
ROUTE="/sbin/route"
#
#----
# Regras gerais de tratamento de pacotes
#----
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -X
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
#
#----------
# Aceita todas as conexoes do loopback
#----------
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A FORWARD -i lo -j ACCEPT
#
#----------
# Ping-of-Death, Syn-Flood, Port-Scanner
# Permissao de ping para as interfaces locais
#----------
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPTABLES -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
$IPTABLES -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT
#
#----------
# Aceita conexoes estabelecidades
#----------
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
#----------
# LOG e DROP de pacotes fragmentados
#----------
$IPTABLES -A FORWARD -m state --state INVALID -j DROP
$IPTABLES -A INPUT -f -j LOG --log-prefix "Pacote INPUT fragmentado: "
$IPTABLES -A INPUT -f -j DROP
$IPTABLES -A FORWARD -f -j LOG --log-prefix "Pacote FORWARD fragmentado: "
$IPTABLES -A FORWARD -f -j DROP
#
#----------
# Declara IP dos Servidores
#----------
NS1="200.163.208.2"
GW="200.163.208.3"
NS3="200.163.208.65"
ELJ="172.20.0.164"
EMA="172.20.0.11"
MUR="172.20.0.12"
MAIL="200.163.208.4"
WEB="200.163.208.5"
#
#----------
# Declara redes utilizadas por este cache
#----------
PTP="172.20.0.0/27"
PTPNS3="172.20.0.160/29"
V01="200.163.208.0/26"
V02="200.163.208.64/26"
V03="200.140.222.128/25"
V04="201.35.16.0/24"
I01="192.168.167.0/24"
PPPOE00="192.168.160.0/24"
PPPOE01="192.168.161.0/24"
INTERNA="172.30.0.0/24"
#
#----------
# Declara rotas para redes distantes
#----------
$ROUTE add -net $PTP gw $ELJ
$ROUTE add -net $V02 gw $ELJ
$ROUTE add -net $V03 gw $ELJ
$ROUTE add -net $V04 gw $ELJ
$ROUTE add -net $I01 gw $ELJ
$ROUTE add -net $PPPOE01 gw $ELJ
#
#----------
# Regras para funcionamento do Conectividade Social da CEF
#----------
$IPTABLES -t nat -A PREROUTING -d 200.201.166.100 -p tcp --dport 80 -j DNAT --to 200.201.166.100
$IPTABLES -t nat -A PREROUTING -d 200.201.169.69 -p tcp --dport 80 -j DNAT --to 200.201.169.69
$IPTABLES -t nat -A PREROUTING -d 200.201.173.68 -p tcp --dport 80 -j DNAT --to 200.201.173.68
$IPTABLES -t nat -A PREROUTING -d 200.201.174.202 -p tcp -m tcp --dport 80 -j DNAT --to-destination 200.201.174.202:80
$IPTABLES -t nat -A PREROUTING -d 200.201.174.203 -p tcp -m tcp --dport 80 -j DNAT --to-destination 200.201.174.203:80
$IPTABLES -t nat -A PREROUTING -d 200.201.174.204 -p tcp -m tcp --dport 80 -j DNAT --to-destination 200.201.174.204:80
$IPTABLES -t nat -A PREROUTING -d 200.201.174.205 -p tcp -m tcp --dport 80 -j DNAT --to-destination 200.201.174.205:80
$IPTABLES -t nat -A PREROUTING -d 200.201.174.206 -p tcp -m tcp --dport 80 -j DNAT --to-destination 200.201.174.206:80
$IPTABLES -t nat -A PREROUTING -d 200.201.174.207 -p tcp -m tcp --dport 80 -j DNAT --to-destination 200.201.174.207:80
$IPTABLES -t nat -A PREROUTING -d 200.201.174.208 -p tcp -m tcp --dport 80 -j DNAT --to-destination 200.201.174.208:80
$IPTABLES -t nat -A PREROUTING -d 200.201.174.209 -p tcp -m tcp --dport 80 -j DNAT --to-destination 200.201.174.209:80
#
#----------
# DNAT para servidores VoIP
#----------
/usr/local/cnett/firewall/voip
#
#----------
# Regras para o funcionamento TCP do SQUID
#----------
#$IPTABLES -t nat -A PREROUTING -s $PTPNS3 -d ! $V01 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#$IPTABLES -t nat -A PREROUTING -s $PPPOE01 -d ! $V01 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#$IPTABLES -t nat -A PREROUTING -s $INTERNA -d ! $V01 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#
#----------
# Regras para o funcionamento UDP do SQUID
#----------
#$IPTABLES -t nat -A PREROUTING -s $PTPNS3 -d ! $V01 -p udp -m udp --dport 80 -j REDIRECT --to-ports 3128
#$IPTABLES -t nat -A PREROUTING -s $PPPOE01 -d ! $V01 -p udp -m udp --dport 80 -j REDIRECT --to-ports 3128
#$IPTABLES -t nat -A PREROUTING -s $INTERNA -d ! $V01 -p udp -m udp --dport 80 -j REDIRECT --to-ports 3128
#
#---------
# Mascara todas as redes invalidas e validas
# que passam por este servidor
#---------
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o eth3 -j MASQUERADE