Frage Iptables mehrere Quell-IPs


Ich möchte eine einzige Regel in iptables (wenn möglich) erstellen, die mehrere Quell-IP-Adressen verwendet. Ist das möglich?


26
2018-05-11 13:09


Ursprung


//, Sie können das gleiche für Ports tun, nach search.cpan.org/~phillips/IPTables-Rule-0.01/lib/IPTables/.... - Nathan Basanese


Antworten:


Dies ist nur möglich, wenn Sie die gewünschten Quell-IPs in einem zusammenhängenden Bereich aggregieren können. z.B

iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.5 -p tcp -j ACCEPT

Wenn Sie keine gemeinsame Netzmaske finden, die die gewünschten IPs abdeckt, müssen Sie mehrere identische Regeln schreiben, um das zu tun, was Sie wollen.

Es gibt mehrere iptables-Frameworks, mit denen Sie die niedrigen Iptables-Regeln schreiben können, so dass Sie Ihre Regeln auf einer eher symbolischen Ebene definieren können. Ufermauer ist eine gebräuchliche Version, die mit den meisten aktuellen Linux-Distributionen ausgeliefert wird.


12
2018-05-11 13:26



//, Das ist falsch, laut search.cpan.org/~phillips/IPTables-Rule-0.01/lib/IPTables/.... - Nathan Basanese
Diese Antwort von Ali Pandidan ist eigentlich der Kernpunkt - derHugo


Um mehrere Quellen in einem einzigen Befehl hinzuzufügen, würde ich Folgendes tun:

iptables -t filter -A INPUT -s 192.168.1.1,2.2.2.2,10.10.10.10 -j ACCEPT

Iptables übersetzt es automatisch in mehrere Regeln.


91
2017-12-06 17:57



Trotz der fehlenden Stimmen funktioniert das und ist die richtige Antwort auf die Frage - phil-lavin
Ich hebe es auf !! Danke für die richtige Antwort. - Felipe Alvarez
//, Können Sie das Gleiche mit den Ports tun? - Nathan Basanese
@NathanBasanese Sie können verwenden -m multiport --dports 123,456,789 für mehrere Ports - mahemoff
Tobia hat jetzt eine bessere Antwort als diese. Siehe unten. - Ben Aveling


Sie können das iprange Modul in Kombination mit '--src-range' wie für e.x verwenden:

-A INPUT -i eth0 -m iprange --src-range 192.168.1.90-192.168.1.101 -j ACCEPT

Quelle: iptables 1.4.7 man-Seite

   iprange
   This matches on a given arbitrary range of IP addresses.

   [!] --src-range from[-to]
          Match source IP in the specified range.

   [!] --dst-range from[-to]
          Match destination IP in the specified range.

(Ich weiß, das ist wie eine 4 Jahre alte Frage, aber nur für jemanden zu beantworten, der dies im Internet sucht)


12
2018-05-31 07:58





Die ursprüngliche Frage ist von Mai 2009, aber seit Mai 2011 hat der Linux-Kernel eine Funktion, die diesen Bedarf angesprochen hat ipset.

Hier ist ein Beispiel, das ein IP-Set erstellt, Adressen hinzufügt und es dann in einer Firewall-Regel verwendet:

ipset -N office365 iphash

ipset -A office365 132.245.228.194
ipset -A office365 132.245.77.34
ipset -A office365 132.245.48.34
ipset -A office365 132.245.68.242
ipset -A office365 132.245.55.2
ipset -A office365 40.101.17.98
ipset -A office365 132.245.48.18
ipset -A office365 132.245.229.114
ipset -A office365 132.245.196.34
ipset -A office365 132.245.56.114

iptables -A OUTPUT -m set --match-set office365 dst -j ACCEPT

Sehen man iptables und man ipset Für mehr Information.


9
2017-11-03 12:08





Neben dem Kommentar von Bòss King können Sie auch einfach mehrere Adressen angeben, die durch ein Komma getrennt sind:

[!] -s, --source address[/mask][,...]
      Source specification. Address can be either a network name, a hostname, a network IP address (with /mask), or a plain IP address. Hostnames will be resolved once only, before the rule is submitted to the kernel.  Please note  that  specifying
      any  name  to  be resolved with a remote query such as DNS is a really bad idea.  The mask can be either a network mask or a plain number, specifying the number of 1's at the left side of the network mask.  Thus, a mask of 24 is equivalent to
      255.255.255.0.  A "!" argument before the address specification inverts the sense of the address. The flag --src is an alias for this option.  Multiple addresses can be specified, but this will expand to multiple rules (when adding with  -A),
      or will cause multiple rules to be deleted (with -D).

5
2018-05-31 08:04



Aus der Schale wie bashIch muss der Inversion mit einem Backslash entkommen: \! -s 192.168.1.3 ... - Marcos


Sie können mehrere Ketten definieren, sodass Sie unabhängige Anforderungslisten kombinieren können. Ich bezweifle, dass dies genau das ist, was Sie wollen, aber es ist immer noch ziemlich praktisch. Wir verwenden dies, um Listen gültiger Benutzertypen nach IP zu definieren und dann Portbeschränkungen auf die Quellnetzwerke anzuwenden. Also zum Beispiel:

# Allow SMTP from anywhere
-A tcp_inbound -p tcp -m tcp -s 0/0 --dport 25 -j allowed
#
# Define the set of IP ranges we'll send to the tcp_user_inbound chain
-A tcp_inbound -p tcp -m tcp -s 172.19.1.0/24 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.6.0/23 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.8.0/24 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.10.0/23 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.12.0/23 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.4.0/23 -j tcp_user_inbound
#
# Ports we allow access to based on a source-address prereq.
# SSH
-A tcp_user_inbound -p tcp -m tcp --dport 22 -j allowed
# VNC
-A tcp_user_inbound -p tcp -m tcp --dport 5950:5958 -j allowed
# https
-A tcp_user_inbound -p tcp -m tcp --dport 443 -j allowed

4
2018-05-11 13:42





Angenommen, Sie möchten nur SMTP-Pakete akzeptieren, die von 10.0.0.2 oder 192.168.1.2 stammen. Sie können die folgenden Regeln verwenden:

  # create a new chain
  iptables --new-chain multiple_sources_smtp
  # send all SMTP connections to the new chain
  iptables --append INPUT --protocol tcp --dport 25 --jump multiple_sources_smtp
  # use the default INPUT rules for packets coming from allowed sources
  iptables --append multiple_sources_smtp --source 10.0.0.2 --jump RETURN
  iptables --append multiple_sources_smtp --source 192.168.1.2 --jump RETURN
  # drop packets from anywhere else
  iptables --append multiple_sources_smtp -j DROP

Oder als die Ausgabe von iptables-save

  # Generated by iptables-save v1.4.14 on Sat Dec  6 09:17:11 2014
  *filter
  :INPUT ACCEPT [32:13325]
  :FORWARD ACCEPT [0:0]
  :OUTPUT ACCEPT [25:3084]
  :multiple_sources_smtp - [0:0]
  -A INPUT -p tcp -m tcp --dport 25 -j multiple_sources_smtp
  -A multiple_sources_smtp -s 10.0.0.2/32 -j RETURN
  -A multiple_sources_smtp -s 192.168.1.2/32 -j RETURN
  -A multiple_sources_smtp -j DROP
  COMMIT
  # Completed on Sat Dec  6 09:17:11 2014

-1
2017-12-06 17:20