linux(centos8):firewalld的運行時日志配置


一,firewalld配置日志的用途:

在生產環境中,firewalld的默認配置是不記錄日志

我們通過日志記錄下防火牆過濾時拒絕的非法ip,

可以主動把這些有攻擊性的ip加入到黑名單,

防患於未然

 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,配置firewalld記錄被reject包的日志

修改firewalld的配置文件

[root@blog log]# vi /etc/firewalld/firewalld.conf

設置下面一項的值:

LogDenied=all

 

說明:

默認值是off,即不記錄被拒的包

設置為all,表示記錄所有被拒的包

 

重啟firewalld服務,使日志配置生效

[root@blog log]# systemctl restart firewalld.service 

 

驗證配置是否生效:

#--get-log-denied: 得到記錄被拒日志的配置項的值

[root@blog ~]# firewall-cmd --get-log-denied
all

說明配置已生效

 

三,測試firewalld被拒數據包后是否記錄日志

另外找一台機器,telnet到firewalld所在服務器上一個不開放的端口

[lhd@web2 ~]$ telnet 121.122.123.47 22
Trying 121.122.123.47...
telnet: connect to address 121.122.123.47: No route to host

 

回到原服務器查看denied日志:

[root@blog ~]# dmesg | grep -i reject
[11761159.473094] FINAL_REJECT: IN=eth0 OUT= MAC=00:16:3e:16:7c:a5:ee:ff:ff:ff:ff:ff:08:00 
SRC=121.122.123.87 DST=172.17.11.21 LEN=52 TOS=0x10 PREC=0x00 TTL=56 ID=45900 DF PROTO=TCP SPT=28477 DPT=22
WINDOW=14600 RES=0x00 SYN URGP=0 ...

可以看到未連接成功的請求也被記錄下來了

 

說明:如果是ecs外部有雲服務的防火牆,請求到不了主機則不會記錄失敗的請求

 

四,配置firewalld的運行時日志到指定的文件:

1,創建firewalld的運行時日志文件

[root@blog log]# vi /etc/rsyslog.d/firewalld.conf

內容:指定日志的路徑

kern.* /var/log/firewalld.log

 

2,配置日志的滾動

[root@blog log]# vi /etc/logrotate.d/syslog

內容:把上面指定的firewalld.log加入進去即可

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/firewalld.log
/var/log/spooler
{
    missingok
    sharedscripts
    postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
    endscript
}

 

3,修改完成后重啟rsyslog服務

[root@blog rsyslog.d]# systemctl restart rsyslog.service

 

4,查看日志:

[root@blog log]# more /var/log/firewalld.log
May 25 17:01:15 blog kernel: FINAL_REJECT: IN=eth0 OUT= MAC=00:16:3e:16:7c:a5:ee:ff:ff:ff:ff:ff:08:00 
SRC=93.235.100.170 DST=172.17.11.21 LEN=44 TOS=0x14 PREC=0x00 TTL=241 ID=54321 PROTO=TCP SPT=58690 DPT=22
WINDOW=65535 RES=0x00 SYN URGP=0 ...

可以發現有對22端口的試探

因為firewalld未開放22端口,所以被拒絕的同時記錄到了日志

 

五,找出被防火牆拒絕的最多的20個IP

#FINAL_REJECT:是被拒絕請求的日志中的標志字串

[root@blog log]# grep 'FINAL_REJECT:' /var/log/firewalld.log | awk '{print $10}' | sort -n | uniq -c | sort -k1nr | head -10
     10 SRC=43.243.12.116
      1 SRC=189.203.131.96
      1 SRC=85.209.0.101
      1 SRC=87.251.74.50
...

 

六,查看firewalld的版本

[root@blog log]# firewall-cmd --version
0.6.3

說明;服務端程序firewalld沒有打印版本的選項,使用客戶端程序firewall-cmd即可

 

七,查看centos的版本

[root@blog log]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM