服务器安全(二)内外网防御

本文章已收录至本站专栏
服务器安全系列

0、前言

去年三月,腾讯云的轻量应用服务器推出了一个免费升配的活动,其中1核2G能升级2核4G。正好腾讯云校园活动就有1核2G的套餐,我就直接下单了4年。
腾讯云校园活动:
https://curl.qcloud.com/suZnC2jW

众所周知,各大厂的活动服务器都是中国大陆的。为了满足国际联网的需求,我又租了一台中国香港的服务器。
腾讯云新客福利:
https://curl.qcloud.com/zmbe5X1i

但是一台中国香港服务器最低配置每个月也要24元,只用来国际联网未免太奢侈了。除了建镜像站,我又使用这台服务器反代已实现免备案。后来觉得这样更好,就干脆用这两台服务器实现了内外网访问。

1、内网服务器配置

由于租户网络隔离以及相关VPC配置,即便是同账号不同地域的服务器也无法实现内网互通,内外网服务器的通信只能走公网。
因此,需要对内网服务器进行以下配置:

  1. 宝塔面板安全防御
  2. 端口开放、关闭配置
  3. 本地DNS服务器配置

1.1、宝塔面板安全防御

上一篇文章已经详细说明,这里不再赘述。

参考文章:

《服务器安全(一)宝塔面板防御》
https://blog.tsinbei.com/tw/archives/125/

1.2、端口配置

注意:由于Docker部分配置会与firewalld冲突,这里建议将firewalld中配置为开放全部TCP、全部UDP,在服务器控制台配置防火墙规则!
服务器Firewalld配置:
开放全部端口
服务器控制台配置:

说明:

  1. 开放登录端口:开放宝塔登录端口、phpMyAdmin端口、SSH端口(注意:SSH端口不要使用默认端口!
  2. 开放全部TCP:对指定IP(外网服务器)开放所有IP,方便后续配置
  3. 开放数据传输端口:搭建了Frp Server,需要该端口段传输数据
  4. 开放邮件端口:搭建了邮件服务

配置后端口扫描结果:

其中2000、5060端口无法关闭,可以忽略。

1.3、本地DNS服务器配置

1.3.1、安装Dnsmasq

使用脚本安装Dnsmasq:

Bash
1
2
yum install -y dnsmasq
systemctl start dnsmasq

1.3.2、配置Dnsmasq

/etc/dnsmasq.conf

编辑Dnsmasq配置:

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

/etc/dnsmasq.d/address.conf

编辑泛解析配置:

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

将*.tsinbei.com解析到本地。

使用

Bash
1
systemctl restart dnsmasq

重启Dnsmasq使配置生效。

1.3.3、修改本地DNS服务器

/etc/resolv.conf

最顶部添加DNS服务器127.0.0.1:

Text
1
2
3
4
; generated by /usr/sbin/dhclient-script
nameserver 127.0.0.1
nameserver 183.60.83.19
nameserver 183.60.82.98

2、外网服务器配置

外网服务器为了防止入侵,同样需要进行安全配置。

  1. 反向代理
  2. 端口配置
  3. 本地DNS服务器配置

2.1、反向代理

以宝塔面板为例。

开心版安装、使用参考文章:

安装宝塔7.7.0企业版教程:
https://blog.tsinbei.com/tw/archives/7/

安装宝塔7.9.0企业版
https://blog.tsinbei.com/tw/archives/293/

注意:有能力请务必支持一下正版!

在外网服务器的宝塔面板绑定和内网服务器相同的域名。

并使用相同域名配置反向代理:

2.2、端口配置

如果没有邮件等其他服务的需要,可以只开启80和443端口。
同样在Firewalld中开放全部端口,在控制台开启80和443。
端口扫描结果:

2.3、本地DNS服务器配置

安装部分参考第一节,区别是在

/etc/dnsmasq.d/address.conf
中将域名解析到内网服务器的公网IP。
Text
1
2
address=/tsinbei.com/x.x.x.x
address=/xxx.xxx/x.x.x.x

说明:很多教程都是直接在/etc/dnsmasq.conf中配置,亲测这样只能添加一个域名。如果需要配置多个域名,就只能在address.conf中配置。

3、域名解析配置

将域名全部解析至外网服务器的IP即可完成配置。

4、小结

其实本地DNS部分也可以使用腾讯云的PrivateDNS私有域解析实现。使用上述方法会导致验证SSL时本地验证失败,不过不会影响证书申请。

腾讯云 Private DNS 购买地址
https://cloud.tencent.com/product/privatedns

使用内外网服务器配置成本较高,会导致日常使用产生一些麻烦,但是在服务器安全上的提升是效果显著的。因此这部分可以根据预算和个人习惯酌情配置。

服务器安全(二)内外网防御

https://blog.tsinbei.com/tw/archives/140/

文章作者
Hsukqi Lee
发布于

2022-02-04

修改于

2022-08-27

许可协议

CC BY-NC-ND 4.0

评论

昵称
邮箱
网址
暂无