linux防火墙日志命令行,第9篇 Linux防火墙-日志管理

本篇主要还是解决,第8篇防火墙配置遗留的一些问题,中间穿插了《第9篇:Linux rsyslog日志服务》的内容。

b84315f4ea6c

image

我们知道这些日志由内核生成,因此它们转到接收内核日志的文件:/var/log/kern.log。如果要将这些日志重定向到其他文件,则无法通过iptables完成。 可以在分发日志的程序的配置中完成:rsyslog。

首先确保Linux的rsyslog服务已经正常配置,我们在其配置文件中,确保include(file="/etc/rsyslog.d/*.conf" mode="optional")已经取消注释,以便rsyslog加载/etc/rsyslog.d目录下的任何配置文件

b84315f4ea6c

我们在/etc/rsyslog.d目录下新建一个firewalld.conf的文件,然后写入其中的日志配置

kern.* /var/log/firewalld.log

还有我们需要配置日志滚动

vim /etc/logrotate.d/syslog

如下图所示

b84315f4ea6c

OK,剩下的问题我们需要重新修订之前的iptables的规则,之前的direct规则(iptables规则)

我们为以下几种攻击类型的添加以下目标动作的chain

端口扫描 chain名称是PORT_SCANNING

IP欺骗,chain名称是SPOOFING

sync攻击,chain名称是SYN_ATTACK

tcp泛洪,chain名称是TCP_FLOOD

firewall-cmd --permanent --direct --add-chain ipv4 filter PORT_SCANNING

firewall-cmd --permanent --direct --add-chain ipv4 filter SPOOFING

firewall-cmd --permanent --direct --add-chain ipv4 filter SYN_ATTACK

firewall-cmd --permanent --direct --add-chain ipv4 filter TCP_FLOOD

我们为上面的每条chain规则定义两个target

首先 -j LOG的target,表示对匹配规则的数据包的信息写入日志文件中

然后 -j DROP的target,表示对匹配规则的数据包最终做丢弃处理

ipv4 mangle PORT_SCANNING 0 -m recent --name portscan --rcheck --seconds 25200 -j DROP

ipv4 mangle PORT_SCANNING 1 -m recent --name portscan --remove

ipv4 mangle PORT_SCANNING 2 -p tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix port_scan:

ipv4 mangle PORT_SCANNING 3 -p tcp --dport 139 -m recent --name portscan --set -j DROP

ipv4 mangle SPOOFING 0 -j LOG --log-prefix ip_spoofing:

ipv4 mangle SPOOFING 1 -j DROP

ipv4 mangle SYN_ATTACK 0 -j LOG --log-prefix syn_attack:

ipv4 mangle SYN_ATTACK 1 -j DROP

ipv4 filter TCP_FLOOD 0 -j LOG --log-prefix tcp_flood:

ipv4 filter TCP_FLOOD 1 -j DROP

之后我们将之前定义的规则修改以下

ipv4 mangle ANTI_TCP_INVALID 0 -m conntrack --ctstate INVALID -j DROP

ipv4 mangle ANTI_TCP_INVALID 1 -p tcp '!' --syn -m conntrack --ctstate NEW -j DROP

ipv4 mangle ANTI_TCP_UNORMAL_MSS 0 -p tcp -m conntrack --ctstate NEW -m tcpmss '!' --mss 536:65535 -j DROP

ipv4 mangle ANTI_FORGE_TCP_FLAG 0 -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 1 -p tcp --tcp-flags FIN,SYN FIN,SYN -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 2 -p tcp --tcp-flags SYN,RST SYN,RST -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 3 -p tcp --tcp-flags FIN,RST FIN,RST -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 4 -p tcp --tcp-flags FIN,ACK FIN -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 5 -p tcp --tcp-flags ACK,URG URG -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 6 -p tcp --tcp-flags ACK,FIN FIN -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 7 -p tcp --tcp-flags ACK,PSH PSH -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 8 -p tcp --tcp-flags ALL ALL -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 9 -p tcp --tcp-flags ALL NONE -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 10 -p tcp --tcp-flags ALL FIN,PSH,URG -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 11 -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j SYN_ATTACK

ipv4 mangle ANTI_FORGE_TCP_FLAG 12 -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j SYN_ATTACK

ipv4 mangle ANTI_IP_SPOOF 0 -s 224.0.0/3 -j SPOOFING

ipv4 mangle ANTI_IP_SPOOF 1 -s 192.0.2.0/24 -j SPOOFING

ipv4 mangle ANTI_IP_SPOOF 2 -s 169.254.0.0/16 -j SPOOFING

ipv4 mangle ANTI_IP_SPOOF 3 -s 172.16.0.0/12 -j SPOOFING

ipv4 mangle ANTI_IP_SPOOF 4 -i enp3s0 -s 192.168.0.0/16 -j SPOOFING

ipv4 mangle ANTI_IP_SPOOF 5 -s 10.0.0.0/8 -j SPOOFING

ipv4 mangle ANTI_IP_SPOOF 6 -s 0.0.0.0/8 -j SPOOFING

ipv4 mangle ANTI_IP_SPOOF 7 -s 240.0.0.0/5 -j SPOOFING

ipv4 mangle ANTI_IP_SPOOF 8 -s 127.0.0.0/8 '!' -i lo -j SPOOFING

ipv4 filter ANTI_TCP_FLOOD 0 -p tcp -m connlimit --connlimit-above 80 -j REJECT --reject-with tcp-reset

ipv4 filter ANTI_TCP_FLOOD 1 -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT

ipv4 filter ANTI_TCP_FLOOD 2 -p tcp --tcp-flags RST RST -m limit --limit 2/s --limit-burst 2 -j ACCEPT

ipv4 filter ANTI_TCP_FLOOD 3 -p tcp --tcp-flags RST RST -j TCP_FLOOD

ipv4 mangle PREROUTING 1 -j ANTI_TCP_INVALID

ipv4 mangle PREROUTING 2 -j ANTI_TCP_UNORMAL_MSS

ipv4 mangle PREROUTING 3 -j ANTI_FORGE_TCP_FLAG

ipv4 mangle PREROUTING 4 -j ANTI_IP_SPOOF

ipv4 mangle PREROUTING 0 -i enp3s0 -j PORT_SCANNING

ipv4 filter INPUT 0 -j ANTI_TCP_FLOOD

ipv4 filter INPUT 1 -j ANTI_SSH_INTRUSION

ipv4 filter ANTI_SSH_INTRUSION 0 -p tcp --dport 9732 -m conntrack --ctstate NEW -m recent --set

ipv4 filter ANTI_SSH_INTRUSION 1 -p tcp --dport 9732 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j DROP

ipv4 mangle PORT_SCANNING 0 -m recent --name portscan --rcheck --seconds 25200 -j DROP

ipv4 mangle PORT_SCANNING 1 -m recent --name portscan --remove

ipv4 mangle PORT_SCANNING 2 -p tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix port_scan:

ipv4 mangle PORT_SCANNING 3 -p tcp --dport 139 -m recent --name portscan --set -j DROP

ipv4 mangle SPOOFING 0 -j LOG --log-prefix ip_spoofing:

ipv4 mangle SPOOFING 1 -j DROP

ipv4 mangle SYN_ATTACK 0 -j LOG --log-prefix syn_attack:

ipv4 mangle SYN_ATTACK 1 -j DROP

ipv4 filter TCP_FLOOD 0 -j LOG --log-prefix tcp_flood:

ipv4 filter TCP_FLOOD 1 -j DROP

之后我们将firewalld服务重启一次,然后让防火墙运行数天后,syslog服务已经记录下服务器在运行期间遇到各种类型的攻击,写到本文时,我已经发现来自以下攻击ip的尝试扫描过我的服务器,尝试扫描我服务器的基本上会拉黑的,因为我们上面的规则,对于那些恶意扫描的源ip会被封25200秒,也就是封禁7天。

b84315f4ea6c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值