Cấu hình SSH với Fail2ban trên Centos 8

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:

ip-lock-fail2ban

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/

Mình là Tùng, hiện đang là DevOps tại Công Ty CP EcoIT. Với kinh nghiệm có được từ trong công việc, mình muốn chia sẻ cho bạn đọc cùng biết và cùng nhau học thêm nhiều điều mới trong lĩnh vực DevOps.

Powered by BetterDocs

Để lại bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *