个人用户如何有效防止DOS攻击?

  • 回答 (11)
  • 关注 (0)
  • 查看 (791)

个人用户如何有效防止DOS攻击呢?我的个人博客网站经常被DOS攻击,估计是得罪了什么人,经常被弄得关站,我知道想要完全杜绝掉DOS是非常难得事情,几乎不可能完全杜绝,而最有效的办法肯定是砸钱,购买高配置主机,我也知道腾讯云有大禹系统,可以几乎完全杜绝掉DOS攻击,但是太贵了,这对于企业来说不算什么,但是对于个人用户来说,简直是天文数字,消费不起,我不奢求能完全杜绝掉,哪怕是能减轻一点也好,各位大大们,有什么好办法呢?最好能提供有效的解决方案或者代码,脚本什么的,谢谢!

磁化磁化提问于
akjok54stay hungry stay foolish回答于

你说得很对,完全杜绝掉是不可能的,最好的办法是拼性能,但这个办法需要花费掉大量的金钱,你被人攻击这种事情,我也受过这种苦,所以我俩可以算同道中人。按你说的有效的话,办法还是非常多的,但每个人的办法不同,这个主要需要根据具体的攻击场景来判断,我在这里给你一些案例吧,希望对你有所帮助。

一般防御思路为:检测,分析,对症入药

第一:被DOS时,最好在/ var / log中查看日志文件,这是非常很有用的,你可以根据日志来判断DoS攻击的行为,基本被攻击时,这是必须要做的一件事。打个比方:在检测到DoS攻击后,通过检查日志,查看攻击源,然后手动操作iptables命令以禁用特定IP的访问。

但是Dos攻击都是随机的,你不知道什么时候会被攻击,所以做好“战前准备”是非常有必要的。所以对于linux来说,可以使用shell脚本,shell脚本是非常强大的,虽然shell脚本并不是防止DoS攻击的完美工具,但也是非常强大的工具,可以有效的减轻Linux服务器的DoS攻击造成性能的大量开销。主要的还是具备一键使用,或者自动运行的特点。所以多使用shell脚本对你没坏处。

第二,从/ var / log / secure文件检测DoS攻击

你可以在/ var / log / secure文件中进行检测,可以使用三剑客“grep”,“awk”和“sed”命令来查看和检测,不过最好自己写一个脚本并从文件中构建规则。方便很多。

以下是典型的使用字典的ssh攻击的示例。

Feb 18 09:14:08 neuro sshd[8978]: Did not receive identification string from 64.34.200.202
Feb 18 09:18:22 neuro sshd[9012]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=64.34.200.202  user=root
Feb 18 09:18:24 neuro sshd[9012]: Failed password for root from 64.34.200.202 port 43353 ssh2
Feb 18 00:18:24 neuro sshd[9013]: Received disconnect from 64.34.200.202: 11: Bye Bye
Feb 18 09:18:25 neuro sshd[9015]: Invalid user delta from 64.34.200.202
Feb 18 00:18:25 neuro sshd[9016]: input_userauth_request: invalid user delta
Feb 18 09:18:25 neuro sshd[9015]: pam_unix(sshd:auth): check pass; user unknown
Feb 18 09:18:25 neuro sshd[9015]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=64.34.200.202
Feb 18 09:18:27 neuro sshd[9015]: Failed password for invalid user delta from 64.34.200.202 port 43875 ssh2
Feb 18 00:18:28 neuro sshd[9016]: Received disconnect from 64.34.200.202: 11: Bye Bye
Feb 18 09:18:29 neuro sshd[9017]: Invalid user admin from 64.34.200.202
Feb 18 00:18:29 neuro sshd[9018]: input_userauth_request: invalid user admin
Feb 18 09:18:29 neuro sshd[9017]: pam_unix(sshd:auth): check pass; user unknown
Feb 18 09:18:29 neuro sshd[9017]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=64.34.200.202
Feb 18 09:18:31 neuro sshd[9017]: Failed password for invalid user admin from 64.34.200.202 port 44300 ssh2

分析完后,你可以使用以下命令将禁用的IP信息从/ etc / sysconfig / iptables发送到tmp文件。

grep DROP / etc / sysconfig / iptables | awk'{print $ 5}'> tmp    

如果系统没有收到来自特定IP的标识字符串,则应禁用计算机访问。以下命令将检测到的IP添加到临时文件。使用规则检测到的IP将被添加到该文件中。

grep Did / var / log / secure | awk'{print $ 12}'>> tmp     

可以使用这个命令将新规则添加到tmp文件。字典攻击可以通过/ var / log / secure中的“Invalid user”检测到。

grep“Invalid user”/ var / log / secure | awk'{print $ 10}'>> tmp  

然后通过以下命令可以检测到最大登录的DoS攻击。

grep“Maximum login”/ var / log / secure | awk'{print $ 7}'| sed's /.* \ [\(。* \)\])/ \ 1 / g'>> tmp   

然后你就可以对症入药了

size=`wc tmp|awk '{print $1}'`
i=0
while test $i -lt $size
do
      us=`sed -n 1p tmp`
      sed /$us/d tmp >tmps
      echo $us >>ttt
      cp -f tmps tmp
      size=`wc tmp|awk '{print $1}'`
done     

这是将检测到的唯一IP存储在文件ttt中。变量“size”表示tmp文件中的行数。

然后好戏来了,因为DoS攻击的IP存储在文件ttt中,然后激活/ sbin / iptables,简单循环,就是这么暴力。。。

size =`wc ttt | awk'{print $ 1}'` 
size =`expr $ size + 1` 
/ sbin / iptables -F 
i = 1 
while test $ i -lt $ size 
do 
        ip =`sed -n“$ i “p ttt` 
        i =`expr $ i + 1` 
/ sbin / iptables -A INPUT -s $ ip -j DROP 
done

然后完事。当然了,我为这个思路也了一个shell脚本,可以使用cron持续防御,先留个坑,等点赞到30在回来补坑,发脚本。(,,´•ω•)ノ

爆栈工程师世界上的确有一些缘分,使你在第一次相遇就敢于倾述内心最真实的感觉回答于

你尝试使用一下这个脚本,不知道还能不能使用,这是我还在大学时使用的,现在已沦为企业的阶下囚了,所以遇到这种事情,基本都是“买买买”,这是一个嵌套脚本,原理我就不给你分析了,自个看吧,是不是我写的我也忘记了,就当转载的吧

#!/bin/sh
if [ -d '/usr/local/ddos' ]; then
    echo; echo; echo "Please un-install the previous version first"
    exit 0
else
    mkdir /usr/local/ddos
fi
clea
echo; echo 'Installing DOS-Deflate 0.6'; echo
echo; echo -n 'Downloading source files...'
wget -q -O /usr/local/ddos/ddos.conf http://www.inetbase.com/scripts/ddos/ddos.conf
echo -n '.'
wget -q -O /usr/local/ddos/LICENSE http://www.inetbase.com/scripts/ddos/LICENSE
echo -n '.'
wget -q -O /usr/local/ddos/ignore.ip.list http://www.inetbase.com/scripts/ddos/ignore.ip.list
echo -n '.'
wget -q -O /usr/local/ddos/ddos.sh http://www.inetbase.com/scripts/ddos/ddos.sh
chmod 0755 /usr/local/ddos/ddos.sh
cp -s /usr/local/ddos/ddos.sh /usr/local/sbin/ddos
echo '...done'
echo; echo -n 'Creating cron to run script every minute.....(Default setting)'
/usr/local/ddos/ddos.sh --cron > /dev/null 2>&1
echo '.....done'
echo; echo 'Installation has completed.'
echo 'Config file is at /usr/local/ddos/ddos.conf'
echo
cat /usr/local/ddos/LICENSE | less
斌521回答于

这个问题我认为你需要从两个层面考虑:

1. 如何降低自己网站被 DDos 的几率。

2. 如何在遭遇攻击的适合保护好自己的网站。

关于问题1:首先,确保你自己的网站合法合规。DDoS虽然说成本相对较低,但是攻击你一个个人网站的收益几乎为0,攻击者也不会选择攻击你一个个人网站。一般来说,被攻击较多的多为游戏私服。

关于问题2:你可以选择在你的云服务器前加入各种防护机制,诸如安全宝 Cloudflare 之类的产品能够为你提供 2GB 左右的防护。基础的防护能够为你提供一定的保障。此外,你可以借助 DNS 的动态负载均衡功能,将不同地区的请求分发到不同的安全服务上,从而分摊攻击。如果你的内容仅仅是博客,你可以考虑使用一些博客服务提供商的服务,来规避自己的主机被 DDos 的可能,比如说云+社区的专栏功能。

演化史记回答于

首先,DDoS攻击是没有任何方法可以完全避免的,我们只能通过各种方式提高对方攻击的成本,当攻击成本高于攻击所获得利润是,自然就不会继续攻击了。前面有网友说免费提供的2Gbps足够个人使用的观点不予赞同,通常情况下较小型的攻击也要数十Gbps左右,所以免费的那些是远远不够用的,所以这里给出几种方法,有的效果并不怎么明显,有的效果好一些但对应的代价也比较高,供你参考:

1、黑名单方法:把那些攻击你的(或疑似攻击你的)IP地址拉入黑名单一段时间(或永久),这些地址链接不到你的服务器自然也就无法攻击。但这种方法对DoS攻击还勉强好一点,对于DDoS效果就很差了,因为分布式的攻击特点就在于一台机器控制若干台机器同时攻击,封禁了一个,还有其他备用的,不过如果封禁时间足够长,封禁的地址足够全,也是可以降低攻击次数的。

2、服务器只对需要的区域开放,比如,服务器只对有限个使用者的IP地址开放,这个防御的原来和方法1相似,不过这里采取的是白名单策略,但这种策略的防御效果会好一些,不过代价也提高不少,要搜集用户的IP地址就要费很多成本,还可能早成有些新用户无法访问的结果。

3、通过购买高防服务进行防御,这种情况就不必多说了,伤钱。

最后也提醒你,给自己的服务器做好安全防护,不要让自己的服务器做了不法攻击者的工具。

附:《中华人民共和国刑法》第二百八十六条规定违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役,后果特别严重的,处五年以上有期徒刑。鉴于此,如果对你造成严重后果么可以考虑采取法律行动。

吉_Gi回答于

emmm。。。来错地方了,不懂,不过我这里有一个关于discuz论坛的办法,可以在config_global.php中进行配置,设置$_config['security']['attackevasive']=4,好像是防御cc攻击的办法,一个大神给我说的,作用是每个用户第一次访问的时候都要看一个2秒的等候页面,然后自动进入原来的访问地址。

Tabor我是大脸我骄傲,一天用掉半瓶料。修改于

应该是如何防止DDOS和CC吧 dos拒绝服务?

个人网站建议安装安全狗之类的防护软件

点我

除此之外,一定要注意安全组的封堵。目前为止除了被动防御之外,DDOS基本没啥好方法了

hksjs梅回答于
  1. 大禹是有默认 2 Gbps 的免费防护的,对个人站来说应该够用了;
  2. 云解析套餐(个人专业版)包含 3 G 的攻击防护。
奥特曼奥特曼弹键盘,敲琴键回答于

用好安全组。为了业务的安全可以用一些防护软件或者cloudflare公司提供的防护服务。

大叔也犯二为了此岸的完整构建永无法到达的彼岸回答于

没人说windows的?我来说一下吧!

1。确保服务器的系统文件是最新的版本,并及时更新系统补丁。 2。关闭不必要的服务。 3。限制同时打开的SYN半连接数目。 4。缩短SYN半连接的time out 时间。 5。正确设置防火墙 禁止对主机的非开放服务的访问 限制特定IP地址的访问 启用防火墙的防DDoS的属性 over

Uranus寄身测绘,紧追前沿技术的伪架构回答于
小铁匠米兰的v回答于

这个主要是要调好服务器。一般选用配置和服务比较靠谱的服务器,会很安全吧!

像腾讯云的服务器有一些套餐是有这个防护功能的!

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问9 回答
  • 四无君

    0 粉丝0 提问3 回答
  • 拉布拉多拉不多

    1 粉丝0 提问2 回答
  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问2 回答

扫码关注云+社区

领取腾讯云代金券