计算化学公社
标题:
个人网站搭建过程中的配置心得体会
[打印本页]
作者Author:
Diotima
时间:
yesterday 14:59
标题:
个人网站搭建过程中的配置心得体会
最近因为某些原因,上Cloudflare怒买了一个域名。本来是有一些其他的用处的,但是最后还是突发奇想,搭建了自己的个人网站。
当然我不是想要讲诉前端react的构建。事实上我也不是很会使用react,大部分内容是AI完成的。我想要在帖子中记录的是我的安全配置过程。
首先,我们考虑到最简单也最难防护的网络攻击DDOS,既然买了Cloudflare的域名,免费的DDOS防护必须打开。橙云代理www和@的两个DNS记录。
(, 下载次数 Times of downloads: 0)
上传 Uploaded
点击下载Click to download
第二,我的服务器默认状态,80和443端口全部打开。这很危险。万一通过某些请求,被绕过代理挖出源站IP,直接打到IPv4地址。网站服务器将处于一个绝对危险的状态。因此我利用代码查询了我的代理,也即Cloudflare的IP段。并为这些IP在nftables开放了白名单,只接受Cloudflare回源。
curl https://www.cloudflare.com/ips-v4
curl https://www.cloudflare.com/ips-v6
复制代码
然后:
sudo nano /etc/nftables.conf
复制代码
写入:
flush ruleset
table inet filter {
set cloudflare_v4 {
type ipv4_addr
flags interval
elements = {
返回的IPv4地址
}
}
set cloudflare_v6 {
type ipv6_addr
flags interval
elements = {
返回的IPv6地址
}
}
chain input {
type filter hook input priority filter;
policy drop;
iif lo accept
ct state established,related accept
tcp dport 22 accept
ip saddr @cloudflare_v4 tcp dport {80, 443} accept
ip6 saddr @cloudflare_v6 tcp dport {80, 443} accept
ip protocol icmp accept
ip6 nexthdr ipv6-icmp accept
}
chain forward {
type filter hook forward priority filter;
policy drop;
}
chain output {
type filter hook output priority filter;
policy accept;
}
}
复制代码
最后,考虑到即使已经通过 Cloudflare 与 nftables 将源站限制为仅接受 Cloudflare 回源请求,Web 服务直接暴露于公网监听端口仍然很危险。因此,我用 Nginx 作为前端反向代理,由 Nginx 对外监听 443,并将请求转发至监听于127.0.0.1:4372的静态站点服务。
一套小连招下来,网站应该比较安全了。虽然网站内容我还有很多留空没写,但这些安全防护的经验对我来说还是很重要的。自己记录一下,也给其他想建立个人博客的坛友做个参考。个人实有限,这套方案还有一些漏洞。但是我认为作为个人网站来说应当算相对完善了。
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3