Hướng dẫn cài đặt Fail2Ban bảo vệ SSH trên CentOS

fail2ban logo

Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.

Để kết nối với VPS chúng ta thường sử dụng port 22. Đây chính là lỗ hổng chết người các hacker có thể sử dụng để dò tìm password đăng nhập vào VPS của bạn.

Một biện pháp hạn chế việc này đó là thay đổi port SSH từ 22 sang một port khác (HocVPS Script đã tự động đổi sang port 2222 khi cài đặt). Tuy nhiên, việc này chỉ hạn chế một chút thôi vì nếu muốn, hacker có thể scan open port để biết được bạn đang sử dụng port nào để tấn công tiếp.

Giải pháp để chúng ta chấm dứt vấn đề này đó là sử dụng một công cụ tự động block IP khi VPS bị tấn công, đó là Fail2Ban. Hôm nay, mình sẽ giới thiệu cách hướng dẫn và cài đặt trong bài này.

Fail2Ban là một ứng dụng chạy nền theo dõi log file để phát hiện những địa chỉ IP đăng nhập sai password SSH nhiều lần. Sau đó, Fail2Ban sử dụng iptable firewall rules để block ngay địa chỉ IP với một khoảng thời gian định trước.

Cài đặt Fail2Ban

Chúng ta sẽ cài đặt Fail2Ban thông qua Repo EPEL

Cấu hình Fail2Ban

Sau khi cài đặt xong, bạn mở file cấu hình của Fail2Ban lên sẽ thấy một số thông số như sau:

Trong đó

  • ignoreip: không block những địa chỉ này, thường địa chỉ IP ở VN là địa chỉ động, nên chúng ta không sử dụng được option này.
  • bantime: khoảng thời gian (giây) block IP
  • findtime: khoảng thời gian (giây) một IP phải login thành công
  • maxretry: số lần login false tối đa

Cấu hình mặc định của Fail2Ban khá là ổn rồi, chúng ta không cần thiết phải cập nhật mà đến bước tiếp theo.

Cấu hình Fail2Ban bảo vệ SSH

Tạo file cấu hình

Và sử dụng nội dung sau:

Trong đó

  • enabled: kích hoạt bảo vệ, nếu muốn tắt bạn hãy chuyển thành false
  • filter: giữ mặc định để sử dụng file cấu hình /etc/fail2ban/filter.d/sshd.conf
  • action: fail2ban sẽ ban địa chỉ IP nếu match filter /etc/fail2ban/action.d/iptables.conf. Nếu bạn đã thay đổi port ssh, sửa đoạn port=ssh bằng port mới, ví dụ port=2222
  • logpath: đường dẫn file log fail2ban sử dụng để theo dõi
  • maxretry: số lần login false tối đa

Khởi động Service Fail2Ban

Cuối cùng check lại iptables xem đã có rule của Fail2Ban chưa:

Theo dõi SSH login

– Bạn có thể sử dụng lệnh sau để biết được VPS/Server đã từng bị tấn công SSH chưa:

Kết quả thường sẽ là như bên dưới, đã từng có rất nhiều đợt tấn công:

– Để xem IP đã bị banned bởi Fail2Ban bạn sử dụng lệnh:

Banned IP sẽ có dạng như thế này:

– Để xóa IP khỏi danh sách banned, bạn sử dụng lệnh sau

Hi vọng với Fail2Ban, chúng ta sẽ không còn thấy thông báo login false mỗi lần login SSH nữa.

Mọi thông tin chi tiết, hãy tham khảo thêm trên trang chủ của Fail2Ban. Chúc bạn thành công.

Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.

Liên hệ ngay với Việt Lâm Coder
Xin chào! Chúng tôi có thể giúp gì cho bạn ?
Gọi ngay cho chúng tôi