iptables çoklu kaynak IP'leri


Yanıtlar:


13

Bu, yalnızca istediğiniz kaynak IP'leri bitişik bir aralıkta toplayabiliyorsanız mümkündür. Örneğin

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

İstediğiniz IP'leri kapsayan ortak bir ağ maskesi bulamazsanız, istediğiniz şeyi yapmak için aynı kurallar yazmanız gerekir.

Kurallarınızı daha sembolik bir düzeyde tanımlamanıza olanak tanıyan, iptables kurallarını yazmanın düşük seviyeyle uğraşabileceği çeşitli iptables çerçeveleri vardır. Shorewall en güncel linux dağıtımları ile birlikte gelen yaygın bir tanesidir.



1
Bu cevap Ali Pandidan aslında corect biridir
derHugo

112

Tek bir komutta birden fazla kaynak eklemek için şunu yaparım:

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

iptables otomatik olarak birden çok kurala çevirecektir .


3
Oyların olmamasına rağmen, bu işe
yarar

//, Portlarla aynı şeyi yapabilir misiniz?
Nathan Basanese,

1
@NathanBasanese -m multiport --dports 123,456,789Birden fazla bağlantı noktası için kullanabilirsiniz
mahemoff

Tobia'nın şimdi bundan daha iyi bir cevabı var. Aşağıya bakınız.
Ben Aveling

iptables v1.3.7Given komutunu kullanarak iptables -I FORWARD -s 5.188.206.14,193.238.47.5 -j DROPbu hata " host/network '5.188.206.14,193.238.47.5' not found" döndürür .
JamesThomasMoon1979

14

iprange modülünü ex: 'gibi' --src-range 'ile birlikte kullanabilirsiniz:

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

Kaynak: iptables 1.4.7 man sayfası

   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.

(Bunun 4 yıllık bir soru gibi olduğunu biliyorum, ancak bunu net olarak arayan herkese cevap vermek için)


14

Asıl soru Mayıs 2009'dan itibaren, ancak Mayıs 2011'den bu yana Linux çekirdeğinin ipset adı verilen bu ihtiyacı giderecek bir özelliği vardı .

İşte bir ipset oluşturma, adresleri ekleme ve ardından bir güvenlik duvarı kuralında kullanma örneği:

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

Daha fazla bilgi için bkz. man iptablesVe man ipset.


5

B Kingss King yorumuna ek olarak, ayrıca virgülle ayrılmış birkaç adres de belirleyebilirsiniz:

[!] -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).

Gibi kabuk bash, ters eğik çizgi ile inversiyon kaçış gerekir:\! -s 192.168.1.3 ...
Marcos

iptables v1.6.1: ! not allowed with multiple source or destination IP addresses:-(
tu-Reinstate Monica-dor duh

4

Bağımsız gereksinim listelerini birleştirebileceğiniz şekilde birden fazla zincir tanımlayabilirsiniz. Tam olarak istediğin şeyin bu olduğundan şüpheliyim, ama hala oldukça kullanışlı. Bunu IP ile geçerli kullanıcı türlerinin listelerini tanımlamak için kullanırız ve sonra kaynak ağlara bağlantı noktası kısıtlamaları uygularız. Yani, örneğin:

# 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

-1

Örneğin, yalnızca 10.0.0.2 veya 192.168.1.2'den gelen SMTP paketlerini kabul etmek istediğinizi varsayalım. Aşağıdaki kuralları kullanabilirsiniz:

  # 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

Veya çıktısı olarak 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.