在OPNsense上,可以通过添加nginx插件来保护内部网络和Web服务器。

安装插件

请按照以下简单步骤操作:

  • 访问OPNsense防火墙Web gui:

  • 进入菜单:系统:固件:插件

  • 找到os-nginx插件,然后单击安装[+]

初始配置

在配置之前,我们需要了解一些术语:

  • 上游服务器:将托管网页/应用程序的真实网络服务器;

  • 上游:将在其中配置服务器的后端;

  • 位置:应该配置了上游功能的网址格式;

  • HTTP 服务器:应该配置一个或多个位置的前端;

配置将从上游服务器配置开始:

要进行初始配置,请转到Nginx配置菜单:

在OPNsense中使用nginx插件来保护内部网站_第1张图片

在OPNsense中使用nginx插件来保护内部网站_第2张图片

1gSw2u7-zOEG1tdJEjaCweg.png

点击添加按钮

在OPNsense中使用nginx插件来保护内部网站_第3张图片

服务器参数将取决于您的Web服务器/应用程序和网络环境。为了获得更好的保护,建议在“ 最大连接数/失败次数”和“ 失败超时”中设置一些限制。

在OPNsense中使用nginx插件来保护内部网站_第4张图片

1gSw2u7-zOEG1tdJEjaCweg.png

点击添加按钮

在OPNsense中使用nginx插件来保护内部网站_第5张图片

选择上一步中配置的上游服务器

在上面的示例中,我们没有在后端使用TLS。

配置的上游如下所示:

在OPNsense中使用nginx插件来保护内部网站_第6张图片

关于NAXSI:从技术上讲,它是第三方nginx模块,可作为许多类似UNIX的平台的软件包使用。默认情况下,该模块读取一小部分简单(可读)规则,其中包含与网站漏洞有关的99%的已知模式。例如, <, | 或 drop不应该是一个URI的一部分。

在进行配置之前,我们需要下载Naxsi规则,在后面的“位置”配置中启用该规则。

转到子菜单:

在OPNsense中使用nginx插件来保护内部网站_第7张图片

在OPNsense中使用nginx插件来保护内部网站_第8张图片

单击下载按钮来获取NAXSI规则

在OPNsense中使用nginx插件来保护内部网站_第9张图片

必须接受NAXSI存储库许可证才能下载规则

在OPNsense中使用nginx插件来保护内部网站_第10张图片

下载过程完成后,将显示获得的规则列表。

4、位置

创建一个新位置:

1Rm5fWOVMGX4GJPk-Nb3_mA.png

位置子菜单

1nPVIOt3pdyM8ECUGdq1Onw.png

点击添加按钮

在OPNsense中使用nginx插件来保护内部网站_第11张图片

  • 说明:填入您需要说明的内容;

  • URL模式:要与您的Web服务器根目录匹配,请用“/”填充。要与另一个路径匹配,请将其更改为“/ anotherpath /”;

  • 启用安全规则:此选项启用WAF保护。结合使用“自定义安全策略”,您将能够保护您的网站免受指定策略(规则组)的侵害;

  • 学习模式:在此模式下,插件将不会阻止与所选策略匹配的请求,而只会记录请求。在开始阻止请求之前,调整自己的白名单规则是个很好的方法。

最后,创建您的网站前端:

在OPNsense中使用nginx插件来保护内部网站_第12张图片

1nPVIOt3pdyM8ECUGdq1Onw.png

点击添加按钮

在OPNsense中使用nginx插件来保护内部网站_第13张图片

  • 服务器名称:您网站的FQDN名称;

  • 位置:在上一步中创建的位置;

  • TLS证书/CA证书/启用加密插件:如果要(应该)在网站中启用HTTPS(TLS),则这些选项需要使用TLS和CA证书(如果您已经有一个有效证书)进行配置,或者您可以安装和配置“ Let\’s Encrypt”插件,该插件将免费为您创建这些插件。

在OPNsense中使用nginx插件来保护内部网站_第14张图片

要启用我们的nginx服务而不会出现端口冲突问题,还需要调整一些webgui配置。

注意:在更改以下配置之前,请确保您可以从LAN接口访问OPNsense或添加所需的规则!

转到系统:设置:管理菜单

在OPNsense中使用nginx插件来保护内部网站_第15张图片

更改Webgui HTTPS端口并禁用HTTP重定向规则(端口80)

返回菜单服务:Nginx:配置并启用服务:

在OPNsense中使用nginx插件来保护内部网站_第16张图片

在OPNsense中使用nginx插件来保护内部网站_第17张图片

选中启用,然后单击应用按钮

在OPNsense中使用nginx插件来保护内部网站_第18张图片

应用配置后,服务将启动并运行

最后一步是创建所需的防火墙规则,以允许所需网络接口(可能是WAN)上的HTTP / HTTPS通信。

至此,配置完成!