it-swarm-vi.com

iptables: cho phép một số ips nhất định và chặn tất cả các kết nối khác

Làm cách nào để cho phép một số ips nhất định và chặn tất cả các kết nối khác trong iptables?

27
David

Tôi đã viết một bài đăng trên blog về các quy tắc Iptables cơ bản cho người dùng máy tính để bàn từ lâu và có lẽ bạn nên đọc nó, và bài viết được liên kết của nó trên Thiết kế tường lửa trạng thái . Nhưng kernel trước 2.6,39 (bao gồm ipset và bạn có thể muốn sử dụng nó cho IP của danh sách trắng nếu bạn có nhiều hơn 10 đến danh sách trắng (trong đó 10 là tùy ý)).

Trước tiên, xử lý các trạng thái mà chúng tôi biết rằng chúng tôi muốn chấp nhận hoặc loại bỏ và giao diện.

iptables -P FORWARD DROP # we aren't a router
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP # Drop everything we don't accept

Nếu bạn chỉ muốn thực hiện một sự cho phép bằng IP mà không có trạng thái

iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP

bạn có thể gặp phải vấn đề khi làm điều này và tôi khuyên bạn nên sử dụng trạng thái để làm cho cuộc sống của bạn dễ dàng hơn. Ví dụ: không cho phép -i lo-o lo chắc chắn sẽ gây ra vấn đề cho các ứng dụng nhất định.

29
xenoterracide

Đây là một ví dụ (chưa được kiểm tra!) Chỉ chặn các kết nối đến. Các kết nối qua giao diện loopback, đến từ 192.168.3.x, ICMP hoặc tới cổng SSH đều được cho phép. Tất cả các kết nối khác đều bị từ chối.

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.3.0/24 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT

Quy tắc dưới đây sẽ chỉ cho phép IP của bạn và Chặn tất cả các IP khác qua cổng 22 hoặc ssh. Kiểm tra với một thiết bị đầu cuối mới trước khi ngắt kết nối.

iptables -I INPUT -p tcp ! -s yourIPaddress --dport 22 -j DROP
7
Ishtiyaque Noori

Dưới đây là ví dụ làm việc đầy đủ.
[.__.] Cũng làm cho các ứng dụng hoạt động (re: nhận xét của tôi về Keepass không bắt đầu)

https://github.com/skironDotNet/linux-allow-only-single-ip

0
Pawel Cioch