V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Renco
V2EX  ›  程序员

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

  •  
  •   Renco · 44 天前 · 1719 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。

    标题内容可以有点绕。

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

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

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

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

    15 条回复    2025-02-07 22:31:02 +08:00
    loginv2
        1
    loginv2  
       44 天前   ❤️ 1
    没有,客户不懂而已
    Kinnice
        2
    Kinnice  
       44 天前   ❤️ 1
    猜测,数据库连接的审计可能更简单些,毕竟数据库如果把一些特性关闭很难通过数据库连接拿 shell ,但是 web 服务器就相较于简单一些。
    Kinnice
        3
    Kinnice  
       44 天前   ❤️ 1
    nginx ==> waf 可能客户会比较好接受,比如雷池 waf 社区版
    ipwx
        4
    ipwx  
       44 天前   ❤️ 1
    因为客户需要审计各个组件的安全性(包括有没有人去按时补漏洞)吧。

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

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

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

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

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

    在实际架构中,DMZ 区是 WAF 和反向代理的部署环境,三者可以结合使用,共同提升 Web 应用的安全性和性能。
    GKLuke
        15
    GKLuke  
       43 天前   ❤️ 1
    不知道你的客户时属于什么行业的,在我看来,你的客户说的很对。
    我同意 12 楼的说法
    作为经历过 HW 被打穿出局的甲方,你的方案,nginx 会忠实把攻击请求转发到内网应用上,然后攻击者获得这台服务器的权限后,就能以这台内网服务器为基础,首先扫描相同网段有没有重要资产(比如数据库,堡垒机,域控等),然后扩展到相近网段。你客户的方案,nginx 先转发到外网应用,外网应用再调用内网应用,这时候,外网应用就能替后面的内网应用挡下这一刀,即使这台外网应用服务器被攻破,也是在 DMZ 这一层,到不了内网。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2545 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 06:18 · PVG 14:18 · LAX 23:18 · JFK 02:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.