Jails in PFSense

Во времена pfSense, основанной на reeBSD 8.x годилось так:

Теперь (pfSense 2.2) команды пришлось модифицировать.

Install Jails into pfSense 2.2

  1. Скачаем базу для pkg-ng и попутно обновим pkg:
    pkg update

    • оно скажет, что для выполнения задуманного оно должно скаачать столько-то мегабайт данных и спросит разрешения
    • Надо - так надо. Соглашаемся и жмем “Энтер”
  2. теперь ставим ezjail:

    pkg install ezjail; rehash

  3. Используем ezjail для установки базовой jail:

    ezjail-admin install -r "10.1-RELEASE" -h ftp.freebsd.org

    1. оно радостно отрапортует, что поставило измененный /etc/make.conf, чтобы работали порты;
    2. хотя, если мы попробуем сделать базовый jail с портами (используя ezjail-admin install -p) оно начнет ругаться, поскольку portsnap в pfSense отсутствует.
  4. Создаем корневую директорию для наших jail-ов:

    mkdir /jails

  5. Подключаемся через веб-ГУИ к нашей pfSense. Там:
    • System → Advanced →Admin Access включаем SSH
    • Firewall → Vireual IPs Создаем IP Alias, в котором будет жить наш Jail
  6. любым образом (например, по ssh), загоняем файл jail.tgz в наш pfSense. Можно

    wget http://wiki.chroot.ru/lib/exe/fetch.php/jail.tgz
    tar -zxvf jail.tgz
    mv jail /etc/rc.d/

  7. Разруливаем проблемы с включением и подключением jail-ов:

    cat >> /etc/rc.conf.local
    echo 'jail_enable="YES"
    ezjail_enable="YES"
    jail_set_hostname_allow="NO"
    devfs_mount_jail="YES"
    jail_socket_unixiproute_only="YES"
    jail_sysvipc_allow="YES"' > /etc/rc.conf

    На новой пустой строке жмем Ctrl-D, если кто забыл

  8. Запускать jail или ezjail из /etc/rc.conf.local тупо не получится; однако, скрипт запуска pfSense будет запускать любой исполняемый sh скрипт, оканчивающийся на .sh и лежащий в /usr/local/etc/rc.d/
    • соответственно, создаем файл /usr/local/etc/rc.d/ezjail.sh со следующим содержимым:

      ezjail.sh
      #!/bin/sh
       
      rc_start() {
          /usr/local/etc/rc.d/ezjail start
      }
       
      rc_stop() {
          /usr/local/etc/rc.d/ezjail stop
      }
       
      case $1 in
          start)
              rc_start
              ;;
          stop)
              rc_stop
              ;;
          restart)
              rc_stop
              rc_start
              ;;
      esac

    • Исправляем права на этот файл:

      chmod 755 /usr/local/etc/rc.d/ezjail.sh

  9. Наконец-то можно создавать собственно наш jail:
    • ezjail-admin create –r /jails/ha_testnet_local ha.testnet.local 192.168.29.101

    • Создаем место для монтирования fdescfs в нашем jail-e:

      mkdir -p /jails/ha_testnet_local/dev/fd

  10. Осталось запустить наш jail

    sevice ezjail start

    После рестарта оно опять заведется.

Jail в Pfsense 2.4 здесь: https://blog.viktorpetersson.com/2018/01/27/jails-on-pfsense.html

embedded/pfsense_with_jails.txt · Last modified: 2020/09/09 06:12 by rybario
About this template
CC Attribution-Share Alike 4.0 International
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5