SNAT com iptablesAté agora, discutimos NAT princípios gerais, tipos de NAT, e que cada tipo de NAT faz. Configurando o KernelNormalmente, cada distribuição do Linux vem com um kernel compilado com suporte netfilter, iptables, e todos os módulos necessários para a realização de Network Address Translation. O netfilter Tabela natA tabela NAT contêm três cadeias de PREROUTING, POSTROUTING e OUTPUT. Cada cadeia pode conter regras que são analisadas seqüencialmente até que uma das regras coincide com um pacote, o mesmo que para as cadeias da tabela netfilter. Essas cadeias podem ser visualizados através da emissão do comando iptables-t nat-L. SNAT com iptablesSNAT é um dos tipos mais comumente usados de NAT com o iptables por causa da topologia utilizada.
Podemos definir o SNAT para que todos os dispositivos na rede 192.168.1.0/24 acesso à Internet com apenas uma regra: iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -J SNAT - to 1.2.3.1 Este comando tem o mesmo efeito que o comando a seguir, que usaria se o endereço IP do Eth1 foram atribuídos dinamicamente, ou se foi utilizado um modem dial-up em vez de uma placa Ethernet: iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -J MASQUERADE Digamos que os nossos filtros de prestador de fora todos os portos superiores a 1024. Neste caso, teremos de mudar a porta de origem, bem como, e não apenas o endereço IP de origem. Isso pode ser feito: iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT - to 1.2.3.1:1-1024 O usuário do portátil visto na figura anterior é um fã de IRC e ele dá-nos uma chamada dizendo que ele não pode se conectar a qualquer rede de IRC. Isto significa que o módulo ip_conntrack precisa de um pouco de ajuda, e nós podemos dar a ele através da inserção do módulo ip_conntrack_irc no kernel. Além disso, podemos querer que os usuários fazem conexões FTP bem sucedida, e assim que nós queremos adicionar o módulo ip_conntrack_ftp também. ip_conntrack_irc # modprobe ou insmod ip_conntrack_irc Depois de algumas semanas, o usuário de laptop convenceu os outros usuários da rede 192.168.1.0/24 do quão maravilhoso é o IRC, por isso, temos cerca de 20-30 usuários que se conectam à rede de IRC mesmo. Agora, eles começaram a queixar-se como é difícil ficar ligado na rede de IRC, porque a rede de IRC só permite que algumas conexões do mesmo endereço IP. Nós figuramos que 32 endereços IP são o suficiente para eles, de modo a que chamamos o provedor atribuir-nos um / 27 sub-rede IP pública. Por alguns dólares extra, atribuir-nos 1.2.4.0/27. Temos de mudar a regra inicial:
iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -J SNAT - to 1.2.4.0-1.2.4.32 Eles param de reclamar, mas nós percebemos que nós não usamos o endereço IP público do nosso roteador Linux para NAT anymore. Vamos acrescentar que também, por isso vamos dar-lhes um endereço IP adicional: iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT - to 1.2.4.0-1.2.4.32 - Para 1.2.3.1 Um dos nossos usuários se em um argumento no IRC, e fica inundada durante SNAT Mapps seu endereço IP para 1.2.4.15. Inundação nosso fornecedor sistema de detecção automática de filtros que o endereço IP e envia-nos um e-mail informando-nos sobre isso. Precisamos parar de SNAT para mapear todos os endereços internos para que o endereço IP, por isso, faça o seguinte: iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT - Para 1.2.4.0-1.2.4.14 - para 1.2.4.16-1.2.4.32 - para 1.2.3.1 Um rapaz da contabilidade com o endereço IP 192.168.1.19 reclama que ele não pode acessar todos os computadores com endereços IP em 192.168.1.32. É possível que ele tenha mudado a sua máscara de rede 255.255.255.227, e assim todos os pacotes IP do seu computador para computadores em 192.168.1.0/24 que não estão na 192.168.1.0/27 passar pelo roteador Linux e obter SNATed. Para resolver este problema, temos duas alternativas. iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -D! 192.168.1.0/24 -J SNAT - to 1.2.4.0-1.2.4.32 - para 1.2.3.1 A segunda opção que temos é a SNAT apenas os pacotes que saem na eth1: iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -O eth1 -J SNAT - to 1.2.4.0-1.2.4.32 - para 1.2.3.1 Nosso provedor ligado em outro local da nossa empresa com o mesmo equipamento, e já que estamos na mesma VLAN, não temos para construir um túnel entre os roteadores em cada local, mas apenas via as redes através do roteador Linux naquele local . Em outro site, temos a rede 192.168.2.0/24. Precisamos deixar os computadores em nossos computadores de acesso à rede na rede 192.168.2.0/24 sem SNATing eles: iptables-t nat-I POSTROUTING-s 192.168.1.0/24-d 192.168.2.0/24-j ACCEPT Este comando irá inserir a regra antes da regra NAT, por isso se algum pacote de 192.168.1.0/24 é destinado a qualquer IP na rede 192.168.2.0/24, esta regra irá corresponder a cadeia e não será analisado posteriormente, de modo SNAT não terá lugar. iptables-t nat-I POSTROUTING-s 192.168.1.31 -P tcp - dport 6666:6669 -J DROP Podemos querer perguntar ao gerente que Jane é permitido fazer. Por exemplo, se o gestor quer permitir Jane acesso à web só, podemos fazer o seguinte: iptables-t nat-I POSTROUTING-s 192.168.1.31 -P tcp - dport! 80 -J DROP Esta regra não SNAT Jane endereço IP ao tentar acessar algo que não seja a porta 80 TCP, mas vai SNAT seu endereço IP ao acessar os serviços UDP, pois os pacotes UDP não irá corresponder a esta regra, assim ela será capaz de acessar qualquer servidor de DNS fora da nossa rede. DNAT com iptablesVamos continuar com o cenário anterior para DNAT também. Um dia, o gerente chama-nos dizendo que ela precisa acessar seu computador de casa. Claro que ela não pode fazer isso por causa do seu endereço IP privado 192.168.1.50. Decidimos atribuir um dos endereços IP públicos que nós temos para o seu computador do escritório, mas se tivéssemos que criar um alias na eth0, para isso, nós não apenas perder alguns endereços de IP, mas ela também não será no mesmo rede como os outros. A melhor solução é a Mapa um endereço IP público (digamos 1.2.4.1) para resolver o seu computador do escritório do IP privado (192.168.1.50). Este é, naturalmente, DNAT: iptables-t nat-A PREROUTING-d 1.2.4.1 --j DNAT - to 192.168.1.50 Portanto, a próxima coisa a fazer é ligar para ela e dizer-lhe que sempre que ela tenta se conectar ao seu computador do escritório de casa, ela deve se conectar a 1.2.4.1. iptables-t nat-A PREROUTING-s 1.2.5.17-d 1.2.4.2 --p tcp - dport 80-j DNAT - to 192.168.1.100 Nós pensamos que poderíamos querer SSH para o servidor de intranet em qualquer lugar. Não seria uma idéia muito sábia para mapear um endereço IP para o servidor de intranet, pois é vital para a nossa empresa, e se um bug SSH é descoberto, não queremos que o servidor a ser cortado. Uma boa idéia seria mapear uma porta número alto para a porta SSH no servidor de intranet (este é o PAT ou NAPT). iptables-t nat-A PREROUTING-d 1.2.4.2 -P tcp - dport 65521-j DNAT - to 192.168.1.100:22 Dessa forma, quando não estamos no escritório e queremos SSH para o servidor de intranet, abrimos uma conexão SSH para 1.2.4.2 port 65521. iptables-t nat-A PREROUTING-d 1.2.4.5-p tcp - dport 80-j DNAT - to 192.168.1.200 Transparent ProxyO proxy transparente é uma maneira de forçar os usuários a utilizar um servidor proxy, mesmo se seus navegadores estão configurados para não. Você provavelmente conhece os benefícios de usar um servidor proxy poupança de largura de banda para páginas em cache e implementação de controle de acesso (por exemplo, negar downloads de arquivos que têm extensões perigosas). iptables-t nat-A PREROUTING-s 192.168.1.0/24 -P tcp - dport 80-j REDIRECT - to-port 3128 Se queremos permitir que o gerente (que tem o endereço IP 192.168.1.50) para ignorar o servidor proxy, fazemo-lo assim: iptables-t nat-I PREROUTING-s 192.168.1.50 --p tcp - dport 80-j ACCEPT Portanto, esta regra será compensada na cadeia PREROUTING, e ela será SNATed na cadeia POSTROUTING. um artigo submetido por Philip A Clare Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo "SNAT com iptables" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 383 users browsing the articles directory |
|
|