前置服务器部署 nginx 用来转发到内网对应的服务上,和在前置服务器部署服务,然后将数据库相关部署内网服务器上,通过修改前置服务器部署的数据库连接访问数据。这两者有啥安全性的差别吗。

6 天前
 Renco

标题内容可以有点绕。

大致意思就是,客户需要内网部署的 web 服务能在互联网访问到。首先提出方案,加一台前置机在互联网上,并可以访问到内网服务器。然后在上面部署 nginx ,通过端口 nginx 代理转发到内网服务器上。来实现外网访问。(之前类似需求,就是按照这套逻辑去实现的。)

后来有客户不同意这种穿透模式,不让用 nginx ,说要么就是你们内网部署一套 web 服务,外网也部署一套相同的 web 服务,然后数据信息全部在内网服务器上。外网那边修改数据库访问的链接,外网到内网的端口由客户那边来打通。

想了解下,为啥 nginx 那套不让用,客户说是安全性问题但是不是太理解,nginx 转发端口,一个是 nginx 内配置,同时客户那边也要打通端口才能转发到内网。第二套方案,不用 nginx 但是同样需要客户打通端口到内网。

基于此情况,我们还有一个文件中心,文件中心由于是直接用的现成的对象存储方案,文件是 url 形式返回的。如果外网的 web 服务访问内网文件中心,那还是可能要通过 nginx 等代理方式实现转发。因此不是太理解两者区别。

1368 次点击
所在节点    程序员
15 条回复
loginv2
6 天前
没有,客户不懂而已
Kinnice
6 天前
猜测,数据库连接的审计可能更简单些,毕竟数据库如果把一些特性关闭很难通过数据库连接拿 shell ,但是 web 服务器就相较于简单一些。
Kinnice
6 天前
nginx ==> waf 可能客户会比较好接受,比如雷池 waf 社区版
ipwx
6 天前
因为客户需要审计各个组件的安全性(包括有没有人去按时补漏洞)吧。

nginx 你不做,客户没人做,所以不让用。
ipwx
6 天前
换句话说,你做的 web 服务出问题了客户可以找你修。nginx 出问题了他是不是没人找了。
Renco
6 天前
好吧,谢谢解答
Yanlongli
6 天前
理想状态两者无区别。

安全性前者好一些,前面的转发服务器可以套防火墙之类的防止攻击,后面服务器负责 web+数据库两个服务
性能后者好一些,相当于一台服务器只做 WEB 服务,一台服务器只做数据库服务,任务分开。
qwx
6 天前
内外网分区分域,我们就要严格要求,无需与互联网产生关系的服务器(数据库)必须放内网,其他都放在 dmz 区,nginx 是完整转发请求,如果 web 服务器被攻击了,直接会导致使用内网服务器做跳板横向迁移,但如果 web 服务器在 dmz 区,横向跳转的风险不大。
Renco
6 天前
@qwx #8 懂了,谢谢!我们客户有提到过这个 dmz 区,一开始没太了解这个概念,客户的要求就是 web 服务部署在 dmz 区,数据入内网。经过你解释后清楚了。
qfdk
6 天前
简单来说. 你家有一个公网 ip 你接了个路由器. nginx 机器 192.168.1.100 可以 dmz. 等于这台机器在公网. 所有请求都会来.100. 理论上 nginx 只有 web 服务. 这样扫描就只有 web 服务. 数据库可以放在 192.168.1.200 , 业务机器可以 192.168.1.250 ,nginx 负责给请求转发给 1.250. 理论上 三台机器内网互通 外网之后 nginx 的可以通
sanqian
6 天前
@Renco 好熟悉,之前遇到一个就是跟你这个一样了。不过对方是域名服务器转发到 dmz,dmz 在 nginx 转发到内网的 web 服务 通过内网 web 服务访问内网数据库服务
angryfish
6 天前
DMZ 直接 nginx 转发和部署 web 应用有区别的。
首先说一个大前提,黑客黑进服务器,基本上是黑到了部署 web 后台服务的机器。
1.如果是 nginx 转发,其实是相当于没有了 DMZ 层,外面的黑客入侵的话就直接到内网了。后面就可以利用这台内网机器做跳板机器,访问内网其他敏感数据了。
2.同理,如果是 web 部署在 DMZ 区,就黑进 DMZ 的那台服务器,从这个层面讲,安全性是不一致了吧。

但是,但是,涉及到其他的攻击,像拖库等,在内网和 DMZ 是无区别的。
blackwolf
5 天前
得看网站是什么性质的,想做哪个级别的安全
1. 如果是不具备交互性质,仅仅是新闻类的,内网推送到 DMZ 区域的服务器,并且 DMZ 和内网做好隔离,可以有效避免网站被作为跳板侵入内网。并且在网站被破坏的情况下可以及时回复,但无法保证信息发布的安全。但是说实话这样做还不如一套外网+外网定期备份+一套内网来的安全,毕竟内外网一旦有逻辑链路,会有一定的安全风险。
2. 如果具有交互性质,例如 12306 这种,不是一个简单的同步数据就能解决的,至少需要实时链路(例如 nginx )实现内外网同步。
pollux
5 天前
DMZ 区:是一个网络区域,用于隔离内外网,放置对外服务。

WAF:是一种安全设备或服务,用于保护 Web 应用免受攻击。

反向代理:是一种流量管理组件,用于转发请求、负载均衡和缓存。

在实际架构中,DMZ 区是 WAF 和反向代理的部署环境,三者可以结合使用,共同提升 Web 应用的安全性和性能。
GKLuke
5 天前
不知道你的客户时属于什么行业的,在我看来,你的客户说的很对。
我同意 12 楼的说法
作为经历过 HW 被打穿出局的甲方,你的方案,nginx 会忠实把攻击请求转发到内网应用上,然后攻击者获得这台服务器的权限后,就能以这台内网服务器为基础,首先扫描相同网段有没有重要资产(比如数据库,堡垒机,域控等),然后扩展到相近网段。你客户的方案,nginx 先转发到外网应用,外网应用再调用内网应用,这时候,外网应用就能替后面的内网应用挡下这一刀,即使这台外网应用服务器被攻破,也是在 DMZ 这一层,到不了内网。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1109549

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX