SSH,也称为安全shell,提供了一种远程访问pfsense防火墙的有效方法。 使用SSH而不是其他协议(如telnet)的主要优点是安全性。 SSH流量被完全加密,可以防止其他用户通过嗅探器进行攻击。 SSH还可以提供多个简单的远程shell,可以安全地传输文件,并将端口转发到远程网络。
启用SSH 服务
默认情况下,为了安全起见,SSH服务被禁用。启用服务登录到pfSense路由器的Web界面。
- 进入系统-高级设置-管理员访问选项卡
- 选中\’启用安全Shell\’检查框
- 通过在“SSH端口”框中输入新的端口号来更改默认端口。
- 单击页面底部的保存按钮应用更改并启动服务。
强烈建议更改服务的默认端口。 互联网上有成千上万的机器会搜索活动的SSH服务器,并试图强制使用root密码。 你可以通过选择1024以上的随机端口号来避免成为别人攻击的目标。添加额外的安全措施来防暴力入侵的另一种方法是设置Denyhosts服务。
测试本地安全SSH服务
测试安全SSH服务是否运行,可以使用Putty来进行连接。
Putty是一款非常受欢迎的(免费)SSH客户端,易于使用。 该程序只包含一个Putty.exe文件。
运行Putty后,在顶部的主机框中输入pfSense路由器的LAN IP地址或主机名。 如果将服务默认端口配置为其他端口,请将端口更改为在设置中输入的端口值。
点击程序底部的“打开”连接到服务器。
控制台菜单
如果连接成功,系统将提示你输入用户名,用户名为root,密码与管理员密码相同。要访问shell请输入数字8。
修改系统管理员密码
要修改系统的root密码,请在系统菜单中打开用户管理。点击管理员用户旁边的编辑按钮更改密码。也可以在这里设置其他帐户。
设置外网访问
为了从外部访问SSH服务,必须创建防火墙规则以允许外部访问通过,否则无法访问。要允许访问,请点击防火墙菜单中的“规则策略”。
创建防火墙规则
通过单击防火墙规则页面右下角的加号创建新的防火墙规则,打开防火墙规则编辑器页面。
新规则的默认操作是“通过”,这将允许外部地址的访问。
- 设置接口为WAN。
- 协议选择TCP,这是SSH运行的协议。
- 目的地选择 “WAN address(WAN地址)”。
- 目的地端口范围选择22,或在SSH框中配置的SSH运行的端口。“到”端口可以留空。
- 在描述栏输入备注 “开启外网访问SSH”
- 单击“保存”完成防火墙规则设置并应用更改。
经过上面的设置,现在已经可以在外网通过SSH远程访问pfsense防火墙了。
设置基于密钥的认证
即使您更改了SSH的监听端口,仍可以通过端口扫描发现该服务。 一旦发现机器人可以对服务器发起暴力攻击,试图找到密码较弱的帐户。
为了使服务更安全,可以启用基于密钥的身份验证。 通过启用密钥认证,攻击者可以尝试各类怀疑密码,但没有私钥,将永远不会被授予访问权限。
要关闭密码身份验证,并且需要安全的RSA密钥,请启用“禁用安全shell的密码登录”复选框,可以在系统-高级设置-管理员访问选项卡上找到这个设置。
生成密钥对
要利用基于密钥的登录,我们必须创建一对密钥。 公钥将被输入到pfSense,私钥将被存储在客户端上。
生成密钥对的最简单方法是使用Puttygen程序。单击然后生成按钮,然后移动鼠标创建一些随机性的数值。
添加公钥到服务器
生成密钥对之后,需要在pfSense的用户帐户中添加公钥。
- 打开系统-用户管理菜单。
- 在要添加密钥的用户旁边,单击“编辑用户”按钮。Admin用户即为SSH的root帐号。
- 找到“认证SSH密钥”,将Puttygen生成的公钥粘贴到框中。
- 单击保存。
保存私钥
最后一步是保存相应的私钥并配置Putty客户端来使用它。出于额外安全考虑,建议为私钥设置密码。没有密码短语,任何具有私钥文件副本的人都可以连接到服务器。 通过添加密码,密钥不能使用,而不知道这个短语是什么。
要将私钥存储在本地计算机上,请单击Puttygen中的保存私钥按钮。要将密钥加载到Putty中,请转到连接 \ SSH下找到的认证设置页面。 单击浏览按钮,找到保存私钥文件的位置。
测试密钥
密钥加载到客户端后,您可以尝试连接到SSH服务器,应该会看到如下面的屏幕截图中的消息,指出公钥正在用于身份验证。
如果为私钥分配了密码短语,则会在此时提示您输入密码。
使用WinSCP通过SSH传输文件
SSH也可用于使用SCP(安全复制协议)将文件导入到pfSense或从pfSense导出文件。 使用SCP,可以使用现有的SSH认证系统,将文件安全地传输到远程系统或从远程系统导入。
对于Windows用户,可以使用WinSCP程序。 WinSCP程序提供了一个易于使用的界面,用于通过SSH传输文件。
启动WinSCP后,在主机名中输入pfSense的外部ip地址,输入你设置的SSH端口号。使用与SSH连接时使用的相同凭据登录。
连接建立后,将直接在右侧列出远程系统的列表。 屏幕左侧显示本地文件系统。
WinSCP界面基本上与Windows资源管理器相同,可以在远程和本地计算机之间拖放文件和目录。