Como permitir somente a sub-rede para a porta com iptables

0

O que eu estou tentando fazer é DROP quaisquer pacotes para uma porta UDP específica, exceto aqueles da minha sub-rede segura 10.8.0.0/24.

iptables -t nat -A --src 10.8.0.0/24 -p udp --destination-port 63210 -j ACCEPT

Eu recebo este erro: Bad argument: 10.8.0.0/24

Eu não entendo porque isso não funciona ...

  • Por que esse comando diz que o IP é um mau argumento?
  • Como DROP qualquer outro pacote, fora da sub-rede?
  • Devo usar a tabela NAT?
  • Como conseguir isso?

Encontrei uma solução assim:

UPDATE

iptables -N xchain
iptables -A xchain --source 10.8.0.0/24 -j ACCEPT
iptables -A xchain -j DROP
iptables -I INPUT -p udp --dport 63210 -j xchain

Após aplicar isso, não consigo acessar a porta de QUALQUER ip ...

PROBLEMA Eu tenho o servidor OpenVPN configurado na interface tun0, encaminhando os pacotes para a eth0 assim:

iptables -I FORWARD -i tun0 -o eth0 \
         -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
         -j ACCEPT

iptables -t nat -I POSTROUTING -o eth0 \
          -s 10.8.0.0/24 -j MASQUERADE

A pergunta é, como capturar o tráfego tun0 e filtrá-lo, em vez de eth0, onde os IPs se tornam reais.

    
por Croll 19.02.2015 / 17:02

1 resposta

0

Em vez de tentar bloquear na tabela NAT, tente a tabela FORWARD.

iptables -A FORWARD --src 10.8.0.0/24 -p udp --destination-port 63210 -j ACCEPT

iptables -A FORWARD -p udp --destination-port 63210 -j DROP

Isso aceitará os pacotes do seu lan e descartará todo o restante (para essa porta) que está sendo encaminhado pelo roteador - mesmo que o NAT esteja envolvido. Note que ele não pegará pedidos originados ou terminados no próprio roteador, pois você usaria a cadeia INPUT e / ou OUTPUT ao invés de encaminhar.

A cadeia de encaminhamento é analisada antes da cadeia de NAT, para que você possa corresponder os endereços IP de origem e destino.

    
por 19.02.2015 / 19:37