linux开启firewalld或iptables的日志记录--脚本

文件名:ip_fire.sh

内容:

复制代码
#!/bin/bash

#iptables
iptables_run(){
  #修改日志文件
  grep -e "^kern.*" /etc/rsyslog.conf
  flag_k=$?
  if [ $flag_k -eq 0 ]
  then
    echo "rsyslog日志指定文件已存在"
  else
    sed -i '/#kern.*                                                 \/dev\/console/a\kern.*                                                  /var/log/iptables.log' /etc/rsyslog.conf
  fi
  service rsyslog restart
  #添加策略记录日志
  iptables -I OUTPUT 1 -j LOG
  
  service iptables restart
  
  sleep 10
  
  ls /var/log/iptables.log
  flag_t=$?
  if [ $flag_t -eq 0 ]
  then
    echo "iptables.log日志记录文件已生成"
  fi

}

#firewalld
firewalld_run(){
  #修改日志文件
  grep -e "^kern.*" /etc/rsyslog.conf
  flag_k=$?
  if [ $flag_k -eq 0 ]
  then
    echo "rsyslog日志指定文件已存在"
  else
    sed -i '/#kern.*                                                 \/dev\/console/a\kern.*                                                  /var/log/iptables.log' /etc/rsyslog.conf
  fi
  service rsyslog restart
  #开启日志记录
  grep -e "^LogDenied=all" /etc/firewalld/firewalld.conf 
  flag_k=$?
  if [ $flag_k -eq 0 ]
  then
    echo "firewalld记录日志已开启"
  else
    sed -i '/#LogDenied=off/a\LogDenied=all' /etc/firewalld/firewalld.conf 
  fi

  #添加日志记录
  #firewall-cmd --permanent --zone=public --direct --add-rule ipv4 filter OUTPUT 0 -j LOG
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -j LOG service firewalld restart sleep
10 ls /var/log/iptables.log flag_t=$? if [ $flag_t -eq 0 ] then echo "iptables.log日志记录文件已生成" fi } main(){ #判断iptables文件是否存在 ls /etc/sysconfig/iptables &> /dev/null flag_i=$? if [ $flag_i -eq 0 ] then echo "iptables文件存在" fi #判断firewalld文件是否存在 ls /etc/firewalld/zones/public.xml &> /dev/null flag_f=$? if [ $flag_f -eq 0 ] then echo "firewalld文件存在" fi #判断执行哪个函数 if [ $flag_i -eq 0 ] && [ $flag_f -eq 0 ] then echo "执行firewalld的两个文件" firewalld_run #break elif [ $flag_f -eq 0 ] then echo "执行firewalld" firewalld_run #break elif [ $flag_i -eq 0 ] then echo "执行iptables" iptables_run #break else echo "不存在iptables和firewalld文件" fi } main #查找最后一条策略命令 #iptables -nL OUTPUT_direct --line-numbers|grep DROP|cut -d " " -f 1 | tail -1f #cat /var/log/iptables.log | awk '{print $9}'| tr -d "DST=" | sort |uniq > ip_address.txt #cat /var/log/iptables.log | awk '{print $9}' | sort |uniq |tr "=" "\t\t"
复制代码

posted on   叶子在行动  阅读(236)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2020-08-03 网络工程师的发展
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示