iptables não está registrando o tráfego da WAN?

1

Deixe-me começar por declarar meu objetivo final: quando o tráfego chegar em um endereço IP específico, se o servidor não estiver ativado, ative-o com o Wake On Lan. Estou usando um roteador TP-Link Archer C7 v2 com DD-WRT instalado com o build r30709.

  • WOL funciona
  • Registrando o tráfego da LAN em port works (via regra iptables)
  • Fazendo ping do servidor a partir do script para ver se há após a análise para trabalhos de entrada de log personalizados
  • enviando trabalhos WOL do script
  • O registro do tráfego da WAN NÃO funciona (via regra iptables)

Agora, pelo que vi sobre o DD-WRT, muitas pessoas parecem criar VLANs quando fazem algo assim. Meu roteador é baseado em Atheros, e o DD-WRT supostamente não suporta VLAN para roteadores Atheros, embora muitas pessoas pareçam ter conseguido trabalhar neste roteador (eles não postam instruções online).

Atualmente, estou pesquisando uma maneira de configurar a porta no roteador em que o servidor está conectado em sua própria VLAN, mas até agora sem sorte.

Aqui estão minhas duas regras do iptables:

#this works
iptables -I FORWARD -i br0 -p tcp --dport 32400 -m state --state NEW -j LOG --log-prefix "PLEX LAN Connection "

# this does not work 
iptables -I FORWARD -i eth0 -p tcp --dport 32400 -m state --state NEW -j LOG --log-prefix "PLEX WAN Connection "

# this does not work either (dd-wrt.com says vlan2 is the WAN interface)
iptables -I FORWARD -i vlan2 -p tcp --dport 32400 -m state --state NEW -j LOG --log-prefix "PLEX WAN Connection "

Isso é algo que pode ser corrigido com apenas iptables? Porque não consigo fazer com que o iptables registre conexões WAN de entrada nessa porta para / var / log / messages. Presumi que não estava escrevendo no log porque não está em sua própria VLAN.

Atualização 1

Por favor, note que tentei usar eth0 em vez de vlan2 , mas o mesmo resultado: nada no log. Eu até removi -i <interface> todos juntos nas duas regras, mas nunca em tráfego da WAN.

root@DD-WRT:~# ip a
root@DD-WRT:~# ip ro
default via pu.bl.ic.1 dev eth0
pu.bl.ic.0/24 dev eth0  proto kernel  scope link  src pu.bl.ic.ip
127.0.0.0/8 dev lo  scope link
169.254.0.0/16 dev br0  proto kernel  scope link  src 169.254.255.1
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.1

De acordo com o site do DD-WRT, vlan2 deve representar a interface lógica para a WAN.

Atualização 2

Eu notei que o IP de destino está incorreto. Deve estar indo para 192.168.1.2 mas vai para 192.168.0.10. Isso não é uma LAN válida:

Oct  4 20:47:35 DD-WRT kern.warn kernel: [114429.460000] PLEX LAN Connection IN=br0 OUT=eth0 MAC=XXXXXXXXXXXXXXXXXXX SRC=192.168.1.133 DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=45163 DF PROTO=TCP SPT=4644

Tentei isso como a única regra por sugestão abaixo:

iptables -A FORWARD -p tcp --dport 32400 -m limit --limit 50/min -j LOG --log-prefix "CHECK INTERFACES"

Ainda nada no log; parou de registrar conexões LAN também.

Atualização 3

root@DD-WRT:/tmp/var/log# iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 2742 packets, 395K bytes)
 pkts bytes target     prot opt in     out     source               destination
   13   764 DNAT       tcp  --  *      *       0.0.0.0/0            pu.bl.ic.ip       tcp dpt:14619 to:192.168.1.2:32400
    0     0 DNAT       icmp --  *      *       0.0.0.0/0            pu.bl.ic.ip       to:192.168.1.1
    4   232 DNAT       tcp  --  *      *       0.0.0.0/0            pu.bl.ic.ip       tcp dpt:22709 to:192.168.1.2:32400
  220 19942 TRIGGER    0    --  *      *       0.0.0.0/0            pu.bl.ic.ip       TRIGGER type:dnat match:0 relate:0

Chain INPUT (policy ACCEPT 30145 packets, 2802K bytes)
 pkts bytes target     prot opt in     out     source               destination

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

Chain POSTROUTING (policy ACCEPT 260 packets, 21863 bytes)
 pkts bytes target     prot opt in     out     source               destination
 1065 67674 SNAT       0    --  *      eth0    192.168.1.0/24       0.0.0.0/0           to:pu.bl.ic.ip
   10   624 MASQUERADE  0    --  *      *       0.0.0.0/0            0.0.0.0/0           mark match 0x80000000/0x80000000
    
por Nathan 04.10.2016 / 19:23

2 respostas

1

Não posso adicionar comentários ao superusuário, então é uma resposta. Você pode confirmar que o serviço está funcionando, seja qual for o acesso da LAN ou WAN?

Você usa um script iptables ou simplesmente executa seu comando no bash separadamente? Se você não tem um script iptables, como o Cybernard disse, você tem que ter certeza que sua linha LOG está antes do ACCEPT.

Depois que um pacote é ACEITO ou DROPADO, ele deixa a cadeia, portanto, nunca corresponderá à regra de registro localizada posteriormente na cadeia.

Por exemplo, para inserir sua regra de LOG como a primeira na cadeia FORWARD:

iptables -I FORWARD 1 -p tcp --dport 32400 -m limit --limit 50/min -j LOG --log-prefix "CHECK INTERFACES"
    
por 05.10.2016 / 10:31
0

por favor note que o ip na interface WAN será pre nat para que o roteador possa ser o alvo mesmo se o pacote for encaminhado. isso é o que eu faria:

iptables -I INPUT -p any -i <wan interface> -j LOG --log-prefix "FIREWALL-WAN"
iptables -I FORWARD -p any -i <wan interface> -j LOG --log-prefix "FIREWALL-WAN"

onde está a interface com o ip wan. Normalmente eu só cair wan trafic e, em seguida, permitir que eu quero, então na verdade eu não faria isso.

    
por 25.04.2017 / 11:17