Come consentire una gamma di IP con IPTABLES?


29

Ecco i miei iptables, come posso farlo in modo da poter consentire un intervallo di ip su ETH1 (10.51.xx)

# Generated by iptables-save v1.4.4 on Thu Jul  8 13:00:14 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:fail2ban-ssh - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh 
-A INPUT -i lo -j ACCEPT 
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 
-A INPUT -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A OUTPUT -j ACCEPT 
-A fail2ban-ssh -j RETURN 
COMMIT

Risposte:


39

Se si desidera consentire solo un determinato intervallo di indirizzi IP all'interno di 10.50.0.0 (come da 10.50.10.20 a 10.50.10.80) è possibile utilizzare il comando seguente:

iptables -A INPUT -i eth1 -m iprange --src-range 10.50.10.20-10.50.10.80 -j ACCEPT

Se si desidera consentire l'intero intervallo, è possibile utilizzare questo invece:

iptables -A INPUT -i eth1 -s 10.50.0.0/16 -j ACCEPT

Vedi la pagina man di iptables e questa domanda qui su ServerFault: Whitelist ha permesso agli IP (in / out) di usare iptables


Dove metto questa linea?
Mike Curry,

Questi sono i comandi che eseguiresti dalla riga di comando: [root @ host ~] # iptables -A INPUT -i eth1 -s 10.50.0.0/16 -j ACCEPT
runlevelsix

1
Usa "10.50.10.20-10.50.10.80", "-80" potrebbe non fare quello che vuoi .
basic6

@runlevelsix Se volessi consentire un intervallo ip come da 10.0.0.0 a 10.255.255.255, dovrei usare 10.0.0.0/24?
RoboBear,

@MikeCurry indica che cosa eseguire sulla riga di comando / dal tuo terminale. In alternativa, puoi aggiungere questa regola a un file di regole iptables in /etc/iptables/rulesets.d (se stai usando Debian Linux) rimuovendo "iptables" e seguendo lo spazio dalla riga: -A INPUT -i eth1 - m iprange --src-range 10.50.10.20-10.50.10.80 -j ACCEPT.
RoboBear,

3

Per una porta specifica, dire 22:

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

1

Bene, hai visto per cosa vuoi consentire quegli IP, ma 10.51.xx in CIDR si traduce 10.50.0.0/16. Quindi sarà qualcosa come la linea per l'interfaccia di loopback che ha 127.0.0.0/8.


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

Può dare il seguente errore:

iptables: Applying firewall rules: xt_iprange: range 10.50.10.20-80 is reversed and will never match

Per correggere questo basta inserire l'ip completo invece in questo modo:

iptables -A INPUT -i eth1 -m iprange --src-range 10.50.10.20-10.50.10.80 -j ACCEPT

Rif .: http://blog.capitar.com/iptables-ip-range-reversed/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.