Linux - iptables permite apenas 3 IPs

0

Estou usando o linux mint e quero bloquear todas as conexões de entrada na porta 5210, exceto 3 IPs. Eu pesquisei e passei por muitos threads e encontrei apenas resultados que permitiam apenas intervalos de IPs de LAN, e não consigo encontrar nada relacionado a permitir exatamente 3 IPs diferentes que não estão na LAN.

Como devo fazer isso ou o que devo pesquisar?

    
por unkn0wnx 14.03.2018 / 21:22

1 resposta

0

Permita que os três rejeitem / larguem o resto. Com iptables da linha de comando:

iptables -A INPUT -p tcp --dport 5210 --source "$addr1" -j ACCEPT
iptables -A INPUT -p tcp --dport 5210 --source "$addr2" -j ACCEPT
iptables -A INPUT -p tcp --dport 5210 --source "$addr3" -j ACCEPT
iptables -A INPUT -p tcp --dport 5210 -j REJECT

Por exemplo, addr2 , a primeira regra não corresponde e é ignorada, enquanto a segunda regra corresponde e aceita o pacote.

Ou crie uma cadeia que não faça nada para os três endereços e rejeite o restante, depois aceite ou faça qualquer processamento adicional no nível superior:

iptables -N p5210
iptables -A p5210 --source "$addr1" -j RETURN
iptables -A p5210 --source "$addr2" -j RETURN
iptables -A p5210 --source "$addr3" -j RETURN
iptables -A p5210 -j REJECT

iptables -A INPUT -p tcp --dport 5210 -j p5210
# add whatever further limitations you want
iptables -A INPUT -p tcp --dport 5210 -j ACCEPT 

É claro que colocar os endereços em uma variável e usar um loop para executar o mesmo comando para todos eles também é uma opção:

#!/bin/bash
allowed_addresses=(1.2.3.4 4.5.6.7 7.8.9.0)
for addr in "${allowed_addresses[@]}" ; do 
    iptables -A INPUT -p tcp --dport 5210 --source "$addr" -j ACCEPT
done
    
por 14.03.2018 / 22:03