全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2109|回复: 14

[疑问] 简易DDOS防护教程

[复制链接]
发表于 2020-10-15 23:07:24 | 显示全部楼层 |阅读模式
本帖最后由 Alanku 于 2020-10-15 23:13 编辑

小白安全系列第五弹

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
复制代码


其他方面的待补充

有不足或错误的地方欢迎各位大佬指出
发表于 2020-10-16 13:13:02 | 显示全部楼层
其实除了第一条,靠CF之外,其他都没屌用。

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

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

点评

多谢大佬指点  发表于 2020-10-16 17:24
发表于 2020-10-16 08:10:32 来自手机 | 显示全部楼层
说白了就是靠CF。

点评

那确实,毕竟是零成本易上手  发表于 2020-10-16 12:10
发表于 2020-10-15 23:08:05 | 显示全部楼层
谢谢啦,哈哈哈哈,
发表于 2020-10-15 23:19:08 | 显示全部楼层
知道了知道了,多谢分享!
发表于 2020-10-16 09:03:13 | 显示全部楼层
服务器不配证书用80端口,cf 用半程https不就ip没证书了
发表于 2020-10-16 09:52:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2020-10-16 10:11:12 | 显示全部楼层
防火墙设置只允许CF的IP和自己管理的IP访问
发表于 2020-10-16 12:56:15 | 显示全部楼层
除了硬抗没有更好的办法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-25 07:27 , Processed in 0.083936 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表