反向代理可用于在单个IP地址和端口组合后运行多个网络服务。此外,反向代理可以提升服务的安全性。这是通过使用加密和标头操作实现的。本文介绍如何将pfSense HAProxy设置为反向代理。假定使用的域和子域已经存在并且配置正确。对于动态IP,动态DNS也完成了正确配置。
HAProxy由三个基本区域组成。
- 常规设置(资源,统计,日志记录等)
- 前端(与HAProxy连接的IP地址和端口组合。)
- 后端(HAProxy应转发的内部网络服务。)
将pfSense HAProxy设置为反向代理
首先,在pfSense中安装HAProxy插件。
完成后,HAProxy将出现在“Services(服务)”菜单中。
常规设置
首先选中“启用HAProxy”来启用HAProxy,并为“Maximum connections(最大连接数)”设置一个值(例如1000)。
在“Tuning”下,建议设置2048作为Diffie Hellman参数的最大长度。
后端
由于必须在前端配置中选择后端,因此我们首先配置后端。对于每个内部服务器,可以创建自己的后端配置。下面“subdomain.example.com”的示例。
前端
至少需要两个前端配置。一个用于端口80重定向到HTTPS,一个用于HTTPS端口443。
在HTTP前端中,定义此前端侦听端口80,并且将注册域(例如example.com)结尾的所有请求都将重定向到HTTPS。
除了IP和端口设置,还可以配置所需的后端和SSL设置。
在“Advanced pass thru(高级直通)”部分中,输入以下HTTP标头。这里的作用在OWASP项目上有详细描述。
注意:“X-Robots-Tag”会阻止搜索引擎索引。
http-response set-header X-Xss-Protection 1;\ mode=block http-response set-header X-Content-Type-Options nosniff http-response set-header X-Robots-Tag noindex http-response set-header X-Frame-Options SAMEORIGIN http-response set-header Referrer-Policy same-origin
此外,它增加了“Advanced ssl options(高级SSL选项)”,来进行加密(2.44P2版本中已没有这个选项)。
force-tlsv12 ciphers 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
我们建议使用通配符证书,例如Let’s Encrypt。
防火墙规则
为了能让外部网络访问HAProxy服务,应该在WAN接口上配置防火墙规则。首先,使用已使用的端口创建别名。
然后就可以设置所需的防火墙规则。
原文地址。
这个pf是不是没有opnsense的waf功能?