iptables beberapa sumber IP dalam satu aturan


Jawaban:


13

Ini hanya mungkin jika Anda dapat menggabungkan IP sumber yang Anda inginkan ke dalam rentang yang berdekatan. misalnya

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

Jika Anda tidak dapat menemukan netmask umum yang mencakup IP yang Anda inginkan, Anda harus menulis beberapa aturan yang sama untuk melakukan apa yang Anda inginkan.

Ada beberapa kerangka kerja iptables di sekitarnya yang dapat menangani rendahnya tingkat penulisan aturan iptables, memungkinkan Anda untuk mendefinisikan aturan Anda di tingkat yang lebih simpatik. Shorewall adalah yang umum yang dikirimkan dengan sebagian besar distribusi linux saat ini.



1
Jawaban Ali Pandidan ini sebenarnya yang benar
derHugo

112

Untuk menambahkan banyak sumber dalam satu perintah, saya akan melakukan ini:

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

iptables akan menerjemahkannya secara otomatis ke beberapa aturan .


3
Terlepas dari kurangnya suara, ini bekerja dan merupakan jawaban yang tepat untuk pertanyaan
phil-lavin

//, bisakah kamu melakukan hal yang sama dengan port?
Nathan Basanese

1
@NathanBasanese Anda dapat menggunakan -m multiport --dports 123,456,789beberapa port
mahemoff

Tobia sekarang memiliki jawaban yang lebih baik daripada yang ini. Lihat di bawah.
Ben Aveling

Menggunakan iptables v1.3.7perintah Diberikan iptables -I FORWARD -s 5.188.206.14,193.238.47.5 -j DROPini mengembalikan kesalahan " host/network '5.188.206.14,193.238.47.5' not found".
JamesThomasMoon1979

14

Anda dapat menggunakan modul iprange dalam kombinasi dengan '--src-range' seperti untuk ex:

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

Sumber: halaman manual iptables 1.4.7

   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.

(saya tahu ini seperti pertanyaan berusia 4 tahun, tetapi hanya untuk menjawab bagi siapa saja yang mencari ini di internet)


14

Pertanyaan aslinya adalah dari Mei 2009, tetapi sejak Mei 2011 kernel Linux telah memiliki fitur untuk mengatasi kebutuhan ini disebut ipset .

Berikut ini adalah contoh membuat ipset, menambahkan alamat ke dalamnya, dan kemudian menggunakannya dalam aturan firewall:

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

Lihat man iptablesdan man ipsetuntuk info lebih lanjut.


5

Selain komentar Bòss King, Anda juga dapat menentukan beberapa alamat yang dipisahkan dengan koma:

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

Dari shell seperti bash, saya harus melarikan diri dari inversi dengan backslash:\! -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

Anda dapat mendefinisikan banyak rantai sehingga Anda dapat menggabungkan daftar persyaratan independen. Saya ragu ini persis apa yang Anda inginkan, tetapi masih cukup berguna. Kami menggunakan ini untuk mendefinisikan daftar tipe pengguna yang valid berdasarkan IP, dan kemudian menerapkan pembatasan port ke jaringan sumber. Jadi, misalnya:

# 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

Misalnya, Anda hanya ingin menerima paket SMTP yang berasal dari 10.0.0.2 atau 192.168.1.2. Anda dapat menggunakan aturan berikut:

  # 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

Atau sebagai output dari 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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.