ГлавнаяБлог вэб-мастераНастройка Jail в FreeBSD 11.1 / Хабрахабр

Настройка Jail в FreeBSD 11.1 / Хабрахабр

  • Вторник, 14 Ноябрь 2017 02:24

opiniones sobre las opciones binarias Введение

На написание данной публикации меня подтолкнул тот факт, что в сети интернет крайне мало информации по администрированию Jail в FreBSD. Можно конечно найти отличные публикации на эту тему, но они, в основном, по большей части были написаны много лет назад, и не затрагивают новые возможности Jail и самой операционной системы FreeBSD. Публикацию разделю на две части. В первой части пойдёт речь о подготовки и настройки FreeBSD, а во второй части пойдёт речь непосредственно о создании Jail. 20 MG Tastylia Tadalafil Oral Strips Online Часть 1. Подготовка и настройка FreeBSD. Для того что-бы всё, что здесь написано корректно заработало, необходимо использовать FreeBSD версии 11.1, так-как начиная с данной версии в системе включена поддержка ограничения дискового ввода/вывода и т.п. Если в этом нет необходимости, тогда подойдёт версия 10.X. Добавим в rc.conf несколько параметров:sysrc jail_enable="YES" sysrc rctl_enable="YES" sysrc rctl_rules="/etc/rctl.conf" sysrc zfs_enable="YES" sysrc ifconfig_em0_alias="192.168.1.105/24" Первая строка указывает Jail автоматически запускаться с системой, вторая строка указывает включение ограничений для Jail, третья строка указывает на файл правил с ограничениями. В четвёртой строке активируется возможность использовать файловую систему ZFS(все Jail будут сохранены на разделах ZFS), этот параметр необходим если система использует родную файловую систему UFS. Запустить ZFS можно командой:/etc/rc.d/zfs start Пятая строка создаёт алиас для Jail, если необходимо несколько Jail, то в том случаи добавьте необходимое количество ip алиасов(так-как я использую VMware ESXI название сетевой карты у меня em0, Вам необходимо использовать название своей карты). В FreeBSD по умолчанию ядро собрано с отключённой возможность ограничивать ресурсы, но к счастью данное ограничение легко устранить, достаточно добавить одну строку в файл loader.conf, командой:echo 'kern.racct.enable="1"' >> /boot/loader.conf Изменения вступят в силу после перезагрузки системы. Так-же необходимо включить поддержку протокола iscsi, так-как резервное копирование будет осуществляться именно через этот протокол, добавить поддержку можно следующей командой:echo 'iscsi_initiator_load="YES"' >> /boot/loader.conf Изменения вступят в силу после перезагрузки системы. Последнее, что необходимо настроить в системе(если не считать самого Jail) — firewall на ipfw. Следующая команда создаст файл с правилами ipfw:ee /etc/firewall.sc В данный файл необходимо внести следующие строки:ipfw -q -f flush c="ipfw -q add " $c 00105 allow tcp from any to 192.168.1.105 80 setup keep-state $c 00110 allow tcp from any to me 22 setup keep-state $c 00140 allow tcp from me to any 443,80,21,53,3260 setup keep-state $c 00143 allow icmp from me to any keep-state $c 00144 allow udp from me to any 53 keep-state $c 40533 deny all from any to any frag $c 40534 deny all from any to any established $c 40535 deny all from any to any Данные правила разрешат всем Jail осуществлять исходящие подключения через порты 443, 80, 21, 53, 3260(iscsi), а так-же будет возможность подключаться ко всем Jail через SSH. Строка:$c 00105 allow tcp from any to 192.168.1.105 80 setup keep-state отвечает зак подключение к будущему Jail, а в частности для вэб сервера, если необходимо добавить другие порты, то укажите их через запятую(80,21,443,68 и т.д). Если необходимо подключение udp, то необходимо скопировать строку и заменить tcp на udp, и изменить номер строки, а также убрать setup, так-как протокол udp не имеет флага SYN:$c 00105 allow tcp from any to 192.168.1.105 80,21,22,443 setup keep-state $c 00106 allow udp from any to 192.168.1.105 53 keep-state Выполните последовательно команды:sysrc firewall_enable="YES" sysrc firewall_script="/etc/firewall.sc" service ipfw start После выполнения данных команд, скорее всего, необходимо переподключиться по SSH. На этом начальная настройка закончена, перейдём к настройки сервера iscsi target. http://www.youngasianescorts.co.uk/?baletos=%D8%A7%D9%84%D8%AE%D9%8A%D8%A7%D8%B1%D8%A7%D8%AA-%D8%A7%D9%84%D8%AB%D9%86%D8%A7%D8%A6%D9%8A%D8%A9-%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%B1%D8%A7%D8%AA%D9%8A%D8%AC%D9%8A%D8%A9&ddd=78 الخيارات الثنائية المخططات الاستراتيجية Настройка iscsi target Для настройки необходим ещё один сервер в сети, или виртуальная машина(как в моём случаи). Для установки выполните команду(к слову это единственное, что необходимо установить, так-как всё остальное уже имеется в FreeBSD):pkg install istgt-20150713 если установка не произошла, то скорее всего изменилось название версии, для поиска корректного имени введите:pkg search istgt После нажатия клавиши Enter pkg выдаст корректную версию. Добавит в rc.conf автозапуск:sysrc istgt_enable="YES" Настройка iscsi оказалась довольно простой, необходимо изменить всего несколько строк в файлах конфигурации. Файлы конфигурации находятся в папке /usr/local/etc/istgt. Первый «конфиг» который необходимо отредактировать — auth.conf, введите:ee /usr/local/etc/istgt/auth.conf В разделе [AuthGroup1] приведите строку Auth к виду:Auth "user1" "password" Имя пользователя и пароль введите которые Вам необходимы. На этом настройка auth.conf завершена. Настроим istgt.conf, введите:ee /usr/local/etc/istgt/istgt.conf В разделе [Global] измените параметр NodeBase на тот который Вам больше подходит, например:NodeBase "iscsi_target" Хотя этот параметр необязательно менять. В разделе [PortalGroup1] измените параметр Portal DA1 на ip адрес который используется у Вас на данном сервере, в моём случаи параметр будет выглядеть вот так:Portal DA1 192.168.1.106:3260 В разделе [InitiatorGroup1] измените параметр Netmask, в моём случаи параметр выглядит так:Netmask 192.168.1.0/24 Последний раздел который необходимо отредактировать — [LogicalUnit1], измените параметр TargetName на тот который Вам более подходит, у меня используется targ_disk1. В параметре LUN0 указывается жёсткий диск и его размер:LUN0 Storage /dev/md0 10G Здесь указан виртуальный жёсткий диск, если используете физический, то укажите его, а если желаете использовать виртуальный, то читаем дальше. Перейдите в каталог в котором желаете создать файл для виртуально жёсткого диска и выполните команду:dd if=/dev/zero of=disk bs=1k count=10m Параметр count отвечает за количество гигабайт, в данном случаю создастся файл размером 10 гигабайт, если укажите другое число, то в этом случаи необходимо изменить параметр LUN0 в istgt.conf. Данные процесс занимает относительно не много времени. После того как процесс завершиться, в текущей папке создастся фай disk, осталось только создать виртуальный жесткий диск командой:mdconfig -a -t vnode -f disk После выполнение данной команды отобразиться название виртуально диска (в моём случаи — md0), если название отличается, то так-же необходимо изменить параметр LUN0 в istgt.conf. Для того что-бы данный диск не пропал после перезагрузки, необходимо выполнить команду:sysrc mdconfig_md0="-a -t vnode -f disk" Либо укажите путь до файл:sysrc mdconfig_md0="-a -t vnode -f /home/user/disk" Остался один штрих — firewall. Как и на основной системе создайте файл:ee /etc/firewall.sc Добавьте строки:ipfw -q -f flush c="ipfw -q add " $c 00110 allow tcp from any to me 22,3260 setup keep-state $c 00140 allow tcp from me to any 443,80,21,53,3260 setup keep-state $c 00143 allow icmp from me to any keep-state $c 00144 allow udp from me to any 53 keep-state $c 40533 deny all from any to any frag $c 40534 deny all from any to any established $c 40535 deny all from any to any После того как сохраните изменения, введите:sysrc firewall_enable="YES" sysrc firewall_script="/etc/firewall.sc" service ipfw start На этом настройка сервера iscsi закончена, теперь приступим к настройки непосредственно Jail. binäre optionen ioption Часть 2. Настройка Jail Начиная с версии FreeBSD 9 настройка Jail вынесена в отдельный файл — /etc/jail.conf. Давайте создам данный файл и внесём необходимые изменения, введите команду:ee /etc/jail.conf В данный файл необходимо внести следующие строки: allow.raw_sockets = 1; exec.clean; exec.start = "/bin/sh /etc/rc"; exec.stop = "/bin/sh /etc/rc.shutdown"; mount.devfs; allow.set_hostname = 1; allow.sysvipc = 1; jail1 { host.hostname = "jail"; path = "/jails/1/"; interface = "em0"; ip4.addr = 192.168.1.105; } После того как сохраните изменения, можно приступать к сборке окружения Jail. Согласно данному файлу будет использоваться один Jail с именем jail1, если необходимо использовать дополнительный Jail, достаточно изменить вид файл следующим образом:allow.raw_sockets = 1; exec.clean; exec.start = "/bin/sh /etc/rc"; exec.stop = "/bin/sh /etc/rc.shutdown"; mount.devfs; allow.set_hostname = 1; allow.sysvipc = 1; jail1 { host.hostname = "jail"; path = "/jails/1/"; interface = "em0"; ip4.addr = 192.168.1.105; } jail2 { host.hostname = "jail"; path = "/jails/2/"; interface = "em0"; ip4.addr = 192.168.1.107; } В данной публикации будет рассмотрено создание одного Jail. Создадим каталог для будущего Jail командой:mkdir -p /jails/1 Для создания окружения необходимы «исходники», проще всего установить их в процессе установки системы, или использовать subversion(довольно не приятный процесс). Для создания окружения перейдите в каталог /usr/src, командой:cd /usr/src Для создания окружения введите команду:make -j4 world DESTDIR=/jails/1 Процесс довольно длительный, на моей системе установлен процессор Intel Core i5 3550, создание окружение заняло около часа. В команде создания окружения используется параметр -j4, число указывает на количество ядер у процессора, чем больше, тем быстрее. После того как окружение будет создано, необходимо добавить файлы конфигураций в jail командой:make distribution DESTDIR=/jails/1 На этом создание окружения закончено. Введите команду:/etc/rc.d/jail start В вновь созданный Jail по ssh подключиться пока нету возможности, так-как ssh отключен. Для того что-бы зайти в jail выполните команду:jexec jail1 Первое, что необходимо сделать — добавить DNS сервера, выполните:ee /etc/resolv.conf Добавьте в созданный файл строку:nameserver 8.8.8.8 Осталось добавить учётную запись(внести её в группу wheel), создать пароль на root и запустить ssh, всё это можно проделать командами:adduser sysrc sshd_enable="YES" service sshd start passwd root Могу порекомендовать установить midnight commander:pkg install mc Во время установки mc подтянутся многие распространённые зависимости, такие как python, perl. После выполнения данных манипуляций необходимо выйти из данного jail командой exit. Далее останавливает jail:/etc/rc.d/jail stop Представьте ситуацию когда необходимо создать 5-ть jail, такая задача займёт много времени, но к счастью можно создать архив с содержимым данного jail, а так-же сохранить все права для файлов. Поможет в данной ситуации архиватор tar. Перейдём в каталог с jail:cd /jails/1 Выполним команду:tar -zcvpf jail.tar * После того как архив будет создан, его необходимо переместить в другой каталог(данный каталог будет удалён):mv jail.tar /jail.tar Удалить каталог /jails не удастся до тех пор пока со всех файлов не будет убран «флаг» «неизменяемости»:chflags -R noschg /jails rm -rf /jails/ Если что то не удалиться, то просто необходимо перезагрузить систему и выполнить команду rm -rf ещё раз. Приступим к созданию виртуального жёсткого диска, создадим файл для диска:dd if=/dev/zero of=disk bs=1k count=10m И непосредственно сам виртуальный диск:mdconfig -a -t vnode -f disk Добавим автоматическое создание диска:sysrc mdconfig_md0="-a -t vnode -f disk" Укажите название того диска который создался у Вас(если название отличается), а так-же путь к файлу для виртуального диска. Следующим шагом будет автоматическое подключение диска через iscsi. Для корректного подключению к диску необходимо создать файл конфигурации:ee /etc/iscsi.conf В данный файл внесите следующие изменения:iscsi_disk{ authmethod=CHAP chapIName=user1 chapSecret=password initiatorname=nxl TargetName=iscsi_target:targ_disk1 TargetAddress=192.168.1.106:3260,1 LoginTimeout=10 AuthTimeout=10 IdleTimeout=10 ConnFailTimeout=10 AbortTimeout=10 ResetTimeout=10 } Если настройки в файле istgt.conf выставлены в соответствии с данной публикацией, то подключение произойдёт корректно. Единственный способ для автоматического подключения диска через iscsi я нашёл только способом размещения скрипта в rc.d. Создадим данный скрипт:ee /etc/rc.d/iscsi.sc Добавьте следующие строки:iscontrol -c /etc/iscsi.conf -n iscsi_disk zfs mount jails/1 /etc/rc.d/jail start Нужно учесть то, что если Вы создали ещё один jail, то его необходимо внести в данный скрипт(zfs mount jails/2 например). Первая строка подключает диск через iscsi, вторая строка монтирует файловую систему(если локальный жесткий диск «отвалился»), третья строка запуская jail. Осталось только сделать файл исполняемым:chmod +x /etc/rc.d/iscsi.sc После выполнения данного скрипта, или перезагрузки системы удалённый жесткий диск будет доступен для манипуляций. В моём случаи имя диска da1, Вам же необходимо использовать то имя которое используется у Вас. Создадим zfs pool из этих двух дисков:zpool create jails mirror md0 da1 zfs pool будет зеркальным, как нетрудно догадаться из команды. Создадим раздел для jail:zfs create jails/1 Назначим лимит на данный каталог в 5 гигабайт:zfs set quota=5g jails/1 Скопируем архив с jail в каталог /jails/1 и перейдём в данный каталог:cp /jail.tar /jails/1 cd /jails/1 Распакуем данный архив и удалим его:tar -zxvpf jail.tar rm jail.tar Запустим jail:/etc/rc.d/jail start После данных манипуляций можно подключаться к jail по SSH, а так-же устанавливать необходимые роли для сервера. Осталось только настроить ограничения для Jail. Для того что-бы настроить rctl необходимо только добавить файл конфигурации:ee /etc/rctl.conf Добавьте в данный файл следующие строки:jail:jail1:memoryuse:deny=1073741824 jail:jail1:readbps:throttle=4097152 jail:jail1:writebps:throttle=4097152 jail:jail1:pcpu:deny=50 1-я строка ограничит использование памяти в 1 гигабайт, 2-я и 3-я строки ограничат использование чтения и записи на диск в 4 мегабайта, 4-я строка ограничивает использование каждого ядра на 50 процентов. Это далеко не весь список ограничений, в списке источников укажу ссылку на сайт FreeBSD где это подробно описывается. После сохранения данного файла необходимо перезагрузить rctl:service rctl restart Ограничения вступят в силу буквально в течение нескольких секунд. c iq option Дополнительно Можно было бы на этом закончить, но может возникнуть ситуация такая, что выйдет из строя не жёсткий диск, а сам сервер(например сгорит). В таком случаи можно использовать диск который находится на удалённом сервере, но просто так его использовать не удастся, первым делом необходимо остановить службу istgt и включить zfs:service istgt stop sysrc zfs_enable="YES" /etc/rc.d/zfs start После этого необходимо ввести команду:zpool import После выполнения данной команды на экране отобразятся все возможные пулы которые можно импортировать, в данном случаи пул jails, а имя диска будет отображено md0. Для того что бы смонтировать данный пул необходимо выполнить команду:zpool import -f jails jails Обязательно укажите -f, в противном случат zpool будет ругаться, что данный пул принадлежит другому серверу. При необходимости так-же можно настроить jail на данном сервере используя данный пул, что в свою очередь сведёт простой к минимуму. Для того что бы опять можно было использовать данный диск для iscsi, необходимо отключить данный пул:zpool export jails А так-же запустить istgt:service istgt start На этом можно и закончить.Список источников которые очень помогли в написании данной публикации:Майкл Лука FreeBSD. Подробное руководство.www.freebsd.org/cgi/man.cgi?query=rctl&sektion=8www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/disks-adding.htmldocs.oracle.com/cd/E19253-01/820-0836/gavwn/index.html

go to link Authors: Super User

opzioni trader http://acps.cat/wp-content/uploads/2015/02/121028-diari-ara-perdre-la-por-a-parlar-del-suÄ ‰Şĺ © Read more https://habrahabr.ru/post/342312/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best