APP下载

Linux主机防CC攻击的方法

2019-12-22西安田立军解宝琦

网络安全和信息化 2019年8期
关键词:配置文件内核命令

■ 西安 田立军 解宝琦

编者按: CC攻击(Challenge Collapsar)是很多企业IT系统面临的一种重要安全威胁,笔者在单位的一次攻防演练中遇到此类攻击并进行了总结。

CC攻击是一种专门针对于Web的应用层FLOOD攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量HTTP Request攻击,是DDoS的一种,也是一种常见的网络攻击方式。在一次攻防演练中,笔者单位的门户网站(服务器环境为RedHat 6系列)就因为大量的Web注入访问请求而导致网页服务短时间终止而无法正常访问。尽管我们已经在该主机上通过防火墙限制了可以访问主机的端口,但测试人员还是通过向“80”端口发送了大量的TCP请求包而导致Web网页服务请求因为TCP连接数过大而用户无法访问的问题。

事后通过查找资料才知道Linux新的防火墙可以通过使用xt_recent模块来实现对TCP连接数的控制。通过使用xt_recent模块,该方法不但可以很好地抵抗CC以及DDoS攻击,也可以很好地抵抗端口扫描一类的恶意行为,使本机系统具有良好的IPS特性。

笔者总结了Debian、RedHat6、RedHat7这些不同主要Linux发行版的相关参数配置方法,以便用户进行类似配置和部署。

因为以上操作系统已经默认开启了iptablesde xt_recent模块支持,当主机需要配置抗CC攻击时,只需要在相应的配置文件中引入如下语句:

-A INPUT -p tcp -m multiport --destinationport 80,443,3371, -m state --state NEW -m recent --update --seconds 60 --hitcount 20 --name test --rsource -j DROP

-A INPUT -p tcp -m multiport --destination-port 80,443,3371, -m state --state NEW -m recent --set --name test--rsource

-A INPUT -p tcp -m multiport --destinationport 80,443,3371, -m connlimit --connlimitabove 20 -j REJEC

以上例子描述了单个客户端IP地址60分钟内如果针对“80、443、3371”端口新建TCP连接数超过20个系统将主动丢弃后续的数据包。

需要特别说明的是,以上语法在RedHat6系列Linux上“--hitcount” 值 默 认为 20,Debian、RedHat7 系列没有此限制。该值与xt_recent模块下的ip_pkt_list_tot相关,在RedHat6、Debian、RedHat7上使用命令“cat /sys/module/xt_recent/parameters/ip_pkt_list_tot”查看该值分别是“20”“0”“0”,根据相关资料说明,该值只能通过添加配置文件修改,否则会引发内核恐慌状态(kernel panic),具体修改如下:

1.debian、RedHat6

使 用 命 令“vi /etc/modprobe.d/xt_recent.conf”,加 入“options xt_recent ip_pkt_list_tot=200”。

2.RedHat7

使 用 命 令“vi /etc/modprobe.d/mlx4.conf”,加 入“options xt_recent ip_list_tot=1024 ip_pkt_list_tot=200”。

重启操作系统,通过命令“cat /sys/module/xt_recent/parameters/ip_pkt_list_tot”查看该值,应该已经修改为“200”,此时“--hitcount”值可以最高定义为200。

RedHat7系列操作系统因为启用了新的Firewalld防火墙配置管理命令,因此除了以上直接配置iptables规则方法外,还可以通过使用Firewalld管理工具进行抗CC攻击的配置。执行一下firewall指令:

#firwall-cmd–-permanent –-direct–add-rule ipv4 filter INPUT_direct 0–ptcp -m multiport --destinationport 80,443,3371 –m state –-state NEW –m recent –-set

#firwall-cmd–-permanent –-direct–add-rule ipv4 filter INPUT_direct 0 –ptcp -m multiport --destinationport 80,443,3371 –m state –-state NEW–m recent –-update–-seconds 60 --hitcount 37 –j REJECT –-rejectwith tcp-reset

#firewall-cmd –reload

完成后,可使用命令“firewall-cmd –-permanent–-direct –-get-allrules”查看firewalld规则是否加入成功。

通过Linux本机的防火墙及内核TCP参数的修改和优化。Linux主机可以具有很好的抗恶意网络行为能力和IPS功能。如果配置得当,并将网卡设置为桥模式串接在网络边界设备,可发挥很好的防火墙作用,不但节约了成本,也可以很好地阻断4层及7层恶意流量。

猜你喜欢

配置文件内核命令
万物皆可IP的时代,我们当夯实的IP内核是什么?
提示用户配置文件错误 这样解决
只听主人的命令
强化『高新』内核 打造农业『硅谷』
搭建简单的Kubernetes集群
互不干涉混用Chromium Edge
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
忘记ESXi主机root密码怎么办
移防命令下达后