Path: blob/main/documentation/content/ru/books/handbook/jails/_index.adoc
18098 views
---
description: 'ΠΠ»Π΅ΡΠΊΠΈ (jails) ΡΠ»ΡΡΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ chroot Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ'
next: books/handbook/mac
params:
path: /books/handbook/jails/
part: 'Π§Π°ΡΡΡ III. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ'
prev: books/handbook/security
showBookMenu: 'true'
tags: ["jails", "creating", "managing", "updating"]
title: 'ΠΠ»Π°Π²Π° 17. ΠΠ»Π΅ΡΠΊΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ'
weight: 21
---
[[jails]]
= ΠΠ»Π΅ΡΠΊΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 17
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/jails/
ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]
ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
[[jails-synopsis]]
== ΠΠ±Π·ΠΎΡ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ β ΡΠ»ΠΎΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°, Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΆΠΈΠ·Π½Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ. ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°ΡΡΠΎ ΡΠ»ΡΡΡΠ°ΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ FreeBSD, β ΡΡΠΎ _ΠΊΠ»Π΅ΡΠΊΠΈ (jails)_. ΠΠ»Π΅ΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π°ΡΠΈΠ½Π°Ρ Ρ FreeBSD 4.X ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΠ»Π°Π½Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΠ»Π΅ΡΠΊΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ man:chroot[2], ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ Π½Π°Π±ΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎΡΠ΅ΡΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ chroot, Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌ Π·Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΡ ΡΠ»ΡΠΆΠ±Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ chroot, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΄Π½Π°ΠΊΠΎ `chroot` ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. ΠΠ½ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ
Π·Π°Π΄Π°Ρ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΡ
Π±ΠΎΠ»ΡΡΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ
, ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ. Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²ΡΠΉΡΠΈ ΠΈΠ· ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ `chroot`, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π½Π΅ ΡΠ°ΠΌΡΠΌ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
ΠΠ»Π΅ΡΠΊΠΈ ΡΠ»ΡΡΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ chroot Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
Π ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ chroot ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ΡΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π² chroot ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ»Π΅ΡΠΊΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·ΠΈΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½Π°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ΅ΡΠΈ. ΠΠΎΡΡΡΠΏΠ½Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅. ΠΠ»Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ² Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠ° Π³Π»Π°Π²Π° ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ:
* Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ»Π΅ΡΠΊΠ° ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ
ΡΠ΅Π»Π΅ΠΉ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² FreeBSD.
* Π’ΠΈΠΏΡ ΠΊΠ»Π΅ΡΠΎΠΊ.
* Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠΈ Π΄Π»Ρ ΠΊΠ»Π΅ΡΠΊΠΈ.
* Π€Π°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
* ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΊΠ»Π΅ΡΠΊΠΈ.
* ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠ»Π΅ΡΠΊΡ.
* ΠΡΠ½ΠΎΠ²Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ, ΠΊΠ°ΠΊ ΠΈΠ·Π½ΡΡΡΠΈ, ΡΠ°ΠΊ ΠΈ ΡΠ½Π°ΡΡΠΆΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
* ΠΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΊΠ»Π΅ΡΠΎΠΊ.
* ΠΠ΅ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΠΊΠ»Π΅ΡΠΎΠΊ FreeBSD.
[[jail-types]]
== Π’ΠΈΠΏΡ ΠΊΠ»Π΅ΡΠΎΠΊ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, Ρ
ΠΎΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ ΠΊΠ»Π΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΠΏΠΎΠ², ΠΈΡ
Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
[[thick-jails]]
=== Π’ΠΎΠ»ΡΡΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ (Thick Jails)
Π’ΠΎΠ»ΡΡΠ°Ρ ΠΊΠ»Π΅ΡΠΊΠ° (thick jail) β ΡΡΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΎΡΠΌΠ° ΠΊΠ»Π΅ΡΠΊΠΈ FreeBSD. Π ΡΠΎΠ»ΡΡΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠ΅ ΠΏΠΎΠ»Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΊΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠ»Π΅ΡΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ FreeBSD, Π²ΠΊΠ»ΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΠ»Π΅ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ FreeBSD, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ. Π’Π°ΠΊΠ°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π° Ρ
ΠΎΡΡΠ΅ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ
ΠΊΠ»Π΅ΡΠΊΠ°Ρ
.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΎΠ»ΡΡΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ:
* ΠΡΡΠΎΠΊΠ°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ: ΠΏΡΠΎΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Ρ ΠΎΡ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ.
* ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ: ΡΠΎΠ»ΡΡΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ.
* ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ»Π΅ΡΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΡΠ΅Π΄Ρ ΠΊΠ»Π΅ΡΠΊΠΈ, Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²Π»ΠΈΡΠ½ΠΈΡ Π½Π° Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠΎΠ»ΡΡΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ:
* Π Π΅ΡΡΡΡΠ½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠ»Π΅ΡΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎΠ»ΡΡΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ½ΠΊΠΈΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ.
* ΠΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅: ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠ»Π΅ΡΠΊΠ° ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ
Π±Π°Π·ΠΎΠ²ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
[[thin-jails]]
=== Π’ΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ (Thin Jails)
Π’ΠΎΠ½ΠΊΠ°Ρ ΠΊΠ»Π΅ΡΠΊΠ° (thin jail) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π· ΡΠ½ΠΈΠΌΠΊΠΈ OpenZFS ΠΈΠ»ΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ NullFS ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Π΄ΡΠ±Π»ΠΈΡΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΌΠ΅Π½ΡΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ»ΡΡΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠ΅ΠΉ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ»ΡΡΡΠΌΠΈ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ½ΠΊΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠΊΡΠ°ΡΡΠ΅, ΡΠΎΠ½ΠΊΠ°Ρ ΠΊΠ»Π΅ΡΠΊΠ° Π² FreeBSD β ΡΡΠΎ ΡΠΈΠΏ ΠΊΠ»Π΅ΡΠΊΠΈ FreeBSD, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ, Π½ΠΎ Π½Π΅ Π²ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΎΠ½ΠΊΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ:
* ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ²: ΡΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ»ΡΡΡΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠ»Π΅ΡΠΎΠΊ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π΅Π· ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ².
* ΠΡΡΡΡΠΎΠ΅ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊ ΡΠΎΠ½ΠΊΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ»ΡΡΡΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ Π±ΡΡΡΡΠΎΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ².
* Π£Π½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ
ΠΎΡΡΠ°, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ) Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π½Π° Ρ
ΠΎΡΡΠ΅. ΠΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΠ»ΡΡΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ.
* ΠΠ±ΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ: ΡΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Ρ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΡΠΊΠ° ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠΎΠ½ΠΊΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ:
* Π£ΠΌΠ΅Π½ΡΡΠ΅Π½Π½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ: ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΠΎΠ½ΠΊΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΌΠ΅Π½ΡΡΡΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ»ΡΡΡΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Π°, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
* ΠΡΠΎΠ±Π»Π΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: ΡΠΌΠ΅Π½ΡΡΠ΅Π½Π½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ Π² ΡΠΎΠ½ΠΊΠΈΡ
ΠΊΠ»Π΅ΡΠΊΠ°Ρ
ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ³ΡΠΎΠ·Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΈΠ»ΠΈ Π½Π° Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ.
* ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ: Π΅ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠΎΠ½ΠΊΠΈΠΌ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌ ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΎΠ΄Π½ΠΈΡ
ΠΈ ΡΠ΅Ρ
ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡΡΡ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠΈΠ»ΠΈΠΉ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
* ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ: ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠ΅Π΅ΡΡ ΠΎΡ ΠΎΠ±ΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ.
[[service-jails]]
=== Π‘Π΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ (Service Jails)
Π‘Π΅ΡΠ²ΠΈΡΠ½Π°Ρ ΠΊΠ»Π΅ΡΠΊΠ° (service jail) Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Ρ
ΠΎΡΡΠΎΠΌ (ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΡΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ β [.filename]#/#) ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π»ΡΠ±ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° Ρ
ΠΎΡΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ ΠΆΠ΅ ΡΡΡΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΡΠΎ ΠΈ Ρ
ΠΎΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ Π½Π΅Ρ Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ Π² ΠΊΠ»Π΅ΡΠΊΠ°Ρ
, Π½ΠΎ Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠΈ Ρ
ΠΎΡΡΠ° ΠΈ ΡΠ½ΡΡΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ β Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ±/Π΄Π΅ΠΌΠΎΠ½ΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π½Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ
ΡΠ°ΠΊΠΎΠΉ ΡΠ»ΡΠΆΠ±ΠΎΠΉ/Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ. Π‘Π΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π² FreeBSD 15.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ:
* ΠΡΠ»Π΅Π²ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: Π΄Π»Ρ ΡΠ»ΡΠΆΠ±Ρ, Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ»Π΅ΡΠΊΠ΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² [.filename]#/etc/rc.conf#, Π΄Π»Ρ ΡΠ»ΡΠΆΠ±Ρ, Π½Π΅ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ»Π΅ΡΠΊΠ΅, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
* Π Π΅ΡΡΡΡΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ: ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ΅ΠΌ ΡΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ².
* ΠΡΡΡΡΠΎΠ΅ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ½ΠΊΠΈΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ/Π΄Π΅ΠΌΠΎΠ½Ρ ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°/Π΄Π΅ΠΌΠΎΠ½Π°.
* ΠΠ±ΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ: ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Ρ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΡΠΊΠ° ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
* ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²: ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠ»ΡΠΆΠ±Ρ, ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ:
* Π£ΠΌΠ΅Π½ΡΡΠ΅Π½Π½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ: ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ»ΡΡΠΎΠΉ ΠΈΠ»ΠΈ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΎΠΉ.
* ΠΡΠΎΠ±Π»Π΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: ΡΠΌΠ΅Π½ΡΡΠ΅Π½Π½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ Π² ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΊΠ°Ρ
ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ³ΡΠΎΠ·Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½Π° ΡΠΈΠ»ΡΠ½Π΅Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π²ΡΡ Π² Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ»Π΅ΡΠΎΠΊ, ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΠ°Ρ Π½ΠΈΠΆΠ΅, Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΡΠΈΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ crossref:jails[service-jails-config, ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ].
[[vnet-jails]]
=== ΠΠ»Π΅ΡΠΊΠΈ VNET
ΠΠ»Π΅ΡΠΊΠ° FreeBSD VNET β ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ΅Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅ΡΠ΅Π²ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ
ΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅Ρ. ΠΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ, ΡΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΎΡ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ.
ΠΠΎ ΡΡΡΠΈ, ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ VNET Π² FreeBSD Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠ»Π΅ΡΠΊΡ VNET ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΡΠΎΠΉ, ΡΠ°ΠΊ ΠΈ ΡΠΎΠ½ΠΊΠΎΠΉ.
[[linux-jails]]
=== ΠΠ»Π΅ΡΠΊΠΈ Linux
ΠΠ»Π΅ΡΠΊΠΈ Linux Π² FreeBSD β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ FreeBSD, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Linux ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ FreeBSD. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π·Π° ΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Linux ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Linux Ρ ΡΠ΄ΡΠΎΠΌ FreeBSD. Π¦Π΅Π»Ρ ΠΊΠ»Π΅ΡΠΎΠΊ Linux β ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Linux-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ FreeBSD Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Π΅ Linux.
[[host-configuration]]
== ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Ρ
ΠΎΡΡΠ°
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ»Π΅ΡΠΊΡ Π½Π° Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠΈΠ»ΠΈΡΡ man:jail[8], ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΡΠΈ Ρ
ΠΎΡΡΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π»ΠΈ Ρ
ΠΎΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ OpenZFS ΠΈΠ»ΠΈ UFS.
[TIP]
====
ΠΠ΅ΡΡΠΈΡ FreeBSD, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ Π² ΠΊΠ»Π΅ΡΠΊΠ΅, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½ΠΎΠ²Π΅Π΅ Π²Π΅ΡΡΠΈΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Π½Π° Ρ
ΠΎΡΡΠ΅.
====
[[host-configuration-jail-utility]]
=== Π£ΡΠΈΠ»ΠΈΡΠ° jail
Π£ΡΠΈΠ»ΠΈΡΠ° man:jail[8] ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ.
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# sysrc jail_enable="YES"
# sysrc jail_parallel_start="YES"
....
[TIP]
====
Π‘ `jail_parallel_start` Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
====
[[jails-networking]]
=== Π‘Π΅ΡΠ΅Π²ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅
Π‘Π΅ΡΡ Π΄Π»Ρ ΠΊΠ»Π΅ΡΠΎΠΊ FreeBSD ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
Π Π΅ΠΆΠΈΠΌ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ
ΠΎΡΡΠ° (ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ IP)::
Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ
ΠΎΡΡΠ° (host networking) ΠΊΠ»Π΅ΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ, ΡΡΠΎ ΠΈ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ IP-Π°Π΄ΡΠ΅Ρ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠ»Π΅ΡΠΊΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ IP-Π°Π΄ΡΠ΅ΡΠ°, ΠΈ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ°ΡΠΈΠΊ Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅ΡΡΡ Ρ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ Ρ
ΠΎΡΡΠ°.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠΈ (VNET)::
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠΈ (VNET) β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ FreeBSD, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ΅ΠΆΠΈΠΌ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ
ΠΎΡΡΠ° (host networking). VNET ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΈΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ IP-Π°Π΄ΡΠ΅ΡΠ°, ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ
ΠΌΠ°ΡΠΈΠ½Π°Ρ
.
Π‘ΠΈΡΡΠ΅ΠΌΠ° netgraph::
man:netgraph[4] β ΡΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΡΠ΄ΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ°ΡΠΈΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π΅ΡΠΊΠΎΠΉ ΠΈ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ.
[[host-configuration-directories]]
=== ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π΄Π΅ΡΠ΅Π²Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΊΠ»Π΅ΡΠΊΠΈ
ΠΠ»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠ»Π΅ΡΠΎΠΊ Π½Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ [.filename]#/jail#, Π΄ΡΡΠ³ΠΈΠ΅ β [.filename]#/usr/jail#, Π° ΡΡΠ΅ΡΡΠΈ β [.filename]#/usr/local/jails#. Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ [.filename]#/usr/local/jails#.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° [.filename]#/usr/local/jails# Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ:
* [.filename]#media# Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΆΠ°ΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ.
* [.filename]#templates# Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ½ΠΊΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ.
* [.filename]#containers# Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ OpenZFS Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΡΡΠΈΡ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²:
[source, shell]
....
# zfs create -o mountpoint=/usr/local/jails zroot/jails
# zfs create zroot/jails/media
# zfs create zroot/jails/templates
# zfs create zroot/jails/containers
....
[TIP]
====
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ `zroot`, Π½ΠΎ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ
.
====
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ UFS Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²:
[source, shell]
....
# mkdir /usr/local/jails/
# mkdir /usr/local/jails/media
# mkdir /usr/local/jails/templates
# mkdir /usr/local/jails/containers
....
[[jail-configuration-files]]
=== Π€Π°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ»Π΅ΡΠΎΠΊ.
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Π² ΡΠ°ΠΉΠ» [.filename]#/etc/jail.conf#. ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ [.filename]#/etc/jail.conf.d/#.
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π½Π° Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠ°Π»ΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ, Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ°ΠΉΠ» [.filename]#/etc/jail.conf#. ΠΡΠ»ΠΈ Π½Π° Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ [.filename]#/etc/jail.conf.d/#.
Π€Π°ΠΉΠ»Ρ Π² [.filename]#/etc/jail.conf.d/# Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ `.conf`, ΠΈ ΠΈΡ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π² [.filename]#/etc/jail.conf#:
[.programlisting]
....
.include "/etc/jail.conf.d/*.conf";
....
Π’ΠΈΠΏΠΈΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
[.programlisting]
....
jailname { <.>
# STARTUP/LOGGING
exec.start = "/bin/sh /etc/rc"; <.>
exec.stop = "/bin/sh /etc/rc.shutdown"; <.>
exec.consolelog = "/var/log/jail_console_${name}.log"; <.>
# PERMISSIONS
allow.raw_sockets; <.>
exec.clean; <.>
mount.devfs; <.>
# HOSTNAME/PATH
host.hostname = "${name}"; <.>
path = "/usr/local/jails/containers/${name}"; <.>
# NETWORK
ip4.addr = 192.168.1.151; <.>
ip6.addr = ::ffff:c0a8:197 <.>
interface = em0; <.>
}
....
<.> `jailname` β ΠΈΠΌΡ ΠΊΠ»Π΅ΡΠΊΠΈ.
<.> `exec.start` β ΠΊΠΎΠΌΠ°Π½Π΄Π°(Ρ), Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π² ΡΡΠ΅Π΄Π΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΡΠΈ Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ. Π’ΠΈΠΏΠΈΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β "/bin/sh /etc/rc".
<.> `exec.stop` β ΠΊΠΎΠΌΠ°Π½Π΄Π°(Ρ), Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π² ΡΡΠ΅Π΄Π΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ. Π’ΠΈΠΏΠΈΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β "/bin/sh /etc/rc.shutdown".
<.> `exec.consolelog` β ΡΠ°ΠΉΠ» Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (stdout ΠΈ stderr).
<.> `allow.raw_sockets` β ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ raw-ΡΠΎΠΊΠ΅ΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠ°ΠΊ man:ping[8] ΠΈ man:traceroute[8], Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
<.> `exec.clean` β Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΡΠΈΡΡΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ.
<.> `mount.devfs` β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ man:devfs[5] Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ [.filename]#/dev# Π²Π½ΡΡΡΠΈ chroot ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° devfs_ruleset, ΡΡΠΎΠ±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
<.> `host.hostname` β ΠΈΠΌΡ Ρ
ΠΎΡΡΠ° Π΄Π»Ρ ΠΊΠ»Π΅ΡΠΊΠΈ.
<.> `path` β ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ Π΄Π»Ρ ΠΊΠ»Π΅ΡΠΊΠΈ. ΠΡΠ±ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ, Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `jail`, Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ΅Π· man:jexec[8], Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
<.> `ip4.addr` β IPv4-Π°Π΄ΡΠ΅Ρ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ IPv4. ΠΠ΅ΡΠ²ΡΠΉ β ΡΠΊΠ°Π·Π°ΡΡ IP-Π°Π΄ΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ IP-Π°Π΄ΡΠ΅ΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΡΠΎΡΠΎΠΉ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ `ip4` ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ `inherit`, ΡΡΠΎΠ±Ρ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ IP-Π°Π΄ΡΠ΅Ρ Ρ
ΠΎΡΡΠ°.
<.> `ip6.addr` β IPv6-Π°Π΄ΡΠ΅Ρ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ IPv6. ΠΠ΅ΡΠ²ΡΠΉ β ΡΠΊΠ°Π·Π°ΡΡ IP ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ IP, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΡΠΎΡΠΎΠΉ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `ip6` ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ `inherit` Π΄Π»Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ IP-Π°Π΄ΡΠ΅ΡΠ° Ρ
ΠΎΡΡΠ°.
<.> `interface` β Π‘Π΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ IP-Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΊΠ»Π΅ΡΠΊΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ
ΠΎΡΡΠ°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² man:jail[8] ΠΈ man:jail.conf[5].
[[classic-jail]]
== ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠ»Π΅ΡΠΊΠ° (Π’ΠΎΠ»ΡΡΠ°Ρ ΠΊΠ»Π΅ΡΠΊΠ°)
ΠΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ Π½Π°ΡΡΠΎΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ FreeBSD. ΠΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠΉ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ.
[[creating-classic-jail]]
=== Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π΄Π»Ρ ΠΊΠ»Π΅ΡΠΊΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ Ρ
ΠΎΡΡΠ°, ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, IP-Π°Π΄ΡΠ΅Ρ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π·Π°Π³ΡΡΠ·ΠΊΠΈ FreeBSD.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅:
[source, shell, subs=attributes]
....
# fetch https://download.freebsd.org/ftp/releases/amd64/amd64/{rel-latest}-RELEASE/base.txz -o /usr/local/jails/media/{rel-latest}-RELEASE-base.txz
....
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΊΠ»Π΅ΡΠΊΠΈ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΊΠ»Π΅ΡΠΊΠΈ:
[source, shell, subs=attributes]
....
# mkdir -p /usr/local/jails/containers/classic
# tar -xf /usr/local/jails/media/{rel-latest}-RELEASE-base.txz -C /usr/local/jails/containers/classic --unlink
....
Π‘ ΠΈΠ·Π²Π»Π΅ΡΡΠ½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠ°ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° ΠΈ DNS-ΡΠ΅ΡΠ²Π΅ΡΠ°:
[source, shell]
....
# cp /etc/resolv.conf /usr/local/jails/containers/classic/etc/resolv.conf
# cp /etc/localtime /usr/local/jails/containers/classic/etc/localtime
....
Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π² ΡΠ°ΠΉΠ»Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# freebsd-update -b /usr/local/jails/containers/classic/ fetch install
....
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠΈ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» [.filename]#/etc/jail.conf# ΠΈΠ»ΠΈ Π² [.filename]#jail.conf.d# Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
[.programlisting]
....
classic {
# STARTUP/LOGGING
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.consolelog = "/var/log/jail_console_${name}.log";
# PERMISSIONS
allow.raw_sockets;
exec.clean;
mount.devfs;
# HOSTNAME/PATH
host.hostname = "${name}";
path = "/usr/local/jails/containers/${name}";
# NETWORK
ip4.addr = 192.168.1.151;
interface = em0;
}
....
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠΈ:
[source, shell]
....
# service jail start classic
....
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΡΠ°Π·Π΄Π΅Π»Π΅ crossref:jails[jail-management,Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ].
[[thin-jail]]
== Π’ΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ (Thin Jails)
Π₯ΠΎΡΡ ΡΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡ ΠΆΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΡΡΠΎ ΠΈ ΡΠΎΠ»ΡΡΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΡ
ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ. Π’ΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠΎΠ² OpenZFS ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ NullFS. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ½ΠΈΠΌΠΊΠΎΠ² OpenZFS ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Ρ NullFS ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ· ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ NullFS.
[[creating-thin-jail-openzfs-snapshots]]
=== Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠΎΠ² OpenZFS
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Ρ
ΠΎΡΠΎΡΠ΅ΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ FreeBSD ΠΈ OpenZFS ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ
ΡΠΎΠ½ΠΊΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠΎΠ² OpenZFS ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠΎΠ² OpenZFS ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΊΠ»Π΅ΡΠΊΠΈ, ΡΠ»Π΅Π΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ crossref:jails[host-configuration-directories, "ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π΄Π΅ΡΠ΅Π²Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΊΠ»Π΅ΡΠΊΠΈ"].
ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½. Π¨Π°Π±Π»ΠΎΠ½Ρ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ "ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ", ΡΡΠΎΠ±Ρ ΠΊΠ»Π΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈΡΡ Π½Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΡΠ°Π±Π»ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# zfs create -p zroot/jails/templates/{rel-latest}-RELEASE
....
ΠΠ°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ΅Π΄Ρ:
[source, shell, subs=attributes]
....
# fetch https://download.freebsd.org/ftp/releases/amd64/amd64/{rel-latest}-RELEASE/base.txz -o /usr/local/jails/media/{rel-latest}-RELEASE-base.txz
....
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°Π±Π»ΠΎΠ½Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# tar -xf /usr/local/jails/media/{rel-latest}-RELEASE-base.txz -C /usr/local/jails/templates/{rel-latest}-RELEASE --unlink
....
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΡΠ΅Π΄Π° Π·Π°ΠΏΠΈΡΠ°Π½Π° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠ°ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° ΠΈ DNS-ΡΠ΅ΡΠ²Π΅ΡΠ° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°Π±Π»ΠΎΠ½Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# cp /etc/resolv.conf /usr/local/jails/templates/{rel-latest}-RELEASE/etc/resolv.conf
# cp /etc/localtime /usr/local/jails/templates/{rel-latest}-RELEASE/etc/localtime
....
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, β ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# freebsd-update -b /usr/local/jails/templates/{rel-latest}-RELEASE/ fetch install
....
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ Π³ΠΎΡΠΎΠ².
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ½ΠΈΠΌΠΊΠ° OpenZFS ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# zfs snapshot zroot/jails/templates/{rel-latest}-RELEASE@base
....
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ½ΠΈΠΌΠΊΠ° OpenZFS ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ OpenZFS.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ `thinjail` Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# zfs clone zroot/jails/templates/{rel-latest}-RELEASE@base zroot/jails/containers/thinjail
....
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠΈ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» [.filename]#/etc/jail.conf# ΠΈΠ»ΠΈ Π² [.filename]#jail.conf.d# Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
[.programlisting]
....
thinjail {
# STARTUP/LOGGING
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.consolelog = "/var/log/jail_console_${name}.log";
# PERMISSIONS
allow.raw_sockets;
exec.clean;
mount.devfs;
# HOSTNAME/PATH
host.hostname = "${name}";
path = "/usr/local/jails/containers/${name}";
# NETWORK
ip4 = inherit;
interface = em0;
}
....
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠΈ:
[source, shell]
....
# service jail start thinjail
....
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΡΠ°Π·Π΄Π΅Π»Π΅ crossref:jails[jail-management,Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ].
[[creating-thin-jail-nullfs]]
=== Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ NullFS
ΠΠ»Π΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½Π½ΡΠΌ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ
Π½ΠΈΠΊΠΈ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΈ NullFS Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ· Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ Π² ΠΊΠ»Π΅ΡΠΊΠ΅.
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ OpenZFS:
[source, shell, subs=attributes]
....
# zfs create -p zroot/jails/templates/{rel-latest}-RELEASE-base
....
ΠΠ»ΠΈ ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ UFS:
[source, shell, subs=attributes]
....
# mkdir /usr/local/jails/templates/{rel-latest}-RELEASE-base
....
ΠΠ°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ΅Π΄Ρ:
[source, shell, subs=attributes]
....
# fetch https://download.freebsd.org/ftp/releases/amd64/amd64/{rel-latest}-RELEASE/base.txz -o /usr/local/jails/media/{rel-latest}-RELEASE-base.txz
....
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°Π±Π»ΠΎΠ½Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# tar -xf /usr/local/jails/media/{rel-latest}-RELEASE-base.txz -C /usr/local/jails/templates/{rel-latest}-RELEASE-base --unlink
....
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΡΠ΅Π΄Π° Π·Π°ΠΏΠΈΡΠ°Π½Π° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠ°ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° ΠΈ DNS-ΡΠ΅ΡΠ²Π΅ΡΠ° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°Π±Π»ΠΎΠ½Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# cp /etc/resolv.conf /usr/local/jails/templates/{rel-latest}-RELEASE-base/etc/resolv.conf
# cp /etc/localtime /usr/local/jails/templates/{rel-latest}-RELEASE-base/etc/localtime
....
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ°Π±Π»ΠΎΠ½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# freebsd-update -b /usr/local/jails/templates/{rel-latest}-RELEASE-base/ fetch install
....
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ `skeleton`. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π±ΡΠ΄ΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½Π° Π² `skeleton`.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ `skeleton` Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ OpenZFS:
[source, shell, subs=attributes]
....
# zfs create -p zroot/jails/templates/{rel-latest}-RELEASE-skeleton
....
ΠΠ»ΠΈ ΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ UFS:
[source, shell, subs=attributes]
....
# mkdir /usr/local/jails/templates/{rel-latest}-RELEASE-skeleton
....
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ `skeleton`-ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ. `Skeleton`-ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π΄Π»Ρ ΠΊΠ»Π΅ΡΠΎΠΊ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²:
[source, shell, subs=attributes]
....
# mkdir -p /usr/local/jails/templates/{rel-latest}-RELEASE-skeleton/home
# mkdir -p /usr/local/jails/templates/{rel-latest}-RELEASE-skeleton/usr
# mv /usr/local/jails/templates/{rel-latest}-RELEASE-base/etc /usr/local/jails/templates/{rel-latest}-RELEASE-skeleton/etc
# mv /usr/local/jails/templates/{rel-latest}-RELEASE-base/usr/local /usr/local/jails/templates/{rel-latest}-RELEASE-skeleton/usr/local
# mv /usr/local/jails/templates/{rel-latest}-RELEASE-base/tmp /usr/local/jails/templates/{rel-latest}-RELEASE-skeleton/tmp
# mv /usr/local/jails/templates/{rel-latest}-RELEASE-base/var /usr/local/jails/templates/{rel-latest}-RELEASE-skeleton/var
# mv /usr/local/jails/templates/{rel-latest}-RELEASE-base/root /usr/local/jails/templates/{rel-latest}-RELEASE-skeleton/root
....
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° `skeleton`, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# cd /usr/local/jails/templates/{rel-latest}-RELEASE-base/
# mkdir skeleton
# ln -s skeleton/etc etc
# ln -s skeleton/home home
# ln -s skeleton/root root
# ln -s ../skeleton/usr/local usr/local
# ln -s skeleton/tmp tmp
# ln -s skeleton/var var
....
ΠΠΎΠ³Π΄Π° `skeleton` Π³ΠΎΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠ»Π΅ΡΠΊΡ.
Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ OpenZFS, ΡΠ½ΠΈΠΌΠΊΠΈ OpenZFS ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠ»Π΅ΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄:
[source, shell, subs=attributes]
....
# zfs snapshot zroot/jails/templates/{rel-latest}-RELEASE-skeleton@base
# zfs clone zroot/jails/templates/{rel-latest}-RELEASE-skeleton@base zroot/jails/containers/thinjail
....
Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ UFS ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ man:cp[1], Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell, subs=attributes]
....
# cp -R /usr/local/jails/templates/{rel-latest}-RELEASE-skeleton /usr/local/jails/containers/thinjail
....
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΈ skeleton:
[source, shell]
....
# mkdir -p /usr/local/jails/thinjail-nullfs-base
....
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°ΠΏΠΈΡΡ ΠΎ ΠΊΠ»Π΅ΡΠΊΠ΅ Π² [.filename]#/etc/jail.conf# ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π² [.filename]#jail.conf.d# ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
[.programlisting]
....
thinjail {
# STARTUP/LOGGING
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.consolelog = "/var/log/jail_console_${name}.log";
# PERMISSIONS
allow.raw_sockets;
exec.clean;
mount.devfs;
# HOSTNAME/PATH
host.hostname = "${name}";
path = "/usr/local/jails/${name}-nullfs-base";
# NETWORK
ip4.addr = 192.168.1.153;
interface = em0;
# MOUNT
mount.fstab = "/usr/local/jails/${name}-nullfs-base.fstab";
}
....
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» [.filename]#/usr/local/jails/thinjail-nullfs-base.fstab# ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ:
[.programlisting, subs=attributes]
....
/usr/local/jails/templates/{rel-latest}-RELEASE-base /usr/local/jails/thinjail-nullfs-base/ nullfs ro 0 0
/usr/local/jails/containers/thinjail /usr/local/jails/thinjail-nullfs-base/skeleton nullfs rw 0 0
....
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠΈ:
[source, shell]
....
# service jail start thinjail
....
[[creating-vnet-jail]]
=== Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ VNET
Π ΠΊΠ»Π΅ΡΠΊΠ°Ρ
FreeBSD VNET ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, IP-Π°Π΄ΡΠ΅ΡΠ°, ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π°.
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ VNET-ΠΊΠ»Π΅ΡΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ man:bridge[4] Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# ifconfig bridge create
....
ΠΡΠ²ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
[.programlisting]
....
bridge0
....
Π‘ΠΎΠ·Π΄Π°Π² `bridge`, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ `em0` ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΠ±Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# ifconfig bridge0 addm em0 up
# ifconfig em0 up
....
Π§ΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² [.filename]#/etc/rc.conf#:
[.programlisting]
....
defaultrouter="192.168.1.1"
cloned_interfaces="bridge0"
ifconfig_bridge0="inet 192.168.1.150/24 addm em0 up"
ifconfig_em0="up"
....
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΌΠΎΡΡΠ°Ρ
ΡΠΌ. crossref:advanced-networking[network-bridging, Π‘Π΅ΡΠ΅Π²ΡΠ΅ ΠΌΠΎΡΡΡ].
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π΅ΡΠΊΡ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅.
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ crossref:jails[classic-jail, ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΠ»Π΅ΡΠΊΠΈ (Π’ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ)], ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ crossref:jails[thin-jail, Π’ΠΎΠ½ΠΊΠΈΡ
ΠΠ»Π΅ΡΠΎΠΊ]. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ β ΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ [.filename]#/etc/jail.conf#.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΡΡ [.filename]#/usr/local/jails/containers/vnet#.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ VNET-ΠΊΠ»Π΅ΡΠΊΠΈ:
[.programlisting]
....
vnet {
# STARTUP/LOGGING
exec.consolelog = "/var/log/jail_console_${name}.log";
# PERMISSIONS
allow.raw_sockets;
exec.clean;
mount.devfs;
devfs_ruleset = 5;
# PATH/HOSTNAME
path = "/usr/local/jails/containers/${name}";
host.hostname = "${name}";
# VNET/VIMAGE
vnet;
vnet.interface = "${epair}b";
# NETWORKS/INTERFACES
$id = "154"; <.>
$ip = "192.168.1.${id}/24";
$gateway = "192.168.1.1";
$bridge = "bridge0"; <.>
$epair = "epair${id}";
# ADD TO bridge INTERFACE
exec.prestart = "/sbin/ifconfig ${epair} create up";
exec.prestart += "/sbin/ifconfig ${epair}a up descr jail:${name}";
exec.prestart += "/sbin/ifconfig ${bridge} addm ${epair}a up";
exec.start += "/sbin/ifconfig ${epair}b ${ip} up";
exec.start += "/sbin/route add default ${gateway}";
exec.start += "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.poststop = "/sbin/ifconfig ${bridge} deletem ${epair}a";
exec.poststop += "/sbin/ifconfig ${epair}a destroy";
}
....
<.> ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ IP-Π°Π΄ΡΠ΅Ρ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ *ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ*.
<.> ΠΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ ΠΌΠΎΡΡΡ.
[[creating-linux-jail]]
=== Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ Linux
FreeBSD ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Linux Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ crossref:linuxemu[linuxemu, ΠΠ²ΠΎΠΈΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Linux] ΠΈ man:debootstrap[8]. ΠΠ»Π΅ΡΠΊΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ°. ΠΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ΄ΡΠ΅ Ρ
ΠΎΡΡΠ°. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΠ²ΠΎΠΈΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Linux Π² Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ABI Linux ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# sysrc linux_enable="YES"
....
ΠΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# service linux start
....
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ crossref:jails[creating-thin-jail-openzfs-snapshots, Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠΎΠ² OpenZFS], Π½ΠΎ *Π±Π΅Π·* Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠ»Π΅ΡΠΊΠΈ FreeBSD Linux ΡΡΠ΅Π±ΡΡΡ ΠΎΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π° Π½ΠΈΠΆΠ΅.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠΈ:
[source, shell]
....
# jail -cm \
name=ubuntu \
host.hostname="ubuntu.example.com" \
path="/usr/local/jails/ubuntu" \
interface="em0" \
ip4.addr="192.168.1.150" \
exec.start="/bin/sh /etc/rc" \
exec.stop="/bin/sh /etc/rc.shutdown" \
mount.devfs \
devfs_ruleset=4 \
allow.mount \
allow.mount.devfs \
allow.mount.fdescfs \
allow.mount.procfs \
allow.mount.linprocfs \
allow.mount.linsysfs \
allow.mount.tmpfs \
enforce_statfs=1
....
ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ»Π΅ΡΠΊΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ package:sysutils/debootstrap[].
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ»Π΅ΡΠΊΠ΅ FreeBSD Linux:
[source, shell]
....
# jexec -u root ubuntu
....
ΠΠ½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° package:sysutils/debootstrap[] ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Ubuntu:
[source, shell]
....
# pkg install debootstrap
# debootstrap jammy /compat/ubuntu
....
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ `Base system installed successfully`, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ· Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# service jail onestop ubuntu
....
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°ΠΏΠΈΡΡ Π² [.filename]#/etc/jail.conf# Π΄Π»Ρ Linux-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°:
[.programlisting]
....
ubuntu {
# STARTUP/LOGGING
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.consolelog = "/var/log/jail_console_${name}.log";
# PERMISSIONS
allow.raw_sockets;
exec.clean;
mount.devfs;
devfs_ruleset = 4;
# HOSTNAME/PATH
host.hostname = "${name}";
path = "/usr/local/jails/containers/${name}";
# NETWORK
ip4.addr = 192.168.1.155;
interface = em0;
# MOUNT
mount += "devfs $path/compat/ubuntu/dev devfs rw 0 0";
mount += "tmpfs $path/compat/ubuntu/dev/shm tmpfs rw,size=1g,mode=1777 0 0";
mount += "fdescfs $path/compat/ubuntu/dev/fd fdescfs rw,linrdlnk 0 0";
mount += "linprocfs $path/compat/ubuntu/proc linprocfs rw 0 0";
mount += "linsysfs $path/compat/ubuntu/sys linsysfs rw 0 0";
mount += "/tmp $path/compat/ubuntu/tmp nullfs rw 0 0";
mount += "/home $path/compat/ubuntu/home nullfs rw 0 0";
}
....
ΠΠ°ΡΠ΅ΠΌ ΠΊΠ»Π΅ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# service jail start ubuntu
....
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Ubuntu ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# jexec ubuntu chroot /compat/ubuntu /bin/bash
....
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π³Π»Π°Π²Π΅ crossref:linuxemu[linuxemu, ΠΠ²ΠΎΠΈΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Linux].
[[service-jails-config]]
=== ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΎΠΊ
Π‘Π΅ΡΠ²ΠΈΡΠ½Π°Ρ ΠΊΠ»Π΅ΡΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· [.filename]#/etc/rc.conf# ΠΈΠ»ΠΈ man:sysrc[8]. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π³ΠΎΡΠΎΠ²Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΊΠ°Ρ
. ΠΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΡΠΎΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΠ½ΠΈΠΌΠ°Π΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΎΠΊ, Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² [.filename]#/etc/rc.conf#. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΈΡ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² β ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
ΠΎΡΡΡ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ start ΠΈΠ»ΠΈ stop, ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ°ΡΡΡΡΡ, ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠΊΡΠ°Π½ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.
Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ±Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΡΡ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»Π΅ΡΠΊΠ°Ρ
. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π³ΠΎΡΠΎΠ²Π° Π»ΠΈ ΡΠ»ΡΠΆΠ±Π° ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# grep _svcj_options /path/to/rc.d/servicename
....
ΠΡΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΠ»ΡΠΆΠ±Π° Π½Π΅ Π³ΠΎΡΠΎΠ²Π° ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΊΠ»Π΅ΡΠΊΠ΅ ΠΈΠ»ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠΈ.
ΠΡΠ»ΠΈ ΡΠ»ΡΠΆΠ±Π° Π½Π΅ Π³ΠΎΡΠΎΠ²Π° ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΊΠ»Π΅ΡΠΊΠ΅ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠΈ, Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² [.filename]#/etc/rc.conf#:
[source, shell]
....
# sysrc servicename_svcj_options=net_basic
....
ΠΠ»Ρ Π²ΡΠ΅Ρ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
`_svcj_options` ΡΠΌ. ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ man:rc.conf[5].
ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ»ΡΠΆΠ±Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»ΡΠΆΠ±Ρ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ `servicename_svcj` Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ YES. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ man:syslogd[8] Π² ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»Π΅ΡΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄:
[source, shell]
....
# service syslogd stop
# sysrc syslogd_svcj=YES
# service syslogd start
....
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ `servicename_svcj` ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΠ»ΡΠΆΠ±Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΎΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, rc-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ»ΡΠΆΠ±Ρ ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
Π‘Π΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· man:rc.conf[5]/man:sysrc[8] ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ man:service[8]. Π£ΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ man:jls[8], ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ crossref:jails[jail-management,Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ], ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΡ
ΡΠ°Π±ΠΎΡΡ, Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° man:jail[8] Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠΈ.
[[jail-management]]
== Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊ, ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π² Π½Π΅Ρ ΠΈ Ρ.Π΄. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Ρ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ Ρ Ρ
ΠΎΡΡΠ°.
[[list-running-jails]]
=== Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ
ΠΊΠ»Π΅ΡΠΎΠΊ
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΏΠΈΡΠΊΠ° ΠΊΠ»Π΅ΡΠΎΠΊ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ
Π² Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ man:jls[8]:
[source, shell]
....
# jls
....
ΠΡΠ²ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
....
JID IP Address Hostname Path
1 192.168.250.70 classic /usr/local/jails/containers/classic
....
man:jls[8] ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ `--libxo`, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ man:libxo[3] ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΠΎΡΠΌΠ°ΡΠ°Ρ
, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ `JSON`, `HTML` ΠΈ Ρ.Π΄.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ `JSON`:
[source, shell]
....
# jls --libxo=json
....
ΠΡΠ²ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
....
{"__version": "2", "jail-information": {"jail": [{"jid":1,"ipv4":"192.168.250.70","hostname":"classic","path":"/usr/local/jails/containers/classic"}]}}
....
[[start-jail]]
=== ΠΠ°ΠΏΡΡΠΊ, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠΈ
man:service[8] ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°, ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° Ρ
ΠΎΡΡΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠ»Π΅ΡΠΊΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# service jail start jailname
....
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ `start` Π½Π° `restart` ΠΈΠ»ΠΈ `stop`, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΊΠ»Π΅ΡΠΊΠΎΠΉ.
[[destroy-jail]]
=== Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ man:service[8] ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΊΠ»Π΅ΡΠΊΠΈ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² [.filename]#/etc/jail.conf#.
FreeBSD ΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π€Π»Π°Π³ΠΈ Π€Π°ΠΉΠ»ΠΎΠ².
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½ΡΠΆΠ½ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# service jail stop jailname
....
ΠΡΠΎΡΠΎΠΉ ΡΠ°Π³ β ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΈ ΡΠ»Π°Π³ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ man:chflags[1], Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π³Π΄Π΅ `classic` β ΠΈΠΌΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ:
[source, shell]
....
# chflags -R 0 /usr/local/jails/containers/classic
....
Π’ΡΠ΅ΡΠΈΠΉ ΡΠ°Π³ β ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»Π°ΡΡ ΠΊΠ»Π΅ΡΠΊΠ°:
[source, shell]
....
# rm -rf /usr/local/jails/containers/classic
....
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΠΎ ΠΊΠ»Π΅ΡΠΊΠ΅ Π² [.filename]#/etc/jail.conf# ΠΈΠ»ΠΈ Π² [.filename]#jail.conf.d#.
[[handle-packages-jail]]
=== Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π² ΠΊΠ»Π΅ΡΠΊΠ΅
Π£ΡΠΈΠ»ΠΈΡΠ° man:pkg[8] ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ `-j` Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ package:www/nginx-lite[] Π² ΠΊΠ»Π΅ΡΠΊΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ *Ρ Ρ
ΠΎΡΡΠ°*:
[source, shell]
....
# pkg -j classic install nginx-lite
....
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π² FreeBSD ΡΠΌ. crossref:ports[ports,"Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: ΠΠ°ΠΊΠ΅ΡΡ ΠΈ ΠΏΠΎΡΡΡ"].
[[access-jail]]
=== ΠΠΎΡΡΡΠΏ ΠΊ ΠΊΠ»Π΅ΡΠΊΠ΅
ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ ΠΈΠ· Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΊΠ»Π΅ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΉΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ man:jexec[8].
Π ΠΊΠ»Π΅ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΉΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² man:jexec[8] Ρ Ρ
ΠΎΡΡΠ°:
[source, shell]
....
# jexec -u root jailname
....
ΠΡΠΈ Π²Ρ
ΠΎΠ΄Π΅ Π² ΠΊΠ»Π΅ΡΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ Π² man:motd[5].
[[execute-commands-jail]]
=== ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΊΠ»Π΅ΡΠΊΠ΅
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠ»Π΅ΡΠΊΠ΅ ΠΈΠ· Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ man:jexec[8].
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»ΡΠΆΠ±Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ, Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
[source, shell]
....
# jexec -l jailname service nginx stop
....
[[jail-upgrading]]
== ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΎΠΊ FreeBSD Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΠΎΡΡΠ°ΡΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ, Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΠΌ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ FreeBSD.
[[jails-updating]]
=== ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠΎΠ² OpenZFS
ΠΠ»Π΅ΡΠΊΠΈ *Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ
ΠΎΡΡΠ°*. Π FreeBSD ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ man:chflags[1] Π² ΠΊΠ»Π΅ΡΠΊΠ΅. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·Π½ΡΡΡΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
ΠΠ»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ°ΡΡ-ΡΠ΅Π»ΠΈΠ·Π° Π²Π΅ΡΡΠΈΠΈ FreeBSD, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Ρ
ΠΎΡΡΠ΅:
[source, shell]
....
# freebsd-update -j classic fetch install
# service jail restart classic
....
ΠΠ»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π΄ΠΎ Π½ΠΎΠ²ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² crossref:cutting-edge[freebsdupdate-upgrade,"ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΉ"]. ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ Ρ
ΠΎΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ»Π΅ΡΠΊΡ.
[TIP]
====
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π΄ΡΡΠ³ΡΡ ΠΏΡΠΎΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠ»Π΅ΡΠΊΡ, ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.
====
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ 13.1-RELEASE Π΄ΠΎ 13.2-RELEASE Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Ρ
ΠΎΡΡΠ΅:
[source, shell]
....
# freebsd-update -j classic -r 13.2-RELEASE upgrade
# freebsd-update -j classic install
# service jail restart classic
# freebsd-update -j classic install
# service jail restart classic
....
[NOTE]
====
ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π³ `install` Π΄Π²Π°ΠΆΠ΄Ρ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π· ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΄ΡΠΎ, Π° Π²ΡΠΎΡΠΎΠΉ β ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
====
ΠΠ°ΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠ»Π΅ΡΠΊΡ ΡΠ½ΠΎΠ²Π°. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Π΅ΡΡΠΈΡ ABI ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ FreeBSD.
Π‘ Ρ
ΠΎΡΡΠ°:
[source, shell]
....
# pkg -j jailname upgrade -f
# service jail restart jailname
....
[[upgrading-thin-jail]]
=== ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ NullFS
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ NullFS, ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΠΈΡ
ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠ»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ°ΡΡ-ΡΠ΅Π»ΠΈΠ·Π° Π²Π΅ΡΡΠΈΠΈ FreeBSD, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Ρ
ΠΎΡΡΠ΅:
[source, shell]
....
# freebsd-update -b /usr/local/jails/templates/13.1-RELEASE-base/ fetch install
# service jail restart
....
ΠΠ»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄ΠΎ Π½ΠΎΠ²ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² crossref:cutting-edge[freebsdupdate-upgrade,"ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΉ"]. ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ 13.1-RELEASE Π΄ΠΎ 13.2-RELEASE Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Ρ
ΠΎΡΡΠ΅:
[source, shell]
....
# freebsd-update -b /usr/local/jails/templates/13.1-RELEASE-base/ -r 13.2-RELEASE upgrade
# freebsd-update -b /usr/local/jails/templates/13.1-RELEASE-base/ install
# service jail restart
# freebsd-update -b /usr/local/jails/templates/13.1-RELEASE-base/ install
# service jail restart
....
[[jail-resource-limits]]
== ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊΠ»Π΅ΡΠΊΠΈ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ»Π΅ΡΠΊΠ° β ΡΡΠΎ Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ man:rctl[8] Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
[TIP]
====
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° `kern.racct.enable` Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠ°ΠΉΠ»Π΅ [.filename]#/boot/loader.conf#.
====
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊΠ»Π΅ΡΠΊΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
[.programlisting]
....
rctl -a jail:<jailname>:resource:action=amount/percentage
....
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π΄Π»Ρ ΠΊΠ»Π΅ΡΠΊΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[source, shell]
....
# rctl -a jail:classic:memoryuse:deny=2G
....
Π§ΡΠΎΠ±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡ
ΡΠ°Π½ΡΠ»ΠΎΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ Ρ
ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π² ΡΠ°ΠΉΠ» [.filename]#/etc/rctl.conf# ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
[.programlisting]
....
jail:classic:memoryuse:deny=2G/jail
....
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ½Π° Π² Π³Π»Π°Π²Π΅ ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ crossref:security[security-resourcelimits,"ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ²"].
[[jail-managers-and-containers]]
== ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ
ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΠ»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ ΠΊΠ»Π΅ΡΠΊΠΈ FreeBSD ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½ Π²ΡΡΡΠ½ΡΡ, Π½ΠΎ Π² FreeBSD ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΠΊΠ»Π΅ΡΠΎΠΊ FreeBSD:
.ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ
[options="header", cols="1,1,1,1"]
|===
| ΠΠΌΡ | ΠΠΈΡΠ΅Π½Π·ΠΈΡ | ΠΠ°ΠΊΠ΅Ρ | Documentation
| BastilleBSD
| BSD-3
| package:sysutils/bastille[]
| link:https://bastille.readthedocs.io/ru/latest/[ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ]
| pot
| BSD-3
| package:sysutils/pot[]
| link:https://pot.pizzamig.dev/[ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ]
| cbsd
| BSD-2
| package:sysutils/cbsd[]
| link:https://github.com/cbsd/cbsd[ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ]
| AppJail
| BSD-3
| package:sysutils/appjail[], Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ package:sysutils/appjail-devel[]
| link:https://github.com/DtxdF/AppJail#getting-started[ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ]
| iocage
| BSD-2
| package:sysutils/iocage[]
| link:https://freebsd.github.io/iocage/[ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ]
| ezjail
| link:https://erdgeist.org/beerware.html[ΠΠΈΠ²Π½Π°Ρ ΠΠΈΡΠ΅Π½Π·ΠΈΡ]
| package:sysutils/ezjail[]
| link:https://erdgeist.org/arts/software/ezjail/[ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ]
|===