• 如何在Ubuntu上使用Nginx轻松设置DNS over TLS解析器

    本教程将向您展示如何使用Nginx在Ubuntu上设置自己的DNS over TLS(DoT)解析器,这样您的DNS查询就可以被加密,并免受窥探。 什么是DNS over TLS,为什么它很重要 DNS(域名系统)负责将域名转换为IP地址。它是1987年设计的,没有考虑安全或隐私。默认情况下,DNS查询不加密。它们以明文形式在网络上发送,中间实体可以利用它们。例如,中国的防火长城(GFW)使用一种名为DNS缓存毒药的技术对中国互联网进行审查。(他们还使用其他方法,这超出了本文的范围。) GFW检查发送到中国境外DNS服务器的每个DNS查询。由于纯文本DNS协议基于UDP,这是一种无连接协议,GFW可以欺骗客户端IP和服务器IP。当GFW在其阻止列表中找到域名时,它会更改DNS响应。例如,如果一个中国互联网用户想要访问谷歌。GFW向用户的DNS解析程序返回位于中国的IP地址,而不是谷歌的真实IP地址。然后DNS解析程序将假IP地址返回给用户的计算机,因此用户无法访问谷歌。通用域名格式。 TLS上的DNS意味着DNS查询通过使用TLS加密的安全连接发送,这与加密HTTP流量的技术相同。 为什么要运行自己的点解析器? 现在已经有一些公共DNS解析器,比如1.1.1.1和9.9.9.9,它们支持TLS上的DNS,所以如果您没有技能或时间运行自己的DNS,您可以使用它们。然而,一些人认为,这仍然允许大型DNS服务提供商收集用户信息。他们似乎更信任他们的ISP。但我认为,如果你对隐私心存疑虑,你应该运行自己的点解析程序,这样大型DNS服务提供商和ISP都不能监视你。 目前,并非所有DNS解析程序(绑定、解除绑定、结解析程序、PowerDNS递归程序等)都支持TLS上的DNS。我将向您展示如何为您现有的DNS解析程序设置Nginx TLS代理,以提供点服务,而不是为特定的解析程序制作指南,因此无论您使用的是什么DNS解析程序,都可以遵循本教程。 先决条件 假设您在Ubuntu服务器上运行DNS解析器。您可以使用任何DNS解析程序(绑定、未绑定、结解析程序…)我个人使用绑定。 在Ubuntu 16.04/18.04上设置自己的BIND9 DNS解析器 在Ubuntu 20.04上设置自己的BIND9 DNS解析器 您还需要一个域名,因为DNS客户端需要与我们的DNS解析器建立安全的TLS连接。我从namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。 一旦满足上述要求,请按照以下说明操作。 第一步:在Ubuntu服务器上安装Nginx 这很容易做到。只需运行以下命令。 sudo apt安装nginx 第2步:从Let's Encrypt获取受信任的TLS证书 DNS over TLS要求在服务器端安装TLS证书。我们将获取并安装Let's Encrypt证书。使用Let’s Encrypt证书的优点是,它是免费的,更容易设置,并且受客户端软件的信任。 运行以下命令从默认的Ubuntu存储库安装Let's Encrypt client(certbot)。 sudo apt安装certbot 要获得Let's Encrypt TLS证书,我们可以使用以下命令创建一个Nginx虚拟主机。修理点。实例使用你自己的域名。别忘了为这个子域创建DNS记录。 sudo nano/etc/nginx/conf.d/dot。实例通用域名格式。形态 复制以下文本并将其粘贴到虚拟主机文件中。 服务器{listen 80;server_name dot.example.com;root/usr/share/nginx/html/;location ~/.well-known/acme challenge{allow all;} 保存并关闭文件。重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly--webroot--agree tos--email[email protected]-d dot。实例com-w/usr/share/nginx/html/ 步骤3:在Nginx中通过TLS代理创建DNS 编辑Nginx主配置文件。 sudo nano/etc/nginx/nginx。形态 在该文件底部添加以下行。请注意,它们需要放在http上下文之外。 流{#DNS上游池上游DNS{zone DNS 64k;服务器127.0.0.1:53;}#解密服务器的点服务器{listen 853 ssl;ssl_certificate/etc/letsencrypt/live/DoT.example.com/fullchain.pem;ssl_certificate_key/etc/letsencrypt/live/DoT.example.com/privkey.pem;代理通过dns;} 如何在Ubuntu上使用Nginx轻松设置DNS over TLS解析器 Save and close the file. Then test Nginx configuration and restart. sudo nginx -t sudo systemctl restart nginx If there’s a firewall running on Ubuntu server, you need to open TCP port 853. For example, if you use the UFW firewall, run the following command. sudo ufw allow 853/tcp Since we are using DNS over TLS, there’s no need to worry about DNS amplification attack. Step 5: Configure the Stubby DoT Client on Ubuntu Desktop Stubby is an open-source DNS stub resolver developed by the getdns team. A stub resolver is a small DNS client on the end-user’s computer that receives DNS requests from applications such as Firefox and forward requests to a recursive resolver like 1.1.1.1 or 8.8.8.8. Stubby is special in that it supports DNS over TLS. By default, it will only send DNS requests encrypted. Install Stubby on Ubuntu desktop from the default repository. sudo apt install stubby Once installed, stubby runs in the background. check its status with: systemctl status stubby Stubby listens on TCP and UDP port 53 of localhost (127.0.0.1). By default, Stubby uses third-party DNS over TLS resolvers. We need to configure it to use our own. sudo nano /etc/stubby/stubby.yml Scroll down to the upstream_recursive_servers: section and add the following text above other DNS servers. Replace 12.34.56.78 with the IP address of your DoT resolver. # My Own DNS over TLS resolver - address_data: 12.34.56.78 tls_auth_name: "dot.example.com" Then find the following line: round_robin_upstreams: 1 Change 1 to 0. This will make stubby always use your own DNS over TLS resolver. If it’s not available, stubby will use other DNS servers. Save the file and restart stubby for the changes to take effect. sudo systemctl restart stubby Step 6: Configure Ubuntu Desktop to Use Stubby Although Stubby is running, it’s not being used by the operating system. Click the Network Manager icon on the upper-right corner of your desktop. Then select wired settings. (If you are using Wi-fi, select Wi-fi settings.) Click the gear button. Select IPv4 tab, then in DNS settings, switch Automatic to OFF, which will prevent your Ubuntu system from getting DNS server address from your router. Enter 127.0.0.1 in the DNS field. Click Apply button to save your changes. Then restart NetworkManager for the changes to take effect. sudo systemctl restart NetworkManager Once you are reconnected, you can see that your Ubuntu system is now using 127.0.0.1 as the DNS server in the Details tab. How to Check if Your DNS Traffic is Encrypted We can use WireShark to monitor DNS traffic. Install WireShark on Ubuntu desktop. sudo apt install wireshark If you are asked “Should non-superusers be able to capture packets?”, answer Yes. Once it’s installed, run the following command to add your user account to the wireshark group so that you can capture packets. sudo adduser your-username wireshark Log out and log back in for the changes to take effect. Then open WireShark from your application menu, select your network interface in WireShark. For example, my Ethernet interface name is enp5s0. Then enter port 853 as the capture filter. This will make WireShark only capture traffic on port 853, which is the port used by DNS over TLS. Click the button on the upper-left corner to start capturing. After that, in terminal window, run the following command to query domain name by using the dig utility. For instance, I can query the A record of my domain name. dig A linuxbabe.com Now you can see the captured DNS traffic in WireShark. Connections were made over TCP and encrypted with TLS, which is what we want. You should check if the Destination column includes the IP address of your DoT resolver. If DNS queries are sent without encryption, then the computer would contact DNS server on port 53. You can capture packets again with port 53 as the capture filter, but you won’t see any packets in WireShark, which means stubby is encrypting your DNS queries. Wrapping Up I hope this tutorial helped you set up a DNS over TLS resolver with Nginx on Ubuntu. You may also want to read: 使用DNSdist在Ubuntu上运行自己的DNS over HTTPS(DoH)解析器 As always, if you found this post useful, then subscribe to our free newsletter to get more tips and tricks. Take care ?

    2022.03.23 浏览:72
  • 如何在Ubuntu 18.04和16.04上启用Nginx中的TLS 1.3

    由于IETF(RFC 8446)在2018年8月发布了TLS 1.3,HTTPS变得更快、更安全。TLS 1.3现在是TLS协议的最新版本。本教程将向您展示如何在Ubuntu 18.04和Ubuntu 16.04上的Nginx web服务器中启用TLS 1.3。 更新:有一种更简单的方法来启用TLS 1.3。请参阅本文:如何在Ubuntu 18.10、18.04、16.04、14.04上轻松启用Nginx中的TLS 1.3 TLS 1.3:改进的性能和安全性 就性能而言,TLS 1.2需要两次往返来建立HTTPS连接。对于TLS 1.3,只需要一次往返。TLS 1.3还支持零往返模式(0-RTT会话恢复),允许以前连接到您的网站的客户端在第一条消息上向服务器发送HTTP请求。这对移动网络或远程位置的用户有很大影响。 在安全方面,TLS 1.3取消了对旧密码套件的支持,旧密码套件负责机器人攻击等漏洞攻击。因此,服务器管理员不能再在TLS 1.3中添加旧的密码套件来安抚旧web浏览器的用户。当然,这是一个过于简单的解释。CloudFlare对TLS 1.3有很好的详细解释。 在Ubuntu 18.04和Ubuntu 16.04上的Nginx中启用TLS 1.3 在Nginx中启用TLS 1.3有两个要求。 您的Nginx版本必须支持TLS 1.3。这意味着nginx 1.13或更高。 Nginx需要使用OpenSSL 1.1.1+构建,或者使用OpenSSL 1.1.1+运行。 第二个要求听起来可能令人困惑,所以让我举两个例子。 Ubuntu 18.04附带OpenSSL 1.1.0。替换系统OpenSSL库不是一个好主意,但您可以下载OpenSSL 1.1.1源代码,并使用OpenSSL 1.1.1源代码编译Nginx以启用TLS 1.3。 Arch Linux目前附带OpenSSL 1.1.1,但Arch repository中的Nginx包实际上是用OpenSSL 1.1.0构建的。在这种情况下,Nginx不是用OpenSSL 1.1.1构建的,而是用OpenSSL 1.1.1运行的。 现在让我们看看如何在Ubuntu18.04和Ubuntu16.04上使用OpenSSL 1.1.1编译Nginx。 1.添加官方Nginx存储库 我不会下载源tarball并用make编译它,而是将官方的Nginx存储库添加到我的Ubuntu服务器,然后从源代码创建一个deb包。这样,我就不需要手动向configure命令添加一长串配置参数。此外,在deb包中还有一个方便的systemd服务文件。 首先获取Nginx GPG密钥并将其导入Ubuntu。 wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key 然后为Nginx repo创建一个源列表文件。 sudo nano /etc/apt/sources.list.d/nginx.list 将以下两行添加到文件中。deb src行允许我们使用apt source命令下载Nginx源代码包。Bonic是Ubuntu 18.04的代号。如果您使用的是Ubuntu 16.04,请用xenial替换它。(注意:此存储库不支持32位操作系统。) deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ bionic nginx deb-src http://nginx.org/packages/mainline/ubuntu/ bionic nginx 要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要退出,请按Ctrl+X。然后更新本地包索引。 sudo apt update 现在,Nginx官方存储库被添加到Ubuntu服务器。 2.下载Nginx和OpenSSL源代码 我们将在/usr/local/src/下创建一个nginx目录,以存储nginx源代码,然后将cd放入该目录。 sudo mkdir /usr/local/src/nginx cd /usr/local/src/nginx/ 使用以下命令下载Nginx源代码包: sudo apt install dpkg-dev sudo apt source nginx 查看下载的文件。 ls 输出: nginx-1.15.3                               nginx_1.15.3-1~bionic.dsc nginx_1.15.3-1~bionic.debian.tar.xz        nginx_1.15.3.orig.tar.gz 然后克隆OpenSSL github存储库。 cd /usr/local/src sudo apt install git sudo git clone https://github.com/openssl/openssl.git cd openssl 接下来,列出所有分支并切换到1.1.1稳定分支。 git branch -a sudo git checkout OpenSSL_1_1_1-stable 3.编辑Nginx编译规则 编辑Nginx编译规则文件。 sudo nano /usr/local/src/nginx/nginx-1.15.3/debian/rules 查找配置。地位nginx:config。环境。nginx部分。在CFLAGS行的末尾添加以下文本。请注意,以下文本本身不是一行。 --with-openssl=/usr/local/src/openssl 保存并关闭文件。 4.编译Nginx 确保您位于Nginx源目录中。 cd /usr/local/src/nginx/nginx-1.15.3/ 安装依赖项以构建我们的Nginx deb包。 sudo apt build-dep nginx 现在使用以下命令来构建deb包。 sudo dpkg-buildpackage -b 如果您看到以下错误, missing initializer for field 'md_ctrl' of 'EVP_MD {aka const struct evp_md_st} 然后编辑auto/cc/gcc文件。 sudo nano /usr/local/src/nginx/nginx-1.15.3/auto/cc/gcc 注释掉下面这行。-Werror标志使GCC将警告视为错误。 CFLAGS="$CFLAGS -Werror" 然后重新运行build命令。一旦构建完成,在/usr/local/src/Nginx/目录中将有一个Nginx-deb包。如果您以前安装过Nginx,那么是时候删除旧版本,然后安装新版本了。 sudo apt remove nginx nginx-common nginx-full cd /usr/local/src/nginx/ sudo dpkg -i nginx_1.15.3-1~bionic_amd64.deb 现在让我们开始Nginx。 sudo systemctl start nginx 如果您看到以下错误消息。 Failed to start nginx.service: Unit nginx.service is masked. 然后取消nginx的掩码并再次发出start命令。 sudo systemctl unmask nginx 请注意,Nginx进程可能作为用户Nginx或www数据运行。这可以通过编辑/etc/nginx/nginx中的第一行来更改。conf文件。只需确保Nginx与PHP-FPM以同一用户的身份运行即可。 现在检查Nginx的配置参数。 sudo nginx -V 如您所见,我们使用OpenSSL 1.1.1构建了最新版本的Nginx。 5.在Nginx服务器块中启用TLS 1.3 现在我假设您已经为Nginx服务器块启用了HTTPS。启用TLS1.3的语法相当简单。在/etc/Nginx/conf.d/目录或/etc/Nginx/sites enabled/目录中打开Nginx服务器块文件。找到下面这行。 ssl_protocols TLSv1.2; 添加TLSv1。3.加入协议清单。 ssl_protocols TLSv1.2 TLSv1.3; 然后将以下3个密码套件添加到现有密码套件中。 TLS-CHACHA20-POLY1305-SHA256 TLS-AES-256-GCM-SHA384 TLS-AES-128-GCM-SHA256 就像这样: ssl_ciphers 'TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; 保存并关闭文件。然后测试Nginx配置并重新加载。 sudo nginx -t sudo systemctl reload nginx Ubuntu18.04不太可能切换到OpenSSL 1.1.1,所以如果你用sudo-apt-upgrade命令升级Nginx,TLS 1.3就会消失。使用以下命令阻止apt升级Nginx是个好主意: sudo apt-mark hold nginx 更新:从Nginx 1.15.4开始,您可以通过在ssl服务器上下文中添加以下指令来使用OpenSSL启用0-RTT。默认值设置为off。在之前的版本1.15.3中,它只能与BoringSSL一起使用。 ssl_early_data on 在Google Chrome中启用TLS 1.3 目前,Firefox 62和Chrome 69只支持TLS 1.3的草案28。OpenSSL 1.1.1支持TLS 1.3的最终版本。基于草案版本和最终RFC版本的实现不能相互操作。 为了现在测试我们的Nginx服务器,我们需要安装Google Chrome的测试版,并启用TLS 1.3的最终版本。一旦安装了Chrome beta,请输入chrome://flags/#tls13-地址栏中的变量,并从默认值切换到已启用(最终)。然后重新启动Google Chrome,以使更改生效。 现在,在Google Chrome beta中访问支持TLS 1.3的网站,按Ctrl+Shift+I打开开发者工具页面。转到“安全”选项卡。您可以看到正在使用的TLS版本。 据说Firefox将于2018年10月在Firefox 63上发布TLS 1.3的最终版本。在Chrome 70中,TLS 1.3的最终版本将启用传出连接。 更新:Chrome 70增加了对TLS 1.3最终版本的支持,但默认情况下仍使用TLS 1.3草案28。 使用CloudFlare启用TLS 1.3 如果您正在使用CloudFlare CDN(内容交付网络),那么您的网站已经在使用TLS1。3.在CloudFlare dashboard中,选择crypto选项卡,您将看到启用/禁用TLS 1.3的选项。您还可以启用0-RTT。CloudFlare支持草案28版本和最终版本。 就这样!我希望本教程能帮助您在Ubuntu 18.04和Ubuntu 16.04上启用Nginx中的TLS 1.3。当心。

    2022.03.23 浏览:44
  • 如何在Ubuntu 20.04、18.04、16.04上轻松启用Nginx中的TLS 1.3

    在前一篇文章中,我解释了使用OpenSSL 1.1.1编译Nginx源代码的步骤,以启用TLS 1.3协议,该协议于2018年8月正式发布。在本教程中,我将向您展示一种在Ubuntu 20.04、18.04和16.04上启用TLS 1.3的更简单方法 TLS 1.3提高了性能和安全性 就性能而言,TLS 1.2需要两次往返来建立HTTPS连接。对于TLS 1.3,只需要一次往返。TLS 1.3还支持零往返模式(0-RTT会话恢复),允许以前连接到您的网站的客户端在第一条消息上向服务器发送HTTP请求。这对移动网络或远程位置的用户有很大影响。 在安全方面,TLS 1.3取消了对旧密码套件的支持,旧密码套件负责机器人攻击等漏洞攻击。当然,这是一个过于简单的解释。CloudFlare对TLS 1.3有很好的详细解释。 启用TLS 1.3的要求 在Nginx中启用TLS 1.3有两个要求。 您的Nginx版本必须支持TLS 1.3。这意味着Nginx 1.13或更高。 Nginx需要使用OpenSSL 1.1.1或更高版本构建。 Ubuntu 18.04和20.04附带OpenSSL 1.1.1 OpenSSL 1.1.1包含在Ubuntu18.10和20.04存储库中,Ubuntu18.10/20.04存储库中的Nginx包是用OpenSSL 1.1.1构建的。 当Ubuntu18.04首次面世时,它只有OpenSSL 1.0.2。然而,OpenSSL 1.1.1是后端口到Ubuntu 18.04.3的。 如果您仍在使用Ubuntu 18.04.2,只需运行以下命令即可升级到18.04.3。 sudo apt update  sudo apt upgrade 在Ubuntu 16.04上安装使用OpenSSL 1.1.1构建的最新版本Nginx Ubuntu 16.04存储库中的Nginx包不是用OpenSSL 1.1.1构建的。您可以使用OpenSSL 1.1.1手动编译Nginx,但这需要额外的时间,而且当新版本的Nginx出现时,您必须重新编译。幸运的是,我们可以从个人软件包档案(PPA)中安装Nginx,Ondřej Surý是Debian开发者,也是DNS社区的重要人物。他为Debian repository维护许多软件包,包括Apache、BIND、MariaDB、PHP等。他也是官方certbot PPA的维护者之一。所以我信任他的PPA,并在我的服务器上使用它。 如果您之前添加了另一个Nginx存储库(如Nginx.org),请禁用它。例如,我在/etc/apt/sources中定义了另一个Nginx存储库。列表d/nginx回购。列表文件。我只是注释掉该文件中的所有行以禁用它。 要在Ubuntu上添加Ondřej SurýNginx PPA,请运行以下命令。 sudo add-apt-repository ppa:ondrej/nginx sudo apt update 然后删除现有的Nginx包。(您的Nginx配置文件不会被删除。) sudo apt remove nginx 如果您使用iRedMail和Nginx,那么运行sudo apt remove Nginx full来删除Nginx。 并从PPA安装Nginx。 sudo apt install nginx 当被问及是否要安装新版本的配置文件时,请选择N。您的certbot Nginx插件可能会与Nginx一起删除,所以请重新安装。 sudo apt install python3-certbot-nginx 现在检查Nginx版本。 sudo nginx -V 您应该看到,Nginx是用OpenSSL 1.1.1构建的。 nginx version: nginx/1.14.1 built with OpenSSL 1.1.1 11 Sep 2018 (running with OpenSSL 1.1.0g 2 Nov 2017) TLS SNI support enabled 该PPA还为Ubuntu 16.04提供了OpenSSL 1.1.1。如果你在Ubuntu 16.04上的Nginx仍然使用OpenSSL 1.1.0运行,你需要升级你的OpenSSL软件包。 sudo apt upgrade 请注意,如果您使用的是Google compute engine,则在运行上述命令时将看到以下消息。 The following packages have been kept back: libssl1.1 openssl 这是因为OpenSSL 1.1.1包与一些Google计算引擎包冲突。您需要运行以下命令来升级OpenSSL。 sudo apt dist-upgrade 在Ubuntu 20.04、18.04和16.04上的Nginx虚拟主机中启用TLS 1.3 使用OpenSSL 1.1.1安装Nginx后,请打开Nginx虚拟主机文件。 sudo nano /etc/nginx/conf.d/site.conf 或 sudo nano /etc/nginx/sites-enabled/site.conf 要启用TLS1.3,只需添加TLSv1。3到ssl服务器块中的ssl_协议指令。 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; 如果您使用的是Let's Encrypt证书,则可以在/etc/letsencrypt/options SSL nginx中设置SSL配置。conf文件。顺便说一句,certbot默认启用TLSv1,这是不安全的,您可以删除它。如果您使用的是iRedMail和Nginx,那么您需要在/etc/Nginx/templates/SSL中编辑SSL配置。tmpl文件。 保存并关闭文件。然后重新启动Nginx,使更改生效。 sudo systemctl restart nginx 在Web浏览器中检查TLS版本 使用Firefox 63或更高版本,重新加载网页,右键单击空白区域,然后在上下文菜单中选择查看页面信息。转到安全选项卡,您将看到TLS 1.3正在使用。 使用Google Chrome 70或更高版本,重新加载网站上的网页。然后按Ctrl+Alt+I打开开发者工具。转到安全选项卡,您将看到TLS 1.3正在使用。 是TLSv1。3在Cloudflare和您的源服务器之间使用? 对Cloudflare在前端服务器上支持TLS 1.3,并且还使用TLSv1。3.连接到原始服务器时。要检查正在使用的TLS版本,可以在/etc/nginx/nginx中创建自定义日志格式。conf文件。 sudo nano /etc/nginx/nginx.conf 在http上下文中添加以下文本。 log_format combined_ssl '$remote_addr - $remote_user [$time_local] ' '$ssl_protocol/$ssl_cipher ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; 保存并关闭文件。然后在SSL服务器上下文中添加访问日志指令。日志采用组合的ssl格式。 access_log /var/log/nginx/your-site.access.log combined_ssl; 保存并关闭文件。然后重新加载Nginx。在访问日志文件中,您将看到如下内容,这表明正在使用TLS 1.3。 172.68.132.115 - - [25/Feb/2020:16:07:26 +0800] TLSv1.3/TLS_AES_256_GCM_SHA384 "GET / HTTP/1.1" 下一步 我希望本教程能帮助您在Ubuntu 20.04、Ubuntu 18.04和Ubuntu 16.04上启用Nginx中的TLS 1.3。您可能还想设置ModSecurity web应用程序防火墙,以保护您的网站免受黑客攻击。 如何在Debian/Ubuntu上使用Nginx设置ModSecurity 和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.23 浏览:42