Багато клітин хороших і різних. Під таким слоганом я зайнявся облаштуванням клітин для нових пацієнтів. Але трохи поясню про що буде йти мова. Мені потрібні були кілька клітин для поділу програм по серверам, для тестових робіт, а так само:
- Є незавантажений сервер який може дати велику кількість ресурсів.
- Небажання засмічувати систему програмами які можна було винести на інші сервера.
- Мати тестовий полігон на реальному залозі.
Необхідно провести кілька маніпуляцій:
1. Зазначимо змінну імені до оточення.
2. Створимо домашню директорію по змінної.
5. Заповнимо каталог поддерева необхідними двійковими файлами, бібліотеками, довідниками і так далі.
6. Встановимо всі необхідні файли з / usr / src / etc / і / etc в каталог клітини $ D / etc /.
Необхідно створити мережеві аліаси для ваших клітин. Вони потрібні щоб клітини могли коректно працювати в мережі. Аліаси створюються на материнській системі:
Для запуску всіх клітин використовуйте:
Для запуску необхідної клітини використовуйте її ім'я:
Виведемо список працюючих клітин:
Зайдемо в першу клітку:
Все готово, тепер ви можете налаштувати клітку як вам завгодно і приступити до установки потрібних пакетів. Але для коректної роботи вам необхідно додатково налаштувати створену клітку.
Створимо в клітці порожній файл / etc / fstab щоб при її запуску не з'являлося повідомлення про відсутній файлі fstab.
PORT MAPPER
Вимкніть в клітці port mapper.
Налаштуємо resolv.conf так, щоб дозвіл імен в клітці працювало правильно. Створимо в клітці файл з потрібним DNS сервером або скопіюємо з основної машини в клітку.
Запустимо в клітці newaliases щоб при запуску не з'являлося повідомлення від sendmail.
Відключимо мережевий конфігураційний інтерфейс щоб при запуску не з'являлося повідомлення від ifconfig.
Обов'язково змініть пароль root в клітці (зробіть відмінним від основної машини).
Створимо нового користувача. Для цього є штатна утиліта jexec за допомогою неї ми додамо нового користувача складається в групі wheel [цифра це JID клітини]:
Для роботи з кліткою за допомогою ssh необхідно налаштувати демон sshd.
Для цього на основний машині в / etc / ssh / sshd_config вкажемо потрібний для прослуховування IP.
Перезапустити демон і перевіримо його роботу.
Додамо в конфігураційний файл rc.conf клітини.
Встановіть потрібну часову зону в клітці.
Експортуємо існуючі порти в клітку. Ви можете також скопіювати їх в потрібну директорію або створити симлінк.
Ви можете налаштувати деякі змінні sysctl в базову систему налаштування роботи клітин.
- security.jail.set_hostname_allowed: 1 # Можливість міняти hostname всередині клітини.
- security.jail.socket_unixiproute_only: 1 # Створювати сокет в клітці можна тільки для PF_LOCAL, PF_INET або PF_ROUT інакше, повертається помилка
- security.jail.sysvipc_allowed: 0 # Можливість використовувати System V IPC
- security.jail.enforce_statfs: 2 # Можливість бачити клітці все змонтовані пристрої
- security.jail.allow_raw_sockets: 0 # Можливість використання низькорівневих сокетів (ping і тп)
- security.jail.chflags_allowed: 0 # Можливість міняти системні прапори файлів
- security.jail.jailed: 0 # Бачити список запущених клітин
- security.jail.getfsstatroot_only: 1 # - клітина отримує тільки інформацію про ФС, наприклад, повертається df, для кореневої файлової системи.
Для деякого обмеження ресурсів клітини використовуйте спільно з обмеженнями в /etc/login.conf;)
Написати про самопісний скрипті або про порт який може управляти клітинами?
Тепер ви можете створювати і працювати з клітинами. Є звичайно недоліки клітин такі як відсутність обмежень на використання ресурсів процесора або пам'яті без серйозної розпилювання та застосування спеціальних патчів і багато іншого. Але зате все працює нативної і швидко в даному випадку ми домоглися бажаного.