Тюрьмы и сокеты FreeBSD

#sockets #freebsd #jail

#сокеты #freebsd #тюрьма

Вопрос:

Я совсем новичок в переходе FreeBSD с Linux.

Я читал о тюрьме, решение отлично подходит для серверных систем. Итак, моей идеей для моего веб-сервера было создать 3 тюрьмы. Одна тюрьма для mysql, одна для nginx и одна для php-fpm. Теперь тюрьмы должны взаимодействовать друг с другом. Как мне это сделать?

Через IP? Это было бы большими накладными расходами, но безопасно. Вот пример:

  • КЛИЕНТ
    • -> TCP/IP -> NGINX
    • -> TCP/IP -> PHP-FPM
    • -> TCP/IP -> MYSQL
    • -> TCP/IP -> PHP-FPM
    • -> TCP/IP -> NGINX
    • -> TCP/IP -> КЛИЕНТ

С сокетами: это было бы потерей безопасности..

  • создайте каталоги в хост-системе
  • создайте каталоги в тюрьмах
  • объединить каталоги

Какое решение вы используете?Или у вас есть решения получше?

Ответ №1:

Я бы не стал разделять php-fpm, но это возможно. Накладные расходы на IP-связь в наши дни не так уж велики и не так важны, учитывая, что обработка, которую должны выполнять база данных и php-процессор, намного больше. Тем более, что здесь фактически не задействован провод. Пакеты маршрутизируются через интерфейс с помощью конструкции обратной связи и не попадают по проводам.

Преимущество разделения в том, что вы можете при необходимости переместить тюрьму на другую физическую машину, и перемещение тюрем — это легкий ветерок.

Пояснение, почему не переносить php-fpm в отдельную тюрьму, заключается в том, что изменение веб-сайта становится двухзадачным процессом для статического контента (изображений) и динамического контента (php-файлов).). Преимущество заключается в том, что брешь в программном обеспечении веб-сервера не позволяет модифицировать php-код. Вот почему вам также не следует обнулять свой php-код на веб-сервере jail, если вы планируете разделение, поскольку это лишит его преимущества.

Ответ №2:

Я действительно не знаю, лучшее ли это решение, но если вы можете использовать Unix domain sockets , вы можете разделить монтирование между тремя тюрьмами. Пространство имен изолировано (они не могут создать сокет вне общей точки монтирования), и они должны иметь возможность обмениваться данными.

Для создания общего монтирования вы можете использовать nullfs монтирование. В хорошем (довольно продвинутом) руководстве по тюрьмам также говорится о nullfs монтированиях. Конечно, эту точку монтирования следует использовать только для сокетов, остальные файлы должны оставаться отдельными.

Опять же, я не знаю, могут ли эти приложения взаимодействовать через сокеты Unix, но если могут, то вы, вероятно, настроены.