目前我有一台运行 pfSense 的服务器。它在另一个网络上,我只能通过远程登录访问它。我想要做的是设置某种 road warrior 方案,允许我在 pfSense 防火墙后面进行访问。基本上,我想模拟我的机器直接位于 pfSense 后面,从 pfSense 获取 DHCP 地址。这张图片可能有助于澄清:
我谷歌了一下,但每个指南似乎都说了不同的东西。我对这些东西还是个新手,所以我不知道各种方法之间有什么区别。无论如何,我遵循了这个指南,因为它似乎是我想要做的,但它没有用:
我的问题是:使用 pfSense 实现目标的最佳方法是什么?如果指南概述了最佳方法,那么我会花更多时间尝试使其发挥作用,但我想确保在花时间之前没有更好的方法。提前谢谢。
PS:如果我的问题不够完美,我很抱歉,这是我第一次在这里提问。
答案1
您的要求看起来或多或少与任何公司的 VPN 类似;您希望您的笔记本电脑出现在您的家庭网络上,以便访问互联网(并且很可能进行其他访问)。
我没有使用过 IPsec VPN,正确配置后它们应该可以正常工作,但多年来我一直按照你的建议使用 pfSense 上的 OpenVPN 服务器以及 Windows、Linux 和 Android 上的 OpenVPN 客户端,所以我会给你一些关于 OpenVPN 方面的指导。
首先,推荐阅读:-https://doc.pfsense.org/index.php/VPN_Capability_OpenVPN - 您需要远程访问服务器部分 -https://www.highlnk.com/2013/12/configuring-openvpn-on-pfsense/ - 您可以跳过向导并直接进入向导后进入的正常设置选项卡。-https://openvpn.net/index.php/open-source/documentation/howto.html - 请记住,pfSense 中的所有 GUI 所做的就是为您编写大部分配置文件,并生成一个或三个密钥。
现在,我来谈谈高安全性设置的一些建议,因为我相信
- 在 PFsense、系统、证书管理器中
- 为你的 VPN 创建 CA
- 使用 SHA256 或 SHA512 进行签名,并使用 2048 或 4096 位 RSA 密钥。
- 即使在 ALIX(500Mhz 单核,256MB RAM)上,我也发现 4096 位密钥就可以了。
- 理想情况下,将其命名为“VPN1Home_CA_2014Dec”
- 当下一次 Heartbleed 漏洞迫使你重新生成证书时,或者你想将另一个 VPN 用于其他用途(例如婴儿监视器)时,你稍后就会需要它
- 使用 SHA256 或 SHA512 进行签名,并使用 2048 或 4096 位 RSA 密钥。
- 为你的 VPN 创建“服务器”证书
- 使用 SHA256 或 SHA512 进行签名,并使用 2048 或 4096 位 RSA 密钥。
- 将 CA 设置为您刚刚创建的 CA
- 理想情况下,将其命名为“VPN1Home_Server_2014Dec”
- 为您的笔记本电脑、手机以及其他任何您想要的东西创建“客户端”证书
- 猜测!
- 为 CA 创建 CRL(证书吊销列表)
- 您可以将其留空,但您最好在 VPN 中设置一个,以防您以后需要撤销证书。
- 为你的 VPN 创建 CA
- 在 pfSense,服务->OpenVPN
- WAN 接口
- 我喜欢选择一个临时范围(49152 到 65535)内的端口,而不是使用默认端口https://en.wikipedia.org/wiki/Ephemeral_port
- 勾选 TLS 身份验证
- TLS Auth 就是为什么我对 Heartbleed 并不那么担心的原因。
- 让它为你创建密钥
- DH参数长度2048或4096
- 即使在 ALIX(500Mhz 单核,256MB RAM)上,我也发现 4096 位密钥就可以了。
- 加密演算法
- 好的,在 ALIX(500Mhz 单核,256MB RAM)上我坚持使用 AES-128
- 在这里选择 Camellia 或 AES,具体取决于您的客户端支持什么以及您喜欢的长度。
- 显然,设置你的网络
- 必须检查重定向网关;这是控制“redirect-gateway def1”选项的选项
- 即通过 VPN 发送所有流量。
- 它会将你笔记本电脑的所有流量发送到 pfSense 盒子,然后再发送到互联网
- 即通过 VPN 发送所有流量。
- 不要使用压缩,除非你的大部分互联网数据传输都是可压缩的
- 除非需要,否则不要允许客户互相交谈
- 高级:输入
- tls-密码 DHE-RSA-AES256-SHA
- 注意:如果您使用纯基于证书的安全性,则无需创建 pfSense 用户
- 在 pfSense 中,确保已设置 DNS 转发/解析器。
- 在 pfSense 中,设置和/或验证您的防火墙规则
- WAN 接口
- 在您上面选择的端口上,入站,TCP 或 UDP 以匹配您的 VPN。
- 打开日志记录,直到一切正常,也许之后也是如此。
- OpenVPN 接口
- 在您分配给 VPN 客户端的 IP 范围内,将 DNS 上的 UDP(53)PASS 到隧道网络的 xyz1 地址,以便客户端可以通过 VPN 获取 DNS。
- 在您分配给 VPN 客户端的 IP 范围内,将 NTP 上的 UDP(123)传递到隧道网络的 xyz1 地址,以便客户端可以通过 VPN 获取时间同步。
- 至少在一切正常之前,请打开这些日志记录
- WAN 接口
- 对于您的客户
- 如果你愿意,你可以使用导出 OpenVPN 客户端配置的 pfSense 包
- 您也可以直接下载二进制包
- Android:Arne Schwabe 的 Android 版 OpenVPN
- Windows:OpenVPN 社区客户端
- Linux:使用发行版的 OpenVPN 包
- 您将需要以下文件:
- 系统、证书管理器、CA、仅限您的 CA 的证书
- 不要下载密钥!只下载证书
- 随意命名,也许是您已经命名的描述性名称!
- 用于“ca ca.crt”客户端配置行
- 显然用你的描述性文件名替换 ca.crt。
- 系统、证书管理器、证书、客户端证书和密钥
- 是的,对于这个,关键也是
- 随意命名,也许是您已经命名的描述性名称!
- “cert client.crt”客户端配置行中使用的客户端证书
- 显然用你的描述性文件名替换client.crt。
- “cert client.key”客户端配置行中使用的客户端密钥
- 显然用你的描述性文件名替换client.key。
- 服务、OpenVPN、您的 VPN、TLS 共享密钥
- 只需从文本框复制并粘贴到文本文件中,其默认名称为“ta.key”
- 用于“tls-auth ta.key 1”客户端配置行
- 显然用你的文件名替换ta.key。
- 系统、证书管理器、CA、仅限您的 CA 的证书
- 根据需要通过 GUI 编辑配置,或自行编辑 .conf 文件
- 匹配您在服务器中设置的参数;参考资料会有所帮助,或者您可以查找 pfSense 的 OpenVPN 服务器配置文件并简单阅读它;除了 tls-auth 上的 1 vs 0 之外,大多数密码参数对于两者来说都是相同的。
- 不要忘记添加 tls-cipher
- tls-密码 DHE-RSA-AES256-SHA
这张图片非常有用;对于那些再也看不到它的人来说,所需的“虚拟”配置看起来像
互联网 | pfSense | 笔记本电脑
请注意实际的我建议的配置是:
互联网(来自 pfSense 的位置)| pfSense | 互联网(仅 OpenVPN 连接)| 笔记本电脑
可能对您有用也可能没用的附加链接:http://pfsensesetup.com/video-pfsense-vpn-part-three-openvpn-pt-1/