Ghi nhật ký tất cả hoạt động với iptables

iptablesTheo mặc định, nó có quy tắc lọc ở chế độ "Chấp nhận tất cả", nghĩa là nó cho phép vào và ra tất cả các kết nối từ hoặc đến PC của chúng ta, nhưng nếu chúng ta muốn ghi lại tất cả thông tin về các kết nối được thực hiện với máy chủ hoặc PC của chúng ta thì sao?

Lưu ý: Quy trình mà tôi sẽ thực hiện bây giờ là hợp lệ 100% trong các bản phân phối Debian/Dựa trên Debian, vì vậy nếu bạn sử dụng Slackware, Fedora, CentOS, mởSuSe, quy trình có thể không giống nhau, chúng tôi khuyên bạn nên đọc và hiểu hệ thống đăng nhập của nhà phân phối của bạn trước khi áp dụng những gì được giải thích bên dưới. Ngoài ra còn có khả năng cài đặt rsyslog trong bản phân phối của bạn, nếu nó có sẵn trong kho lưu trữ, mặc dù trong hướng dẫn này, nhật ký hệ thống cũng được giải thích ở cuối.

Tất cả đều tốt cho đến nay, nhưng những gìChúng ta sẽ đăng nhập ở đâu? Dễ dàng, trong tệp «/var/log/firewall/iptables.log", gì không tồn tại, cho đến khi chính chúng ta tin vào điều đó ...

1- Chúng ta phải tạo tệp «iptables.log»Bên trong thư mục«/ var / log / firewall»Cái đó chúng ta phải tạo ra nó, bởi vì nó cũng không tồn tại.

mkdir -p / var / log / firewall /
chạm vào /var/log/firewall/iptables.log

2- Quyền, rất quan trọng ...

chmod 600 /var/log/firewall/iptables.log
chown root: adm /var/log/firewall/iptables.log

3- rsyslog, trình nền đăng nhập Debian, đọc cấu hình từ «/etc/rsyslog.d«, Vì vậy, chúng ta phải tạo một tệp mà tôi sẽ gọi là«tường lửa.conf»Từ đó rsyslog có thể diễn giải những gì chúng ta muốn làm.

chạm vào /etc/rsyslog.d/firewall.conf

Và bên trong chúng ta bỏ anh ta caer nhẹ nhàng nội dung sau:

: msg, chứa, "iptables:" - / var / log / firewall / iptables.log
& ~

Tôi không có một chút ý tưởng nào,đôi dòng này đang làm gì?

Dòng đầu tiên kiểm tra dữ liệu đã ghi cho chuỗi «iptables: »Và thêm nó vào tệp«/var/log/firewall/iptables.log«

Thứ hai, dừng quá trình xử lý thông tin đã đăng nhập bằng mẫu trước đó để không tiếp tục được gửi đến «/ var / log / messages".

4- Xoay tệp nhật ký, với đạt được.

Chúng ta phải tạo trong «/etc/logrotate.d/" tập tin "tường lửa»Trong đó sẽ có nội dung sau:

/var/log/firewall/iptables.log
{
xoay 7
tiền thưởng
kích thước 10M
ngày tháng
thiếu
tạo 600 gốc adm
sự chú ý
nén
nén chậm
quay sau
invoke-rc.d rsyslog tải lại> / dev / null
kết thúc
}

Để xoay nhật ký 7 lần trước khi xóa chúng, 1 lần một ngày, kích thước nhật ký tối đa 10MB, được nén, ghi ngày tháng, không báo lỗi nếu nhật ký không tồn tại, được tạo dưới dạng root.

5- Khởi động lại, giống như tất cả kết thúc có hậu xD, daemon rsyslog:

/etc/init.d/rsyslog khởi động lại

Làm thế nào để chứng minh rằng tất cả những gì đang hoạt động?

Hãy thử SSH.

Cài đặt OpenSSH (trong trường hợp họ chưa cài đặt nó ...):

apt-get cài đặt openssh-server

Trước khi tiếp tục, chúng ta phải chạy dưới quyền root trong bảng điều khiển:

iptables -A INPUT -p tcp --dport 22 --syn -j LOG --log-prefix "iptables: " --log-level 4

Chạy câu lệnh iptables này sẽ ghi lại đủ thông tin để cho thấy rằng những gì chúng tôi đã làm không phải là vô ích. Trong câu này, chúng tôi yêu cầu iptables ghi lại tất cả thông tin đến nó thông qua cổng 22. Để kiểm tra với các dịch vụ khác, chỉ cần thay đổi số cổng, chẳng hạn như 3306 cho MySQL, chỉ để trích dẫn một ví dụ, nếu bạn muốn biết thêm thông tin, đọc hướng dẫn tài liệu rất tốt này và dựa trên các ví dụ điển hình về các cấu hình được sử dụng nhiều nhất.

SSH sử dụng cổng 22 theo mặc định, vì vậy chúng tôi sẽ kiểm tra với nó. Sau khi cài đặt openssh, chúng tôi kết nối với nó.

ssh pepe @ test-server

Để xem nhật ký, với phần đuôi, bạn giải quyết vấn đề này:

đuôi -f /var/log/firewall/iptables.log

Iptables, trong ví dụ này, ghi lại mọi thứ, ngày, giờ, ip, mac, v.v., điều này làm cho nó tuyệt vời để giám sát máy chủ của chúng tôi. Một chút giúp đỡ mà không bao giờ đau.

Bây giờ, hãy lưu ý rằng chúng tôi sử dụng một bản phân phối khác, như tôi đã nói ở phần đầu, nó thường được sử dụng rsyslog, hoặc một cái gì đó tương tự. Nếu bản phân phối của bạn sử dụng syslog, để thực hiện cùng một bài tập, chúng ta phải chỉnh sửa / sửa đổi một chút syslog.conf

nano /etc/syslog.conf

Thêm và lưu dòng sau:

kern.warning /var/log/firewall/iptables.log

Và sau đó, bạn biết đấy, kết thúc có hậu:

/etc/init.d/sysklogd khởi động lại

Kết quả: giống nhau.

Đó là tất cả bây giờ, trong các bài viết trong tương lai, chúng tôi sẽ tiếp tục chơi với iptables.

Tài liệu tham khảo:

Buộc iptables đăng nhập vào một tệp khác

Ghi iptables vào một tệp riêng biệt với rsyslog

Hướng dẫn cấu hình Iptables trên hệ thống Fedora / RHEL


8 bình luận, để lại của bạn

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   PhàGuardia dijo

    Tuyệt vời «sổ tay nhỏ» này cho BOFH mà bạn đang làm từng chút một

  2.   koratsuki dijo

    Cảm ơn bạn, từng chút một, tôi sẽ cung cấp thông tin chi tiết và dữ liệu của iptables, mà tôi phải biết từ công việc của mình, mà đôi khi chúng tôi cần và rất ít được giải thích trên Internet, tất cả đều do người dùng ... xD

    1.    KZKG ^ Gaara dijo

      Tôi nhân cơ hội này để chào mừng bạn thành viên 😀
      Bạn thực sự có RẤT NHIỀU để đóng góp, bạn có kiến ​​thức thực sự nâng cao về mạng, hệ thống, tường lửa, v.v., vì vậy tôi sẽ là (tôi) một trong số rất nhiều độc giả mà bạn sẽ có hahaha.

      Xin chào và tốt ... bạn biết đấy, bất cứ điều gì cần thiết 😀

    2.    sa-ra dijo

      Tôi mong chờ những món đó ^^

  3.   Hugo dijo

    Cố lên Koratsuki, tôi không biết bạn thường xuyên ghé thăm blog này.

    Nhân tiện, một biến thể khác của hoạt động tường lửa ghi nhật ký đang sử dụng gói ulogd, được thực hiện bởi những người của dự án netfilter để tạo điều kiện cho việc tách loại dấu vết này (cho phép lưu chúng theo nhiều cách khác nhau). Đó là cách tiếp cận mà tôi thường sử dụng. Sử dụng nó rất dễ dàng, ví dụ:

    iptables -A INPUT -p udp -m multiport ! --ports 53,67:68 -m state --state NEW -j ULOG --ulog-prefix "Solicitud UDP dudosa"

  4.   koratsuki dijo

    Mình sẽ phải F5 cho bài viết, cách làm việc của Ulogd phù hợp với mình, ngay cả MySQL log các kiểu: D.

  5.   msx dijo

    Bài viết tốt, giữ nó lên.

  6.   chinoloco dijo

    Chào ông chủ, mọi chuyện thế nào?
    Bạn có thể giúp tôi một tay không?
    Vì tôi không hiểu hướng dẫn và nó trong hơn nước, tôi không biết mình sai ở đâu