标题内容可以有点绕。
大致意思就是,客户需要内网部署的 web 服务能在互联网访问到。首先提出方案,加一台前置机在互联网上,并可以访问到内网服务器。然后在上面部署 nginx ,通过端口 nginx 代理转发到内网服务器上。来实现外网访问。(之前类似需求,就是按照这套逻辑去实现的。)
后来有客户不同意这种穿透模式,不让用 nginx ,说要么就是你们内网部署一套 web 服务,外网也部署一套相同的 web 服务,然后数据信息全部在内网服务器上。外网那边修改数据库访问的链接,外网到内网的端口由客户那边来打通。
想了解下,为啥 nginx 那套不让用,客户说是安全性问题但是不是太理解,nginx 转发端口,一个是 nginx 内配置,同时客户那边也要打通端口才能转发到内网。第二套方案,不用 nginx 但是同样需要客户打通端口到内网。
基于此情况,我们还有一个文件中心,文件中心由于是直接用的现成的对象存储方案,文件是 url 形式返回的。如果外网的 web 服务访问内网文件中心,那还是可能要通过 nginx 等代理方式实现转发。因此不是太理解两者区别。
![]() |
1
loginv2 1 天前 ![]() 没有,客户不懂而已
|
![]() |
2
Kinnice 1 天前 ![]() 猜测,数据库连接的审计可能更简单些,毕竟数据库如果把一些特性关闭很难通过数据库连接拿 shell ,但是 web 服务器就相较于简单一些。
|
![]() |
3
Kinnice 1 天前 ![]() nginx ==> waf 可能客户会比较好接受,比如雷池 waf 社区版
|
![]() |
4
ipwx 1 天前 ![]() 因为客户需要审计各个组件的安全性(包括有没有人去按时补漏洞)吧。
nginx 你不做,客户没人做,所以不让用。 |
![]() |
5
ipwx 1 天前 ![]() 换句话说,你做的 web 服务出问题了客户可以找你修。nginx 出问题了他是不是没人找了。
|
![]() |
6
Renco OP 好吧,谢谢解答
|
![]() |
7
Yanlongli 1 天前
理想状态两者无区别。
安全性前者好一些,前面的转发服务器可以套防火墙之类的防止攻击,后面服务器负责 web+数据库两个服务 性能后者好一些,相当于一台服务器只做 WEB 服务,一台服务器只做数据库服务,任务分开。 |
8
qwx 1 天前 ![]() 内外网分区分域,我们就要严格要求,无需与互联网产生关系的服务器(数据库)必须放内网,其他都放在 dmz 区,nginx 是完整转发请求,如果 web 服务器被攻击了,直接会导致使用内网服务器做跳板横向迁移,但如果 web 服务器在 dmz 区,横向跳转的风险不大。
|
![]() |
10
qfdk 1 天前 via iPhone
简单来说. 你家有一个公网 ip 你接了个路由器. nginx 机器 192.168.1.100 可以 dmz. 等于这台机器在公网. 所有请求都会来.100. 理论上 nginx 只有 web 服务. 这样扫描就只有 web 服务. 数据库可以放在 192.168.1.200 , 业务机器可以 192.168.1.250 ,nginx 负责给请求转发给 1.250. 理论上 三台机器内网互通 外网之后 nginx 的可以通
|
![]() |
11
sanqian 1 天前
@Renco 好熟悉,之前遇到一个就是跟你这个一样了。不过对方是域名服务器转发到 dmz,dmz 在 nginx 转发到内网的 web 服务 通过内网 web 服务访问内网数据库服务
|
12
angryfish 1 天前 ![]() DMZ 直接 nginx 转发和部署 web 应用有区别的。
首先说一个大前提,黑客黑进服务器,基本上是黑到了部署 web 后台服务的机器。 1.如果是 nginx 转发,其实是相当于没有了 DMZ 层,外面的黑客入侵的话就直接到内网了。后面就可以利用这台内网机器做跳板机器,访问内网其他敏感数据了。 2.同理,如果是 web 部署在 DMZ 区,就黑进 DMZ 的那台服务器,从这个层面讲,安全性是不一致了吧。 但是,但是,涉及到其他的攻击,像拖库等,在内网和 DMZ 是无区别的。 |
![]() |
13
blackwolf 1 天前
得看网站是什么性质的,想做哪个级别的安全
1. 如果是不具备交互性质,仅仅是新闻类的,内网推送到 DMZ 区域的服务器,并且 DMZ 和内网做好隔离,可以有效避免网站被作为跳板侵入内网。并且在网站被破坏的情况下可以及时回复,但无法保证信息发布的安全。但是说实话这样做还不如一套外网+外网定期备份+一套内网来的安全,毕竟内外网一旦有逻辑链路,会有一定的安全风险。 2. 如果具有交互性质,例如 12306 这种,不是一个简单的同步数据就能解决的,至少需要实时链路(例如 nginx )实现内外网同步。 |
![]() |
14
pollux 1 天前
DMZ 区:是一个网络区域,用于隔离内外网,放置对外服务。
WAF:是一种安全设备或服务,用于保护 Web 应用免受攻击。 反向代理:是一种流量管理组件,用于转发请求、负载均衡和缓存。 在实际架构中,DMZ 区是 WAF 和反向代理的部署环境,三者可以结合使用,共同提升 Web 应用的安全性和性能。 |
![]() |
15
GKLuke 1 天前 ![]() 不知道你的客户时属于什么行业的,在我看来,你的客户说的很对。
我同意 12 楼的说法 作为经历过 HW 被打穿出局的甲方,你的方案,nginx 会忠实把攻击请求转发到内网应用上,然后攻击者获得这台服务器的权限后,就能以这台内网服务器为基础,首先扫描相同网段有没有重要资产(比如数据库,堡垒机,域控等),然后扩展到相近网段。你客户的方案,nginx 先转发到外网应用,外网应用再调用内网应用,这时候,外网应用就能替后面的内网应用挡下这一刀,即使这台外网应用服务器被攻破,也是在 DMZ 这一层,到不了内网。 |