Cara, Otimo esse seu artigo... Justamente o que eu estava precisando no momento. so que me pintou uma duvida aqui. no meu caso eu ja tenho o iptables configurado com um link. como ficaria e meu script do iptables? olha ai como ele esta hj. #!/bin/sh internet="eth1 " redelocal="eth0" echo "####################ATIVANDO IPTABLES#######################" iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -F POSTROUTING -t nat iptables -F PREROUTING -t nat iptables -F -t nat echo "Limpando as regras ..................................[ OK ]" iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT echo "Politica Default das Cadeias ........................[ OK ]" echo "0" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses echo 1 > /proc/sys/net/ipv4/tcp_syncookies /sbin/modprobe iptable_nat /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp /sbin/modprobe ipt_LOG /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_MASQUERADE /sbin/modprobe ip_nat_pptp echo "Carregando os modulos ...............................[ OK ]" # Conectividade Social iptables -t nat -A PREROUTING -s 131.195.2.21 -d 0.0.0.0/0 -j ACCEPT #CONTABIL4 iptables -t nat -A PREROUTING -s 131.195.2.24 -d 0.0.0.0/0 -j ACCEPT #PESSOAL1 iptables -t nat -A PREROUTING -s 131.195.2.11 -d 0.0.0.0/0 -j ACCEPT #CPD-NOTEBOOK iptables -t nat -A PREROUTING -i eth0 -p tcp -d ! 200.201.174.0/24 --dport 80 -j REDIRECT --to-port 3128 echo "Regras DP e Contabilidade ...........................[ OK ]" # PORTA 3128 - ACEITA PARA A REDE LOCAL iptables -A FORWARD -i $redelocal -p tcp --dport 3128 -j ACCEPT iptables -A FORWARD -i $redelocal -p tcp --dport 80 -j ACCEPT # Redireciona porta 80 para 3128 (squid) iptables -t nat -A PREROUTING -i $redelocal -p tcp --dport 80 -j REDIRECT --to-port 3128 iptables -A FORWARD -i $redelocal -p tcp --dport 53 -j ACCEPT iptables -A FORWARD -i $redelocal -p udp --dport 53 -j ACCEPT iptables -A FORWARD -i $redelocal -p tcp --dport 110 -j ACCEPT iptables -A FORWARD -i $redelocal -p udp --dport 110 -j ACCEPT iptables -A FORWARD -i $redelocal -p tcp --dport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p udp --dport 443 -j ACCEPT iptables -A FORWARD -i $redelocal -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -p tcp --dport 20 -j ACCEPT iptables -A INPUT -p tcp --syn --dport 22 -m recent --name sshattack --set iptables -A INPUT -p tcp --dport 22 --syn -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j LOG --log-prefix 'SSH REJECT: ' iptables -A INPUT -p tcp --dport 22 --syn -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j REJECT --reject-with tcp-reset iptables -A FORWARD -p tcp --syn --dport 22 -m recent --name sshattack --set iptables -A FORWARD -p tcp --dport 22 --syn -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j LOG --log-prefix 'SSH REJECT: ' iptables -A FORWARD -p tcp --dport 22 --syn -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j REJECT --reject-with tcp-reset iptables -A FORWARD -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A FORWARD -p tcp --dport 22 -j ACCEPT iptables -A FORWARD -p tcp --dport 3456 -j ACCEPT #RECEITANET iptables -A FORWARD -p tcp --dport 5006 -j ACCEPT #SICOOB iptables -A FORWARD -p tcp --dport 8080 -j ACCEPT #SICOOB iptables -A FORWARD -p tcp --dport 6330 -j ACCEPT #CHECKLINE iptables -A INPUT -i $internet -m state --state ! ESTABLISHED,RELATED -j DROP iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT echo "Cadeia de Entrada ...................................[ OK ]" iptables -t nat -F POSTROUTING iptables -t nat -A POSTROUTING -o $internet -j MASQUERADE echo "Ativando o mascaramento .............................[ OK ]" iptables -A FORWARD -i $internet -j ACCEPT iptables -A FORWARD -o $internet -m state --state ESTABLISHED,RELATED -j ACCEPT echo "Ativando o acesso ftp.. .............................[ OK ]" #iptables -A INPUT -p all -j DROP #iptables -A FORWARD -p all -j DROP echo "Rejeitando saida e entrada ..........................[ OK ]" iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT echo "Quais sockets sao validos ...........................[ OK ]" # Proteç contra tronjans iptables -A INPUT -p TCP -i $internet --dport 666 -j DROP iptables -A INPUT -p TCP -i $internet --dport 4000 -j DROP iptables -A INPUT -p TCP -i $internet --dport 6000 -j DROP iptables -A INPUT -p TCP -i $internet --dport 6006 -j DROP iptables -A INPUT -p TCP -i $internet --dport 16660 -j DROP iptables -A INPUT -p TCP -i $internet --dport 27444 -j DROP iptables -A INPUT -p TCP -i $internet --dport 27665 -j DROP iptables -A INPUT -p TCP -i $internet --dport 31335 -j DROP iptables -A INPUT -p TCP -i $internet --dport 34555 -j DROP iptables -A INPUT -p TCP -i $internet --dport 35555 -j DROP iptables -A INPUT -p TCP -i $internet --dport 3128 -j DROP iptables -A INPUT -p TCP -i $internet --dport 8080 -j DROP iptables -A INPUT -p TCP -i $internet --dport telnet -j DROP iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP #iptables -A INPUT -i $internet -m unclean -j DROP iptables -A FORWARD -p tcp --dport 135 -i $internet -j REJECT iptables -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT iptables -A FORWARD -o $internet -i $redelocal -j ACCEPT echo "Caregado tabela filter ............................. [ OK ]" echo "1" > /proc/sys/net/ipv4/ip_forward echo "##################FIM DE REGRAS IPTABLES####################" exit 0
Opa Cristiano, Tudo tranquilo, .. muito bom os teus artigos, mas irei te dar uma dica, pois já peguei um ambiente e me deu problema. É o seguinte: Cada table é como se fosse um ambiente diferente, então temos que ter todas as rotas em todas as tabelas o que não tem no seu ambiente. #Verificando as rotas da minha tabela ip route list table gvt ip route add 192.168.1.0/24 dev eth1 src 192.168.1.10 ip route add default via 192.168.1.1 OK, mas está faltando as outras rotas, então vamos adicionar elas aí. ip route add 192.168.2.0/24 dev eth2 src 192.168.2.10 table gvt ip route add 192.168.3.0/24 dev eth3 src 192.168.3.10 table gvt ip route add 192.168.0.0/24 dev eth3 src 192.168.0.10 table gvt #Rede Local ip route add 127.0.0.0/8 dev lo table gvt #interface local ip route add 192.168.1.0/24 dev eth1 src 192.168.1.10 table brt ip route add 192.168.3.0/24 dev eth3 src 192.168.3.10 table brt ip route add 192.168.0.0/24 dev eth3 src 192.168.0.10 table brt #Rede Local ip route add 127.0.0.0/8 dev lo table brt #interface local ip route add 192.168.2.0/24 dev eth2 src 192.168.2.10 table net ip route add 192.168.1.0/24 dev eth1 src 192.168.1.10 table net ip route add 192.168.0.0/24 dev eth3 src 192.168.0.10 table net #Rede Local ip route add 127.0.0.0/8 dev lo table net #interface local Essa saída é a ideal ip route list table gvt ip route add 192.168.1.0/24 dev eth1 src 192.168.1.10 ip route add 192.168.2.0/24 dev eth2 src 192.168.2.10 ip route add 192.168.3.0/24 dev eth3 src 192.168.3.10 ip route add 127.0.0.0/8 dev lo ip route add 192.168.0.0/24 dev eth0 ip route add default via 192.168.1.1 Fora isso 100%
Muito interessante mesmo... achei massa... Não conhecia esta função: # Tempo máximo que o kernel espera até tentar uma nova rota quando perceber que a atual está morta. echo "10" > /proc/sys/net/ipv4/route/gc_timeout Não implementei, mas parabéns pelo post.
Tenho uma duvida, como faço para marcar um link para aceitar conexões de entrada como o exemplo a VPN? pelo que percebi, quando os 2 links estao "reduntantes/balanceado" a rota fica com 2 default gw e não consigo acesso externo a qualquer um dos IP`s, quando eu deleto uma das rotas default gw eu consigo acesso a VPN, voce sabe como resolver isso? agradeço desde já sua atenção. Obrigado.
sou novo nesta area e tenho muitas duvida.... fiz todo o procedimento do tuto.... na maquina de teste eu ligo na eth0 192.168.0.1 do servidor e coloco tipo assim 192.168.0.2 255.255.255.0 gateway 192.168.0.1 dns 192.168.0.1 muito obrigado....
bom dia desculpa mais estou com uma duvida boba . essa linha de comando acima eu ponho no em algum arquivo ou .... e sobre o rc.local ... qual o lugar certo que ele fica... add as regras apos a ultima linha.... muito obrigado...
Artigo muito bom! Parabéns!
Mano boa tarde. aki no meu Provedor possuo 3 links.. sendo eles.. 1 Embratel de 2 mb 2 velox de 5 mb eu queria saber se ah possibilidades de colocar os 2 velox para Download e o Embratel so para Navegaçao.. ou se vc tem alguma outra dica mais viavel para atender com esses link uns 150 usuarios sem fica lento em hora nenhuma do dia.. abraço..
Poderia me passar seu msn?
Olá cara tudo bem? Cara só queria tirar uma duvida.... como vou usar squid não posso fazer nat completo como vc fez (# Ativa o compartilhamento iptables -t nat -A POSTROUTING -o $ETH -s $LAN -j MASQUERADE) Assim ao invés disso é só usar um multiport pras demais portas né(110,25,21...etc) , mrnosd para 80 ...valew brother!