Cài đặt và cấu hình fail2ban trên Centos 8

Tóm tắt nội dung

Tất cả máy chủ kết nối internet thì đều có nguy cơ bị nhiễm mã độc hoặc bị tấn công. Những hacker sẽ lợi dụng vào đó để chiếm quyền máy chủ.

Fail2ban là gì?

Fail2ban là phần mềm opensource hỗ trợ bảo vệ máy chủ tránh khỏi các cuộc tấn công. Với tính năng theo dỗi hoạt động service trong máy chủ, kiểm tra log, chặn IP,… Bài viết dưới  đây, chúng tôi hướng dẫn cài đặt Fail2ban trên Centos 8:

Cài đặt Fail2ban trên Centos 8

Mặc định, Fail2ban có sẵn trong kho lưu trữ của Centos 8
# dnf install fail2ban -y
# systemctl enable --now fail2ban
Kiểm tra tình trạng
# systemctl status fail2ban
Máy chủ đã được cài đặt Fail2ban và kích hoạt.

Cấu hình Fail2ban trên Centos 8

Mặc định khi cài đặt xong Fail2ban, có 2 file config của Fail2ban /etc/fail2ban/jail.conf và /etc/fail2ban/jail.d/00-firewalld.conf không nên chỉnh sửa trực tiếp lên file trên bởi vì dễ bị ghi đè khi được cập nhật. Fail2ban đọc các file cấu hình theo thứ tự sau:
  • /etc/fail2ban/jail.conf
  • /etc/fail2ban/jail.d/*.conf
  • /etc/fail2ban/jail.local
  • /etc/fail2ban/jail.d/*.local
Cách cấu hình Fail2ban an toàn là sao chép file jail.conf vào jail.local và edit file .local.
# cp /etc/fail2ban/jail.{conf,local}

Tiến hành cấu hình và chỉnh sửa file jail.local

# vi /etc/fail2ban/jail.local

Cấu hình Whitelist địa chỉ IP

# "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.
ignoreip = 127.0.0.1/8 ::1 27.3.9.64 192.168.1.0/24

# External command that will take an tagged arguments to ignore, e.g. <ip>,
# and return true if the IP is to be ignored. False otherwise.

Cài đặt Ban trong Fail2ban:

Các thông số cần setup: bantime, findtime và maxretry Bantime là thời gian IP sẽ bị cấm truy cập vào máy chủ, mặc định là giây nhưng bạn có thể setup theo thời gian bạn muốn như giờ (h), ngày (d),… findtime là khoảng thời gian giữa các số lần truy cập máy chủ thất bại maxretry là số lần truy cập máy chủ thất bại
# "bantime" is the number of seconds that a host is banned.
bantime = 10m

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 10m

# "maxretry" is the number of failures before a host get banned.
maxretry = 5

Cấu hình Notification qua email

Fail2ban có thể gửi cảnh báo qua email khi một IP đã bị cấm. Để nhận email, bạn cần phải cài đặt SMTP trên máy chủ của mình và thay đổi hành động mặc định, hành động này chỉ cấm IP %(action_mw)s, như hình dưới đây: %(action_mw)ssẽ cấm IP vi phạm và gửi email. Nếu bạn muốn đưa các nhật ký có liên quan vào email, hãy đặt hành động thành %(action_mwl)s. Bạn cũng có thể điều chỉnh địa chỉ email gửi và nhận:
destemail = admin@cloudviet.com.vn
sender = root@cloudviet.com.vn

Cài đặt Fail2ban Jails

[sshd]enabled   = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Sau khi cấu hình các bước trên, bạn cần khởi động lại fail2ban để lệnh được thực thi:
# systemctl restart fail2ban

Với Fail2ban client:

Bạn có thể thao tác với fail2ban và hiểu rõ các lệnh thực thi thì sử dụng:
# fail2ban-client -h
Công cụ này có thể được sử dụng để cấm / bỏ cấm địa chỉ IP, thay đổi cài đặt, khởi động lại dịch vụ và hơn thế nữa. Đây là vài ví dụ: Kiểm tra tình trạng của một dịch vụ sshd:
# fail2ban-client status sshd
Bỏ cấm IP: # fail2ban-client set sshd unbanip 27.3.9.64 Cấm IP:
# fail2ban-client set sshd banip 27.3.9.64
Như vậy, chúng tôi đã hướng dẫn cài đặt Fail2ban trên Centos 8 thành công. Theo linuxize
Logo Cloud Việt

Thông Tin Và Hoạt Động Của Chúng Tôi

Cloud Việt là đơn vị cung cấp dịch vụ TTDL uy tín tại Việt Nam. Với tiêu chí là đặt quyền lợi và trải nghiệm của khách hàng lên hàng đầu để  đem đến dịch vụ tốt nhất.

Trụ sở chính

110/20/41 đường số 30, phường 6, quận Gò Vấp, TPHCM

Ngày làm việc

Thứ 2 - Thứ 6, Hàng tuần

Giờ làm việc

08 : 00 AM - 18 : 00 PM

Email

Support@cloudviet.com.vn

Hotline

0972 710 812