rendered paste body#!/bin/bash
iptables=/usr/sbin/iptables
# Localização do comando ip
IP=/sbin/ip
# Interface Externa 1 - Speedy
NET_EXT_INT0=eth1
# IP Speedy
NET_EXT_IP0=200.161.130.69
# Default Gateway Speedy
NET_EXT_GW0=200.161.130.65
# Interface interna
NET_INT_INT1=eth0
# IP interno
NET_INT_IP1=192.168.0.1
# Subnet interna
NET_INT_SUB1=24
# Rede interna
NET_INT_NET1=192.168.0.0
# Interface externa 2 - Virtua
NET_EXT_INT2=eth2
# IP Virtua
NET_EXT_IP2=201.37.144.181
# Default Gateway Virtua
NET_EXT_GW2=201.37.144.1
fw_start() {
$iptables -F
$iptables -F -t nat
$iptables -F -t mangle
$iptables -X -t nat
$iptables -X -t mangle
$iptables -X
iptables -A INPUT -s 0/0 -p icmp -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 60000:65535 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport 20 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport 21 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 2121 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport 2121 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 1863 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 2222 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 4662 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport 4672 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport 5190 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 8080 -j ACCEPT
echo "Configurando tabela Mangle para eth1..."
$iptables -t mangle -N ETH1
$iptables -t mangle -F ETH1
$iptables -t mangle -A ETH1 -p tcp -j LOG -log-prefix MANGLE_TCP_ETH1
$iptables -t mangle -A ETH1 -p icmp -j LOG -log-prefix MANGLE_ICMP_ETH1
$iptables -t mangle -A ETH1 -j MARK --set-mark 1
echo "Configurando tabela Nat para eth1..."
$iptables -t nat -N SPOOF_ETH1
$iptables -t nat -F SPOOF_ETH1
$iptables -t nat -A SPOOF_ETH1 -j LOG -log-prefix SPOOF_ETH1
$iptables -t nat -A SPOOF_ETH1 -j SNAT --to ${NET_EXT_IP0}
echo "Configurando tabela Mangle para eth2..."
$iptables -t mangle -N ETH2
$iptables -t mangle -F ETH2
$iptables -t mangle -A ETH0 -p tcp -j LOG -log-prefix MANGLE_TCP_ETH2
$iptables -t mangle -A ETH0 -p icmp -j LOG -log-prefix MANGLE_ICMP_ETH2
$iptables -t mangle -A ETH2 -j MARK --set-mark 2
echo "Configurando tabela Nat para eth2..."
$iptables -t nat -N SPOOF_ETH2
$iptables -t nat -F SPOOF_ETH2
$iptables -t nat -A SPOOF_ETH2 -j LOG -log-prefix SPOOF_ETH2
$iptables -t nat -A SPOOF_ETH2 -j SNAT --to ${NET_EXT_IP2}
echo "Configurando regras de Mangle para eth1..."
$IP ru add from ${NET_EXT_IP0} lookup 1
$IP ro add table 10 default via ${NET_EXT_GW0} dev ${NET_EXT_INT0}
$IP ru add fwmark 1 table 10
$IP ro fl ca
echo "Configurando regras de Mangle para eth2..."
$IP ru add from ${NET_EXT_IP2} lookup 2
$IP ro add table 20 default via ${NET_EXT_GW2} dev ${NET_EXT_INT2}
$IP ru add fwmark 2 table 20
$IP ro fl ca
echo "Configurando regras de spoofing..."
$iptables -t nat -A POSTROUTING -o ${NET_EXT_INT2} -j SPOOF_ETH2
$iptables -t nat -A POSTROUTING -o ${NET_EXT_INT0} -j SPOOF_ETH1
echo "Adicionando rota default..."
$IP ro add default equalize nexthop via ${NET_EXT_GW2} dev \
${NET_EXT_INT2} weight 1 nexthop via ${NET_EXT_GW0} dev \
${NET_EXT_INT0} weight 2
echo "Desabilitando filtro de caminho reverso..."
echo 0 > /proc/sys/net/ipv4/conf/eth2/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo "Habilitando redirecionamento de pacotes..."
echo 1 > /proc/sys/net/ipv4/ip_forward
#nat
#$iptables -t nat -A POSTROUTING -s 0/0 -o eth2 -j MASQUERADE
#$iptables -t nat -A POSTROUTING -o eth0:1 -j SNAT --to 201.37.144.181
#$iptables -t nat -A POSTROUTING -s 10.0.0.0/255.0.0.0 -d 0/0 -j SNAT --to 200.161.130.69
#bloqueia tudo
#iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -s ! 127.0.0.1 -m state --state ! ESTABLISHED,RELATED -j REJECT
iptables -A INPUT -p tcp -m multiport --dport 5901,5902,5903,5904,8080 -j ACCEPT
#forward
iptables -A FORWARD -p tcp -s 0/0 -i eth0 -o eth2 --dport 1863 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 -o eth2 --dport 5190 -j ACCEPT
#port forward
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 2121 -j DNAT --to-dest 10.0.0.20
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 60000:65535 -j DNAT --to-dest 10.0.0.20
iptables -t nat -A PREROUTING -p udp -i eth2 --dport 2121 -j DNAT --to-dest 10.0.0.20
#iptables -t nat -A PREROUTING -p udp -i eth2 --dport 20 -j DNAT --to-dest 10.0.0.20
#iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 20 -j DNAT --to-dest 10.0.0.4
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 21 -j DNAT --to-dest 10.0.0.4
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 5901 -j DNAT --to-dest 10.0.0.20
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 5902 -j DNAT --to-dest 10.0.0.20
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 5903 -j DNAT --to-dest 10.0.0.20
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 5904 -j DNAT --to-dest 10.0.0.20
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 5904 -j DNAT --to-dest 10.0.0.20
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 8080 -j DNAT --to-dest 10.0.0.20
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 4662 -j DNAT --to-dest 10.0.0.80
iptables -t nat -A PREROUTING -p udp -i eth2 --dport 4672 -j DNAT --to-dest 10.0.0.80
}
fw_stop() {
$iptables -F
$iptables -t nat -F
}
fw_restart() {
/etc/rc.d/rc.firewall stop
/etc/rc.d/rc.firewall start
}
case "$1" in
'start')
fw_start
;;
'stop')
fw_stop
;;
'restart')
fw_restart
;;
*)
echo "usage $0 start|restart|stop"
esac