OPNsense配备了功能齐全的正向缓存(透明)代理。缓存代理通过缓存对频繁请求的网页减少带宽使用并缩短响应时间。访问控制列表可用于用户身份验证和/或(基于类别)Web过滤器。
功能包括:
-
多接口支持
-
透明模式(包括SSL / HTTPS)
-
ICAP支持反病毒/恶意软件引擎
-
HTTP代理
-
FTP代理
-
用户认证
-
访问控制列表(对http(s) 和ftp都有效)
-
黑名单
-
基于类别的Web过滤
-
可以与流量×××器结合使用
认证
用户身份验证可以使用OPNsense标准和内置身份验证器完成。包括:
访问控制
OPNsense支持全面访问控制,包括基于:
-
子网
-
端口
-
MIME类型
-
禁止IP
-
白名单
-
黑名单
-
浏览器/用户代理
流量控制
代理可以与流量×××器结合使用,并充分利用其×××功能。此外,它还包括自己的选项:
-
最大下载量
-
最大上传量
-
整体带宽限制
-
每个主机带宽限制
基于类别的Web过滤器
不需要额外的插件,例如squidGuard, 因为OPNsense有基于内置类别的Web过滤器支持。主要功能包括:
-
从远程URL获取
-
支持
平面文件
列表和基于类别的压缩列表
-
自动将基于类别的黑名单转换为squid ACL
-
随时了解内置调度程序
-
与最受欢迎的黑名单兼容
透明模式
透明模式意味着所有请求都将转移到代理,而无需在客户端进行任何配置。透明模式适用于不安全的http请求,但是通过安全(SSL)https连接,代理将成为中间人,因为客户端将“与”代理“对话”,代理将使用客户端需要信任的主密钥对流量进行加密。
虽然我们不鼓励在透明模式下使用https,但此功能在16.7以后的版本中发布。
警告:使用透明HTTPS代理可能是一种危险的做法,您使用的某些服务可能不允许这种做法,例如网上银行。
WPAD和PAC
如果无法使用透明代理,OPNsense仍支持通过WPAD / PAC进行自动代理配置。
警告:通过DNS的WPAD要求Web界面在默认HTTP端口(TCP / 80)上运行,这也是一种安全风险(MITM***)。在这种情况下,您应该通过代理连接或避免从不受信任的网络配置应用程序。
设置高速缓存代理
启用/禁用
要启用代理,只需转到“
服务” - >“Web代理” - >“管理”,
然后选中“
启用代理”,
单击“
应用”
。默认设置将使用基于本地用户数据库的用户身份验证启用代理,并在LAN接口的端口3128上运行。
更改代理接口
如果要更改代理将绑定的接口(子网),请单击“
正向代理
”选项卡。现在在
代理接口
字段中添加/删除
接口
。添加时确保已应用并且标签可见(输入或从列表中选择)。
更改代理侦听端口
默认情况下,代理将在端口3128处侦听,您可以通过单击“
正向代理
”选项卡来更改此设置,并填写
代理端口
数据库中的
端口
。不要忘记
应用
您的更改。
启用缓存
要启用缓存,请单击“
代理设置”
旁边的箭头以查看下拉菜单,然后单击“
本地缓存设置”
。
选中
启用本地缓存
,然后单击
应用
。
注意:由于默认情况下不创建缓存,您需要在
系统->诊断-> 服务
下停止并启动服务,这将确保正确创建缓存。
高级
在高级设置下(请参阅表单左上角的模式切换),您可以更改缓存大小,目录结构和保留在缓存中最大对象尺寸。同样,默认设置适用于普通浏览,将创建一个100MB缓存,最大对象尺寸为4MB。
变更认证方法
单击
正向代理
选项卡旁边的箭头来显示下拉菜单。现在选择
认证设置
并在
认证方法
字段中选择所需的认证源 。如果您不想使用任何身份验证,请单击“
清除所有”
。
根据您在
系统-> 访问->服务器
下设置的
认证服务器
, 您可以选择以下一项或多项:
-
无身份验证(保留字段为空)
-
本地用户数据库
-
LDAP
-
Radius
FTP代理
启用FTP代理单击“
正向代理”
选项卡旁边的箭头,显示下拉菜单。现在选择
FTP代理设置
并在
FTP代理接口
字段中选择一个或多个接口并
应用
。
注意:FTP代理仅在启用
代理服务器
本身时才起作用。代理仅适用于非加密的ftp流量。
访问控制列表
您可以通过单击“
正向代理”
旁边的箭头来设置ACL,然后 选择“
访问控制列表”
。在这里你可以:
-
设置允许的子网(默认情况下,将允许代理接口)
-
添加不受限制的IP地址(不受限制意味着这一点,没有身份验证,也没有针对这些IP的黑名单)
-
添加禁止主机IP地址(禁止将阻止此客户端使用代理)
-
白名单(点击(i)查看示例,白名单优先于黑名单)
-
黑名单(如果白名单不允许,这将根据正则表达式阻止流量)
警告:填写标记字段后,请不要忘记按Enter或逗号,否则将不会应用该值。它看起来应该类似于:
远程黑名单/广告拦截
使用简单的平面文件来屏蔽广告。对于此示例,我们将使用此处的广告列表:
http://pgl.yoyo.org/adservers/serverlist.php?hostformat=nohtml
此列表是一个简单的平面列表,如下所示:
101com.com
101order.com
123found.com
180hits.de
180searchassistant.com
1x1rank.com
207.net
247media.com
转到“
服务” - >“Web代理” - >“管理”
,然后单击“
远程访问控制列表
”选项卡
现在单击表单右下角的
+
以添加新列表。
填写:
启用
|
选中
|
启用/禁用
|
文件名
|
yoyoads
|
选择唯一的文件名
|
网址
|
(复制/粘贴网址)
|
黑名单的URL
|
类别
|
(留空)
|
用于基于类别的Web过滤
|
描述
|
YoyoAds Blacklist
|
描述说明
|
(注:以下是16.1.4版本的屏幕截图,与现在最新版本有所不同):
保存更改
现在点击
下载ACLS并应用
以启用黑名单/广告拦截器。
防火墙规则无代理绕过
要确保没有人可以绕过代理,您需要添加防火墙规则。转到
防火墙 - >规则
,并将以下内容添加到LAN接口上的列表规则顶部(如果LAN是您的客户端和代理所在的位置)。
操作
|
阻止
|
接口
|
LAN
|
协议
|
TCP / UDP
|
源
|
lan
|
目标端口范围
|
HTTP
|
类别
|
Block Proxy Bypass
|
描述
|
Block http bypass
|
保存
还有一个阻止HTTPS访问的规则:
操作
|
阻止
|
接口
|
LAN
|
协议
|
TCP / UDP
|
源
|
LAN
|
目标端口范围
|
HTTPS
|
类别
|
Block Proxy Bypass
|
描述
|
Block http bypass
|
保存
并
应用更改
配置浏览器/Firefox
在本例子中,以Firefox为例,其他浏览器也可以参考。要配置代理,只需转到网络设置并按如下设置进行配置:
设置Web过滤
OPNsense中基于类别的Web过滤是通过使用内置代理和一个免费或商业黑名单来完成的。
为此,我们将使用Fabrice Prigent管理的UniversitéToulouse 的
UT1“网络分类列表”
。此列表根据
知识共享许可
免费提供。
预计与OPNsense合作的其他热门列表包括:
在本教程中,我们假设:
第1步 - 禁用身份验证
要开始,请转到“
服务” - >“Web代理” - >“管理”
。
单击
正向代理
选项卡旁边的箭头以显示下拉菜单。现在选择
认证设置
并单击
清除所有
以禁用用户身份验证。然后单击“
应用”
以保存更改。
第2步 - 配置黑名单
单击“
远程访问控制列表
”选项卡。现在单击页面右下角的
+
以添加新列表。
将弹出一个页面,输入以下详细信息:
启用
|
选中
|
启用/禁用
|
文件名
|
UT1
|
选择唯一的文件名
|
网址
|
(复制/粘贴网址)
|
黑名单的URL
|
类别
|
(留空)
|
如果留空,则将获取完整列表
|
描述
|
UT1 web filter
|
描述说明
|
保存更改
。
第3步 - 下载类别
现在按下载ACL,请注意这需要一段时间(可能是几分钟),因为完整列表(> 19MB)将转换为squid acl。
第4步 - 设置类别
现在,我们可以通过单击列表说明旁边的铅笔图标来选择我们要使用的类别。这将再次打开编辑窗口,但现在您将看到从列表中提取的所有可用类别。
对于我们的示例,我们将过滤广告和成人内容。最简单的方法是清除列表并从下拉列表中选择以下内容:
现在
保存更改
并再次按
下载ACL
以下载和重建仅包含所选类别的列表。这将花费与第一次获取大致相同的时间量,因为单独的成人部分是~15MB。
第5步 - 启用代理
要启用代理,只需转到“
服务” - >“Web代理” - >“管理”,
然后选中“
启用代理”,
单击“
应用”
。代理将绑定到LAN和端口3128。
代理启动可能需要一段时间,屏幕右上角的播放图标将变为红色。刷新页面以查看代理是否已完成加载(播放图标将变为绿色)。
第6步 - 禁用代理旁路
要确保没有人可以绕过代理,您需要添加防火墙规则。转到
防火墙 - >规则
,并将以下内容添加到LAN接口上的列表规则顶部(如果LAN是您的客户端和代理所在的位置)。
操作
|
阻止
|
接口
|
LAN
|
协议
|
TCP / UDP
|
源
|
LAN
|
目标端口范围
|
HTTP
|
类别
|
阻止代理绕过
|
描述
|
阻止http绕过
|
保存
还有一个阻止HTTPS访问的规则:
操作
|
阻止
|
接口
|
LAN
|
协议
|
TCP / UDP
|
源
|
LAN
|
目标端口和范围
|
HTTPS
|
类别
|
阻止代理绕过
|
描述
|
阻止https绕过
|
保存
并
应用更改
设置透明代理
OPNsense提供了一个功能强大的代理,可以与基于类别的Web过滤和任何支持ICAP的反病毒/恶意软件引擎结合使用。代理可以配置为以透明模式运行,这意味着不必为Web代理配置客户端浏览器,但是所有流量都通过利用网络地址转换自动转移到代理。
在本方法中,我们将解释基本的http以及https(ssl bump)透明代理模式。
警告
:透明SSL / HTTPS代理模式使用一种也称为中间人的技术,只有在知道自己在做什么的情况下才配置并使用它。如果配置错误,您可能会减少安全防御能力。使用透明https代理可能是一种危险的做法,您使用的服务可能不允许这种做法,例如网上银行。
第1步 - 基本代理设置
要设置透明模式,需要完成基本的代理设置。参阅前面部分。
第2步 - 透明
转到
服务 - > Web代理 - >管理
然后在
正向代理选项卡
下选择
常规设置
。
选择
启用透明HTTP代理,
然后单击
应用
。
第3步 - NAT /防火墙规则
添加NAT /防火墙规则的一种简单方法是单击“
启用透明HTTP代理”
选项左侧的
(i)
图标,然后单击
添加新的防火墙规则(红色部分)
。
作为参考,这些是默认设置:
接口
|
LAN
|
协议
|
TCP
|
源
|
LAN
|
源端口范围
|
任意 - 任意
|
目标
|
任意
|
目标端口范围
|
HTTP - HTTP
|
重定向目标IP
|
127.0.0.1
|
重定向目标端口
|
other/ 3128
|
描述
|
将流量重定向到代理
|
NAT回流
|
启用
|
过滤规则关联
|
添加关联的过滤规则
|
默认值应该没问题,只需按“
保存
并
应用更改”即可
。
第4步 - 用于透明SSL的CA
在我们设置透明SSL / HTTPS代理之前,我们需要创建一个证书颁发机构。转到
系统 - >证书 - >认证
或使用搜索框快速到达目的地。
单击屏幕右上角的
添加或导入ca
以创建新CA。
在本示例中,我们使用以下数据:
描述名称
|
OPNsense-SSL
|
方法
|
生成内部证书颁发机构
|
密钥长度(位)
|
2048
|
摘要算法
|
SHA256
|
有效期(天)
|
356
|
国家代码
|
NL (Netherlands)
|
州或省
|
Zuid Holland
|
城市
|
Middelharnis
|
组织
|
OPNsense
|
电子邮件地址
|
spam@opnsense.org
|
通用名称
|
opnsense-SSL-CA
|
保存
第5步 - 透明SSL
转至
服务 - >Web代理 - >管理,
然后点击
正向代理选项卡
下的
常规设置
。
选择“
启用SSL检查”
并将
使用认证
的CA设置为用于刚刚创建的CA,然后单击
Apply
。
第6步 - 配置非SSL Bump
这一步非常重要,需要仔细考虑!为了确保已知站点正常访问(如网上银行)并保持其原始安全层完整,需要将包括所有子域的那些添加到
SSL免检站点
字段。
要在字段中输入新项目类型,请以.(点)开始,添加所有子域,然后按Enter键接受。示例:要添加所有paypal.com,请键入.paypal.com并按Enter键。
注意:确保将您提供个人信息或登录信息的所有银行站点添加到此字段中。如果您不确定要添加什么,请重新考虑使用透明SSL,因为它显然不适合您!
第7步 - SSL NAT /防火墙规则
添加NAT /防火墙规则的一种简单方法是单击“
启用SSL检查”
选项左侧的
(i)
图标,然后单击
添加新的防火墙规则
。
作为参考,这些是默认设置:
接口
|
LAN
|
协议
|
TCP
|
源
|
lan
|
源端口范围
|
any - any
|
目标
|
any
|
目标端口范围
|
HTTPS - HTTPS
|
重定向目标IP
|
127.0.0.1
|
重定向目标端口
|
other/ 3129
|
描述
|
将流量重定向到代理
|
NAT回流
|
启用
|
过滤规则关联
|
添加关联的过滤规则
|
默认值应该没问题,只需按“
保存
并
应用更改”即可
。
步骤8 - 配置OS /浏览器
由于您的浏览器不信任CA,因此您将为您访问的每个页面收到有关此信息的消息。要解决此问题,您可以将密钥导入您的操作系统并设置为受信任。要导出密钥,请转到
系统 - >证书 - >认证
,然后单击右侧的导出图标来导出CA证书。
在您的操作系统上导入和更改信任设置。在OSX上的示例如下:
警告:因为您的系统将接受使用此CA证书签名的任何页面。只要没有人获得对没有问题的私钥的访问权限都是安全的。但是如果任何人都可以得到它,那么所有流量都可以被解密。
设置WPAD / PAC
OPNsense支持生成PAC文件来向客户端提供自动代理配置文件。例如,如果您的Web GUI在
http://192.168.0.1/
上运行,则您的PAC URL则是
http://192.168.0.1/wpad.dat
。
在Firefox中,您可以手动通过以下步骤使用PAC配置代理:
警告:如果PAC文件不可用,您的浏览器可能无法连接到Internet。如果员工可以将设备用于家庭办公室,则不建议在笔记本电脑等移动设备上使用此类配置。对于此类设备,应使用WPAD。
配置
第一步:创建匹配
转到
“服务” - >“Web代理” - >“配置”
,然后打开“匹配”,在最新的18.7.6版本中菜单是
“服务” - >“Web代理” - >"Proxy-Auto-Config"
输入匹配名称和可选说明。然后选择要匹配的内容。
名称
|
匹配的唯一名称,用于从规则中调用它。
|
描述
|
简短描述。
|
反转
|
反转匹配
|
匹配类型
|
选择您想要匹配的内容
|
其余字段取决于使用的
匹配类型
。例如,如果我们匹配“普通主机名”,我们不需要任何其他参数。
匹配
“Plain Hostname(普通主机名)”,
则意味着域名没有点,所以如果我们想创建一个fqdn匹配,我们可以简单地反转这个:
名称
|
is_fqdn
|
描述
|
可以留空
|
反转
|
选中
|
匹配类型
|
Plain Hostname
|
名称
|
not_internal
|
描述
|
可以留空
|
反转
|
选中
|
匹配类型
|
Hostname matches
|
主机模式
|
内部域的通配符
|
第二步:创建代理服务器
现在切换到
“服务” - >“Web代理” - >"Proxy-Auto-Config - > Proxies”
添加新的代理服务器。
名称
|
输入将在规则视图中显示的名称以供选择
|
描述
|
您可以为此代理添加可选说明
|
代理类型
|
如果不使用代理,则直接连接或请输入代理类型
|
网址
|
除非已选择直接连接(no proxy),否则请输入代理URL
|
在这种情况下,假设仅存在单个LAN和DMZ,并且内部连接不在代理上运行。要制定有意义的规则,我们需要两个可能的返回值:
没有代理配置非常简单:
名称
|
direct
|
描述
|
可以留空
|
代理类型
|
Direct Connection
|
网址
|
空
|
对于传出连接,我们需要代理:
名称
|
lan_proxy
|
描述
|
可以留空
|
代理类型
|
proxy
|
网址
|
代理IP +':'+代理端口
|
第三步:创建规则
现在,当匹配和代理存在时,可以构建规则。为此,需要切换到“服务” - >“
Web代理” - >"Proxy-Auto-Config - > 规则” 。
现在需要创建以下规则:
启用
|
选中
|
描述
|
描述说明
|
匹配
|
两个先前创建的匹配
|
加入类型
|
and
|
匹配类型
|
if
|
代理
|
lan proxy
|
保存后,单击右侧的橙色重新加载按钮,配置就完成了。
WPAD
Web代理自动发现用于查找域名的PAC文件。
使用DNS(Unbound)
方式1:自动配置
警告:使用此选项时,将覆盖wpad主机和域名的TXT记录。这可能会破坏其他记录,例如此特定域名的SPF的TXT记录。
在Unbound DNS常规设置中,您只需选中以下复选框:
这将定义DHCP中配置的任意域名的主机记录,作为防火墙主机的CNAME。它还将覆盖TXT记录解析为PAC文件的URL。
方式2:手动配置
警告:使用DNS时,OPNsense必须通过端口80上的HTTP进行响应。
转到
服务 - >Unbound DNS- >覆盖
,为
wpad
主机添加新的主机覆盖:
主机
|
WPAD
|
域名
|
你的域名
|
类型
|
A或AAAA
|
IP
|
您的OPNsense的IP(可以访问Web界面的IP地址)
|
描述
|
可以留空
|
保存设置并应用更改。
使用
方式1:自动配置
在DHCP服务器设置中,您可以选中以下复选框:在这种情况下,将使用您在系统设置(防火墙域名)中选择的域和Web接口的端口。主机名是
wpad
。如果您使用HTTP在端口80上运行OPNsense Web界面。将创建以下URL:
http://wpad.example.com:80/wpad.dat
方式2:手动配置
转到服务 - > DHCP - >服务器
,选择正确的接口并向下滚动到“其他选项”。
添加此行并保存:
数目
|
252
|
类型
|
String
|
值
|
PAC文件的URL,用双引号括起来
|
Firefox配置
打开设置菜单
首先,必须打开设置菜单。有两种方法。你也可以
首先单击
编辑
然后单击
Preferences(
首选项)
或您也可以
单击菜单图标,然后单击
“Preferences(首选项)”
。
配置代理
然后向下滚动到页面底部,然后在点击Network Proxy(
网络代理)
界面点击Settings(
设置)
。
在新打开的窗口中,您可以设置代理设置。如果要强制Firefox使用WPAD / PAC,请选择“
自动检测此网络的代理设置”
。如上图所示,点击“OK”完成。