设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 91|回复: 8

简易DDOS防护教程

[复制链接]

67

主题

828

回帖

1889

积分

金牌会员

积分
1889
发表于 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工具一键添加防火墙规则的脚本:
[ol]
  • #!/bin/bash
  • for ipv4 in `curl -s https://www.cloudflare.com/ips-v4 | tee ips-v4`
  • do
  •     sudo ufw allow from $ipv4 to any port 80
  •     sudo ufw allow from $ipv4 to any port 443
  • done
  • for ipv6 in `curl -s https://www.cloudflare.com/ips-v6 | tee ips-v6`
  • do
  •     sudo ufw allow from $ipv6 to any port 80
  •     sudo ufw allow from $ipv6 to any port 443
  • done[/ol]复制代码
    移除上述规则:
    [ol]
  • #!/bin/bash
  • for ipv4 in `cat ips-v4`
  • do
  •     sudo ufw delete allow from $ipv4 to any port 80
  •     sudo ufw delete allow from $ipv4 to any port 443
  • done
  • for ipv6 in `cat ips-v6`
  • do
  •     sudo ufw delete allow from $ipv6 to any port 80
  •     sudo ufw delete allow from $ipv6 to any port 443
  • done[/ol]复制代码

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

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

    2. 防DDOS内核参数设置
    主要防syn攻击,可有效缓解
    在/etc/sysctl.conf添加或设置如下参数:
    [ol]
  • #分别为启用SYN Cookie、设置SYN最大队列长度以及设置SYN+ACK最大重试次数。
  • net.ipv4.tcp_syncookies = 1
  • net.ipv4.tcp_max_syn_backlog = 8192
  • net.ipv4.tcp_synack_retries = 2[/ol]复制代码

    3. 服务器禁ping
    死亡之ping,应该不陌生。这个主要防ping flood
    Debian/Ubuntu下利用ufw可简单注释掉/etc/ufw/before.rules文件下的如下内容:
    [ol]
  • -A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
  • -A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
  • -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
  • -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
  • -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT[/ol]复制代码

    其他方面的待补充

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

    使用道具 举报

    377

    主题

    2456

    回帖

    6195

    积分

    论坛元老

    积分
    6195
    发表于 2020-10-16 13:13:02 | 显示全部楼层


    其实除了第一条,靠CF之外,其他都没屌用。

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

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

    使用道具 举报

    1

    主题

    224

    回帖

    497

    积分

    中级会员

    积分
    497
    发表于 2020-10-16 17:24:00 | 显示全部楼层
    说白了就是靠CF。
    回复

    使用道具 举报

    230

    主题

    1955

    回帖

    4738

    积分

    论坛元老

    积分
    4738
    发表于 2020-10-16 08:10:32 | 显示全部楼层
    谢谢啦,哈哈哈哈,

    回复

    使用道具 举报

    168

    主题

    2452

    回帖

    5456

    积分

    论坛元老

    积分
    5456
    发表于 2020-10-16 12:10:00 | 显示全部楼层
    知道了知道了,多谢分享!
    回复

    使用道具 举报

    31

    主题

    390

    回帖

    931

    积分

    高级会员

    积分
    931
    发表于 2020-10-15 23:08:05 | 显示全部楼层
    服务器不配证书用80端口,cf 用半程https不就ip没证书了

    回复

    使用道具 举报

    197

    主题

    1195

    回帖

    3083

    积分

    论坛元老

    积分
    3083
    发表于 2020-10-15 23:19:08 | 显示全部楼层
    不错
    回复

    使用道具 举报

    2

    主题

    312

    回帖

    688

    积分

    高级会员

    积分
    688
    发表于 2020-10-16 09:03:13 | 显示全部楼层
    防火墙设置只允许CF的IP和自己管理的IP访问
    回复

    使用道具 举报

    5

    主题

    415

    回帖

    917

    积分

    高级会员

    积分
    917
    发表于 2020-10-16 09:52:29 | 显示全部楼层
    除了硬抗没有更好的办法。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2026-3-4 15:23 , Processed in 0.014725 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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