首页 » 互联网资讯 » 正文

简易DDOS防护教程

小白安全系列第五弹

1. 域名托管cloudflare并仅允许cf节点访问服务器

域名托管cf就能享受cf强大的防火墙功能,而开启cf CDN还可以起到隐藏源站ip作用,应付一般的攻击,用cf是没有问题的,但是如果攻击者找到了源站ip,即使cf防火墙再强大也没有用,攻击者会直接绕过cf打到源站。

这时候就要学会进一步隐藏源站ip,ip藏住了,基本就防住一半了。正所谓,知己知彼,百战不怠,我们要知道攻击者是怎样找到我们源站ip的才能对症下药,一般有以下几种方法获取目标站点ip:

(1)通过扫描全网ip 443端口获取证书,而证书里含有域名信息,这样ip与域名就对应上了。
解决方法,由于域名托管在cf且开启了cdn,那么这里提供一个简单粗暴的方法,屏蔽除cf节点外的所有ip对服务器80/443端口的访问。
以下给出Debian/Ubuntu系统下利用ufw工具一键添加防火墙规则的脚本:

  1. #!/bin/bash
  2. for ipv4 in `curl -s https://www.cloudflare.com/ips-v4 | tee ips-v4`
  3. do
  4. sudo ufw allow from $ipv4 to any port 80
  5. sudo ufw allow from $ipv4 to any port 443
  6. done
  7. for ipv6 in `curl -s https://www.cloudflare.com/ips-v6 | tee ips-v6`
  8. do
  9. sudo ufw allow from $ipv6 to any port 80
  10. sudo ufw allow from $ipv6 to any port 443
  11. done

 

移除上述规则:

  1. #!/bin/bash
  2. for ipv4 in `cat ips-v4`
  3. do
  4. sudo ufw delete allow from $ipv4 to any port 80
  5. sudo ufw delete allow from $ipv4 to any port 443
  6. done
  7. for ipv6 in `cat ips-v6`
  8. do
  9. sudo ufw delete allow from $ipv6 to any port 80
  10. sudo ufw delete allow from $ipv6 to any port 443
  11. done

 

(2)邮件头信息一般会包含域名等信息,也会泄露ip
暂时没想到好方法,尽量别用域名邮箱做站点联系方式

(3)扫描二级域名,因为不少二级域名和主域名绑过同一个ip

2. 防DDOS内核参数设置
主要防syn攻击,可有效缓解
在/etc/sysctl.conf添加或设置如下参数:

  1. #分别为启用SYN Cookie、设置SYN最大队列长度以及设置SYN+ACK最大重试次数。
  2. net.ipv4.tcp_syncookies = 1
  3. net.ipv4.tcp_max_syn_backlog = 8192
  4. net.ipv4.tcp_synack_retries = 2

 

3. 服务器禁ping
死亡之ping,应该不陌生。这个主要防ping flood
Debian/Ubuntu下利用ufw可简单注释掉/etc/ufw/before.rules文件下的如下内容:

  1. -A ufw-before-input -p icmp –icmp-type destination-unreachable -j ACCEPT
  2. -A ufw-before-input -p icmp –icmp-type source-quench -j ACCEPT
  3. -A ufw-before-input -p icmp –icmp-type time-exceeded -j ACCEPT
  4. -A ufw-before-input -p icmp –icmp-type parameter-problem -j ACCEPT
  5. -A ufw-before-input -p icmp –icmp-type echo-request -j ACCEPT

其他方面的待补充

有不足或错误的地方欢迎各位大佬指出



四川网友 卧龙伏鳯 评论:
其实除了第一条,靠CF之外,其他都没用。

另外这个,可以用第三方的域名邮箱,譬如企鹅、阿里云的。
然后在你的程序员里,通过他们的服务器发信,里面的IP不会是你服务器的IP。

  1. (2)邮件头信息一般会包含域名等信息,也会泄露ip
  2. 暂时没想到好方法,尽量别用域名邮箱做站点联系方式

江西网友 dazuo111818 评论:
说白了就是靠CF。


四川网友 林振东 评论:
谢谢啦,哈哈哈哈


吉林网友 zjq214 评论:
知道了知道了,多谢分享!


吉林网友 xxiaoyang 评论:
服务器不配证书用80端口,cf 用半程https不就ip没证书了


贵州网友 xiayan357 评论:

服务器不配证书用80端口,cf 用半程https不就ip没证书了

可以把ip 绑定到 其他网站,然后上个别的证书


陕西网友 beyondzhi 评论:
不错


山东网友 李子栗子 评论:
防火墙设置只允许CF的IP和自己管理的IP访问


安徽网友 我不信干不过你 评论:
除了硬抗没有更好的办法。


广东网友 起个名还真是难 评论:
爱了

发表评论