如何使用iocage创建FreeNAS Jails
如何从命令行在FreeNAS服务器上安装和使用称为iocage的FreeBSD Jail管理工具?
如何使用iocage命令创建FreeNAS Jail?
iocage是FreeBSD的 Jail或容器管理器工具。
它也可以在基于FreeNAS的NAS系统上使用。
它具有FreeBSD操作系统必须提供的一些最佳功能和技术。
iocage工具通过用于管理监狱的简单易懂的命令语法提供了易用性。
该页面显示了如何使用iocage命令行选项管理FreeNAS Jails。
第1步登录FreeNAS服务器
使用ssh命令:
ssh user@freenas-box-name ssh Hyman@nas04
使用sudo命令成为root用户:
$ sudo -i
找到我们的FreeNAS服务器IP地址和接口名称,执行:
# ifconfig
请记下您的真实网络接口。
您必须激活,即将zpool设置为激活以使用iocage。
我的zpool名称是theitroad(使用zpool list
获取zpool列表),所以我运行:
# iocage activate theitroad
第2步:获取版本的FreeBSD以供监狱使用
执行以下命令(此操作只需执行一次):
# iocage fetch
使用以下zpool/zfs命令进行验证:
# zpool list # zfs list
步骤3使用iocage命令创建FreeNAS Jails
为名为igb1的监狱接口创建一个名为backup的监狱,其IP地址为192.168.2.30/24:
# iocage create -n backupjail ip4_addr="igb1|192.168.2.30/24" -r 11.1-RELEASE
输出示例:
backup successfully created!
列出监狱 Jail
要列出新创建的监狱运行:
# iocage list
输出示例:
+-----+------------+-------+--------------+--------------+ | JID | NAME | STATE | RELEASE | IP4 | +=====+============+=======+==============+==============+ | - | backupjail | down | 11.1-RELEASE | 192.168.2.30 | +-----+------------+-------+--------------+--------------+
启动名为backup的 Jail
# iocage start {jailNameHere} # iocage start backupjail
输出示例:
* Starting backupjail + Started OK + Starting services OK
FreeNAS重新启动时如何自动启动 Jail
# iocage set boot=on backupjail
输出示例:属性:引导已更新为on验证:
# iocage get all backupjail | less # iocage get all backupjail | grep boot # iocage get boot backupjail
如何登录 Jail
语法为:
# iocage console {yourJailNameHere} # iocage console backupjail
登录后,在backupjail上安装pkg命令:
# pkg
步骤4有用的 Jail管理命令
让我们看一些有用的iocage命令。
显示所有 Jail的资源使用情况
# iocage df
在指定的 Jail中运行命令
# iocage exec {jailNameHere} {FreeBSDCOmmandHERE} # iocage exec backupjail ifconfig
如何停止指定的 Jail或所有
# iocage stop ALL # iocage stop backupjail
重新启动指定的 Jail或所有
# iocage restart ALL # iocage restart backupjail
销毁/删除/删除指定的 Jail
这将破坏所有数据,因此请注意:
# iocage destroy backupjail
运行freebsd-update将指定的监狱更新到最新补丁程序级别
# iocage update backupjail
在FreeNAS上创建新 Jail的命令摘要
创建一个名为rsyncjail的 Jail:
# iocage create --release 11.1-RELEASE --name rsyncjail \ boot="on" \ allow_raw_sockets="1" \ ip4_addr="igb1|192.168.2.31/24" \ resolver="nameserver 192.168.2.254;nameserver 8.8.8.8"
在监狱中,更新所有软件包,启用SSHD,添加新用户并安装rsnapshot软件包:
# iocage console rsyncjail # pkg update && pkg upgrade # echo 'sshd_enable="YES"' >> /etc/rc.conf # service sshd start # pw useradd -n Hyman -G wheel -s /bin/tcsh -m -d /home/Hyman # passwd Hyman # pkg install rsnapshot
创建可以运行OpenVPN服务器或客户端的 Jail
在以下示例中,我将启用vnet,允许通过原始套接字ping,以使openvpn客户端监狱连接到我的Ubuntu OpenVPN服务器:
# iocage create --release 11.1-RELEASE --name openvpnjail \ vnet="on" boot="on" allow_raw_sockets="1" \ ip4_addr="vnet0|192.168.2.30/24" \ defaultrouter="192.168.2.254" \ resolver="nameserver 192.168.2.254;nameserver 8.8.8.8"
运行以下命令以允许为FreeBSD/FreeNAS监狱创建Tap设备:
/sbin/devfs rule -s 4 add path 'tun*' unhide
请注意,您必须在FreeNAS UI中添加以下预初始化任务,以便OpenVPN可以创建我通常为每个服务安装监牢的Tap设备。
例如,我为每个FreeBSD服务(例如Nginx/PHP/Perl/Python Web服务,MariaDB数据库服务器,Deluge,Duplicity/Rsnapshot备份服务等)创建了一个 Jail。