Có lẽ tình trạng tấn công vét cạn (Brute Force Attack) trên dịch vụ ssh đã không quá xa lạ với các quản trị viên hệ thống. Để khắc phục hiện trạng đó có rất nhiều cách khác nhau, trong bài viết này mình sẽ hướng dẫn bạn cách sử dụng Fail2ban để tăng thêm bảo mật cho SSH trên Centos 8.
Cài đặt Fail2ban #
Để bạn thực hiện cài đặt trên CentOS 8 như bên dưới:
sudo yum update sudo yum install epel-release sudo yum update sudo yum install fail2ban |
Sau khi cài đặt xong, thực hiện kích hoạt khởi động cùng hệ thống:
sudo systemctl enable fail2ban |
Cấu hình Fail2ban #
Mặc định, Fail2ban sẽ có các cấu hình sẵn trong file /etc/fail2ban/jail.conf. Bạn hãy tạo mới file /etc/fail2ban/jail.local, các cấu hình trong đó sẽ ghi đè lên cấu hình có sẵn:
sudo vi /etc/fail2ban/jail.local |
Thêm đoạn cấu hình sau:
[DEFAULT] # Ban IP/hosts for 24 hour ( 24h*3600s = 86400s): bantime = 86400 # An ip address/host is banned if it has generated "maxretry" during the last "findtime" seconds. findtime = 600 maxretry = 3 # "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban # will not ban a host which matches an address in this list. Several addresses # can be defined using space (and/or comma) separator. For example, add your # static IP address that you always use for login such as 103.1.2.3 #ignoreip = 127.0.0.1/8 ::1 103.1.2.3 # Call iptables to ban IP address banaction = iptables-multiport # Enable sshd protection [sshd] enabled = true |
Lưu lại file và thực hiện khởi động lại dịch vụ để cập nhật cấu hình mới:
sudo systemctl start fail2ban sudo systemctl status fail2ban |
Các rule được lưu mặc định tại /etc/fail2ban/filter.d. Do đó, bạn có thể tạo mới rule bất kì và để vào thư mục trên để áp dụng.
Với cấu hình trong file /etc/fail2ban/jail.local ở trên, các địa chỉ IP cố gắng vét cạn mật khẩu sẽ bị chặn:
bantime = 86400 maxretry = 3 |
Trong đó:
- bantime là thời gian bị chặn nếu như vi phạm rule.
- maxretry là số lần đăng nhập thất bại sẽ bị chặn, thời gian chặn sẽ được chỉ định bởi thông số bantime.
Trong khi hoạt động, bạn có thể kiểm tra trạng thái xem các địa chỉ IP nào đang bị chặn và lý do bị chặn với câu lệnh bên dưới:
sudo fail2ban-client status sudo fail2ban-client status sshd |
Hình ảnh dưới là ví dụ trên Server của mình:
Nếu bạn muốn xem toàn bộ file log thì có thể theo dõi bằng câu lệnh sau:
tail -f /var/log/fail2ban.log |
Kết luận #
Như vậy, mình đã hướng dẫn bạn cách cài đặt Fail2ban để tăng thêm bảo mật cho dịch vụ SSH trên Centos 8. Cuối cùng, với bất kì thắc mắc nào bạn hãy bình luận ở bên dưới để mình hỗ trợ nhé.
Nguồn bài viết: https://www.cyberciti.biz/