如何在FreeBSD服务器/ Jail上启用SSHD
在安装了FreeBSD Jail并设置了IP地址。
无法直接进入FreeBSD Jail。
如何在FreeBSD服务器上启用OpenSSH SSHD?
FreeBSD入狱不过是操作系统级的虚拟化。
它允许开发人员和系统管理员将FreeBSD系统划分为独立的小型系统。
例如,我们可以为Web服务器设置一个 Jail,为电子邮件服务器设置另一个 Jail。
本快速教程介绍了如何在FreeBSD上启用SSHD服务器。
步骤1登录FreeBSD服务器以在FreeBSD上启用SSHD
使用ssh命令或直接使用控制台登录。
例如,我正在使用ssh登录到我的FreeBSD主机:
$ ssh [email protected]
运行jls命令列出您的 Jail并记下JID( JailID):
$ jls
JID IP Address Hostname Path 1 rsnapshot /theitroad/jails/rsnapshot/root
步骤2在 Jail内执行命令以获取shell程序访问权限
现在,我们登录到主机并获取了JID。
现在是时候通过其JID在 Jail中获得一个root shell了。
换句话说,按以下方式使用jexec命令:
$ sudo jexec JID sh $ sudo jexec JID tcsh $ su # jexec 1 tcsh
接下来将了解如何在FreeBSD Jail上启用SSHD。
步骤3在FreeBSD Jail或服务器上启用SSHD
在/etc/rc.conf中将sshd_enable
设置为YES,以在FreeBSD box/jail上启用SSHD,然后使用service命令启动它:
# echo 'sshd_enable="YES"' >> /etc/rc.conf
关于sysrc命令的注意事项
是否启用sshd?
找出:
# sysrc sshd_enable
如果未在系统上启用,请启用它:
# sysrc sshd_enable=YES
有关更多信息,请参见sysrc命令手册页。
步骤4在FreeBSD服务器上启动SSHD
运行服务命令,如下所示:
# service sshd start
验证一下:
# service sshd status
我们还可以使用netstat命令或sockstat命令来验证ssh是否正在运行并且TCP端口22已打开:
# netstat -nat | grep LISTEN # sockstat -4 -l
有关更多信息,请参见FreeBSD列表/使用sockstat命令显示打开的端口。
您现在可以使用ssh登录:
$ ssh user-name@jail-ip-address-here $ ssh [email protected]
步骤5在FreeBSD上控制OpenSSH守护程序
语法为:
# service sshd start # <-- start the service # service sshd stop # <-- stop the service # service sshd restart # <-- restart the service # service sshd status # <-- Get the status of service # service -e # <-- Show services that are enabled on FreeBSD box/jail
步骤6添加新的FreeBSD用户并设置sudo访问
默认情况下,不允许root用户使用ssh登录。
从安全的角度来看,这也是一种好习惯。
因此,我们必须在FreeBSD上添加一个新用户。
让我们以交互方式添加新用户:
# adduser
经验丰富的sysadmin的另一个选项是pw命令:
# pw user add -n Hyman -c '' -d /home/Hyman -G wheel -m -s /bin/tcsh # passwd Hyman
确保使用pkg命令安装了sudo:
# pkg install sudo
然后
# visudo
查找并取消注释以下行,以允许wheel的成员执行任何命令:
%wheel ALL=(ALL) ALL
保存并关闭vim中的文件。
测试一下
再次使用ssh命令登录FreeBSD Jail:
$ ssh [email protected]
获得root shell:
$ sudo -i