|
本帖最后由 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工具一键添加防火墙规则的脚本: - #!/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
复制代码
移除上述规则: - #!/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
复制代码
(2)邮件头信息一般会包含域名等信息,也会泄露ip
暂时没想到好方法,尽量别用域名邮箱做站点联系方式
(3)扫描二级域名,因为不少二级域名和主域名绑过同一个ip
2. 防DDOS内核参数设置
主要防syn攻击,可有效缓解
在/etc/sysctl.conf添加或设置如下参数: - #分别为启用SYN Cookie、设置SYN最大队列长度以及设置SYN+ACK最大重试次数。
- net.ipv4.tcp_syncookies = 1
- net.ipv4.tcp_max_syn_backlog = 8192
- net.ipv4.tcp_synack_retries = 2
复制代码
3. 服务器禁ping
死亡之ping,应该不陌生。这个主要防ping flood
Debian/Ubuntu下利用ufw可简单注释掉/etc/ufw/before.rules文件下的如下内容: - -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
复制代码
其他方面的待补充
有不足或错误的地方欢迎各位大佬指出
|
|