Việc phát hiện quét cổng có một đặc điểm tách nó khỏi các công cụ quen thuộc. Fail2ban đọc nhật ký ứng dụng — còn khi một cổng đóng bị quét thì ở đó chẳng có ứng dụng nào cả, nên cũng chẳng có bản ghi nào trong nhật ký. Việc quét chỉ thấy được ở mức tường lửa, và chính ở đó PSAD làm việc: nó đọc những thông điệp mà iptables ghi về các gói tin bị từ chối.
Điều kiện bắt buộc: ghi nhật ký phải được bật
Đây là nguyên nhân chính khiến PSAD «đã cài và chẳng hiển thị gì». Không có các quy tắc ghi nhật ký trong tường lửa thì nó chẳng có gì để đọc, và trong lúc đó cũng chẳng có lỗi nào phát sinh.
Nếu bạn dùng UFW:
sudo ufw logging low
sudo ufw status verbose
Để chắc chắn rằng các thông điệp thực sự đang đến:
sudo journalctl -k | grep -c '\[UFW'
sudo grep -c 'UFW BLOCK' /var/log/ufw.log
Số không từ cả hai lệnh nghĩa là PSAD sẽ không hoạt động. Và nói riêng về Debian 12 với Ubuntu 24.04: không có rsyslog thì tệp /var/log/ufw.log không tồn tại và mọi thứ đi vào nhật ký của systemd — và cấu hình của PSAD phải tính đến đường dẫn nhật ký đó.
Cài đặt
sudo apt install psad
sudo psad --sig-update
sudo psad -R
sudo psad --Status
Lệnh cuối mới là cái chính. Nó cho thấy đã phân tích bao nhiêu gói tin, thấy những địa chỉ nào và ở mức nguy hiểm nào. Và nếu bộ đếm gói tin đã phân tích bằng không thì hãy quay lại phần trước: vấn đề nằm ở việc ghi nhật ký, chứ không phải ở việc không có ai quét.
Cấu hình nằm trong /etc/psad/psad.conf. Và các tham số có ý nghĩa thực tiễn thì không nhiều: địa chỉ thư, đường dẫn nhật ký, và các ngưỡng của mức nguy hiểm.
Các mức nguy hiểm
PSAD gán cho mỗi nguồn một mức từ 1 đến 5, dựa trên số cổng khác nhau đã bị chạm tới và mức độ hành vi giống với các kỹ thuật quét đã biết.
- 1–2 — những lần chạm lẻ tẻ vào các cổng đóng. Đây là nền nhiễu thường trực của Internet; không cần phản ứng;
- 3 — việc rà quét cổng một cách có hệ thống. Thường là các trình quét nghiên cứu, trên mạng có vài chục cái như vậy;
- 4–5 — việc dò dẫm có chủ đích một số lượng lớn cổng từ cùng một địa chỉ, thường kèm nỗ lực che giấu bản chất của các lần chạm.
Ngưỡng gửi thư được đặt bằng EMAIL_ALERT_DANGER_LEVEL. Giá trị 3 thường nghĩa là vài email mỗi ngày, và điều đó khá nhanh dẫn tới một quy tắc trong trình thư. Hợp lý hơn là đặt 4 và xem phần còn lại trên một trang tổng hợp nào đó.
Chặn tự động: đừng làm
Bản thân PSAD cũng có thể thêm quy tắc vào tường lửa (ENABLE_AUTO_IDS). Và trên một máy chủ chạy đơn lẻ thì bật nó là không nên, mà lý do thì rất chắc: địa chỉ người gửi trong gói tin có thể bị giả mạo. Chỉ cần ai đó gửi tới bạn các gói tin với địa chỉ đã đổi — và bạn sẽ chặn đúng cái địa chỉ mà họ chọn. Mà đó có thể hóa ra là chính khách hàng của bạn, một cổng thanh toán hay một dịch vụ giám sát.
Và nếu vẫn cần chặn thì hãy bật với ngưỡng nguy hiểm cao và luôn kèm giới hạn thời gian (AUTO_BLOCK_TIMEOUT) để một mục nhập sai không nằm lại mãi mãi.
Trên thực tế thì làm gì với nó
Bản thân việc quét là vô hại: nó chẳng làm hỏng gì và diễn ra liên tục với tất cả mọi người. Và giá trị của dữ liệu PSAD không nằm ở bản thân sự kiện mà ở sự thay đổi tính chất của nó.
Những quan sát hữu ích:
- sự quan tâm có chủ đích. Một trình quét thông thường rà hàng nghìn địa chỉ và chừng một tá cổng phổ biến. Nhưng nếu ai đó dò dẫm một cách có hệ thống đúng các cổng của máy chủ bạn, kể cả những cổng phi tiêu chuẩn, thì đó không còn là nền nhiễu nữa;
- việc quét một cổng cụ thể nào đó. Các lần chạm vào cổng của cơ sở dữ liệu hay bảng điều khiển nghĩa là ai đó đang tìm đúng dịch vụ ấy — thường là sau tin tức về một lỗ hổng mới của nó;
- trinh sát trước khi ra tay. Một đợt quét tăng vọt rồi vài giờ sau là việc dò mật khẩu từ cùng dải địa chỉ là một trình tự thường gặp, và nửa đầu của nó mua được chút thời gian.
Và hệ quả thực tiễn của bất kỳ quan sát nào trong số đó đều như nhau: hãy kiểm tra rằng danh sách các cổng hướng ra ngoài khớp với kỳ vọng và những gì chạy trên mỗi cổng là thứ bạn đã cập nhật trong năm nay.
Vị trí của nó giữa các công cụ
PSAD không thay thế tường lửa, cũng không thay Fail2ban, cũng không thay bất kỳ hệ thống phát hiện xâm nhập nào. Nó bịt một khoảng trống hẹp — những nỗ lực không để lại dấu vết ở nơi khác vì chúng chưa từng chạm tới bất kỳ ứng dụng nào. Giá của nó thấp, sau lần chạy đầu tiên nó làm việc mà chẳng cần chăm sóc, và bản tóm tắt của nó trả lời câu hỏi mà nếu không thì chẳng ai đặt ra: ngoài nền nhiễu chung thì có ai quan tâm tới máy chủ của bạn không. Bản tóm tắt ấy trông ra sao — xem ở trang demo bên dưới.