如何通过SSH远程访问pfSense
山姆是一家算法交易公司的网络分析师。他获得了UMKC的信息技术学士学位。
SSH,也被称为安全shell,提供了一种远程访问pfSense路由器的有效方法。使用SSH而不是telnet等其他协议的主要优点是安全性。SSH流量是完全加密的,不会被其他用户通过嗅探器或中间人类型的攻击看到。
SSH还可以提供不止一个简单的远程shell;您还可以安全地传输文件和提出港口到远程网络。
如何开启SSH服务
出于安全考虑,缺省情况下,SSH服务处于关闭状态。开启该服务需要登录pfSense路由器的web界面。
- 进入系统菜单中的高级设置页面。
- 勾选“启用安全外壳”复选框
- 通过在“SSH port”框中输入一个新的端口号来更改默认端口号。此步骤是可选的,但推荐使用。
- 单击页面底部的save以应用更改并启动服务。
我强烈建议更改服务的默认端口。互联网上有成千上万的机器人搜索活跃的SSH服务器,并试图暴力破解根密码。您可以通过选择1024以上的随机端口号来避免成为一个容易的目标。
另一种增加针对暴力破解攻击的额外安全性的方法是设置Denyhosts服务.
本地测试服务
此时,服务应该正在运行。要测试它,可以尝试连接客户端,例如腻子.
Putty是一种非常流行(而且免费)的SSH客户端,使用起来非常简单。该程序只包含一个单独的文件:Putty.exe。
运行Putty软件后,在顶部的主机框中输入pfSense路由器的LAN ip地址或主机名。如果您已经将服务配置为在不同的端口上运行,那么请将端口更改为您在设置中输入的端口。
点击程序底部的“open”连接到服务器。
控制台菜单
如果连接成功,系统将提示您输入用户名,请输入root。服务器还会提示您输入密码。密码将与您作为admin用户访问web界面时使用的密码相同。
要访问shell,请选择选项8。
修改Admin / Root密码
如果需要修改系统的root密码,请在系统菜单中打开用户管理器。单击admin用户旁边的编辑按钮来分配新密码。
如果你愿意,你也可以在这里设置额外的用户帐户。
启用Internet接入
为了从本地网络外部访问SSH服务,必须创建防火墙规则允许流量通过。如果没有允许流量的防火墙规则,数据包就会被防火墙丢弃。
要允许流量,请点击防火墙菜单中的“规则”。
新建防火墙规则
单击防火墙规则页面右下角的加号,创建新的防火墙规则。这将打开防火墙规则编辑器页面。
新规则的默认操作是“pass”,这将允许流量。
- 配置接口为广域网。
- 确保将协议设置为TCP,这是SSH运行的协议。
- 在目标设置中,选择一种类型的“WAN地址”。
- 在目的端口范围中,在from框中输入22,或您配置SSH要运行的端口。你可以让'to'端口为空。
- 输入规则的描述,例如“允许SSH到WAN”。
- 单击“保存”,完成防火墙规则的创建。
申请更改
在应用更改之前,新的防火墙规则不会被激活。点击“Apply Changes”按钮,在系统中启用新规则。
应用新规则后,您应该能够通过将客户端指向pfSense框的WAN IP地址来访问SSH服务。我喜欢建立动态DNS而不必跟踪IP地址。
设置基于密钥的身份验证
即使您已经更改了SSH的侦听端口,仍然可以通过端口扫描发现服务。一旦被发现,机器人就会对服务器发起暴力破解攻击,试图找到带有弱密码的账户。
为了使服务更加安全,您可以启用基于密钥的身份验证。启用密钥身份验证后,黑客可以一整天都试图猜测密码,但如果没有私钥,他们将永远无法获得访问权限。
要关闭密码验证并需要安全的RSA密钥,请启用复选框“为安全shell禁用密码登录”。您可以在安全shell部分的高级系统设置页面上找到此设置。
生成公私钥对
要利用基于密钥的登录,我们必须创建一对密钥。公钥将被输入pfSense,私钥将存储在客户端。
生成密钥对的最简单方法是使用Puttygen程序.点击生成按钮,然后移动鼠标,为键创建一些随机性。
向服务器添加公钥
生成密钥对后,需要在pfSense上将公钥添加到用户帐号中。
- 在系统菜单中打开用户管理器。
- 点击“E”按钮旁边的用户,你想要添加的关键。在用户管理器中,root用户称为admin。
- 单击“授权密钥”部分中标有“点击粘贴授权密钥”的复选框。
- 将Puttygen生成的公钥粘贴到方框中。
- 单击save。
保存私钥
最后一步是保存对应的私钥,并配置Putty客户端使用。为了获得更多的安全性,我建议为私钥设置一个密码短语。
没有密码短语,任何拥有私钥文件副本的人都可以连接到服务器。通过添加密码短语,如果不知道这个短语是什么,就不能使用密钥。
若要将私钥保存在本地计算机上,请单击Puttygen中的“保存私钥”按钮。
要将密钥加载到Putty,请转到“连接\SSH”下的认证设置页面。单击浏览按钮并找到保存私钥文件的位置。
测试的关键
在客户端加载密钥后,可以尝试连接SSH服务器。您应该会看到如下截图所示的消息,该消息表明正在使用公钥进行身份验证。
如果您为私钥分配了一个密码短语,此时将提示您输入它。
使用WinSCP通过SSH协议传输文件
SSH还可以用于通过SCP(安全复制协议)向pfSense传输文件。使用SCP,您可以在利用现有SSH身份验证系统的同时,安全地从远程系统传输文件。
对于Windows用户,有一个很好的SCP客户端称为有WinSCP.WinSCP程序提供了一个简单易用的接口,可以通过SSH协议传输文件。
WinSCP启动后,进入登录界面;在“host name”中输入pfSense的ip地址。如果您没有在默认端口(22)上运行SSH,则相应地更改端口号。
使用与使用SSH连接时相同的凭据登录。
在建立连接之后,您将在右侧看到远程系统的直接列表。屏幕左侧显示本地文件系统。
WinSCP界面基本上与Windows资源管理器相同;您可以在远程计算机和本地计算机之间拖放文件和目录。
SSH的多种用途
如您所见,SSH功能非常广泛!您还可以使用该协议做更多的事情,以使系统管理更容易。您甚至可以设置脚本,以便在预定的时间在远程系统上运行命令。最重要的是,通过SSH完成的一切都是完全安全的,这要归功于它使用的加密。
如果你知道更多安全外壳的伟大用途,请在下面留下评论。
就作者所知,这篇文章是准确而真实的。内容仅用于信息或娱乐目的,不替代个人咨询或商业、金融、法律或技术问题的专业意见。
©2012 Sam Kear
评论
" Mansoor2018年11月16日:
非常有用的视频,请加载一些关于通过SSH隧道进行吞吐量测试的视频,因为关于它们的视频非常少。
ibsen Pinheiro达芬奇2017年10月12日:
我刚从Protectli买了一个Vault,并安装了pfSense防火墙。
你在辅导课上帮了我大忙。
非常感谢。