Danh sách trắng cho phép IP (vào / ra) bằng iptables


21

Tôi có một vài dải ip mà tôi muốn máy chủ của mình có thể kết nối và người dùng kết nối từ đó. Mọi thứ khác nên bị chặn.

Làm thế nào tôi nên làm điều đó với iptables?

Hệ điều hành của tôi là phân phối linux dựa trên Debian.

Câu trả lời:


27

Tôi khuyên bạn nên lấy một công cụ cấu hình tường lửa, như Firestarter và đi từ đó. Dưới đây là một số điều cơ bản cho bạn.

#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT

3
Bạn biết bạn có thể định dạng mã của mình trong các bài đăng trên máy chủ, sử dụng nút 101010. Bằng cách đó, ý kiến ​​của bạn sẽ không được đưa ra như la hét. Chỉ cần chọn (kéo chuột lên) mã và sau đó nhấp vào nút 101010 phía trên trường văn bản.
Jason Tan

2
Ahhh cảm ơn bạn, tôi đã không nhận ra điều đó. Bây giờ tôi đã biết :)
Zenham

1
+1 cho HIỆN TẠI, LIÊN QUAN - quá nhiều người không làm điều này.
Alnitak

1
Vì tình yêu của chúa, xin hãy đặt quy tắc DROP mặc định LẦN! Tôi tự khóa mình (và mọi thứ khác!) Ra khỏi máy bằng cách tuân theo thứ tự hoạt động đó.
Bendoh

1
Câu trả lời khủng khiếp. OP không nói gì về việc bỏ tất cả các kết nối hiện tại. Bây giờ tôi bị khóa vì tôi cho rằng câu trả lời hàng đầu có ý nghĩa.
omike

14
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

Điều này sẽ biến hệ thống của bạn thành một hệ thống không tồn tại cho các máy tính không được phép.


7

Nếu bạn muốn cho phép phạm vi tùy ý thay vì toàn bộ mạng con, bạn có thể sử dụng mô-đun iptables 'iprange':

iptables -P INPUT DROP

iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT

ví dụ: sẽ cho phép lưu lượng truy cập đến từ tất cả các máy có địa chỉ trong khoảng 192.168.1.30 đến 192.168.1.50.

Nếu bạn muốn cho phép lưu lượng đến và đi đến cùng một phạm vi IP, tôi khuyên bạn nên tạo một chuỗi cụ thể cho phép IP đó và nhắm mục tiêu tất cả mục tiêu đầu vào và đầu ra cho nó:

- xác định các chính sách mặc định để hủy bỏ:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

- tạo chuỗi mới:

iptables -N allowed_ips

- nếu nguồn là một phần của phạm vi được phép, chấp nhận

iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT

- nếu không, hãy quay lại chuỗi người gọi để tiếp tục xử lý

iptables -A allowed_ips -j RETURN

- thực hiện tất cả lưu lượng truy cập vào và rời khỏi máy đi qua chuỗi mới của chúng tôi

iptables -A INPUT -j allowed_ips

iptables -A OUTPUT -j allowed_ips

và đó là nó! tất nhiên bạn có thể cần các quy tắc quảng cáo, chẳng hạn như một quy tắc cho phép tất cả lưu lượng truy cập từ / đến giao diện lo, v.v.


1

Một khi bạn hài lòng với các quy tắc của mình, có lẽ bạn muốn lưu chúng . Các ý kiến ​​trong liên kết này có một số tùy chọn về cách làm điều đó.

Một trình tạo quy tắc iptables dễ sử dụng cho các nhu cầu đơn giản là ufw . Các gói có sẵn trong debian không ổn định.

Cũng thử Firestarter . Có sẵn bằng đồng xu.


0

Bạn cũng có thể sử dụng ferm mà tôi cũng sử dụng trong năm qua và đã giúp tôi rất nhiều với các trường hợp như quy tắc tường lửa có điều kiện.

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.