Wie kann ich mit IPTABLES eine Reihe von IP-Adressen zulassen?

29

Hier ist meine Iptables, wie kann ich es so machen, dass ich eine Reihe von IPs auf ETH1 (10.51.xx) zulassen kann

# 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
Mike Curry
quelle

Antworten:

39

Wenn Sie nur einen bestimmten Bereich von IP-Adressen innerhalb von 10.50.0.0 zulassen möchten (z. B. von 10.50.10.20 bis 10.50.10.80), können Sie den folgenden Befehl verwenden:

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

Wenn Sie den gesamten Bereich zulassen möchten, können Sie stattdessen Folgendes verwenden:

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

Siehe iptables-Manpage und diese Frage hier auf ServerFault: Whitelist erlaubte IPs (in / out) mit iptables

runlevelsix
quelle
Wo setze ich diese Zeile?
Mike Curry
Das sind die Befehle , die Sie von der Kommandozeile ausgeführt werden würden: [root @ host ~] # iptables -A INPUT -i eth1 es 10.50.0.0/16 -j ACCEPT
runlevelsix
1
Verwenden Sie "10.50.10.20-10.50.10.80", "-80" macht möglicherweise nicht das, was Sie wollen .
basic6
@runlevelsix Wenn ich einen IP-Bereich wie 10.0.0.0 bis 10.255.255.255 zulassen wollte, würde ich 10.0.0.0/24 verwenden?
RoboBear
@MikeCurry Gibt an, was auf der Befehlszeile / Ihres Terminals ausgeführt werden soll. Alternativ können Sie diese Regel zu einer iptables-Regeldatei in /etc/iptables/rulesets.d hinzufügen (wenn Sie Debian Linux verwenden), indem Sie die "iptables" und das folgende Leerzeichen aus der Zeile entfernen: -A INPUT -i eth1 - m iprange --src-range 10.50.10.20-10.50.10.80 -j ACCEPT.
RoboBear
3

Sagen Sie für einen bestimmten Port 22:

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

Nun, Sie haben gesehen, was Sie für diese IPs zulassen möchten, aber 10.51.xx in CIDR übersetzt 10.50.0.0/16. Es wird also so etwas wie die Leitung für die Loopback-Schnittstelle sein, die hat 127.0.0.0/8.

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

Kann den folgenden Fehler geben:

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

Um dies zu korrigieren, geben Sie stattdessen die vollständige IP-Adresse wie folgt ein:

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

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

Franck
quelle