Enviado em 30/10/2015 - 15:32h
Fala pessoal segui um tutorial aqui do site:http://www.vivaolinux.com.br/artigo/Controlando-2-links-de-internet-%28roteados%29-em-um-gateway-Lin...
#!/bin/bash
clear
echo "------------ FIREWALL ------------"
## iptables
ipt=iptables
## link1
link1_iface=eth0 # interface do seu link1
link1_rede=10.0.0.0/255.255.255.0 # aqui você coloca sua rede, com máscara
link1_gw=10.0.0.253 # o gateway do seu link1
link1_ip_local=10.0.0.74 # o ip do seu server do link1
## link2
link2_iface=eth1 # interface do seu link2
link2_rede=10.0.0.0/255.255.255.0 # aqui você coloca sua rede, com máscara
link2_gw=10.0.0.253 # o gateway do seu link2
link2_ip_local=10.0.0.120 # o ip do seu server do link2
## rede local
lan_iface=eth2
lan_rede=192.168.0.0/255.255.255.0 # aqui você coloca sua rede com máscara
lan_gw=192.168.0.254 # aqui coloca o gw da rede local
# carregar módulos
echo "Carregando módulos..."
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_mangle
modprobe ip_nat_ftp
modprobe ip_nat_h323
modprobe ipt_limit
modprobe ipt_tos
# limpar regras
echo "Limpando regras antigas..."
$ipt -F
$ipt -t nat -F
$ipt -t mangle -F
$ipt -X
$ipt -t nat -X
$ipt -t mangle -X
# ação padrão - dropar tudo
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
$ipt -P OUTPUT ACCEPT
# aceitar pacotes de retorno
$ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# proteções
# anti-ip spoofing - desativar por causa do iproute2
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 0 > $f
done
fi
$ipt -A INPUT -i $link1_iface -s 192.168.0.0/255.255.255.0 -j DROP
$ipt -A INPUT -i $link2_iface -s 192.168.0.0/255.255.255.0 -j DROP
$ipt -A INPUT -i $link1_iface -s 172.0.0.0/255.0.0.0 -j DROP
$ipt -A INPUT -i $link2_iface -s 172.0.0.0/255.0.0.0 -j DROP
$ipt -A INPUT -i $link1_iface -s 10.0.0.0/255.255.255.0 -j DROP
$ipt -A INPUT -i $link2_iface -s 10.0.0.0/255.255.255.0 -j DROP
# ativando repasse de pacotes
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
echo 1 > /proc/sys/net/ipv4/ip_forward
# QoS
$ipt -I FORWARD -p tcp --tcp-flags SYN,RST SYN --dport 1863 -j TCPMSS --clamp-mss-to-pmtu
$ipt -I FORWARD -p tcp --tcp-flags SYN,RST SYN --dport 5190 -j TCPMSS --clamp-mss-to-pmtu
$ipt -I FORWARD -p tcp --tcp-flags SYN,RST SYN --dport 7001 -j TCPMSS --clamp-mss-to-pmtu
# liberar acesso interno
echo "Liberando acesso local..."
$ipt -A INPUT -i loopback -j ACCEPT
$ipt -A INPUT -s 127.0.0.1 -j ACCEPT
$ipt -A INPUT -s $link1_ip_local -j ACCEPT
$ipt -A INPUT -s $link2_ip_local -j ACCEPT
# serviços externos
echo "Liberando acesso aos serviços..."
# dns
$ipt -A INPUT -p tcp --dport 53 -j ACCEPT
$ipt -A INPUT -p udp --dport 53 -j ACCEPT
$ipt -A INPUT -p tcp --sport 53 -j ACCEPT
$ipt -A INPUT -p udp --sport 53 -j ACCEPT
# retorno proxy
$ipt -A INPUT -p tcp --dport 3128 --sport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 3128 --sport 8080 -j ACCEPT
# serviços internos
# coloque aqui para permitir acesso aos seus serviços internos
$ipt -A INPUT -i $lan_iface -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -i $lan_iface -p tcp --dport 53 -j ACCEPT
$ipt -A INPUT -i $lan_iface -p udp --dport 53 -j ACCEPT
$ipt -A INPUT -i $lan_iface -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -i $lan_iface -p tcp --dport 3128 -j ACCEPT
### rotas
# resetar tabelas de rotas
echo "255 local" > /etc/iproute2/rt_tables
echo "254 main" >> /etc/iproute2/rt_tables
echo "253 default" >> /etc/iproute2/rt_tables
echo "0 unspec" >> /etc/iproute2/rt_tables
echo "30 link1" >> /etc/iproute2/rt_tables
echo "31 link2" >> /etc/iproute2/rt_tables
# remover rotas padrão - se houver
ip route del default &> /dev/null
ip route del default &> /dev/null
ip route del default &> /dev/null
# remover tabelas
ip rule del lookup link1 &> /dev/null
ip rule del lookup link1 &> /dev/null
ip rule del lookup link1 &> /dev/null
ip rule del lookup link2 &> /dev/null
ip rule del lookup link2 &> /dev/null
ip rule del lookup link2 &> /dev/null
# adicionar rotas nas tabelas
# tabela link1
# remover regras
# detalhe antes de cat é uma crase "`" e não uma aspas simples
for ip in `cat /etc/ips.link1`
do
ip rule del from $ip &> /dev/null
done
ip rule del from $link1_ip_local &> /dev/null
# adicionar regras
# detalhe antes de cat é uma crase "`" e não uma aspas simples
for ip in `cat /etc/ips.link1`
do
ip rule add from $ip table link1 prio 30 &> /dev/null
done
ip rule add from $link1_ip_local table link1 prio 30
# adicionar rotas
ip route add $link1_ip_local via $link1_gw dev $link1_iface table link1
ip route add default via $link1_gw table link1
# tabela link2
# remover regras
# detalhe antes de cat é uma crase "`" e não uma aspas simples
for ip in `cat /etc/ips.link2`
do
ip rule del from $ip &> /dev/null
done
ip rule del from $link2_ip_local &> /dev/null
# adicionar regras
# detalhe antes de cat é uma crase "`" e não uma aspas simples
for ip in `cat /etc/ips.link2`
do
ip rule add from $ip table link2 prio 30 &> /dev/null
done
ip rule add from $link2_ip_local table link2 prio 30
# adicionar rotas
ip route add $link2_ip_local via $link2_gw dev $link2_iface table link2
ip route add default via $link2_gw table link2
# aplicar mudanças no iproute
ip route flush cache
# liberando acesso clientes
echo -n "Liberando acesso para clientes..."
# clientes link1
for ip in `cat /etc/ips.link1`
do
# liberação de FORWARD
$ipt -A FORWARD -s $ip -j ACCEPT
# marcar pacotes para gráfico de consumo de banda
$ipt -t mangle -A PREROUTING -s $ip -j ACCEPT # down
$ipt -t mangle -A POSTROUTING -d $ip -j ACCEPT # up
# mascaramento - radio uol
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.5.71 -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.74 -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.75 -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.118 -j ACCEPT
# nat caixa econômica federal (conectividade)
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.201.0.0/16 --dport 80 -j ACCEPT
# redirecionamento para o proxy
$ipt -t nat -A PREROUTING -p tcp -s $ip --dport 80 -j REDIRECT --to-port 3128
$ipt -t nat -A PREROUTING -p tcp -s $ip --dport 8080 -j REDIRECT --to-port 3128
$ipt -t nat -A POSTROUTING -s $ip -d 0/0 -j SNAT --to $link1_ip_local
echo -n "."
done
# clientes link2
for ip in `cat /etc/ips.link2`
do
# liberação de FORWARD
$ipt -A FORWARD -s $ip -j ACCEPT
# marcar pacotes para gráfico de consumo de banda
$ipt -t mangle -A PREROUTING -s $ip -j ACCEPT # down
$ipt -t mangle -A POSTROUTING -d $ip -j ACCEPT # up
# mascaramento - radio uol
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.5.71 -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.74 -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.75 -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.221.8.118 -j ACCEPT
# nat caixa econômica federal (conectividade)
$ipt -t nat -A PREROUTING -p tcp -s $ip -d 200.201.0.0/16 --dport 80 -j ACCEPT
# redirecionamento para o proxy
$ipt -t nat -A PREROUTING -p tcp -s $ip --dport 80 -j REDIRECT --to-port 3128
$ipt -t nat -A PREROUTING -p tcp -s $ip --dport 8080 -j REDIRECT --to-port 3128
$ipt -t nat -A POSTROUTING -s $ip -d 0/0 -j SNAT --to $link2_ip_local
echo -n "."
done
echo ""
echo "----------------------------------"
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Existe algum problema de atualizar uma versão lts para uma versão não ... (2)
erro ao atualizar para linux 41 [RESOLVIDO] (2)
Problema : Resolução de Tela (1)
Queria saber se existe alguma forma de desistalar programa no ubuntu s... (4)
Servidor said: 530 5.7.0 Must issue a STARTTLS command first (in r... (2)