Hướng dẫn cài đặt Snort trên Ubuntu 20.04
Giới thiệu
Snort là hệ thống phát hiện xâm nhập mạng (NIDS) mã nguồn mở. Snort được sử dụng để giám sát dữ liệu gói được gửi hoặc nhận thông qua một interface cụ thể. Hệ thống phát hiện xâm nhập thể bắt được các mối đe dọa nhắm vào điểm yếu và lỗ hổng hệ thống bằng cách sử dụng các công nghệ phân tích giao thức và phát hiện dựa trên chữ ký.
Khi phần mềm NIDS được cài đặt và định cấu hình chính xác, có thể xác định các loại tấn công và nghi ngờ khác nhau như tấn công CGI, vi phạm chính sách mạng, SMB, nhiễm phần mềm độc hại, hệ thống bị xâm nhập,...
Trong hướng dẫn này, chúng ta học cách cài đặt Snort 3 trên Ubuntu 20.04 .
Một số tính năng mới của Snort 3:
- Cho phép xử lý nhiều gói
- Tự động tạo tài liệu tham khảo
- Cho phép người dùng viết các plugin của riêng họ
- Cho phép các quy tắc chạy nhanh hơn
Cài đặt Snort
Cập nhật hệ thống
Để đảm bảo rằng tất cả các phụ thuộc của Snort đều được cập nhật, hãy thực thi lệnh bên dưới:
Trong quá trình cập nhật hệ thống chúng ta chờ từ 5 phút đến 15 phút.
Cài đặt thư viện cần thiết
Trước khi cài đặt Snort, chúng ta cần cài đặt các thư viện cần thiết trên hệ thống.
Sau khi các gói phụ thuộc được cài đặt, chúng ta sẽ tiến hành tạo một thư mục nơi biên dịch và lưu giữ các file cho Snort bằng lệnh sau:
Sau đó, tải và cài đặt phiên bản mới nhất của thư viện Snort (LibDAQ). Để cài đặt LibDAQ, chúng ta sẽ cần xây dựng và cài đặt bằng lệnh sau.
Phần phụ thuộc tiếp theo là Tcmalloc, sẽ tối ưu hóa việc phân bổ bộ nhớ và cung cấp khả năng sử dụng bộ nhớ tốt hơn.
Cài đặt Tcmalloc bằng lệnh sau.
Cài đặt Snort 3 trên Ubuntu 20.04
Sau khi các gói phụ thuộc được thiết lập, chúng ta sẽ tải xuống và cài đặt Snort 3 trên Ubuntu 20.04.
Kết quả như sau:
Di chuyển vào thư mục snort 3 và thực thi câu lệnh sau:
Tiếp theo di chuyển đến thư mục build để biên dịch và cài đặt Snort 3:
Tiến hành cập nhật thư viện
Sau đó tiến hành tạo symlink thư mực /usr/sbin/snort
:
Sau khi cài đặt thành công chúng ta tiến hành kiểm tra version của snort:
Cấu hình Network Interface
Tìm interface mà Snort đang lắng nghe lưu lượng mạng và bật chế độ promisc
để có thể xem tất cả lưu lượng mạng được gửi đến.
Trong ví dụ này chúng ta sẽ sử dụng interface ens3
, chúng ta cần tiến hành thay tên interface phù hợp với máy chủ.
Kiểm tra bằng lệnh:
Kết quả như sau:
Tiếp theo, vô hiệu hóa Offloading để ngăn Snort 3 cắt bớt các gói lớn, tối đa là 1518 byte. Kiểm tra xem tính năng này có được bật hay không bằng lệnh sau.
Tắt nó bằng lệnh sau.
Thực hiện kiểm tra lại:
Kết quả như sau:
Tiến hành điều chỉnh file cấu hình snort /etc/systemd/system/snort3-nic.service
bằng cách thêm đoạn sau vào file:
Thêm đoạn cấu hình sau:
Tải lại cấu hình của systemd bằng lệnh sau:
Khởi động và kích hoạt dịch vụ khi khởi động với lệnh sau:
Kết quả đầu ra như sau:
Kiểm tra trạng thái của snort 3:
Kết quả đầu ra như sau:
Cài đặt Community Rules cho snort 3
Trong Snort, Rulesets là lợi thế chính cho công cụ phát hiện xâm nhập. Có ba loại Quy tắc Snort: Community Rules, Registered Rules, Subscriber Rules.
Chúng ta sẽ cài đặt Community Rules .
Đầu tiên, tạo một thư mục cho Community Rules trong /usr/local/etc/
Tải Community Rules. Chúng ta có thể tìm thấy nó trên trang Snort3
Giải nén file download chúng ta vừa tải về và copy chúng vào thư mục /usr/local/etc/rules
.
Snort 3 bao gồm hai tệp cấu hình chính, snort_defaults.lua
và snort.lua
.
File snort.lua
chứa cấu hình chính của Snort, cho phép triển khai và cấu hình xử lý Snort, bao gồm rules, ghi nhật ký, bộ lọc sự kiện, đầu ra,...
File snort_defaults.lua
chứa các giá trị mặc định như đường dẫn đến rules, AppID,...
Chúng ta sẽ định cấu hình một trong các file cấu hình snort.lua
. Mở file bằng trình chỉnh sửa yêu thích của và sẽ thấy một số cấu hình tương tự.
Thiết lập mạng mà chúng ta cần bảo vệ khỏi các cuộc tấn công làm giá trị cho biến HOME_NET
và trỏ biến EXTERNAL_NET
thành biến HOME_NET
.
Chúng ta cũng có thể chỉnh sửa cấu hình mặc định của Snort trong /usr/local/etc/snort/snort_defaults.lua
và trong phần IPS, xác định vị trí cho các quy tắc.
Cấu hình snort chạy như dịch vụ
Nếu như chúng ta cần chạy Snort dưới dạng daemon, chúng ta có thể tạo một đơn vị dịch vụ systemd cho Snort.
Tạo một tài khoản người dùng không đăng nhập.
Sau đó, tạo dịch vụ systemd để Snort được chạy với người dùng snort.
Thêm cấu hình sau vào file trên:
Tải lại cấu hình systemd.
Khởi động và cho phép Snort chạy khi khởi động hệ thống:
Kiểm tra trạng thái dịch vụ.
Kết quả như sau:
Lời kết
Trong hướng dẫn này chúng ta đã tìm hiểu về cách cài đặt và cấu hình Snort là hệ thống phát hiện xâm nhập mạng trên Ubuntu 20.04. Hy vọng các bạn thành công trong việc cài đặt cũng như áp dụng được Snort vào trong thực tế, công việc.
Tính năng đang được phát triển