O NAT permite acessar a rede interna (ou a interface local do roteador) do outisde por padrão?

1

Estou usando o antigo roteador SOHO wl500gP (é v1, mas acho que isso não é importante) com < href="http://oleg.wl500g.info/"> firmware Oleg . Minha topologia é assim:

   192.168.3.3       192.168.3.2       NAT       192.168.2.1           192.168.2.170 (DHCP)
PC1<--------------------------->(WAN)wl500gP(LAN)<-------------------------------->PC2

De acordo com a interface web, eu tenho o NAT ativado no meu roteador (abaixo estão algumas saídas que você pode verificar, já que com o firmware personalizado, o roteador é uma caixa do Linux).

Agora, minha descoberta: posso acessar a interface LAN do meu roteador a partir do PC1, mas não consigo acessar o PC2 a partir do PC1. Não tenho certeza se o acesso (mesmo parte de) rede interna do mundo exterior é normal comportamento NAT. Não devem ser todos os endereços que são traduzidos escondidos atrás do NAT? Como estou ciente de que não defini servidores virtuais, encaminhamento de portas, DMZs etc. Aqui estão minhas experiências:

# PC1:

└──> ping 192.168.2.1
connect: Network is unreachable

└──> sudo route add -net 192.168.2.0 netmask 255.255.255.0 dev eth0

└──> ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_req=1 ttl=64 time=0.873 ms
64 bytes from 192.168.2.1: icmp_req=2 ttl=64 time=0.405 ms
64 bytes from 192.168.2.1: icmp_req=3 ttl=64 time=0.415 ms
64 bytes from 192.168.2.1: icmp_req=4 ttl=64 time=0.399 ms
^C
--- 192.168.2.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.399/0.523/0.873/0.202 ms

└──> ping 192.168.2.170
PING 192.168.2.170 (192.168.2.170) 56(84) bytes of data.
From 192.168.3.3 icmp_seq=1 Destination Host Unreachable
From 192.168.3.3 icmp_seq=2 Destination Host Unreachable
From 192.168.3.3 icmp_seq=3 Destination Host Unreachable
From 192.168.3.3 icmp_seq=4 Destination Host Unreachable
From 192.168.3.3 icmp_seq=5 Destination Host Unreachable
From 192.168.3.3 icmp_seq=6 Destination Host Unreachable


# PC2:
# Both pings to 192.168.3.2 and 192.168.3.3 are working. Also simple communication with 192.168.3.3 using netcat is possible.

Aqui também está uma lista complexa e silenciosa (espero) dos resultados mais importantes do meu roteador. Esses são principalmente os valores padrão (eu mudei os endereços IP e algumas outras coisas, mas espero que nada relacionado a NAT, roteamento, ponte, encaminhamento, etc. que possa causar o comportamento NAT mencionado). Se alguém explicar o IP Tables e IP Tables NAT seção ficarei grato. O que eu notei é que dnsmasq daemon está rodando, então parece que o DNS NAT está ativo.

wl500gP:


Interfaces
##########

br0       Link encap:Ethernet  HWaddr 00:1B:FC:6B:81:02  
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:77202 (75.3 KiB)

eth0      Link encap:Ethernet  HWaddr 00:1B:FC:6B:81:02  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2561 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3101 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:264691 (258.4 KiB)  TX bytes:2594967 (2.4 MiB)
          Interrupt:4 Base address:0x1000 

eth1      Link encap:Ethernet  HWaddr 00:1B:FC:6B:81:02  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:14
          TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:78826 (76.9 KiB)
          Interrupt:12 Base address:0x2000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING MULTICAST  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vlan0     Link encap:Ethernet  HWaddr 00:1B:FC:6B:81:02  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:78014 (76.1 KiB)

vlan1     Link encap:Ethernet  HWaddr 00:1B:FC:6B:81:02  
          inet addr:192.168.3.2  Bcast:192.168.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2561 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2898 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:218593 (213.4 KiB)  TX bytes:2516953 (2.3 MiB)



Routing Table
#############

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.3.3     0.0.0.0         255.255.255.255 UH    0      0        0 vlan1
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 vlan1
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 br0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.3.3     0.0.0.0         UG    0      0        0 vlan1


IP Tables
#########

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID 
 2366  197K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           state NEW 
  170 63047 ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0           state NEW 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21 flags:0x17/0x02 
  188 11280 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.2.1         tcp dpt:80 
    4   336 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpts:33434:33534 
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  br0    br0     0.0.0.0/0            0.0.0.0/0           
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID 
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
    0     0 DROP       all  --  !br0   vlan1   0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           ctstate DNAT 
    0     0 DROP       all  --  *      br0     0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 3069 packets, 2528K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain BRUTE (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain MACS (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain SECURITY (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x17/0x02 limit: avg 1/sec burst 5 
    0     0 RETURN     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x17/0x04 limit: avg 1/sec burst 5 
    0     0 RETURN     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 5/sec burst 5 
    0     0 RETURN     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 5/sec burst 5 
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain logaccept (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW LOG flags 7 level 4 prefix 'ACCEPT ' 
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain logdrop (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW LOG flags 7 level 4 prefix 'DROP ' 
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           


IP Tables NAT
#############

Chain PREROUTING (policy ACCEPT 4 packets, 336 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  189 11340 VSERVER    all  --  *      *       0.0.0.0/0            192.168.3.2         

Chain POSTROUTING (policy ACCEPT 13 packets, 4303 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      vlan1  !192.168.3.2          0.0.0.0/0           
    0     0 MASQUERADE  all  --  *      br0     192.168.2.0/24       192.168.2.0/24      

Chain OUTPUT (policy ACCEPT 13 packets, 4303 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain VSERVER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  189 11340 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080 to:192.168.2.1:80 



Process List
############

  PID USER       VSZ STAT COMMAND
    1 admin     1484 S    /sbin/init
    2 admin        0 SW   [keventd]
    3 admin        0 SWN  [ksoftirqd_CPU0]
    4 admin        0 SW   [kswapd]
    5 admin        0 SW   [bdflush]
    6 admin        0 SW   [kupdated]
    7 admin        0 SW   [mtdblockd]
   54 admin     1484 S    syslogd -m 0 -O /tmp/syslog.log -S -D -l 7 -b 1
   58 admin     1480 S    klogd
   59 admin     1480 S    telnetd
   64 admin     1120 S    httpd vlan1
   70 nobody     852 S    dnsmasq
   73 admin      964 S    lld2d br0 eth1
   74 admin        0 SW   [khubd]
   83 admin      656 S    p9100d -f /dev/usb/lp0 0
   85 admin     1480 S    rcamdmain
   99 admin     1480 S    watchdog
  101 admin     1040 S    upnp -D -L br0 -W vlan1
  150 admin     1484 S    sh -c /tmp/../usr/sbin/sysinfo > /tmp/sysinfo.htm
  151 admin     1480 S    /bin/sh /tmp/../usr/sbin/sysinfo
  167 admin     1480 R    ps




brctl show
##########

bridge name bridge id       STP enabled interfaces
br0     8000.001bfc6b8102   no      vlan0
                            eth1
    
por Wakan Tanka 30.03.2015 / 21:29

2 respostas

4

Isso é normal e não tem nada a ver com o NAT. O Linux, por padrão, trata os endereços IP como pertencentes à máquina , não a uma interface específica. Então, ele vai responder aos pacotes para 192.168.2.1 em qualquer interface, não apenas na interface da LAN.

Dito isto, o NAT não implica um firewall, ou vice-versa. Você pode, por exemplo, mapear hosts internos 192.168.0.2–254 para IPs públicos X.Y.Z.2–254 e fazer com que todo o tráfego para X.Y.Z.253 seja encaminhado para 192.168.0.253. Ainda é NAT.

Com o mapeamento de uma sub-rede inteira para um endereço IP externo, como efeito colateral, você obtém um comportamento semelhante ao de um firewall, tornando as conexões basicamente apenas de saída. Mas mesmo assim, suas regras de firewall ainda devem bloquear esses pacotes - o código NAT provavelmente pode ser enganado para mapear uma porta que você não quer, o firewall não. E é mais flexível também. (E, se o seu ISP for comprometido, ele poderá enviar tráfego para seus endereços de LAN privados e sua máquina ficará feliz em encaminhá-lo).

PS: para ver as regras NAT, você deseja iptables -t nat -L . Para ver o que é permitido encaminhar através do seu roteador / firewall, você precisa examinar a cadeia FORWARD , não a cadeia INPUT .

Notas de rodapé
¹ Ou, mais precisamente, um determinado namespace de rede na máquina - provavelmente apenas um, a menos que você esteja usando determinadas técnicas de servidor virtual. Os arquivos arp_ignore e arp_announce em /proc/net/ipv4/conf/*/ configuram esse comportamento.

    
por 30.03.2015 / 21:50
0

Há algumas coisas a serem observadas.

  1. O Iptables NAT é baseado em conexão. De um modo geral (existem algumas complicações em torno de protecols como o ftp que possuem auxiliares NAT) apenas o primeiro pacote de uma conexão passa pelas tabelas NAT, que determina como o resto da conexão será tratado.
  2. NAT não implica em firewall ou vice-versa. Se você tivesse apenas uma regra de NAT em vigor, seria perfeitamente capaz de executar ping em todos os seus hosts internos.
  3. Os pacotes só fluem pela cadeia FORWARD se estiverem realmente sendo encaminhados. Se eles estão destinados a um endereço na máquina local, eles vão para a cadeia INPUT.

As regras na sua cadeia INPUT aceitam todos os pacotes ICMP, então o ping para o "IP interno" do roteador é bem-sucedido.

Por outro lado, um ping para um dispositivo em sua rede interna passa pela cadeia FORWARD, onde as regras do seu firewall a soltam.

    
por 02.12.2016 / 05:23

Tags