Long Tom Software Engineer

Phân tích log iptables với plugin logstash-filter-kv

Bài này, tôi trình bày về việc phân tích log iptables sử dụng plugin logstash-filter-kv.

Giới thiệu Plugin logstash-filter-kv

Đây là plugin để parse các message có dạng key=value. Chi tiết về cách dùng, các tham số bạn có thể tham khảo thêm ở đây

Cấu hình đẩy log iptables về Logstash

Trước tiên, tôi thêm luật iptables để ghi log các kết nối sẽ bị DROP

iptables -A INPUT -j LOG --log-level info --log-prefix "CHAIN=INPUT STATUS=DROP "
iptables -A INPUT -j DROP

Bạn cũng có thể cấu hình tương tự với các chain OUTPUT, FORWARD … để lấy log tương ứng

Mặc định, log sẽ được ghi ra file, việc này có thể gây ra tình trạng đầy ổ cứng Server của bạn.

Bây giờ gõ lệnh dmesg -T, tôi thấy đã có log DROP gói tin

Iptables DROP

Để log này đẩy về Logstash, tôi chạy lệnh sau

echo kern.info @127.0.0.1 >> /etc/rsyslog.conf
service rsyslog restart

Bạn có thể thay 127.0.0.1 bằng địa chỉ Server Logstash dùng để nhận log của bạn. Với cấu hình trên, log sẽ được đẩy về 127.0.0.1:514/UDP

Sử dụng Kv trong Logstash

Thêm đoạn cấu hình vào phần filter trong file cấu hình logstash

    kv {
    }

Truy cập vào Kibana, ta sẽ thấy log được phân tích ra các trường với giá trị tương ứng.

Iptables Logs

Xem chi tiết 1 bản ghi, kết quả như sau

Iptables Detail