OPNsense配备了功能齐全的正向缓存(透明)代理。缓存代理通过缓存对频繁请求的网页减少带宽使用并缩短响应时间。访问控制列表可用于用户身份验证和/或(基于类别)Web过滤器。
功能包括:
多接口支持
透明模式(包括SSL / HTTPS)
ICAP支持反病毒/恶意软件引擎
HTTP代理
FTP代理
用户认证
访问控制列表(对http(s) 和ftp都有效)
黑名单
基于类别的Web过滤
可以与流量×××器结合使用
认证
用户身份验证可以使用OPNsense标准和内置身份验证器完成。包括:
LDAP(包括Microsoft Active Directory)
Radius
本地用户管理
不进行认证
访问控制
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合作的其他热门列表包括:
Shallalist.de < http://www.shallalist.de/ >
免费供个人使用,部分用于商业用途
URLBlacklist.com < http://urlblacklist.com/ >
商业付费服务
Squidblacklist.org < http://www.squidblacklist.org/ >
商业付费服务
在本教程中,我们假设:
代理服务器的默认设置/未配置
我们只想要网页过滤而不需要任何其他内容(没有缓存,不进行身份验证)
第1步 - 禁用身份验证
要开始,请转到“ 服务” - >“Web代理” - >“管理”。
单击正向代理选项卡旁边的箭头以显示下拉菜单。现在选择认证设置并单击清除所有以禁用用户身份验证。然后单击“ 应用”以保存更改。
第2步 - 配置黑名单
单击“ 远程访问控制列表 ”选项卡。现在单击页面右下角的+以添加新列表。
将弹出一个页面,输入以下详细信息:
启用 | 选中 | 启用/禁用 |
文件名 | UT1 | 选择唯一的文件名 |
网址 | (复制/粘贴网址) | 黑名单的URL |
类别 | (留空) | 如果留空,则将获取完整列表 |
描述 | UT1 web filter | 描述说明 |
基于完整压缩UT1类别列表的URL:
ftp://ftp.ut-capitole.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
保存更改。
第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 |
电子邮件地址 | [email protected] |
通用名称 | 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文件的URL,然后单击“确定”
警告:如果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,并且内部连接不在代理上运行。要制定有意义的规则,我们需要两个可能的返回值:
LAN代理
没有代理
没有代理配置非常简单:
名称 | 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”完成。