http://www.zago.eti.br/firewall/redirecionamento.txt FAQ com mensagens relacionadas a regras de redirecionamento, uso do pacote redir, REDIRECT, DNAT, SNAT e etc.... Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux veja mais mensagens sobre rotas no FAQ route.txt http://www.zago.eti.br/route.txt veja também neste diretório (site) FAQ iptables.txt -> varias mensagens com exemplos em Iptables. Squid sobre redirecionamento com squid, veja no sub-diretório squid, tem várias mensagens com exemplos no FAQ squid.txt. Sobre Pcanywhare e VNC http://www.zago.eti.br/vnc.txt sobre VPN veja em: http://www.zago.eti.br/vpn.txt ADSL rotas para quem usa IP dinamico, veja no FAQ adsl.txt http://www.zago.eti.br/adsl.txt http://www.zago.eti.br/dns.txt http://www.zago.eti.br/firewall/ip.txt ******************************************************** ******************************************************** REGRAS PRA REDIRECIONAR (POR PORTA) PRA UMA MAQUINA DA REDE INTERNA. Neste exemplo: um micro compartilhando internet pra rede interna e fazendo o firewall, quero que as conexões por ssh passem diretamente pra uma estação da rede, ou seja pra outra maquina da rede atraz do firewall. No micro que compartilha a internet não tem o servidor de ssh rodando, o servidor de ssh está rodando na estação com IP 192.168.1.53, de qualquer maquina da internet, quando digitar ssh zago@200.204.198.164 quem deverá atender esta conexão será a estação 192.168.1.53 que está atraz da maquina com IP 200.204.198.164. Considererando que tenho estas regras no firewall: modprobe iptable_nat iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport 80,443 -j REDIRECT --to-ports 3128 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward Preciso acrescentar esta regra: /usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport 22 -i eth0 -j DNAT --to 192.168.1.53:22 Onde: eth0 é a placa de rede de cara pra net 22 é a porta que quero redicionar pra outra maquina (22 é a porta utilizada nas conexões por ssh) 192.168.1.53 é o IP reservado da maquina interna que vai atender a conexão. O firewall passou a ficar assim: modprobe iptable_nat /usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport 22 -i eth0 -j DNAT --to 192.168.1.53:22 iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport 80,443 -j REDIRECT --to-ports 3128 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward obs, as regras acima não é um firewall, são regras simples pra compartilhar a internet, usei o termo e o modelo acima somente como exemplo pra mostrar as regras minimas pra fazer um redirecionamento por porta, no exemplo acima qualaquer pedido da internet, de qualquer IP que chega na porta 22 será redirecionado pra maquina interna, mesmo que o serviço sshd esteja rodando no micro que faz o redirecionamento ele não vai atender os pedidos e sim redireciona-los pra maquina da rede interna, no exemplo acima, a diretiva -i eth0 indica que será redirecionados somente os pedidos que chegam na eth0, neste micro também tem uma placa de rede eth1 pra rede interna, neste caso as maquinas da rede interna contiuam fazendo conexões neste servidor enquanto as maquinas da internet não fazem, elas são redirecionadas pra maquina com IP 192.168.1.53 que está atraz do firewall, isto é um exemplo, continue implementando as suas regras de firewall. Zago ******************************************************** # redirecionar VNC pra estação da rede interna iptables -A FORWARD -i eth1 -p tcp --dport 5800:5900 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -p udp --dport 5800:5900 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 5800:5900 -j DNAT --to 192.168.1.114:5800-5900 iptables -t nat -A PREROUTING -p udp -i eth1 --dport 5800:5900 -j DNAT --to 192.168.1.114:5800-5900 Onde: eth1 é a placa de rede conectada ao modem. o IP 192.168.1.114 é da estação windows rodando VNC server. ajuste para a tua rede, veja mais sobre VNC no FAQ: http://www.zago.eti.br/vnc.txt ******************************************************** Regras para redirecinar conexão SQL-Server para uma estação (win2000). No firewall, (Linux que faz o redirecionamento) utilize estas regras de iptalbes: # SQL que funcionou.... iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1433 -j DNAT --to-destination 192.168.1.140 iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 1433 -d 192.168.1.140 -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1433 -j DNAT --to-destination 192.168.1.140 iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 1433 -d 192.168.1.140 -j ACCEPT Onde: 192.168.1.140 é o IP da estação win2000 rodando SQL-Server. Veja script completo onde foram utilizadas as regras acima pra permitir que a estação win2000 rodando SQL receba conexões diretamente da internet. http://www.zago.eti.br/modelos/firewall-sql.txt ******************************************************* Outros exemplos de redirecionamento. Redirecionar pedidos na porta 3306 utilizada pelo Mysql. /usr/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3306 -j DNAT --to 192.168.1.53 onde: eht1 = é a placa da internet. 192.168.1.53 = Servidor Mysql (estação) rodando atras do firewall, que atentederá as requisições que chegam da net. ******************************************************** De:  briane_rudnisk@click21.com.br Para:  linux-br@bazar2.conectiva.com.br Assunto:  (linux-br)Redirecionamento Data:  26 Sep 2003 14:51:29 -0300 Turminha do linux Tenho visto muitos com problemas com direcionamento com iptables. Eu mesma já configurei vários serviços com o iptables, direcionando requisições para redes não roteáveis na internet(DNAT,SNAT etc...), como serviços mais simples como ssh ou protocolos mais complexos como pcanywhere. Bem mas nem tudo são flores... Já tive dois casos em que as mesmas regras que criei (e que funcionam) simplesmente não funcionaram (haja tcpdump e iptraf para descobrir!) em certos dispositivos... Neste casos use o redir, que é bem simples de usar. Basta instala-lo (O sr Google diz como) Por exemplo: Para direcionar o tráfego da porta 6000 do meu servidor 200.200.200.1 para meu host 192.168.0.1 na porta 80 basta: redir --lport 6000 --caddr 192.168.0.1 --cport 80 & PS: Ips alterados para proteger inocentes... Nos dois casos que tive que usar o redir, eram dispositivos burros como APs, switch etc... Abraços Briane ******************************************************** De:  Adriano Rodrigues Para:  Leonardo Pinto , guerreiro.linux@graciano.com.br Cc:  Lista Conectiva (E-mail) Assunto:  RES: (linux-br)Netmeeting com servidor Linux Data:  Sat, 12 Jun 2004 15:06:27 -0300 e aí camarada? Olha só, isso é galho bem fraco. 1º Observe suas regras de iptables para entrada. 2º Instale o pacote REDIR no seu servidor e proceda da seguinte forma: Digamos que o teu ip no servidor -e 200.200.199.199 e vc quer acessar da rua a máquina de ip 192.168.0.7 vi /etc/rc.local REDIR --lport=xxxx --cport=xxxx caddr=192.168.0.7 --syslog --name=netmeeting REDIR --lport=xxxx --cport=xxxx caddr=192.168.0.7 --syslog --name=netmeeting Assim, quando uma solicitação netmeeting chegar da rua e bater no teu Cl9, e le saberá que é uma solicitação para acessar pelo netmeeting a máquina client de ip 192.168.0.7, levando em consideração que xxxx é = às portas usadas pelo neteemiting ou software a ser usado. Qualquer dúvida dá um grito tche. Té mais. > Gostaria de uma ajuda do pessoal, com o seguinte meu servidor > de internet > e cl9, com iptables, a minha rede e composta de maquinas com > win98,nt e > xp, gostaria de usar o netmeeting, para acessar outros > micros, o problema > e o seguinte quando um micro chamar para fora ele usa o ip de > quem esta na > internet, e agora fica o seguinte, e quando alguem da > internet chamar para > uma maquina da rede, como farei para saber para jogar a chamada nesta > maquina? ******************************************************** De:  Danilo Vasconcelos de O. e Silva Para:  André Penteado , Lista Conectiva Assunto:  Re: (linux-br)Redirecionar porta 80 (www) Data:  Thu, 29 Jul 2004 11:36:08 -0300 iptables -A PREROUTING -t nat -s 0/0 -p tcp -d ip_valido_do_firewall --dport 80 -j DNAT --to ip_maquina:80 acho que isso deve resolver.. Danilo > iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to ip_maquina_interna De:  Claudio Polegato Junior Para:  André Penteado Cc:  Lista Conectiva Assunto:  Re: (linux-br)Redirecionar porta 80 (www) Data:  Thu, 29 Jul 2004 02:54:47 -0300 (BRT) Olá,   Meu caro, se esta máquina é o gateway, ela deve ter pelo menos duas placas ou conexões de rede, certo? Certo, então se direcionar a conexão da rede local na porta 80 para outra máquina não vai navegar na internet, dae acho que colocou a conexão de entrada errada, talves em vez de eth0 seja eth1. []'s Claudio > iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to ip_maquina_interna > > Estou usando a regra acima para redirecionar as requisicoes na porta 80 > do meu gateway para uma maquina interna. > O problema que se executo esta regra, nao consigo mais navegar na > internet. ******************************************************** De:  Danilo Vasconcelos de O. e Silva Para:  Rodrigo Rodrigues Dias - Lumina1 , linux-br Assunto:  Re: (linux-br)Duvida de nat Data:  Thu, 1 Jul 2004 08:57:36 -0300 Como faço para que os dados que provierem do IP da empresa esterna (200.200.200.1) acessem o micro um programa da maquina 192.168.0.41 atraves da porta 6001??? Fala garoto, voce vai ter que fazer um redirecionamento com DNAT.. tipo iptables -A PREROUTING -t nat -s 200.200.200.1 -p tcp -d 200.210.2.1/32 --dport 6001 -j DNAT --to 192.168.0.41:6001 Acho que isso deve resolver no teu caso.. Obs .: Todos os micros da rede interna (192.168.0.0/24) acessam a internet atraves de Mascaramento. Isso nao tem problema, pois voce deve ter uma regra no teu firewall que mascara a galera.. ******************************************************** De:  William da Rocha Lima Responder-a:  William da Rocha Lima Para:  Felipe Vieira Almeida , linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Redirecionando Portas Iptables... IP DINAMICO Data:  Thu, 9 Sep 2004 10:46:09 -0300 Caro Felipe, Olhe esse exemplo:  # ipdinamico.sh # Redirecionando portas de conexões com IP dinâmico ####################################### ## Thomaz (thomazguazzelli@yahoo.it) ## ####################################### ## # DEFINIR VARIÁVEIS # Pegar IP da placa de rede ligada na internet usando o awk # Substituir eth0 pela placa IPNET=`ifconfig eth0 | grep addr: | awk '{ print $2 }' | cut -d: -f 2` PNET=eth0 #Interface ligada na internet(mesma acima) INTERVNC=192.168.0.1 #Maquina interna rodando o VNCServer INTERBASE=192.168.0.2 #Maquina interna rodando o Servidor do Firebird # # Regras do Netfilter (iptables) # # Redirecionar conexões que chegam no ip da internet (IPNET) para # a máquina interna VNC (INTERVNC) iptables -t nat -A PREROUTING -p tcp -d $IPNET --dport 5900 -j DNAT --to $INTERVNC iptables -t nat -A POSTROUTING -p tcp -d $INTERVNC --dport 5900 -j SNAT --to $IPNET # Redirecionar conexões que chegam a IPNET # para Servidor Interbase (Firebird) interno iptables -t nat -A PREROUTING -i $PNET -p tcp -d $IPNET --dport 3050 -j DNAT --to $INTERBASE Falou, William da Rocha wrochal@linuxit.com.br www.linuxit.com.br ******************************************************** De:  Leonardo Pinto Para:  'Vagner de Paula' Cc:  Lista Conectiva (E-mail) Assunto:  RES: (linux-br)Redirecionamento de portas Data:  Tue, 14 Sep 2004 15:12:44 -0300 Olá Vagner, Tive a mesma DIFICULDADE sua, e só consegui resolver usando além do IPTABLES o REDIR. /usr/sbin/redir --lport 80 --caddr 192.168.0.3 --cport 80 Sds, Leonardo Pinto. > E ai pessoal, > > Estou com uma dúvida no firewall. Será que poderiam me dar um toque? > > Tem um servidor de internet que tem ip valido e serve > internet para a rede > interna: > > Eth0: ip valido > Eth1: ip falso. > > Quero que toda requisição de uma página específica (subdomínio) seja > direcionada para um servidor web na rede interna. > Até ai tudo bem!!! Fiz essa regra. > > Iptables t nat A PREROUTING -i eth0 p tcp -dport 80 j DNAT -to 192.168.1.254 > Iptables A FORWARD p tcp -i eth0 -dport 80 d 192.168.1.254 j ACCEPT > > Funcionou blz, só que quem está na rede interna e chama o > endereço parece que > fica chamando,chamando, chamando o servidor e não acontece > nada, enquanto  na > rede externa a porta é direcionada certinho e abro a página > numa boa, onde > estou errando? > > Isso é feito mesmo com firewall ou configuro um servidor > apache e direciono o > domínio pra lá? > > Vale dizer o seguinte que este servidor está ligado a um > provedor de internet > e que uso o dns do provedor. No dns foi configura para o > subdomínio chamar > nesta máquina e daí eu direciono para dentro da minha rede. ******************************************************** De:  Leonardo Pinto Para:  Lista Conectiva (E-mail) Assunto:  ENC: (linux-br)Redirecionamento de portas Data:  Tue, 14 Sep 2004 17:00:18 -0300 Então sarcástico homem bomba?! Diga-nos o caminho das pedras, pois o que o Vagner falou procede nas mais belas famílias. Retificando: Realmente o REDIR além de memória, processamento, etc... causa lentidão no tráfego em cerca de 50%, concordo contigo. Que fazer??? Sds, Leonardo Pinto. > o redir é um processo a mais rodando no seu linux (consome > mais memoria, > mais processamento do sistema etc....) > > > o iptables já esta no KERNEL do linux. > > mas sintam se a vontade para usar o redir afinal o linux é de > voces mesmo > (heheheheheh) > > > > > Olá Vagner, > > > > Tive a mesma DIFICULDADE sua, e só consegui resolver usando > > além do IPTABLES o REDIR. > > > > /usr/sbin/redir --lport 80 --caddr 192.168.0.3 --cport 80 > > > > > > > Quero que toda requisição de uma página específica > (subdomínio) seja > > > direcionada para um servidor web na rede interna. > > > Até ai tudo bem!!! Fiz essa regra. > > > > > > Iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 > -j DNAT --to > > > 192.168.1.254 > > > Iptables -A FORWARD -p tcp -i eth0 --dport 80 -d > > > 192.168.1.254 -j ACCEPT ******************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Redirecionar apache para maquina interna Data:  Wed, 15 Sep 2004 00:43:56 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 André Penteado wrote: >Tenho uma máquina com ip válido (200.x.x.x) com servidor >apache e dominios virtuais. Gostaria de enviar essas >requisições para uma máquina interna (192.x.x.x).         Order allow,deny         Allow from all         Deny from none         ProxyPass /     http://maquina.local/site/         ProxyPassReverse /      http://maquina.local/site/ [...] Note que a barra final no segundo argumento do ProxyPass é importante. Recomendo que leia a documentação do mod_proxy. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info     ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint: ******************************************************** De:  Elias Andrade - Suporte Tecnico - Litoral On Line Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Roteamento Data:  Fri, 24 Sep 2004 12:05:01 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1         basicamente seria deixar o forward habilitado         iptables -P FORWARD ACCEPT         echo "1" > /proc/sys/net/ipv4/ip_forward                  e usar os respectivos gateways de cada rede nas maquinas clientes.         talvez isso te ajude: http://www.ibiblio.org/pub/Linux/docs/HOWTO/Adv-Routing-HOWTO Diz a lenda que em Sex 24 Set 2004 11:50, Miguel da Silva escreveu: > Você presia de um gateway. Acho que existe um How-To explicando como montar > um gateway. - --  [ ]'s  Elias de Souza Andrade - Analista de Suporte - Litoral On Line  Home Page:: http://www.lol.com.br - Fone::(41)423-2825  -----------------------------------------------------------------------  Site pessoal:: http://www.esan.cjb.net        |Certificado Conectiva  Projeto Monesa:: http://monesa.sourceforge.net  |Linux User:: 229468  -----------------------------------------------------------------------  Paranagua - PR - Brasil [<0>]  'Nunca parta do principio de que voce sabe mais que o seu concorrente.'      Key fingerprint = B1B0 AC48 B953 D9D8 A400  96D7 330E 71BC 2A9F E982 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) ******************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br, nod3vic3@yahoo.com.br Assunto:  Re: (linux-br) Direcionar trafego externo para máquina na rede interna Data:  Sat, 25 Sep 2004 10:41:23 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Leandro wrote: >O ambiente que tenho é o seguinte: um servidor com >placa eth0 ip a.b.c.d compartilhando a conexão com a >internet através da placa eth1 ip 10.0.0.1. O que >quero fazer é criar um alias na eth0, eth0:1 ip >a.b.c.2 e redirecionar todos os pedidos com destino à >este endereço para uma máquina na rede interna com ip >10.0.0.2 e fazer que com a resposta desta máquina >volte a origem. Faça assim: ponha o IP a.b.c.2 na máquina interna e não use NAT para ela no gateway. Use isso:         route add a.b.c.2 dev eth1 Se você quer realmente usar NAT, então coloque:         iptables -t nat -A PREROUTING -d a.b.c.2 -j DNAT --to 10.0.0.2 - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info     ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint: ******************************************************** De:  Wendell Almeida Silva Para:  leonardo@openlogic.com.br Cc:  Lista Conectiva (E-mail) Assunto:  Re: RES: RES: (linux-br)Firewall bloqueia servidores internos aos clientesinternos Data:  Thu, 7 Oct 2004 17:00:29 -0300 Salve! INET=200.201.129.100 SUBNET=192.168.1.1/24 SERV1=192.168.1.3 SERV2=192.168.1.4 ...etc Aqui é realizado o redirecionamento para os servidores internos quando a solicitação é realizada para um endereço válido. Serve tanto para os clientes internos e externos que fizeram a solicitação. # Redirecionamento de portas para os servidores internos iptables -t nat -A PREROUTING -d $INET -p tcp -m multiport --dport $PORTS_SERV1 -j DNAT --to $SERV1 iptables -t nat -A PREROUTING -d $INET -p tcp -m multiport --dport $PORTS_SERV2 -j DNAT --to $SERV2 Qualquer solicitação ao firewall pelos clientes internos receberão um endereço válido # Mudança para ip válido iptables -t nat -A POSTROUTING -s $SUBNET -j SNAT --to $INET É basicamente isso. Só não esquecer de aceitar o FORWARD qdo a interface de entrada e saída e a mesma, ou seja, a interface da rede local. Qualquer dúvida é so escrever. []'s Wendell ******************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br) Usuários externos não conseguem acessar o servidor ... Data:  Thu, 14 Oct 2004 19:58:17 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Rafael Nery wrote: >o senário é o seguinte: >Servidor de Aplicação eth0 192.168.0.5 ETH1 192.168.2.1 >Servidor de BD eth0 192.168.2.2 ( estão ligado crossover) >O Sistema é microsgia.. a Aplicação usa a porta 1234 e top conect que >está no BD usa 789. >Eu fiz dnat tanto na aplicação quanto no bd, mas usuários externos não >conseguem acessar  até aparece a tela da aplicação, mas trava. >Agora, usuários da rede interna acessam  normalmente... Antes de tudo, deixe-me repetir a dica: nunca coloque servidores atrás de NAT. É uma idéia ruim. Verifique se a aplicação não requer mais portas abertas para efetuar a comunicação. Além disso, verifique se o servidor da aplicação não está enviando o próprio IP para a conexão secundária. Se não conseguir descobrir isso, recomendo que use o tcpdump ou ethereal no seu servidor NAT e identifique se há algum pacote vindo do seu cliente externo que está sendo bloqueado ou descartado no seu firewall. PS: se você descobrir que o servidor do aplicativo envia o próprio IP, você deverá modificar o programa. Ou parar de usar NAT. NAT é praga. Tem que acabar o mais cedo possível. Viva IPv6. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info ******************************************************** De:  Rogério Alexandre Machado Carrasqueira Responder-a:  Rogério Alexandre Machado Carrasqueira Para:  Eduardo Ferrari Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br) Dúvida no roteamento com IPTABLES Data:  Sat, 16 Oct 2004 17:33:32 -0300 Eduardo, > Os comandos do IPTABLES utilizados foram: > > iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to- > destination 10.1.1.10 > iptables -I FORWARD -d 10.1.1.10 -j ACCEPT > Faça assim: iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 10.1.1.10:80 iptables -A FORWARD -p tcp -s 0/0 -d 10.1.1.10 --dport 80 -j ACCEPT iptables -A FORWARD -p tcp -s 10.1.1.10 -d 0/0 --sport 80 -j ACCEPT Espero ter ajudado Abs Rogério ******************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Cc:  Eduardo Ferrari Assunto:  Re: (linux-br) Mais uma dúvida com IPTABLES Data:  Sun, 17 Oct 2004 03:48:55 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Eduardo Ferrari wrote: >Existe alguma maneira de que eu possa especificar que somente o >www.site.com.br vá para aquele outro servidor (10.1.1.10) e que o >mail.site.com.br, por exemplo, fique no linux (10.1.1.1) ? Sim, mas não com iptables. Você pode fazer isso com o mod_proxy do Apache, rodando no seu firewall. Funciona bem aqui. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info ******************************************************** De:  vandeci Para:  Eduardo Ferrari , linux-br Assunto:  Re: (linux-br)Roteamento com IPTABLES e alias para web Data:  Fri, 22 Oct 2004 16:16:54 -0300 > > > www.site1.com.br ele direcione para o 192.168.0.2, mas quando ela digite > > > webmail.site1.com.br ele direcione para a porta 81 ou 80 da máquina Linux > > > afim de rodar o WEBMAIL ???? No arquivo de zona site1.com.br www                   IN      A       192.168.0.2 webmail               IN      A       192.168.0.1 Vandeci De:  Eduardo Ferrari Para:  Jorge Godoy Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Roteamento com IPTABLES e alias para web Data:  Fri, 22 Oct 2004 17:17:31 -0200 Pessoal Apesar de alguns colegas de lista não terem gostado dessa minha postagem, acredito que todos nós somos profissionais e todos nós temos dúvidas, a lista serve para isso e o linux é um software livre devido a todos se ajudarem. Sou profissional também e tenho uma empresa que trabalha com Linux. Apesar de tudo, assim como todo mundo, não sei de tudo e sou de nível intermediário, por isso busquei a dúvida na lista e resolvi. Agora vou compartilhar com todos vocês o que fiz para resolver o problema. O problema na verdade não é resolvido no IPTABLES, mas sim na própria configuração do DNS: www.site1.com.br.      IN      A       192.168.0.2 webmail.site1.com.br.  IN      A       192.168.0.3 www.site2.com.br.      IN      A       192.168.0.4 E assim por diante. Também é possível fazer pelo Apache, e aqui abaixo está o site que tem umas dicas boas para fazer por lá: http://www.pcforum.com.br/cgi/yabb/YaBB.cgi? board=apache;action=display;num=1088300254 Obrigado a todos e um grande abraço! Eduardo Ferrari On Thu, 21 Oct 2004 21:57:41 -0300, Jorge Godoy wrote > "Eduardo Ferrari" writes: > > > Este problema está crítico demais para mim e ninguém ainda me ajudou! > > Nestes casos, recomendo que você contrate uma assessoria especializada. > Ao contratar um profissional, ele possui um compromisso com você de > resolver o problema para o qual foi contratado.  Esta lista, por > exemplo, não possui e não dá as mesmas garantias que você teria de outra > forma. > > As opiniões desta lista não implicam em um compromisso ou em uma relação > de responsabilidade da pessoa -- ou profissional -- que aqui se encontra > com você.   > > O que sempre digo, nestes casos, é que cada um sabe o valor das > informações que possui e sabe o tipo de profissional que precisa. > > > Os sites da empresa ainda estão em ASP, então foi necessário colocar > > um servidor Micro$hit para rodar o II$ e servir os sites. Acontece que > > agora foi necessário fazer um FW com o IPTABLES para que qualquer > > pacote que venha na porta 80 seja redirecionado para a outra > > máquina. Até ai tudo bem. O problema é que o pessoal da rede interna > > agora não acessa mais os sites que estão hospedados na máquina do IIS. > > Como você posicionou o servidor na rede interna?  Quais os níveis de > relação de confiança entre os servidores?  Você possui apenas duas > placas de rede ou possui três, assumindo uma estrutura mais segura e > contando com a presença de uma DMZ? > > > De uma estação se damos ping www.site.com.br resolve o IP externo do Linux > > (200.200.200.200) > > > > Os comandos do IPTABLES utilizados foram: > > > > iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to- > > destination 192.168.0.2 > > iptables -I FORWARD -d 192.168.0.2 -j ACCEPT > > > > O IP 192.168.0.2 é do servidor Micro$hit Windows 2003 Server. > > Você deve checar seu roteamento e configurações do servidor DNS para a > rede interna.  A saída e volta de um NAT é extremamente problemática e, > IIRC, não é garantido o seu funcionamento. > > Há técnicas para minimizar os problemas -- e.g. o uso de proxies -- ou > resolvê-los.  Para esclarecer isso, o profissional que vocês contratarem > fornecerá explicações sobre o assunto. > > > Existe uma maneira no IPTABLES de fazer que quando a pessoa digita: > > www.site1.com.br ele direcione para o 192.168.0.2, mas quando ela digite > > webmail.site1.com.br ele direcione para a porta 81 ou 80 da máquina Linux > > afim de rodar o WEBMAIL ???? Não.  Se o IP de destino for o mesmo para ambos você não pode fazê-lo. > Se houver IPs diferentes isso é possível. > > > Se alguém puder me socorrer esse problema é mais do que urgente para mim!!!! > > Problemas urgentes são melhor respondidos por consultores...  A lista é > um local para discussão. > > Sds, > -- > Godoy.     De:  Alejandro Flores Responder-a:  Alejandro Flores Para:  Eduardo Ferrari Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Roteamento com IPTABLES e alias para web Data:  Fri, 22 Oct 2004 08:58:14 -0300 Olá, > iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to- > destination 192.168.0.2 Nessa regra você especificou que a interface de ENTRADA do pacote é 'eth0'. Quando o pacote vem pela rede interna, ele ENTRA pela eth1 e então NUNCA vai ser redirecionado. > Existe uma maneira no IPTABLES de fazer que quando a pessoa digita: > www.site1.com.br ele direcione para o 192.168.0.2, mas quando ela digite > webmail.site1.com.br ele direcione para a porta 81 ou 80 da máquina Linux > afim de rodar o WEBMAIL ???? Não. Ao invés de usar uma regra de iptables para direcionar para um servidor interno, eu usaria o apache com mod_proxy, para fazer um proxy reverso e pegar as páginas que estão no 192.168.0.2 quando necessário. Abraço! Alejandro Flores Ps. concordo com o Godoy. ;-) De:  Roger Freitas Lovato Para:  Eduardo Ferrari Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Roteamento com IPTABLES e alias para web Data:  Mon, 25 Oct 2004 20:12:59 -0300 Os comandos do IPTABLES utilizados foram: > > iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to- > destination 192.168.0.2 > iptables -I FORWARD -d 192.168.0.2 -j ACCEPT >   > Tente: # NAT para 192.168.0.2 das conexões vindas da Internet iptables -A PREROUTING -t nat -p tcp -d 200.200.200.200 --dport 80 --sport 1024:65535 -i eth0 -j DNAT --to 192.168.0.2:80 Se vc quiser acessar esse IIS também pelo IP 200.200.200.200 vc terá que fazer mais um nat para a própria rede interna. Tente: iptables -A PREROUTING -t nat -p tcp -d 200.200.200.200 --dport 80 -sport 1024:65535 -i eth1 -j DNAT --to 192.168.0.2:80 Fiz um teste rapido aqui e funcionou. []'s Roger ******************************************************** De:  Alejandro Flores Responder-a:  Alejandro Flores Para:  GuiNET© Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Apache hospedado em micro da rede Data:  Fri, 29 Oct 2004 08:43:04 -0300 Olá, > uma duvida rápida, como faço pelo iptables quando acessarem: > meuserver.no-ip.com:1313 > ele redirecionar para: > 192.168.0.4:8161 > Ou seja : > Servidor: > 192.168.0.1:1313  aponta para 192.168.0.4:8161 No seu linux meuserver.no-ip.com, crie a seguinte regra: iptables -t nat -A PREROUTING -p tcp --dport 1313 -j DNAT --to-destination 192.168.0.4:8161 > PS: naum criei nenhuma regra no iptables... em todas suas tabelas... ou > seja estão vazias.. por isso naum avera problemas... só preciso desse > redirecionamento. Se você acha que deixar o seu linux escancarado na internet não tem problemas... :-) Abraço! Alejandro Flores De:  Adriano Frare Responder-a:  alfrare@e-alinux.com Para:  GuiNET© Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Apache hospedado em micro da rede Data:  Fri, 29 Oct 2004 08:31:35 -0300 Caro Colega, Segue a regra abaixo para a sua situação. $IPTABLES -A FORWARD -p TCP -i $INET_IFACE --destination-port 1313 \   --destination 192.168.0.4 -j ACCEPT $IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE  \  -j DNAT --dport 1313 --to-destination 192.168.0.4:8161 Onde: 1) $INET_IFACE e a placa de rede onde está configurado o meuserver.no-ip.com. Exemplo -> eth0, eth1, .... 2) $IPTABLES é o localização do use iptables. Ex. /usr/sbin/iptables Espero ter ajudado. Adriano Frare ******************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Regra de NAT Data:  Fri, 29 Oct 2004 22:29:46 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Alex S. Pereira wrote: >Pessoal, > >Preciso de ajuda para criar uma regra de nat no iptables, eu tenho um CL9 >com eth0 e eth1, eu preciso que todo pacote que chegar no iptable cujo >destino for a rede 192.165.20.0/24 tenha o seu destino alterado para >192.164.20.0/24 e todo pacote que a  origem for da rede 192.168.64.20.0/24 >tenha a sua origem alterada para 192.165.20.0/24, ou seja, preciso de uma >regra de NAT de N para N e não de 1 para 1 ou N para 1 entre as redes >192.164.20.0/24 e a rede 192.165.20.0/24 Antes de mais nada, esses endereços que você mencionou são públicos. Você não deve usá-los em redes privadas. Recomendo que troque para os endereços reservados. Você não disse qual interface está ligada a que rede. Era bom saber isso. Eu estou assumindo que a eth0 está ligada a 192.164.20.0/24 e a eth1, à outra. iptables -t nat -A POSTROUTING -i eth0 -d 192.165.20.0/24 -j SNAT --to 192.164.20.0-255 e outras regras semelhantes - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info ******************************************************** De:  brSAT.com Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)terminal service passando pelo iptables Data:  Thu, 11 Nov 2004 09:02:11 -0200 (BRST) Eu tive este problema resolvi com essas regras !!!! deduzindo que sua eth0 seja a sua placa de rede externa ou seja 200.***.***.*** e eth1 seja a placa de rede interna do servidor e 192.168.1.3 seja o seu endereco do windows iptables -A INPUT -i eth0 -p TCP --dport 3389 --syn  -j ACCEPT iptables -A INPUT -i eth0 -p UDP --dport 3389 -j ACCEPT # DE EXT PARA LAN iptables -A FORWARD -i eth0 -o eth1 -s 200.***.***.***  -d 192.168.1.3 -p TCP --dport 3389 -j ACCEPT # DE EXT PARA EXT iptables -A FORWARD -i eth0 -o eth1 -s 200.***.***.***  -d 192.168.1.3 -p UDP --dport 3389 -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 3389 -j DNAT  --to-destination 192.168.1.3:3389 iptables -A FORWARD -i eth0 -d 192.168.1.3/32 -p TCP --dport 3389 -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -p UDP --dport 3389 -j DNAT  --to-destination 192.168.1.3:3389 iptables -A FORWARD -i eth0 -d 192.168.1.3/32 -p UDP --dport 3389 -j ACCEPT -----Mensagem original----- Tenho um servidor windows rodando o terminal service internamente na rede, porem, estamos precisando de ter alguns acessos externos, a regra que colocamos em um micro com duas placas (interna e externa) foi esta.... iptables -t nat -A PREROUTING -s 200.xxx.xxx.xxx -p tcp -i eth0 --dport 3389 -j DNAT --to 192.xxx.xxx.xxx Samuel Oliveira Altidata iNFO ******************************************************** De:  Alejandro Flores Responder-a:  Alejandro Flores Para:  Marcus Vincius Gonçalves Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)ajuda com iptables Data:  Tue, 23 Nov 2004 11:39:20 -0300 Olá > Passei o dia hoje fazendo alguns testes, primeiro acrescentei algumas linhas > no iptables, segue abaixo: > > iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 4444 -j > DNAT --to-destination 192.168.0.100:80 ok > #TESTANDO ACESSO EXTERNO PELO HTTP > iptables -A INPUT -i ppp0 -p tcp -s 0/0 --sport 4444 -m state --state > ESTABLISHED,RELATED -j ACCEPT Essa linha não é necessária. Antes do pacote ser analisado pela chain INPUT, ele vai ter o seu destino trocado na regra do DNAT, então vai ser analisado pela chain FORWARD. > iptables -A INPUT -i ppp0 -p udp -s 0/0 --sport 4444 -m state --state > ESTABLISHED,RELATED -j ACCEPT Essa também não precisa. O HTTP utiliza protocolo TCP apenas. > Vou pesquisar o que vem a ser o SYn e ACK, não tenho esse conhecimento, > podendo me ajudar agradesço. É o famoso tree-way-handshake das conexões TCP. Exemplo: Cliente HTTP inicia uma requisição, então ele manda um pacote TCP com a flag SYN ativo para o servidor de destino. Então o servidor de destino responde com um pacote TCP com os flags SYN-ACK ativos. Então o cliente recebeu o SYN-ACK do servidor e responde então com ACK, estabelecendo a conexão TCP. A partir daí até o final da conexão só irão trafegar pacotes com o flag ACK ativo. Abraço! Alejandro Flores ******************************************************** De: Thiago Macieira Para: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)Firewall + DNS Data: Wed, 6 Apr 2005 20:59:23 -0300 Lista Linux wrote: >Quero preparar esse novo servidor linux p/ DNS (responda externamente, >porem com IP da minha rede local invalido) p/ fazer esse papel sendo que > ele esta atras do Firewall 200.203.x.226.. Ok, coloque o port-forward da porta 53 tcp e udp pra apontar para o IP privativo. (Por favor, pare de chamar de inválido) >Eu queria manter 2 servidores de DNS: 1 Internno...p/ resolver as >requisicoes internas....assim ele resolveria os enderecos apenas > invalidos da minha rede 192.168.200.0 (este ultima já está funcionando > sem problemas) e esse outro servidor linux p/ resolver DNS p/ a > comunindade externa. Ok. >Os dois tem o mesmo dominio minhaempresa.com.br, como devo proceder p/ >efetuar essa implementação?? Implemente um e depois o outro. Só isso. Não tem segredo algum. A diferença é que um deles será acessível externamente através do port-forward, enquanto que o outro não. -- Thiago Macieira - thiago (AT) macieira (DOT) info PGP/GPG: 0x6EF45358; fingerprint: ******************************************************** De: Jorge Godoy Para: Ronaldo - iTelefonica Cc: linux-br Assunto: Re: (linux-br) Redirecionamento de conexão Data: 03 May 2005 08:04:31 -0300 "Ronaldo - iTelefonica" writes: (...) > Preciso que um cliente externo (IP fixo - banda larga), se conecte em um > servidor da minha rede interna (IP do servidor interno 10.0.) na porta 23 > (telnet), onde fica o meu sistema. (...) > Alguém tem alguma dica ? Que regras devo utilizar no firewall ? Simplesmente verifique regras para SNAT e DNAT no iptables. Com SNAT você reescreverá o IP dele no IP do firewall ou em um IP específico da rede interna. A segunda possibilidade parece mais interessante, principalmente por você poder barrar o endereço se tiver outros firewalls -- e se for realmente desejável, podem existir outors em todos os servidores Linux, só para impedir o acesso deste cliente. Com DNAT você reescreverá o que ele deseja acessar. Pode ser a porta 23 do firewall o destino dele ou não, e você capturará todos os acessos a esta porta e reescreverá para o IP e porta de destino. A descrição parece muito mais complicada que a implementação. São duas ou três linhas no iptables. A documentação, IIRC, tem um exemplo disso. -- Jorge Godoy ******************************************************** De: itamar Para: Lucas Oliveira , linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br) Ip's válidos Data: Tue, 24 May 2005 16:25:28 -0300 faz assim Eth0 200.xxx.27.194 -> com gateway 200.xxx.27.193 Eth1 10.10.10.10 ai voce coloca o ip valido nos clientes e coloca como gateway 10.10.10.10 lembre de ativar o repasse de pacotes no linux echo 1 > /proc/sys/net/ipv4/ip_forward prontim, seus clientes estao com ip valido. Itamar Reis Peixoto +55 (34) 3238 3845 e-mail : itamar@ispbrasil.com.br http://vps.ispbrasil.com.br --->>> servidores linux ******************************************************** De: Alejandro Flores Para: Helder Cc: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)Acesso Remoto Data: Thu, 25 Aug 2005 17:55:43 -0300 Olá, > Gostaria de fazer um acesso remoto de casa da seguinte maneira: > casa(utilizando terminal > Server)(adsl)---------(adsl)(eth0)(Linux2.6)(eth1)-------(rede interna > escritorio)----------(Servidor W2000) iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination ServidorW2000 iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 3389 -d ServidorW2000 -j ACCEPT -- Abraço! Alejandro Flores http://www.triforsec.com.br/ ******************************************************** De: Alejandro Flores Para: Helder Cc: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)Acesso Remoto Data: Fri, 26 Aug 2005 08:46:46 -0300 Olá, > Gostaria de fazer um acesso remoto de casa da seguinte maneira: > casa(utilizando terminal > Server)(adsl)---------(adsl)(eth0)(Linux2.6)(eth1)-------(rede interna > escritorio)----------(Servidor W2000) iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination ServidorW2000 iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 3389 -d ServidorW2000 -j ACCEPT -- Abraço! Alejandro Flores http://www.triforsec.com.br/ ******************************************************** De: Flavio Torres Para: linux-br Assunto: Re: (linux-br)Criando regra na tabela Mangle do Iptables Data: Thu, 22 Dec 2005 19:48:20 -0300 gostaria de redirecionar o todo o trafego que vem na porta 25, para a > maquina que esta conectada no link de 600K. > > Ou seja o link de 600, seria usado para a saida de e-mail, e o link de 256 > ficaria somente para uso de proxy e firewall. > > Isso é viavel ? E em termos de desempenho ? Possuo antivirtus e anti-spam > instalados > Como seria a regra da tabela mangle ? > > Att, > ?> Ola Faria, A tabela mangle é responsavel por aplicar o TOS nos pacotes, ou seja, realizar controle e alteracoes "especiais" em pacotes, muito utilizado em parceria com CBQ entre outros. O que vc esta precisando é de um PREROUTING, PREROUTING é NAT cara, vamos la. /sbin/iptables -t nat -A PREROUTING -p tcp -m tcp -d $IFACE_EXT --dport 25 -j DNAT --to $SERVER2 O iptables vai redirecionar todo pacote com destino (-d) a $IFACE_EXT (interface externa) e com destino a porta 25 (--dport 25) para o $SERVER2 (ip do outro server) Uma dica extra, se voce precisar redirecionar para 3 servidores por exemplo, fazendo um balanceamento de link, seria: /sbin/iptables -t nat -A PREROUTING -p tcp -m tcp -i $IFACE_EXT --dport 25 -j DNAT --to $SERVERIN-$SERVERFIM [ ]'s/ *---------------------------------------------------*/ /* * Flavio Torres - Administrador de Sistemas*/ /* /_\ */int y,z;main(x){x=(x>0?-9:x);z=((z=(x+5) /* o. .o */)>0?z:-z);printf(!x&&++y?"\n":z?z>y%3+y/ /* ((Y)) */3?" ":x<-5?"/":"\\":y?"|":"*");y-9?main( /* ()) (() */++x):puts(" _|_|_")&&puts(" \\___/");} /* ()^() A party animal isn't just for Christmas.*/ ********************************************************