Quản lý quy tắc iptables trong Linux


17

Tôi có rất nhiều quy tắc cho thiết lập iptables của mình (định tuyến, cấm ssh, v.v.) Tôi cũng đã chọn một danh sách IP để cấm từ đây http://blacklist.linuxadmin.org và bây giờ nó đang trở nên rất phức tạp.

Của tôi /etc/sysconfig/iptablesthực sự dài Có cách nào để quản lý các quy tắc bằng cách bao gồm các quy tắc từ các tệp bên ngoài không?

Ví dụ:

#include "pre_routing_rules"
#include "ssh_bans"

Điều này sẽ bao gồm các quy tắc được thêm vào trong các tệp "pre_routing_rules" và "ssh_bans" Bằng cách này tôi có thể dễ dàng quản lý các quy tắc của mình mà không cần tìm kiếm xung quanh cat /etc/sysconfig/iptables.

Câu trả lời:


11

Hãy thử ipsables 'ipsets . ipsets được cấu hình riêng biệt và chúng cũng nhanh hơn nếu bạn có đủ địa chỉ IP để quản lý.

Quy tắc iptables có thể tham khảo ipset như thế này:

iptables -A FORWARD -m set - set blocklist src, dst -j DROP


Vấn đề lớn nhất của tôi là với địa chỉ IP để tôi có thể sử dụng địa chỉ này.

Tôi đang sử dụng tính năng này. IP danh sách đen / danh sách trắng của tôi là lớn nhất, vì vậy chúng có thể đi trong một ipset. Tôi nghĩ rằng các công cụ định tuyến trước có thể nằm trong danh sách cấu hình chính

Chủ đề diễn đàn này có một vài ví dụ về các tập lệnh sử dụng ipsets: forum.gentoo.org/viewtopic-t-863121.html
mivk 16/11/13

3

Một giải pháp đơn giản là sử dụng nhiều tập lệnh bash cho mỗi phần như:

iptables-routing.sh
iptables-ssh-bans.sh
iptables-blacklist.sh

Và chạy tập tin này từ một tập lệnh chính.


Vâng, đó là những gì tôi làm. Nhưng nếu tôi phải xem danh sách các quy tắc iptables (ví dụ: cat / etc / sysconfig / iptables), nó sẽ hiển thị cho tôi tất cả các quy tắc được thêm thông qua iptables-routing.sh iptables-blacklist.sh

2

iptables không đọc tệp trực tiếp, được thực hiện bởi một chương trình có tên iptables-restore. Điều này thường được gọi từ một trong các tập lệnh init của bạn.

Bạn có thể thêm các tệp đầu vào bổ sung vào dòng iptables-restore của mình. Bạn sẽ phải tìm dòng này ở đâu trên hệ thống của bạn nhưng trên hộp Debain của tôi, nó nằm trong /etc/init.d/nat

Dòng hiện đang đọc như thế này:

/sbin/iptables-restore < /etc/network/iptables

Có lẽ nó có thể được thay đổi thành một cái gì đó như thế này:

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore

2

Tôi có xu hướng sử dụng một trong nhiều tập lệnh / công cụ tường lửa hàng đầu, như Firestarter hoặc Shorewall, chúng đi kèm với nhiều tệp, được phân tách theo mục đích, thêm các quy tắc thú vị để bảo vệ chống lại một số loại gói giả và chúng thường hoạt động tốt.


Là những có thể sử dụng thông qua dòng lệnh? Máy chủ của tôi là một máy chủ từ xa và tôi thực sự không thích làm X hơn SSH

Shorewall là một tập hợp các tệp văn bản phẳng tạo quy tắc iptables. Nó rất có thể sử dụng từ dòng lệnh và có các tài liệu và công cụ chẩn đoán tuyệt vời.
Paul Gear

0

Tôi không chắc bạn đang chạy bản phân phối nào, vì tôi không sở hữu tệp bạn tham khảo - nhưng thông thường các tệp chứa quy tắc iptables chỉ là tập lệnh shell - vì vậy bạn có thể thực hiện những gì bạn muốn bằng cách có một dòng nhu la :

. / etc / sysconfig / pre_routing_rules

hoặc như thế ở đầu tập tin iptables mà bạn tham khảo.


Tôi đang chạy Fedora và CentOS
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.