All pastes #2123485 Raw Edit

Someone

public text v1 · immutable
#2123485 ·published 2012-03-02 12:59 UTC
rendered paste body
#!/bin/bash

# modprobe eh usado para carregar modulos do kernel
MOD=$(which modprobe)

#
IPT=$(which iptables)

# Interfaces de rede
I_LINK1="eth0"
I_LINK2="eth2"
I_LAN="eth1"

function start() {
# Carrega o modulo do kernel
  $MOD ip_tables
  modprobe iptable_nat

  # Limpa as regras anteriores
  stop;

  # Habilita redirecionamento de IP
  echo 1 > /proc/sys/net/ipv4/ip_forward
  echo "0" > /proc/sys/net/ipv4/conf/default/rp_filter

  #Compartilhando links
  $IPT -t nat -A POSTROUTING -s 10.1.1.0/255.0.0.0 -o eth2 -j MASQUERADE
  $IPT -t nat -A POSTROUTING -s 10.1.1.0/255.0.0.0 -o eth0 -j MASQUERADE
  $IPT -t nat -A PREROUTING -s 10.8.0.2 -j MASQUERADE

  $IPT -P INPUT DROP
  $IPT -P FORWARD ACCEPT
  $IPT -P OUTPUT ACCEPT

  #liberando trágo de rede local (127.0.0.1)
  $IPT -A INPUT -i lo -j ACCEPT


  #Liberando VPN

  $IPT -A FORWARD -i tun0 -j ACCEPT

  #Liberando SIP
  $IPT -A INPUT -p tcp -m tcp --dport 5080 -s 187.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p udp -m udp --dport 5080 -s 187.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p tcp -m tcp --dport 5080 -s 189.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p udp -m udp --dport 5080 -s 189.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p tcp -m tcp --dport 5080 -s 200.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p udp -m udp --dport 5080 -s 200.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p tcp -m tcp --dport 5080 -s 201.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p udp -m udp --dport 5080 -s 201.0.0.0/255.0.0.0 -j ACCEPT

  #$IPT -A INPUT -p tcp -m tcp --dport 5080  -j ACCEPT
  #$IPT -A INPUT -p udp -m udp --dport 5080  -j ACCEPT

  #$IPT -A INPUT -p tcp -m tcp --dport 5070  -j ACCEPT
  #$IPT -A INPUT -p udp -m udp --dport 5070  -j ACCEPT

  #Liberando Voz
  $IPT -A INPUT -p tcp -m tcp --dport 10000:20000 -s 187.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p udp -m udp --dport 10000:20000 -s 187.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p tcp -m tcp --dport 10000:20000 -s 189.0.0.0/255.0.0.0 -j ACCEPT

  $IPT -A INPUT -p tcp -m tcp --dport 10000:20000 -s 189.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p udp -m udp --dport 10000:20000 -s 189.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p tcp -m tcp --dport 10000:20000 -s 200.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p udp -m udp --dport 10000:20000 -s 200.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p tcp -m tcp --dport 10000:20000 -s 201.0.0.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p udp -m udp --dport 10000:20000 -s 201.0.0.0/255.0.0.0 -j ACCEPT

  # Aceitando conexoes de entrada
  $IPT -A INPUT -p tcp --dport 22 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 142 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 80 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 81 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 2223 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 5038 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 34684 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 161 -j ACCEPT
  $IPT -A INPUT -p udp --dport 161 -j ACCEPT
  $IPT -A INPUT -p udp --dport 1194 -j ACCEPT

##### Toda navegacao sai pela ADSL, o resto pelo link dedicado

  # Saida dos pacotes pela ADSL
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dport 3389 -j MARK --set-mark 2
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dport 80 -j MARK --set-mark 2
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dport 0:65535 -j MARK --set-mark 2
  $IPT -t mangle -A PREROUTING -i $I_LAN -p udp --dport 0:65535 -j MARK --set-mark 2
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dst 192.168.1.1 -j MARK --set-mark 2

  # Saida dos pacotes pelo Link Dedicado
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dport 22 -j MARK --set-mark 1
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dport 142 -j MARK --set-mark 1
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dst 187.53.232.107 -j MARK --set-mark 1
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dst 200.228.195.167 -j MARK --set-mark 1 #Servidor SanMartin WEB
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dport 6666 -j MARK --set-mark 1 #IRC
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dport 6667 -j MARK --set-mark 1 #IRC
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dport 6665 -j MARK --set-mark 1 #IRC
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dst 187.52.9.22 -j MARK --set-mark 1 # Abosco
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dst 177.40.146.4 -j MARK --set-mark 1 # DAGMOLLER
  $IPT -t mangle -A PREROUTING -i $I_LAN -p tcp --dst 177.67.230.29 -j MARK --set-mark 1 # Saojoao CD
  $IPT -t mangle -A PREROUTING -i tun0 -p tcp --dport 80 -j MARK --set-mark 1
  $IPT -t mangle -A PREROUTING -p icmp --icmp-type echo-request -j MARK --set-mark 1

  # Liberando Rede Local
  $IPT -A INPUT -p tcp -s 10.1.1.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p udp -s 10.1.1.0/255.0.0.0 -j ACCEPT
  $IPT -A INPUT -p tcp -s 10.8.0.0/255.0.0.0 -j ACCEPT

  $IPT -A INPUT -p udp -s 187.17.166.162 -j ACCEPT
  $IPT -A INPUT -p udp -s 189.29.54.144 -j ACCEPT
  $IPT -A INPUT -p udp -s 177.35.100.170 -j ACCEPT
  $IPT -A INPUT -p udp -s 187.5.250.107 -j ACCEPT

  #Liberando pacotes que realmente devem estabelecer conexã
  $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

  #Liberando ping
  $IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

  # Forward de portas para o servidor de backup
  $IPT -t nat -A PREROUTING -d 187.5.250.106 -p tcp --dport 22 -j DNAT --to 10.1.1.52:22
  $IPT -t mangle -A PREROUTING -p tcp -s 10.1.1.52 --sport 22 -j MARK --set-mark 1

  # Servidor WEB Maquina virtual
  $IPT -t nat -A PREROUTING -d 187.5.250.106 -p tcp --dport 81 -j DNAT --to 10.1.1.88:80
  $IPT -t mangle -A PREROUTING -p tcp -s 10.1.1.88 --sport 80 -j MARK --set-mark 1

  # Servidor Freeswitch
  $IPT -t nat -A PREROUTING -d 187.5.250.106 -p tcp --dport 82 -j DNAT --to 10.1.1.78:80
  $IPT -t mangle -A PREROUTING -p tcp -s 10.1.1.78 --sport 80 -j MARK --set-mark 1
  $IPT -t nat -A PREROUTING -d 187.5.250.106 -p tcp --dport 2223 -j DNAT --to 10.1.1.78:22
  $IPT -t mangle -A PREROUTING -p tcp -s 10.1.1.78 --sport 22 -j MARK --set-mark 1

  # Torrent Willian
  $IPT -t nat -A PREROUTING -p tcp --dport 34684 -j DNAT --to 10.1.1.30
  $IPT -t mangle -A PREROUTING -p tcp -s 10.1.1.30 --sport 34684 -j MARK --set-mark 2


  # teste do lyric
  # $IPT -t nat -A PREROUTING -i $I_LAN -d 74.125.65.141 -j DNAT --to 10.1.1.249

  echo "Firewall iniciado."

}

function stop() {
# Limpa a tabela mangle
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -F -t filter
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X -t filter
$IPT -X -t nat
$IPT -X -t mangle
$IPT -Z -t filter
$IPT -Z -t nat
$IPT -Z -t mangle
  echo "Firewall parado."

}

case $1 in
  'start') start; exit ;;
  'stop') stop; exit ;;
  'restart') stop; start; exit ;;
  *) start; exit ;;
esac