iptables nhiều IP nguồn


Câu trả lời:


13

Điều này chỉ có thể nếu bạn có thể tổng hợp IP nguồn mà bạn muốn thành một phạm vi liền kề. ví dụ

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

Nếu bạn không thể tìm thấy một netmask phổ biến bao gồm IP bạn muốn, bạn sẽ phải viết một số quy tắc giống hệt nhau để làm những gì bạn muốn.

Có một số khung iptables xung quanh có thể xử lý mức độ thấp của việc viết các quy tắc iptables, cho phép bạn xác định các quy tắc của mình ở cấp độ thông cảm hơn. Shorewall là một phổ biến đi kèm với hầu hết các bản phân phối linux hiện tại.



1
Câu trả lời này của Ali Pandidan thực sự là một xác chết
derHugo

112

Để thêm nhiều nguồn trong một lệnh tôi sẽ làm điều này:

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

iptables sẽ tự động dịch nó thành nhiều quy tắc .


3
Mặc dù thiếu phiếu bầu, nhưng điều này hoạt động và là câu trả lời đúng cho câu hỏi
phil-lavin

//, Bạn có thể làm tương tự với các cổng không?
Nathan Basan 22/2/2016

1
@NathanBasan Bạn có thể sử dụng -m multiport --dports 123,456,789cho nhiều cổng
mahemoff

Tobia bây giờ có một câu trả lời tốt hơn so với câu hỏi này. Xem bên dưới.
Ben Aveling

Sử dụng iptables v1.3.7lệnh Given, iptables -I FORWARD -s 5.188.206.14,193.238.47.5 -j DROPđiều này trả về lỗi " host/network '5.188.206.14,193.238.47.5' not found".
JamesThomasMoon1979

14

bạn có thể sử dụng mô-đun iprange kết hợp với '--src-Range' như ví dụ:

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

Nguồn: iptables 1.4.7 trang man

   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.

(tôi biết đây giống như một câu hỏi 4 năm tuổi, nhưng chỉ để trả lời cho bất cứ ai tìm kiếm câu hỏi này trên mạng)


14

Câu hỏi ban đầu là từ tháng 5 năm 2009, nhưng kể từ tháng 5 năm 2011, nhân Linux đã có một tính năng để giải quyết nhu cầu này được gọi là ipset .

Dưới đây là một ví dụ tạo ipset, thêm địa chỉ vào nó và sau đó sử dụng nó trong quy tắc tường lửa:

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

Xem man iptablesman ipsetđể biết thêm.


5

Ngoài nhận xét về Bòss King, bạn cũng có thể chỉ định một số địa chỉ được phân tách bằng dấu phẩy:

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

Từ vỏ như thế bash, tôi phải thoát khỏi sự đảo ngược bằng dấu gạch chéo ngược:\! -s 192.168.1.3 ...
Marcos

iptables v1.6.1: ! not allowed with multiple source or destination IP addresses:-(
tu-Tái lập Monica-dor duh

4

Bạn có thể xác định nhiều chuỗi sao cho có thể kết hợp các danh sách yêu cầu độc lập. Tôi nghi ngờ đây là chính xác những gì bạn muốn, nhưng nó vẫn còn khá tiện dụng. Chúng tôi sử dụng điều này để xác định danh sách các loại người dùng hợp lệ theo IP và sau đó áp dụng các hạn chế cổng cho các mạng nguồn. Vì vậy, ví dụ:

# 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

Ví dụ, giả sử bạn chỉ muốn chấp nhận các gói SMTP đến từ 10.0.0.2 hoặc 192.168.1.2. Bạn có thể sử dụng các quy tắc sau:

  # 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

Hoặc là đầu ra của 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.