Làm cách nào để cho phép một phạm vi IP với IPTABLES?


29

Đây là iptables của tôi, làm cách nào tôi có thể tạo nó để tôi có thể cho phép một phạm vi ip trên ETH1 (10.51.xx)

# 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

Câu trả lời:


39

Nếu bạn chỉ muốn cho phép một phạm vi địa chỉ IP nhất định bên trong 10.50.0.0 (chẳng hạn như từ 10.50.10.20 đến 10.50.10.80), bạn có thể sử dụng lệnh sau:

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

Nếu bạn muốn cho phép toàn bộ phạm vi, bạn có thể sử dụng điều này thay thế:

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

Xem trang người dùng iptables và câu hỏi này tại đây trên ServerFault: Danh sách trắng cho phép IP (vào / ra) bằng iptables


Tôi đặt dòng này ở đâu?
Mike Curry

Đó là những lệnh mà bạn sẽ chạy từ dòng lệnh: [root @ host ~] # iptables -A INPUT -i eth1 -s 10.50.0.0/16 -j CHẤP NHẬN
runlevelsix

1
Sử dụng "10.50.10.20-10.50.10.80", "-80" có thể không làm những gì bạn muốn .
bản6

@runlevelsix Nếu tôi muốn cho phép một phạm vi ip như 10.0.0.0 đến 10.255.255.255, tôi có nên sử dụng 10.0.0.0/24 không?
RoboBear

@MikeCurry đây là chỉ định những gì sẽ chạy trên dòng lệnh / từ thiết bị đầu cuối của bạn. Ngoài ra, bạn có thể thêm quy tắc này vào tệp quy tắc iptables trong /etc/iptables/rulesets.d (nếu bạn đang sử dụng Debian Linux) bằng cách xóa "iptables" và theo dấu cách từ dòng: -A INPUT -i eth1 - m iprange --src-phạm vi 10.50.10.20-10.50.10.80 -j CHẤP NHẬN.
RoboBear

3

Đối với một cổng cụ thể, hãy nói 22:

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

1

Vâng, bạn đã thấy những gì bạn muốn cho phép những IP đó cho nhưng 10,51.xx trong CIDR dịch sang 10.50.0.0/16. Vì vậy, nó sẽ là một cái gì đó giống như dòng cho giao diện loopback có 127.0.0.0/8.


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

Có thể đưa ra lỗi sau:

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

Để sửa lỗi này, chỉ cần đặt ip đầy đủ thay vì như thế này:

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

Tham khảo: http://blog.capitar.com/iptables-ip-range-reversed/

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.