Tôi đang cố gắng đăng nhập các gói bị rơi vào một tệp tùy chỉnh thay vì /var/log/messages
.
Để đạt được điều này, tôi đã thêm hai dòng này vào cuối tệp cấu hình của mình:
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
-A OUTPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4
Điều này hoạt động vì tôi đã cấu hình chuỗi INPUT và OUTPUT theo DROP theo mặc định, vì vậy nếu gói không đáp ứng bất kỳ quy tắc nào trước đó, nó sẽ được ghi lại và loại bỏ.
Tuy nhiên, tôi không thể đăng nhập chúng vào một tập tin tùy chỉnh. Họ đăng nhập thành công /var/log/messages
, nhưng tôi muốn họ đăng nhập /var/log/iptables.log
. Tôi đã tạo tệp /etc/rsyslog.d/iptables.conf
có nội dung sau:
:msg, contains, "IPTables-INPUT-Dropped: " - /var/log/iptables.log
& ~
sau đó tôi khởi động lại rsyslog /etc/init.d/rsyslog restart
và gửi một số gói mà tôi biết sẽ bị hủy. Tuy nhiên, chúng không được đăng nhập vào iptables.log, chúng vẫn đang được đăng nhập /var/log/messages
.
Cấu hình nào bị thiếu?
SOLVED Vấn đề là không nên có một khoảng trống giữa - và /
/etc/rsyslog.conf
trước các chỉ thị khác, để tin nhắn bị bỏ đi trước khi bất cứ điều gì khác đưa nó lên. Hãy thử điều đó vàkill -HUP `pidof rsyslogd`
. Có thể mất khoảng trống ở cuối chuỗi trích dẫn.