当前位置:   article > 正文

FreeBSD原生虚拟化Jail的管理软件比较

FreeBSD原生虚拟化Jail的管理软件比较

当前流行的虚拟化技术,除了VMWare、VirtualBox等重型虚拟机,Docker等中型虚拟机外,还有jail等轻型虚拟机解决方案。

jail的简介

Jail最早在FreeBSD 4.X便可使用,并且一直在持续强化它的功能、效率、稳定性以及安全性。

Jail建立在chroot概念之上,会更改一系列程序的根目录。这可以创造一个安全的环境,将程序与系统的其他部份分隔。在chroot的环境所建立的程序不能存取该环境以外的档案或资源。也因此,渗透一个在chroot的环境执行的服务并不会让整个系统被攻击者渗透。但chroot有许多限制,只适合用在简单的工作,不需要许多弹性或复杂性、进阶功能的工作。随着时间推移,许多可以逃离chroot的环境的方法已经被找到,让这个方法不再是确保服务安全的理想方案。

Jail用许多方式改进了传统chroot环境的概念。在传统chroot环境,程序仅限制在一部份档案系统可存取的地方。其余的系统资源、系统使用者、执行的程序以及网络子系统被chroot的程序及主机系统的程序所共享。Jail透过虚拟化存取档案系统、使用者及网络子系统来扩展这个模型,可使用更多细微的控制参数来调校Jail的环境存取方式,Jail可算是一种操作系统层级的虚拟化。

Jail的四个要素:
一个子树状目录:进入Jail的起点目录,一但在Jail中,程序便没有权限离开此目录之外。
一个主机名称:将会由Jail所使用。
一个IP位址:用来分配给Jail。Jail的IP位址通常是现有网络界面的别名位址。
一个指令:要在Jail中可执行的执行档路径名称。该路径是Jail环境根目录的相对路径。

Jail管理器

在FreeBSD系统中,jail的管理器有多种

其它还有ocijail 

https://github.com/dfr/ocijail

下面单独介绍几种比较流行的管理器

CBSD

cbsd同时还可以管理jail和bhyve (Yet one more wrapper around jail, bhyve, QEMU and XEN) ,代码:GitHub - cbsd/cbsd: Yet one more wrapper around jail, bhyve, QEMU and XEN。这里还有作者关于docker的解决方法:CBSD — FreeBSD Jail and Bhyve Management Tools

实践文档:jail管理器CBSD实践@FreeBSD-CSDN博客 

BastileBSD

BastileBSD手册:Bastille — Bastille 0.10.20231125-beta documentation  代码:GitHub - BastilleBSD/bastille: Bastille is an open-source system for automating deployment and management of containerized applications on FreeBSD.

AppJail

AppJail is an open-source BSD-3 licensed framework entirely written in POSIX shell and C to create isolated, portable and easy to deploy environments using FreeBSD jails that behaves like an application. 手册:AppJail Handbook 

源码:GitHub - DtxdF/AppJail: Simple and easy-to-use tool for creating portable jails. 

AppJail的特点是它可以设置一种叫tiny jail的模式,只提供相关c代码的文件即可。 它还支持LinuxJails 

AppJail实践文档:Jail管理器AppJail的使用@FreeBSD-CSDN博客

AppJail主页写的几种管理器的对比图

除了没有cbsd,其它几种都在,好像就AppJail最牛

AppJailbastillepotiocageezjail
ZFS supportsupportedsupportedrequiredrequiredsupportedZFS support
LanguageC, Bourne ShellBourne ShellRust, Bourne ShellPythonBourne ShellLanguage
AutomationMakejail, Initscripts, ImagesTemplatesFlavours, ImagesPluginsFlavoursAutomation
Jail Typeclone, copy, tiny, thin, thick, empty, linux+debootstrapthin, thick, vnet, Linux, emptythickclone, basejail, template, empty, thickbasejailJail Type
VNETSupportedSupportedSupportedSupportedNot SupportedVNET
Dynamic firewallYesRequires a loopback interfaceYesNoNoDynamic firewall
Resource controlFull supportYes, but it does not support statistics and all rctl(8) actions and does not support actions by ruleBasic: CPU and memory onlyLegacy onlyNot SupportedResource control
CPU SetsYesNoYesYesYesCPU Sets
IPv6 supportYes (+SLAAC)YesYesYesYesIPv6 support
Linux containersYesYes??Yes??Linux containers
Dynamic DEVFS Ruleset ManagementYesNoNoNoNoDynamic DEVFS Ruleset Management
Network managementVirtual networks, BridgesNoSubnet, requires sysutils/potnetNoNoNetwork management
Jail dependencyYesNoYesYesNoJail dependency
SupervisorYes (Healthcheckers)NoNoNoNoSupervisor
Log managementYesNoNoNoNoLog management
Parse jail.conf(5) file for syntax errorsYesNot supportedYesYesYesParse jail.conf(5) file for syntax errors
Volume managementYesNoBasic, Only supported when using the fscomp featureBasicNoVolume management
Parallel startupYes (Healthcheckers, jails & NAT)NoNoNoNoParallel startup
NetgraphYesNoNoNoNoNetgraph
Startup order controlYesYes, but don't support prioritiesYes, but don't support prioritiesYesYes, using rcorder(8)Startup order control
X11 supportYesNoNoNoNoX11 support
import/exportYesYesYesYesYesimport/export

CBSD主页画的jial管理软件生命周期图

调试

bastille使用报错

bastille bootstrap release update freebsd
$bastille_zfs_enable is not set properly - see rc.conf(5).
ZFS is enabled in rc.conf but not bastille.conf. Do you want to continue? (N|y)
y
$bastille_zfs_enable is not set properly - see rc.conf(5).
Usage: bastille bootstrap [release|template] [update|arch] 

不会用...

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/695055
推荐阅读
相关标签
  

闽ICP备14008679号