Categories: ServerThủ Thuật

Cách cài đặt Fail2Ban trên CentOS 7

5
(3)

Tại sao phải cài đặt Fail2Ban?

Nếu bạn là người quản trị VPS thì khi đăng nhập bằng SSH thì bạn sẽ thấy dòng thông báo sau:

There were xxxxx failed login attempts since the last successful login.
Last login: Wed Jul 10 07:50:17 2019 from xxx.xxx.xxx.xxx

Với xxxxx là một con số khá lớn, nó thể hiện số lần đăng nhập thất bại kể từ lần đăng nhập thành công gần nhất.

Thông báo số lần đăng nhập thất bại từ lần đăng nhập thành công lần cuối.

Chính vì nó mà server bạn có thể chậm đi vì bị tấn công liên tục. Vì vậy điều bạn cần làm ngay đó là dựng lên một luật lệ để ngăn cản hành động dò password này lên con server của bạn bằng Fail2ban.

Fail2ban quét các tệp nhật ký và cấm IP hiển thị các dấu hiệu độc hại – quá nhiều lỗi mật khẩu, tìm cách khai thác, v.v.

Lệnh cài đặt Fail2ban trên Centos 7

Các lệnh được thực thi với quyền root.

Cập nhật các gói phần mềm trong hệ thống bằng lệnh

#yum update -y

Bây giờ cài đặt fail2ban trong máy chủ đang chạy lệnh dưới đây,

#yum install fail2ban fail2ban-systemd
Cài đặt Fail2Ban trên CentOS 7

Cập nhật chính sách selinux bằng cách

#yum update -y selinux-policy*

Sau khi cài đặt, bạn phải định cấu hình và tùy chỉnh phần mềm với tệp cấu hình jail.local, do đó, mặc dù jail.conf mặc định được sửa đổi bởi gói nâng cấp, các thay đổi của bạn sẽ an toàn.

Tất cả các tùy chọn mặc định sẽ được lấy từ tệp jail.conf và tất cả những gì bạn muốn ghi đè sẽ được lấy từ tệp jail.local.

#cp -pf /etc/fail2ban/jail.conf  /etc/fail2ban/jail.local

Lệnh hỏi có ghi đè không thì Enter.

Mở jail.local bằng trình soạn thảo vim và bạn có thể đặt giới hạn để ngăn cấm một hoặc nhiều địa chỉ IP, đặt thời lượng tạm thời, v.v. Ví dụ được đưa ra dưới đây.

#vim /etc/fail2ban/jail.local hoặc nano /etc/fail2ban/jail.local

Nếu bạn không quen sửa bằng lệnh thì bạn có thể dùng trình FTP để sửa cho trực quan:

Sửa file jail.local để cấu hình Fail2Ban
# "ignoreip" can be an IP address, a CIDR mask or a DNS host. 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

# 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.
#
# ignorecommand = /path/to/command <ip>
ignorecommand =

# "bantime" is the number of seconds that a host is banned.
bantime  = 600

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

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

Dùng lệnh :wq để thoát khỏi trình chỉnh sửa. Hoặc bạn có thể dùng các trình FTP để sửa trực quan hơn tại: /etc/fail2ban/ Hoặc đơn giản hơn là để mặc định. Nếw dùng lệnh nano để chỉnh sửa thì Ctrl+O Enter Ctrl+X để thoát ra.

Thêm một tập tin để bảo vệ SSH.

Tạo một tập tin /etc/fail2ban/jail.d/sshd.local bằng cách sử dụng vim và thêm các dòng sau vào tệp.

#vim /etc/fail2ban/jail.d/sshd.local hoặc nano etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
port = ssh
#action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 3
bantime = 7200

Bây giờ kích hoạt và bắt đầu fail2ban bằng cách thực hiện các lệnh bên dưới,

#systemctl enable fail2ban
#systemctl start fail2ban

Để theo dõi các lần đăng nhập thất bại, hãy sử dụng lệnh đã cho,

#cat /var/log/secure | grep 'Failed password'

Và chúng ta sẽ nhận được một đầu ra như thế này:

Apr 19 13:08:48 server sshd[21017]: Failed password for root from 10.0.0.110 port 53188 ssh2
Apr 19 13:08:55 server sshd[21017]: Failed password for root from 10.0.0.110 port 53188 ssh2
Apr 19 13:08:59 server sshd[21017]: Failed password for root from 10.0.0.110 port 53188 ssh2

Lệnh kiểm tra trạng thái của Fail2Ban:

# fail2ban-client status
hoặc lệnh chi tiết để xem bao nhiêu ip đã bị ban.
# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     41
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 9
   |- Total banned:     15
   `- Banned IP list:   183.109.88.165 122.195.200.148 222.186.15.110 153.36.240.126 222.186.52.123 183.131.82.99 153.36.236.242 153.36.232.139 153.36.242.143

Chúng ta có thể loại bỏ lệnh cấm của địa chỉ IP bằng lệnh

#fail2ban-client set sshd unbanip ‘IPADDRESS’

Sửa IPADDRESS thành ip bạn muốn gỡ lệnh cấm.

How useful was this post?

thuthuatcaidat.com

Recent Posts

Ví dụ về việc chuyển file giữa 2 VPS

Đôi khi việc chuyển file hoặc download từ local Việt Nam đi các VPS nước…

3 năm ago

Thay đổi port SSH trên Linux

Kiểm tra port SSH đang sử dụng trên VPS netstat -atnp | grep "ssh" Kiểm…

3 năm ago

Sửa lỗi phpMyAdmin – Error

phpMyAdmin – Error Error during session start; please check your PHP and/or webserver log file…

5 năm ago

Thiết lập MySQLDumper

Đây là phần quản lý mysql, cơ sở dữ liệu lớn, dành cho những bạn…

5 năm ago

Tự động xóa hết file log trên VPS Linux bằng Crontab

Sẽ không có hình ảnh minh họa cụ thể nào, tất cả hướng dẫn sẽ…

5 năm ago

Google Search hoạt động như thế nào

Google Search hoạt động như thế nào. Tìm hiểu cách Google phát hiện, thu thập…

5 năm ago