ติดตั้ง firewalld
root@voip:~# apt install firewalld
เช็ค status ว่า firewalld run อยู่หรือเปล่า
root@voip:~# systemctl status firewalld
เช็ค network interface
root@voip:~# ip a
network interface ที่ใช้อยู่ คือ enp4s0 และ IP address = 192.168.100.70
add interface เข้ากับ default zone
root@voip:~# firewall-cmd --add-interface=enp4s0 --permanent
root@voip:~# firewall-cmd --reload
root@voip:~# firewall-cmd --list-all
default zone = public
interfaces = enp4s0 ตามที่เราเพิ่มเข้าไป
default services = dhcpv6-client และ ssh
add web port, SIP port และ rtp port
root@voip:~# firewall-cmd --add-port=80/tcp --permanent
root@voip:~# firewall-cmd --add-port=5060/udp --permanent
root@voip:~# firewall-cmd --add-port=10000-20000/udp --permanent
root@voip:~# firewall-cmd --reload
root@voip:~# firewall-cmd --list-all
เป็นอันว่าเราเพิ่ม ports ต่างๆ เรียบร้อย
ขั้นตอนต่อไปติดตั้ง fail2ban
root@voip:~# apt install fail2ban
เช็ค status ว่า fail2ban run อยู่หรือเปล่า
root@voip:~# systemctl status fail2ban
Edit ไฟล์ /etc/fail2ban/jail.conf
set bantime ตามต้องการ เช่น bantime = 12h เป็นต้น
ตรง section [asterisk] edit ดังนี้
logpath = /var/log/asterisk/full
Edit ไฟล์ /etc/fail2ban/jail.d/defaults-debian.conf
ดังนี้
==============================
[sshd]
enabled = true
[asterisk]
enabled = true
[apache-auth]
enabled = true
[apache-badbots]
enabled = true
[apache-noscript]
enabled = true
[apache-overflows]
enabled = true
[apache-nohome]
enabled = true]
[apache-botsearch]
enabled = true
[apache-fakegooglebot]
enabled = true
[apache-modsecurity]
enabled = true
[apache-shellshock]
enabled = true
==============================
Restart fail2ban
root@voip:~# systemctl restart fail2ban
เช็ค status
root@voip:~# fail2ban-client status
root@voip:~# fail2ban-client status sshd
root@voip:~# fail2ban-client status asterisk
root@voip:~# fail2ban-client status apache-auth
...