iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux系统中怎么防止DOSS和CC攻击
  • 359
分享到

Linux系统中怎么防止DOSS和CC攻击

2023-06-10 13:06:06 359人浏览 泡泡鱼
摘要

本篇文章为大家展示了linux系统中怎么防止DOSS和CC攻击,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 抵御SYNSYN攻击是利用tcp/IP协议3次握手的原理,发送大量的建立连接的网络包

本篇文章为大家展示了linux系统中怎么防止DOSS和CC攻击,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。



1. 抵御SYN
SYN攻击是利用tcp/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际
建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。
Linux内核提供了若干SYN相关的配置,用命令:
sysctl -a | grep syn
看到:
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie
功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN
的重试次数。

加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分
SYN攻击,降低重试次数也有一定效果。

调整上述设置的方法是:
增加SYN队列长度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打开SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重试次数:
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_syn_retries=3

为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。

2. 抵御DDOS
DDOS,分布式拒绝访问攻击,是指黑客组织来自不同来源的许多主机,向常见的端口,如80,
25等发送大量连接,但这些客户端只建立连接,不是正常访问。由于一般Apache配置的接受连接
数有限(通常为256),这些“假” 访问会把Apache占满,正常访问无法进行。

Linux提供了叫ipchains的防火墙工具,可以屏蔽来自特定IP或IP地址段的对特定端口的连接。
使用ipchains抵御DDOS,就是首先通过netstat命令发现攻击来源地址,然后用ipchains命令阻断
攻击。发现一个阻断一个。

*** 打开ipchains功能
首先查看ipchains服务是否设为自动启动:
chkconfig --list ipchains
输出一般为:
ipchains 0:off 1:0ff 2:on 3:on 4:on 5:on 6:off
如果345列为on,说明ipchains服务已经设为自动启动
如果没有,可以用命令:
chkconfig --add ipchains
将ipchains服务设为自动启动
其次,察看ipchains配置文件/etc/sysconfig/ipchains是否存在。如果这一文件不存在,ipchains
即使设为自动启动,也不会生效。缺省的ipchains配置文件内容如下:

# Firewall configuration written by lokkit
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
# firewall; such entries will *not* be listed here.
:input ACCEPT
:forward ACCEPT
utput ACCEPT
-A input -s 0/0 -d 0/0 -i lo -j ACCEPT
# allow Http,ftp,smtp,ssh,domain via tcp; domain via udp
-A input -p tcp -s 0/0 -d 0/0 pop3 -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 http -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 https -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 ftp -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 smtp -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 ssh -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 domain -y -j ACCEPT
-A input -p udp -s 0/0 -d 0/0 domain -j ACCEPT
# deny icmp packet
#-A input -p icmp -s 0/0 -d 0/0 -j DENY
# default rules
-A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT
-A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT
-A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT
-A input -p udp -s 0/0 -d 0/0 2049 -j REJECT
-A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT
-A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT

如果/etc/sysconfig/ipchains文件不存在,可以用上述内容创建之。创建之后,启动ipchains服务:
/etc/init.d/ipchains start

*** 用netstat命令发现攻击来源
假如说黑客攻击的是WEB 80端口,察看连接80端口的客户端IP和端口,命令如下:
netstat -an -t tcp | grep ":80" | grep ESTABLISHED | awk '{printf "%s %sn",$5,$6}' | sort
输出:
161.2.8.9:123 FIN_WAIT2
161.2.8.9:124 FIN_WAIT2
61.233.85.253:23656 FIN_WAIT2
...
第一栏是客户机IP和端口,第二栏是连接状态
如果来自同一IP的连接很多(超过50个),而且都是连续端口,就很可能是攻击。
http://bbs.92bbs.net/read-tid-31313.html
如果只希望察看建立的连接,用命令:
netstat -an -t tcp | grep ":80" | grep ESTABLISHED | awk '{printf "%s %sn",$5,$6}' | sort

*** 用ipchains阻断攻击来源
用ipchains阻断攻击来源,有两种方法。一种是加入到/etc/sysconfig/ipchains里,然后重启动
ipchains服务。另一种是直接用ipchains命令加。屏蔽之后,可能还需要重新启动被攻击的服务,
是已经建立的攻击连接失效

* 加入/etc/sysconfig/ipchains
假定要阻止的是218.202.8.151到80的连接,编辑/etc/sysconfig/ipchains文件,在utput ACCEPT
行下面加入:
-A input -s 218.202.8.151 -d 0/0 http -y -j REJECT
保存修改,重新启动ipchains:
/etc/init.d/ipchains restart
如果要阻止的是218.202.8的整个网段,加入:
-A input -s 218.202.8.0/255.255.255.0 -d 0/0 http -y -j REJECT

* 直接用命令行
加入/etc/sysconfig/ipchains文件并重起ipchains的方法,比较慢,而且在ipchains重起的瞬间,
可能会有部分连接钻进来。最方便的方法是直接用ipchains命令。
假定要阻止的是218.202.8.151到80的连接,命令:
ipchains -I input 1 -p tcp -s 218.202.8.151 -d 0/0 http -y -j REJECT
如果要阻止的是218.202.8的整个网段,命令:
ipchains -I input 1 -p tcp -s 218.202.8.0/255.255.255.0 -d 0/0 http -y -j REJECT
其中,-I的意思是插入,input是规则连,1是指加入到第一个。

您可以编辑一个shell脚本,更方便地做这件事,命令:
vi blockit
内容:
#!/bin/sh
if [ ! -z "$1" ] ; then
echo "Blocking: $1"
ipchains -I input 1 -p tcp -s "$1" -d 0/0 http -y -j REJECT
else
echo "which ip to block "
fi
保存,然后:
chmod 700 blockit
使用方法:
./blockit 218.202.8.151
./blockit 218.202.8.0/255.255.255.0

上述命令行方法所建立的规则,在重起之后会失效,您可以用ipchains-save命令打印规则:
ipchains-save
输出:
:input ACCEPT
:forward ACCEPT
utput ACCEPT
Saving `input'.
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo -j ACCEPT
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 110:110 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 80:80 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 22:22 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 88:88 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 89:89 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 90:90 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 91:91 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 8180:8180 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 443:443 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 21:21 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 25:25 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 22:22 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 53:53 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 9095:9095 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 8007:8007 -p 6 -j ACCEPT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 53:53 -p 17 -j ACCEPT
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 0:1023 -p 6 -j REJECT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 2049:2049 -p 6 -j REJECT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 0:1023 -p 17 -j REJECT
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 2049:2049 -p 17 -j REJECT
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 6000:6009 -p 6 -j REJECT -y
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 7100:7100 -p 6 -j REJECT -y
http://bbs.92bbs.net/read-tid-31313.html
您需要把其中的"Saving `input'."去掉,然后把其他内容保存到/etc/sysconfig/ipchains文件,
这样,下次重起之后,建立的规则能够重新生效。

3. 如果使用iptables
RH 8.0以上开始启用iptables替代ipchains,两者非常类似,也有差别的地方。
* 启用iptables
如果/etc/sysconfig/下没有iptables文件,可以创建:
# Firewall configuration written by lokkit
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
# firewall; such entries will *not* be listed here.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Lokkit-0-50-INPUT - [0:0]
-A INPUT -j RH-Lokkit-0-50-INPUT
-A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport ftp -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport ssh -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport http -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport smtp -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport pop3 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport mysql -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2001 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport domain -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport domain -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 0:1023 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2049 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 0:1023 -j REJECT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 2049 -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6000:6009 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT
COMMIT
以上配置允许了ftp, ssh, http, smtp, pop3, Mysql, 2001(Prim@Hosting ACA端口),domain端口。

* 启动iptables
/etc/init.d/iptables start

* 设置iptables为自动启动
chkconfig --level 2345 iptables on

* 用iptables屏蔽IP
iptables -I RH-Lokkit-0-50-INPUT 1 -p tcp -m tcp -s 213.8.166.227 --dport 80 --syn -j REJECT
注意到,和ipchains的区别是:
-I 后面跟的规则名称的参数和ipchains不同,不是统一的input,而是在/etc/sysconfig/iptables里定义的那个
多了-m tcp
指定端口的参数是--dport 80
多了--syn参数,可以自动检测sync攻击

使用iptables禁止ping:
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 2 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT --reject-with icmp-port-unreachable

允许某ip连接
-I RH-Firewall-1-INPUT 1 -p tcp -m tcp -s 192.168.0.51 --syn -j ACCEPT
 

上述内容就是Linux系统中怎么防止DOSS和CC攻击,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网操作系统频道。

--结束END--

本文标题: Linux系统中怎么防止DOSS和CC攻击

本文链接: https://www.lsjlt.com/news/260730.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统中怎么防止DOSS和CC攻击
    本篇文章为大家展示了Linux系统中怎么防止DOSS和CC攻击,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 抵御SYNSYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包...
    99+
    2023-06-10
  • Linux系统中怎么防止CC攻击
    这篇文章将为大家详细讲解有关Linux系统中怎么防止CC攻击,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  什么是CC攻击  cc攻击简单就是(ChallengeCollapsar)  C...
    99+
    2023-06-13
  • Linux如何防止cc攻击
    在Linux系统中预防cc攻击的方法用户在进行正常访问时,与服务器建立的连接一般不会超过20次,可以通过在Linux命令行执行以下脚本,将超过150次的单个IP屏蔽掉,从而实现预防cc攻击。#!/bin/sh status=`netstat...
    99+
    2024-04-02
  • 怎么防CC攻击
    防CC攻击的方法有:1、用软防能防护CC攻击,但大量消耗服务器本身的CPU,容易导致服务器崩溃或死机;2、用服务器机房的硬防来防护CC攻击,能恢复服务器的CPU消耗。具体内容如下:利用软防可防护大概1万左右的CC流量,防护原理其实也很简单,...
    99+
    2024-04-02
  • CC攻击怎么防范
    CC攻击防范的方法:1、使用缓存来存储重复的查询内容,减少重复的数据查询资源开销、复杂框架的调用、不必要的数据请求和处理逻辑;2、使用session对负载较高的程序增加前置条件判断,禁止一些客户端类型的请求;3、完善访问日志,通过日志分析程...
    99+
    2024-04-02
  • 高防服务器怎么防御DDOS攻击和CC攻击
    高防服务器防御DDOS攻击和CC攻击的方法:1、服务商会定期执行扫描仪网络的主连接点,发现存在的安全隐患会立即清除;2、在关键连接点有配备服务器防火墙,能大大提高网络安全性,降低网络恶意攻击带来的风险;3、有丰富的网络带宽数据冗余,能有效防...
    99+
    2024-04-02
  • discuz怎么防cc攻击
    在discuz中预防cc攻击的方法首先,在discuz根目录中查找到config.inc.php配置文件;config.inc.php配置文件查找到后,使用记事本打开;最后,config.inc.php配置文件打开后,在文件中添加以下配置即...
    99+
    2024-04-02
  • Linux下怎么防止ARP攻击
    这篇文章将为大家详细讲解有关Linux下怎么防止ARP攻击,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量,攻击者...
    99+
    2023-06-28
  • 国外的云服务器怎么防止cc攻击
    国外云服务器防止cc攻击的方法:1、取消域名绑定来缓解CC攻击;2、修改国外云服务器网站的web端口进行防护;3、检测CC攻击的源IP地址,对其进行屏蔽或禁止访问;4、选择优质可靠的国外云服务器服务商,保障国外云服务器能够不间断运作。具体内...
    99+
    2024-04-02
  • 佛山高防服务器租用怎么防止cc攻击
    1. 安装防火墙:安装合适的防火墙软件,可以过滤掉大部分的非法请求和攻击。2. 加强密码安全:设置复杂的密码,避免使用简单的密码,如...
    99+
    2023-06-13
    佛山高防服务器 高防服务器 服务器
  • Linux系统怎么防御ARP攻击
    这篇文章主要讲解了“Linux系统怎么防御ARP攻击”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统怎么防御ARP攻击”吧!管理员用户登录,打开终端输入#arp -a > ...
    99+
    2023-06-10
  • 云主机怎么防CC攻击
    云主机防CC攻击的方法有以下几点:1. 配置网络防火墙:通过配置网络防火墙,可以限制非法访问,过滤掉恶意流量,减少CC攻击的影响。2...
    99+
    2023-08-18
    云主机
  • 怎么应付DDOS攻击和CC攻击
    应付DDOS攻击和CC攻击的方法:1、定期检查服务器漏洞,及时修补高风险漏洞;2、隐藏服务器真实IP,如果要发送电子邮件,通过第三方代理发送;3、关闭不必要的服务或端口,仅打开使用的端口;4、购买高防御服务器,增强网站抵御攻击的能力。具体内...
    99+
    2024-04-02
  • Linux怎么排查CC攻击
    在Linux系统中对CC攻击进行排查的方法首先,在Linux命令行中使用netstat命令,查看所有80端口的连接数;netstat -nat|grep -i “80”|wc -l80端口的连接数查看到后,使用以下命令行对连接的IP进行排序...
    99+
    2024-04-02
  • 怎么抵抗ddos攻击和CC攻击
    抵抗ddos攻击和CC攻击的方法:修改Web端口抵抗CC攻击。打开IIS管理器,定位到相应站点,打开站点“属性”面板,在“网站标识”下有个TCP端口默认为80,修改成其他端口。查看日志找到CC攻击的源IP,在IIS中设置屏蔽该IP对Web站...
    99+
    2024-04-02
  • 怎么防御慢请求cc攻击
    预防慢请求cc攻击的方法屏蔽目标IP通过命令或查看日志,查询到CC攻击的源IP,并在防火墙中屏蔽该IP,使该IP没有访问权限,从而达到防御cc攻击的目的。取消域名绑定cc攻击主要是针对域名进行攻击的,可以将域名暂时的与服务器解除绑定,从而让...
    99+
    2024-04-02
  • 企业该怎么防御CC攻击
    CC(均衡和连接)攻击是一种网络攻击,旨在通过发送大量请求使目标服务器超载,从而使其无法正常运行。以下是一些企业可以采取的措施来防御...
    99+
    2024-04-02
  • 怎么用PHP实现防CC攻击
    本篇内容主要讲解“怎么用PHP实现防CC攻击”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用PHP实现防CC攻击”吧!PHP防CC攻击的实现代码是“if (session_is_regist...
    99+
    2023-06-26
  • Linux系统中如何防御DDoS攻击
    这篇文章主要介绍了Linux系统中如何防御DDoS攻击,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。分布式拒绝服务(Distributed Denial of Service...
    99+
    2023-06-27
  • 国内高防bgp云服务器怎么防御doss攻击
    国内高防BGP云服务器可以使用以下方法来防御DDoS攻击:1、设置防火墙可以设置防火墙对外网进行访问限制,减少DDoS攻击的可能性。...
    99+
    2023-03-06
    国内高防bgp云服务器 国内高防云服务器 高防云服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作