Existe uma ferramenta para gerenciar jails do FreeBSD que conhece o ZFS?

6

O ZFS sob o FreeBSD permite atribuir um sistema de arquivos a uma cadeia, de tal forma que uma conta na cadeia com os privilégios apropriados possa acessar o sistema de arquivos, criar novos sistemas de arquivos subordinados e assim por diante. Pelo menos com 8-STABLE, esses recursos não estão integrados no script /etc/rc.d/jail existente. O processo básico parece algo como:

sysctl -w security.jail.enforce_statfs=0
sysctl -w security.jail.mount_allowed=1
zfs set jailed=on <filesystem>
zfs jail <jid> <filesystem>

E também exige a exposição do nó do dispositivo zfs dentro da cadeia.

Ao mesmo tempo, parece haver uma profusão de ferramentas por aí (ezjail, carcereiro, diretor, e geralmente /usr/ports/sysutils/*jail* ) que afirmam ser mais fácil / melhor / mais poderoso / etc, mas a maioria delas parece só deve ser mantido com leveza e não muito de uma vitória contra o roteiro de prisão padrão.

Eu gostaria de evitar reinventar a roda. Existe uma ferramenta de gerenciamento de cadeia que está bem integrada ao ZFS? Eu estou procurando por algo que possa cuidar da configuração das regras necessárias do devfs, configurações sysctl e atributos zfs ao inicializar uma cadeia ... e, idealmente, permitir referências baseadas em nome a cadeias, que, embora apoiadas por muitos dos terceiros ferramentas de festas está tragicamente ausente do roteiro de prisão.

    
por larsks 07.06.2011 / 23:20

2 respostas

4
Depois de bisbilhotar um pouco, verifica-se que a versão recente do ejjail já tem esse suporte. As partes principais são as seguintes opções de configuração em /usr/local/etc/ezjail.conf :

ezjail_use_zfs="YES"
ezjail_jailzfs="tank/jails"

E usando -c zfs ao criar uma cadeia, assim:

ezjail-admin create -c zfs myjail 192.168.1.10

Você associa conjuntos de dados do ZFS a uma cadeia usando o comando ezjail-admin config (não é possível fazer isso como parte do comando create ):

ezjail-admin config -z tank/data/myjail myjail

Isso pressupõe que você tenha configurado o conjunto de dados do ZFS e configurado as configurações de sysctl e as regras de devfs apropriadas para fazer isso funcionar.

Seus conjuntos de dados do ZFS precisam ter a opção jailed definida:

zfs set jailed=on tank/data/myjail

Você deseja o seguinte em /etc/sysctl.conf :

# support zfs in jails
security.jail.mount_allowed=1
security.jail.enforce_statfs=0

E eu uso o seguinte conjunto de regras do devfs para jails configurados com o ezjail:

[devfsrules_zfsjail=100]
add include $devfsrules_jail
add path zfs unhide
    
por 09.06.2011 / 17:56
0

O CBSD (no link ) tem um bom conhecimento do ZFS.

    
por 21.06.2015 / 17:17