Cài đặt Fail2Ban trên centos 7 hạn chế bruteforce

Mặc dù kết nối với máy chủ thông qua SSH có thể rất an toàn, nhưng bản thân ssh phải tiếp xúc với Internet để hoạt động bình thường. Điều này đi kèm với một số rủi ro và dễ bị tấn công.

Bất kỳ dịch vụ nào tiếp xúc với mạng thì điều là mục tiêu tiềm năng cho các cuộc tấn công mạng. Nếu bạn chú ý đến log cho dịch vụ này, bạn sẽ thấy các lần đăng nhập lặp đi lặp lại, có hệ thống thể hiện các cuộc tấn công người dùng cũng như bot.

Fail2ban – Một dịch vụ tạo ra quy tắc tự động thay đổi cấu hình tường lửa Iptable của của bạn dựa trên số lần đăng nhập thất bại được xác định trước. Điều này cho phép máy chủ của bạn phản hồi các lần đăng nhập không thành công  mà không có sự can thiệp của bạn.

Trong hướng dẫn này, chúng tôi sẽ trình bày cách cài đặt và sử dụng Fail2ban trên máy chủ Centos 7

Cài đặt Fail2ban trên CentOS-7

Mặc dù Fail2ban không có sẵn trong kho CentOS chính thức, nó được đóng gói trong dự án EPEL. Cài đặt kho EPEL:

yum install epel-release

Cài đặt gói Fail2ban:

yum install -y fail2ban

Sau khi cài xong, kích hoạt dịch vụ:

systemctl enable fail2ban

Cấu hình cài đặt

Dịch vụ Fail2ban lưu giữ các tệp cấu hình tại thư mục /etc/fail2ban. Tại đây jail.conf là tệp với giá trị mặc định. Không nên chỉnh sửa tệp này mà thay vào đó sẽ tạo một tệp mới có tên jail.local, sẽ ghi đè lên những giá trị trong jail.conf

Tạo file backup:mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.backup

Tạo file cấu hình mới:

> /etc/fail2ban/jail.conf

cat << EOF >> /etc/fail2ban/jail.conf
[DEFAULT]
ignoreip = 127.0.0.1
bantime = 600
findtime = 600
maxretry = 3
EOF

Trong đó

  • ignoreip: không block những địa chỉ này
  • bantime: khoảng thời gian block mặc định (giây)
  • 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 fail2ban cho ssh

cat << EOF >> /etc/fail2ban/jail.local
[sshd]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/secure
maxretry = 5
bantime = 3600
EOF

Trong đó

  • enabled: kích hoạt bảo vệ
  • 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
  • logpath: đường dẫn file log fail2ban
  • maxretry: số lần login false tối đa
  • bantime: thời gian ban IP 3600 giây = 1 giờ

Khởi động lại dịch vụ:

systemctl restart fail2ban
systemctl start fail2ban

Kiểm tra trạng thái

systemctl status fail2ban

Chúc các bạn cấu hình thành công.

Was this article helpful?

Related Articles