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.
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.
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ậ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:
# "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.
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.
Đôi khi việc chuyển file hoặc download từ local Việt Nam đi các VPS nước…
Kiểm tra port SSH đang sử dụng trên VPS netstat -atnp | grep "ssh" Kiểm…
phpMyAdmin – Error Error during session start; please check your PHP and/or webserver log file…
Sẽ không có hình ảnh minh họa cụ thể nào, tất cả hướng dẫn sẽ…
Google Search hoạt động như thế nào. Tìm hiểu cách Google phát hiện, thu thập…