Bảo mật SIP Server với Fail2ban trên Centos 7

Fail2ban là một ứng dụng phân tích và giám sát log để nhận ra các cuộc tấn công vào server thông qua các gói tin. Khi một gói tin đi qua vào server sẽ ghi nhận log và giám sát hoạt động của server source. Nếu Fail2ban được chạy các rule để giám sát, thì sẽ ghi nhận lại các thông số cụ thể để áp dụng những action khi vi phạm các rule này. Fail2ban cũng có thể thực hiện các cảnh báo đến email của bạn khi bị tấn công. Ngoài ra có thể tùy chỉnh những cảnh báo khác nhau bằng SMS hoặc cuộc gọi.

Các bước cài đặt

# Bước 1:

Trên Centos 7 cần cài gói mở rộng EPEL 

# yum install epel-release
# yum install fail2ban fail2ban-systemd

# Bước 2:

Sao chép file jail.conf thành jail.local và chỉnh lại một vài thông số.

# cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# vim /etc/fail2ban/jail.local
[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

# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport

# "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

Trong đó:

ignoreip: những địa chỉ IP sẽ được ưu tiên không bị chặn bởi Fai2ban, nếu là danh sách nhiều IP, mỗi IP sẽ được phân cách nhau bằng “khoảng trắng”.
bantime: khoảng thời gian (giây) chặn địa chỉ IP.
findtime: khoảng thời gian (giây) một địa chỉ IP phải thực hiện đăng nhập thành công.
maxretry: số lần tối đa mà máy chủ chấp nhận một địa chỉ IP đăng nhập thất bại.

# Bước 3:

Cấu hình một số dịch vụ sử dụng Fail2ban

#SSH

touch /etc/fail2ban/jail.d/sshd.local && chmod +x /etc/fail2ban/jail.d/sshd.local
vim /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
port = ssh
#action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

#Asterisk

# touch /etc/fail2ban/jail.d/asterisk.local && chmod +x /etc/fail2ban/jail.d/asterisk.local
# vim /etc/fail2ban/jail.d/asterisk.local
[asterisk]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=Asterisk, [email protected], [email protected]]
logpath = /var/log/asterisk/messages
maxretry = 5
bantime = 100

# Bước 4:

Khởi động firewalld và start fail2ban

# systemctl enable firewalld
# systemctl start firewalld
# systemctl enable fail2ban
# systemctl start fail2ban

Một vài lệnh kiểm tra fail2ban

# fail2ban-client status
# fail2ban-client set sshd banip IPADDRESS
# fail2ban-client set sshd unbanip IPADDRESS

Chúc các bạn thành công!

Bài viết liên quan

Leave a Reply

Your email address will not be published. Required fields are marked *