Cài đặt Fail2Ban
Chúng ta sẽ cài đặt Fail2Ban thông qua Repo
EPEL
yum install epel-release
yum install fail2ban
Cấu hình Fail2Ban
Sau khi cài đặt xong, bạn mở file cấu hình của
Fail2Ban lên sẽ thấy một số thông số như sau:
nano /etc/fail2ban/jail.conf
[DEFAULT]
# "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 separator.
ignoreip = 127.0.0.1
# "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 = 3
Trong đó
- ignoreip: không block những địa chỉ này, thường địa chỉ IP ở VN
là địa chỉ động, nên chúng ta không sử dụng được option này.
- bantime: khoảng thời gian (giây) block IP
- 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 mặc định của Fail2Ban khá là ổn rồi,
chúng ta không cần thiết phải cập nhật mà đến bước tiếp theo.
Cấu hình Fail2Ban bảo vệ SSH
Tạo file cấu hình
nano /etc/fail2ban/jail.local
Và sử dụng nội dung sau:
[ssh-iptables]
enabled =
true
filter =
sshd
action =
iptables[name=SSH, port=ssh, protocol=tcp]
#
sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
logpath =
/var/log/secure
maxretry = 2
bantime = 3600
Trong đó
- enabled: kích hoạt bảo vệ, nếu muốn tắt bạn hãy chuyển thành
false
- 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. Nếu bạn đã thay đổi port ssh, sửa đoạn port=ssh bằng port mới, ví dụ port=2222
- logpath: đường dẫn file log fail2ban sử dụng để theo dõi
- maxretry: số lần login false tối đa
- bantime: thời gian ban IP 3600 giây = 1 giờ, bạn có thể điều
chỉnh lại nếu muốn
Khởi động Service Fail2Ban
chkconfig --level 23 fail2ban on
service fail2ban start
Cuối cùng check lại iptables xem đã có rule
của Fail2Ban chưa:
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-SSH tcp -- anywhere anywhere tcp dpt:EtherNet/IP-1
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-SSH (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Theo dõi SSH login
– Bạn có thể sử dụng lệnh sau để biết được
VPS/Server đã từng bị tấn công SSH chưa:
cat /var/log/secure | grep 'Failed password' |
sort | uniq -c
Kết quả thường sẽ là như bên dưới, đã từng có
rất nhiều đợt tấn công:
1 Aug 19
14:18:42 vultr sshd[24424]: Failed password for root from 61.160.223.66 port
1283 ssh2
1 Aug 19
14:18:45 vultr sshd[24424]: Failed password for root from 61.160.223.66 port
1283 ssh2
1 Aug 19
14:18:47 vultr sshd[24424]: Failed password for root from 61.160.223.66 port
1283 ssh2
1 Aug 19
14:18:57 vultr sshd[24426]: Failed password for root from 61.160.223.66 port
1388 ssh2
1 Aug 19
14:18:59 vultr sshd[24426]: Failed password for root from 61.160.223.66 port
1388 ssh2
1 Aug 19
14:19:02 vultr sshd[24426]: Failed password for root from 61.160.223.66 port
1388 ssh2
1 Aug 19
14:19:03 vultr sshd[24426]: Failed password for root from 61.160.223.66 port
1388 ssh2
1 Aug 19
14:19:05 vultr sshd[24426]: Failed password for root from 61.160.223.66 port 1388
ssh2
1 Aug 19
14:19:08 vultr sshd[24485]: Failed password for root from 61.160.223.66 port
1536 ssh2
1 Aug 19
14:19:10 vultr sshd[24485]: Failed password for root from 61.160.223.66 port
1536 ssh2
1 Aug 19
14:19:12 vultr sshd[24485]: Failed password for root from 61.160.223.66 port
1536 ssh2
1 Aug 19
14:19:14 vultr sshd[24485]: Failed password for root from 61.160.223.66 port
1536 ssh2
1 Aug 19
14:19:16 vultr sshd[24485]: Failed password for root from 61.160.223.66 port
1536 ssh2
1 Aug 19
14:19:29 vultr sshd[24490]: Failed password for root from 61.160.223.66 port
1629 ssh2
1 Aug 19
14:19:31 vultr sshd[24490]: Failed password for root from 61.160.223.66 port
1629 ssh2
1 Aug 19
14:19:34 vultr sshd[24490]: Failed password for root from 61.160.223.66 port
1629 ssh2
1 Aug 19
14:19:36 vultr sshd[24490]: Failed password for root from 61.160.223.66 port
1629 ssh2
1 Aug 19
14:19:38 vultr sshd[24490]: Failed password for root from 61.160.223.66 port
1629 ssh2
– Để xem IP đã bị banned bởi Fail2Ban bạn sử dụng
lệnh:
fail2ban-client status ssh-iptables
Output trả về sẽ có dạng như thế này:
Status for the jail: ssh-iptables
|- Filter
| |-
Currently failed: 0
| |- Total
failed: 3
| `- File
list: /var/log/secure
`- Actions
|-
Currently banned: 1
|- Total
banned: 1
`- Banned
IP list: 103.207.68.41
– Để xóa IP khỏi danh sách banned, bạn sử dụng
lệnh sau
fail2ban-client set ssh-iptables unbanip
103.207.68.41
0 nhận xét:
Đăng nhận xét