光復後有移民台灣記錄嘅香港人應該當潛在親中派嚴密監視 :golden-good:
给有志于匿名建站的坛友,科普一下防止CDN被绕过的方法
-
很多墙外匿名站出于安全的角度,使用CDN隐藏真实IP,不幸的是有很多方法可以绕过CDN。
IPv4的总数是有限的(42亿个),网络上有很多扫描器在一刻不停的扫描,一天就可以过一遍全网IP。如果网站没有做好防御,这些扫描器就会找到IP地址上面对应的网站。很多扫描器的数据甚至是公开可查的。
幸运的是,只要做足防御,就完全不用担心源站IP泄露。这里科普一下防止源站IP泄露的方法。
设置防火墙
cloudflare会提供回源IP的名单,见https://www.cloudflare.com/ips/。我们要做的就是把这些IP全部添加进防火墙白名单。
这样除了cloudflare,其它一切ip就都没法连接服务器的https端口了。
防火墙白名单的具体规则是:
- 默认拒绝所有的入站IP。防火墙的拒绝模式有reject和deny两种,reject会明确返回一个拒绝信息,deny则直接丢弃入站包。我们要选deny而不是reject;
- 允许cloudflare的IP地址,从443端口连接服务器;
- 允许任意IP连接22端口,这是为了能SSH连上服务器。SSH加固是另外一个话题,这里暂且不提。
本文这里没有用防火墙限制出站连接,如果对安全有需求,也可以禁用所有的出站连接。通常而言,对入站规则做设置就足以防止IP扫描了。
我通常用的防火墙是nftables,在debian/ubuntu系统上,可以这样设置防火墙:
(1). 安装nftables
sudo apt install nftables
(2). 编辑nftables文件
sudo vim /etc/nftables.conf
然后写入如下的配置文件
flush ruleset table inet firewall { chain inbound { type filter hook input priority 0; policy drop; ct state vmap { established : accept, related : accept, invalid : drop } iifname lo accept ip saddr { 173.245.48.0/20, 103.21.244.0/22, 103.22.200.0/22, 103.31.4.0/22, 141.101.64.0/18, 108.162.192.0/18, 190.93.240.0/20, 188.114.96.0/20, 197.234.240.0/22, 198.41.128.0/17, 162.158.0.0/15, 104.16.0.0/13, 104.24.0.0/14, 172.64.0.0/13, 131.0.72.0/22 } tcp dport { 443 } accept tcp dport 22 accept } chain forward { type filter hook forward priority 0; policy drop; } }
上面这个配置文件会:
- 默认drop所有入站包
- 默认drop所有转发包
- 默认接受所有出站包
- 接受所有来自cloudflare ip地址,向443端口建立的TCP连接
- 接受全网IP向22端口连接
- 允许本地环回上的连接(数据库和Apache等服务器需要)
(3). 最后保存配置并刷新
sudo nft -f /etc/nftables.conf
输入
sudo nft list ruleset
,如果显示上面的配置文件,就说明保存成功。对nftables不熟的朋友,也可以用Ubuntu自带的ufw建立防火墙,安全性是一样的。
# 启用ufw ufw enable # 允许所有出站,禁止所有入站 ufw default allow outgoing ufw default deny incoming # 允许22端口 ufw allow 22 # 允许cloudflare ip地址连接443 ufw allow from 173.245.48.0/20 to any port 443 proto tcp ufw allow from 103.21.244.0/22 to any port 443 proto tcp # (以下略)
打开cloudflare的客户端验证
按照上面的方法,就可以100%防止IP扫描。不过,黑客可以向cloudflare works上传脚本,利用cloudflare的IP地址去扫描。这种攻击形式很少见,不过,为了防止这种形式的探测,我们还要打开验证CF客户端证书。
具体而言,需要打开nginx配置里的以下选项:
ssl_verify_client on; ssl_client_certificate /xxxxx/cloudflare_certificate.pem;
最后,需要让nginx拒绝无效请求,打开以下选项
ssl_reject_handshake on;
但是需要注意,最后这个指令只在1.19.4以上的nginx版本可用,你可能需要自己编译nginx。
其它注意事项
除了ip扫描,如果网站在配置CF前已经有了DNS记录,那么从这些DNS记录也可以匹配到源站IP。如果是全新的服务器,在配置完成之前,一定不要连上公网。
-
台灣為追求脫離中華民國獨立,嚴格限制無台灣背景華人移居係天公地道
SeVen • 匿名者 • • 匿名者 • • 0 2 550 -
香港穆斯林群體有幾多人有份協助中國拉攏中東神權政權?
SeVen • 匿名者 • 0 1 822 -
評論以色列加沙戰爭嗰陣拉埋香港、維吾爾人一齊講嘅人係咪基本上可以確定係親中網軍?
SeVen • 匿名者 • 0 1 833 -
今次新中東戰爭係咪自由世界清理內鬼嘅開始?
SeVen • 匿名者 • • 匿名者 • • 0 2 877 -
「港語」、「香港語」唔合乎語言習慣,應該改用「香港文」
SeVen • 匿名者 • • 匿名者 • • 0 7 935 -
有邊啲滲入到日常生活嘅大中華賤種統戰用語?
SeVen • 匿名者 • • 匿名者 • • 0 4 955 -
俄中邪惡軸心戰敗後,戰後五大國變美英法德日,香港歸英係唔係最佳選擇?
SeVen • 匿名者 • 0 1 919 -
拜登支持美墨邊境牆係唔係為防範未來大量支那假難民?
SeVen • 匿名者 • • 匿名者 • • 0 3 960 -
北京冬奧運完場烏克蘭戰爭,杭州夏亞運完場以色列戰爭,支那人都幾仆街
SeVen • 匿名者 • • 匿名者 • • 0 3 1137 -
中國藉男子用「辣椒油」造假黃道益活絡油、雙飛人、無比滴 判監十二年
SeVen • 匿名者 • 0 1 1407