Consenti iptables per consentire l'intervallo ip solo sulla port specificata

In questa domanda vedo una row come questa che mi permetterà di dire "permetta a questi indirizzi IP di connettersi"

iptables -A INPUT -m iprange --src-range 10.50.10.20-80 -j ACCEPT 

Ora, voglio assicurare ulteriormente questo modo che questa regola si applichi solo a porte specifiche. Ho usato un command come questo per le mie porte regolari:

  • iptables -L piuttosto lento. È normale?
  • Configurare ufw o iptables per consentire solo traffico in output a Internet da una networking IPv6 interna
  • iptables: corrisponde solo il traffico non identificato su un'interface con VLAN
  • Facilità di manutenzione di iptables
  • Quando viene eseguita la ricerca di path quando un pacchetto scorre attraverso iptables?
  • Come bloccare un IP utilizzando iptables
  •  iptables -A INPUT -p tcp --dport 80 -j ACCEPT 

    Posso combinare questi due per creare una port specifica consentita solo per un intervallo, come questo

     iptables -A INPUT -m iprange --src-range 10.50.10.20-80 --dport 12345 -j ACCEPT 

    Ovviamente io sono titubante di fare solo le chiamate iptables willy-nilly. 🙂 Grazie!

  • Il bilanciamento del carico della scatola NAT con iptables e 4 DHCP uplinks
  • Nessun path per ospitare centos
  • Come salvare la configuration di iptables su Redhat Enterprise Server 7
  • Martellamento del server di posta
  • I contatori Iptables ripristinano, quando utilizzano quote, non funzionano come previsto
  • fail2ban sul server con contenitori LXC
  • 3 Solutions collect form web for “Consenti iptables per consentire l'intervallo ip solo sulla port specificata”

    L'ultima row che hai in là dovrebbe funzionare, devi solo assicurarsi di avere un protocollo in -p, in quanto –dport non funziona come opzione per conto proprio.

     iptables -A INPUT -m iprange --src-range 10.50.10.20-80 -p tcp --dport 12345 -j ACCEPT 

    In alternativa, installa ipset e potrai cambiare l'elenco degli indirizzi IP senza compromettere le tue regole iptables :

     ipset -N AllowedSources ipmap --network 10.50.10.0/24 for i in $LIST_OF_ALLOWED_SOURCES; do ipset -A AllowedSources $i; done iptables -A INPUT -m set --match-set AllowedSources src -p tcp --dport 12345 -j ACCEPT 

    Adesso, se è necessario aggiungere un'altra fonte consentita:

     ipset -A AllowedSources abcd 

    Oppure, è necessario distriggersre un host dalle fonti consentite:

     ipset -D AllowedSources efgh 

    Puoi salvare i tuoi set:

     ipset --save > /etc/ipset.conf 

    Quale è ansible ripristinare durante l'avvio, prima di implementare il tuo iptables (altrimenti, iptables si lamenteranno!):

     ipset --restore < /etc/ipset.conf 

    È anche ansible creare un set IP che corrisponderà alla port di origine IP e destinazione, ad esempio:

     ipset -N AllowedAccess ipporthash --network 10.50.0.0/16 # These hosts may access port 12345 for i in $LIST_OF_ALLOWED_TO_12345; do ipset -A AllowedAccess $i,12345; done # These hosts may access port 23456 for i in $LIST_OF_ALLOWED_TO_23456; do ipset -A AllowedAccess $i,23456; done # These hosts may access port 34567 for i in $LIST_OF_ALLOWED_TO_34567; do ipset -A AllowedAccess $i,34567; done # Now that the IP set has been created, we can use it in iptables iptables -A INPUT -m set --match-set AllowedAccess src,dst -j ACCEPT # Note that we use "src,dst", meaning that we want to match source IP, but # destination port # Also note, if you need to match against a single port, the ipmap method # will be slightly faster. 

    Altro su ipset : http://ipset.netfilter.org/

    Se si utilizza Ubuntu , non è ansible installare il pacchetto ipset dal suo repo. Utilizza il mio suggerimento: http://pepoluan.posterous.com/powertip-howto-install-ipset-on-ubuntu

    Hai l'idea di base giusta, puoi combinarli in una regola come quella.

    Tuttavia, nonostante le risposte di alcune risposte, non si dovrebbe utilizzare un intervallo come 10.50.10.20-80 (si espanderà a 10.50.10.20-80.0.0.0 – utilizzare il command iptables per verificare). È necessario utilizzare l'indirizzo IP completo nell'intervallo ad esempio 10.50.10.20-10.50.10.80.

    Inoltre, se si specifica un numero di port, è necessario dichiarare un protocollo che supporti le porte, quindi la regola riveduta sarebbe:

     iptables -A INPUT -p tcp -m iprange --src-range 10.50.10.20-10.50.10.80 --dport 12345 -j ACCEPT 

    Documentazione su iprange: https://www.frozentux.net/iptables-tutorial/chunkyhtml/x2702.html#TABLE.IPRANGEMATCH

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.