LINUX.ORG.RU

Сообщения Goganchic

 

Изменение шела в Kubuntu на zsh

Пытаюсь изменить дефолтный шел в Kubuntu с bash на zsh. После выполнения chsh и перезагрузки пропадает часть иконок, и вообще ноут ведет себя странно. Как только возвращаю шел на bash — все возвращается в норму. Как правильно изменить дефолтный шел в Kubuntu так чтобы все работало нормально?

P.s. если сменить терминал в konsole, то это дает частичный эффект: в том же самом mc используется bash, что не очень удобно.

 ,

Goganchic
()

Ansible синхронизация директорий

Есть директория с конфигами. Хочу скопировать ее на сервер и если какие-то файлы поменялись — рестартнуть сервис, конфиги которого я копирую. По наивности делал так:

- name: Copy configs
  copy:
    src: configs
    dest: /etc
  register: configs
- name: Restart service
  systemd:
    name: my-service
    state: restarted
  when: configs.changed

Проблема в том, что если я удаляю какие-то файлы с конфигами, то они не удаляются на удаленном сервере. Как сделать так, чтобы удалялись?

Читал про модуль synchronize. Вроде похоже на правду, но какой-то он, мягко говоря, странный, судя по доке.

По идее, я могу безусловно удалять директорию с конфигами на сервере, а потом подкладывать на ее место локальную, но тогда я потеряю событие changed. Хотя и это можно обойти какой-нибудь предварительной проверкой отличий директорий или копированием локальной директории куда-то в /tmp на сервере и потом ручным запуском rsync, но быть может есть какой-то более проостой способ решения этой проблемы?

 

Goganchic
()

ansible: странности при установке пакета через dnf

Настраиваю виртуалки. Есть простая ansible-задачка для установки пакета FreeIPA клиента:

- name: Install package
  dnf:
    name:
      - freeipa-client

В документации Ansible написано, что для модуля dnf, если не задано значение параметра state, то выполнится действие такое, как-будто было бы передано значение present. Ожидаю, что поведение будет следующее: если пакета на машине нет, то он установится, если есть — то ничего не произойдет. Сегодня заметил, что для одной из машин задача выдала состояние changed, хотя я был на 100% уверен что FreeIPA там уже есть.

Посмотрел по логам dnf и увидел следующее:

2022-11-15T11:17:40+0300 DDEBUG timer: sack setup: 2441 ms
2022-11-15T11:17:40+0300 INFO Package ipa-client-4.9.8-6.0.1.module+el8.6.0+20571+0c339766.x86_64 is already installed.
2022-11-15T11:17:40+0300 DDEBUG timer: depsolve: 206 ms
2022-11-15T11:17:42+0300 DEBUG Using rpmkeys executable at /usr/bin/rpmkeys to verify signatures
2022-11-15T11:17:43+0300 INFO Running transaction check
2022-11-15T11:17:43+0300 INFO Transaction check succeeded.
2022-11-15T11:17:43+0300 INFO Running transaction test
2022-11-15T11:17:43+0300 INFO Transaction test succeeded.
2022-11-15T11:17:43+0300 DDEBUG timer: transaction test: 393 ms
2022-11-15T11:17:43+0300 INFO Running transaction
2022-11-15T11:17:44+0300 DDEBUG RPM transaction start.
2022-11-15T11:17:52+0300 DDEBUG RPM transaction over.
2022-11-15T11:17:52+0300 DDEBUG timer: verify transaction: 376 ms
2022-11-15T11:17:52+0300 DDEBUG timer: transaction: 8660 ms
2022-11-15T11:17:52+0300 DEBUG Completion plugin: Generating completion cache...
2022-11-15T11:17:53+0300 DEBUG Upgraded: authselect-1.2.5-1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: authselect-compat-1.2.5-1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: authselect-libs-1.2.5-1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: ipa-client-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: ipa-client-common-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: ipa-common-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: libipa_hbac-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libldb-2.5.2-2.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsmbclient-4.16.4-2.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsss_certmap-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsss_idmap-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsss_nss_idmap-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libsss_simpleifp-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libtdb-1.4.6-1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: libwbclient-4.16.4-2.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-ipaclient-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-ipalib-4.9.10-3.0.1.module+el8.7.0+20835+685a878f.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-libipa_hbac-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-sss-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: python3-sssdconfig-2.7.3-4.0.1.el8.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: samba-client-libs-4.16.4-2.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: samba-common-4.16.4-2.0.1.el8.noarch
2022-11-15T11:17:53+0300 DEBUG Upgraded: samba-common-libs-4.16.4-2.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-ad-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-client-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-common-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-common-pac-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-dbus-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-ipa-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-kcm-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-krb5-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-krb5-common-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-ldap-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-proxy-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Upgraded: sssd-tools-2.7.3-4.0.1.el8.x86_64
2022-11-15T11:17:53+0300 DEBUG Installed: sssd-idp-2.7.3-4.0.1.el8.x86_64

То есть сначала dnf говорит, что требуемый пакет уже установлен, а потом начинает его обновлять. Это точно нормальное поведение? Если нет, то что я делаю не так? Если да, то чем state: present отличается от state: latest и можно ли как-то сделать так, чтобы если пакет уже установлен, то ничего не происходило?

ОС: Oracle Linux 8, ansible-core 2.13.4

 , ,

Goganchic
()

Отключить все проверки в rpmbuild

Собираю RPM-пакет. Хочу просто взять все файлы как есть и положить их в пакет. Сборка проекта и всевозможные проверки выполняются на другом этапе, поэтому их делать не нужно. При сборке ловлю:

* WARNING: 'check-rpaths' detected a broken RPATH and will cause 'rpmbuild'
*          to fail. To ignore these errors, you can set the '$QA_RPATHS'
*          environment variable which is a bitmask allowing the values
*          below. The current value of QA_RPATHS is 0x0000.

и сборка падает. Как бы мне отключить эту и все остальные проверки разом? Пробовал запускать rpmbuild --nocheck -bb SPECS/myapp.spec — не помогло. Конкретно эту проверку могу отключить так: QA_RPATHS=$(( 0x0001|0x0010|0x0002 )), но тогда выываливаются другие ошибки. Очень не хочется чинить их по одной.

 

Goganchic
()

Странное поведение браузера при работе с dnsmasq

Часть моих dns-записей доступна только внутри VPN (WireGuard), при этом я не хочу пускать все DNS-запросы в сервер внутри VPN сети. Развернул локальный dnsmasq и настроил его таким образом:

server=/example.com/1.2.3.4
server=8.8.8.8

cache-size=0
no-negcache

То есть все запросы для своего домена пускаю на приватный DNS-сервер, а все остальные - на 8.8.8.8. Приватный DNS-сервер доступен только внутри VPN сети, снаружи он не светится. Также установил отсутствие кеширования запросов.

Наблюдаю странное поведение браузера (проверял на Firefox и Chrome): периодически браузер не может разрезолвить какой-нибудь домен, типа google.com. Сначала думал, что поведение возникает в момент включения/выключения VPN, но позже обнаружил такое же поведение и в рандомные моменты. При этом если дернуть dig google.com из консоли, то адрес возвращается корректно, при этом используется мой локальный dns-сервер прописанный в системе.

Чтобы браузер «отпустило» — перезапускаю dnsmasq. После этого все работает корректно.

В логах иногда наблюдаю такое: «Oct 16 12:30:09 ubuntu dnsmasq: Maximum number of concurrent DNS queries reached (max: 150)». Неужели браузер делает 150 запросов? dnsmasq слушает только 127.0.0.1, никто снаружи не может его дернуть.

Поведение воспроизводится на Ubuntu 20.04 и Kubuntu 22.04.

Подскажите, почему может наблюдаться такое поведение?

 

Goganchic
()

Запись гитары в Linux

Использую для записи гитары в Windows такой стек: Reaper + Easy Drummer + Amped Roots + Ample Metal R. Все устраивает. Хотелось бы собрать что-то подобное на Linux. Смотрел недавно видео Кирилла с Hard Sound. Узнал, что можно запустить тот же Reaper и ToneLib GFX, но вот VST плагинов просто так в Reaper не будет. Без них не могу сделать из Midi бас и барабаны. Видел, что можно обернуть VST через Wine и воткнуть их в линуксовый Reaper.

Подскажите пожалуйста, кто-нибудь пробовал провернуть такое? Насколько стабильно работает? Насколько увеличивается задержка?

 , ,

Goganchic
()

Почтовый клиент с поддержкой ActiveSync

В организации используется Outlook в качестве почтового клиента. Все почтовые протоколы (POP3, IMAP) закрыты. Единственный протокол, по которому возможен доступ - ActiveSync. Подскажите пожалуйста, что можно использовать для доступа к почте по ActiveSync в Linux? Смотрел расширения к Thunderbird, но там не совсем то что нужно: Owl работает через OWA, который тоже закрыт, TbSync не работает с почтой, а поддерживает только календари и контакты.

Что можно использовать для почты по протоколу ActiveSync в Linux? Пока что вижу только один вариант: запустить Outlook через Wine. Может быть есть вариант получше?

P.s. попробовал davmail — там тоже нет поддержки ActiveSync, только EWS, который в организации тоже закрыт.

 ,

Goganchic
()

Зачем нужен SELinux?

Недавно начал использовать Oracle Linux 8 на серверах. В RHEL-подобных дистрибутивах по умолчанию включен SELinux. Периодически это приводит к различного рода ошибкам. Например, nginx не может делать proxy_pass на внешний адрес. Я решил это с помощью команды setsebool httpd_can_network_connect 1. Или другой пример: мое приложение на Node.JS падает с ошибкой avc: denied { execmem }, при запуске как systemd service. С этим я еще не разобрался.

С одной стороны я могу отключить SELinux и жить дальше, но мне стало интересно, зачем вообще нужна эта технология. Читаю доку от Red Hat. Из доки я сделал вывод, что SELinux позволяет сделать более гранулярные правила доступа к ресурсам, чем в традиционном DAC. Таким образом, каждому файлу и директории можно поставить какую-то SELinux метку, а для процесса описать политику, в которой указано что можно делать с какими-то ресурсами, а что нельзя. Но разве в DAC делается не тоже самое? Обычно для веб сервера или базы данных создается свой собственный пользователь, которому выдаются доступы к определенным каталогам, а ко всем остальным каталогам доступы запрещаются. В доке от Red Hat пишут:

For example, if the Apache HTTP Server is compromised, an attacker cannot use that process to read files in user home directories, unless a specific SELinux policy rule was added or configured to allow such access.

Но разве Apache по умолчанию настроен так, что у него есть доступ к файлам в домашних каталогах пользователей? У него отдельный пользователь, который никаких доступов в /home не имеет, если их не выдали явно. Или идея в том, что даже если я запустил Apache от своего пользователя с включенным SELinux, то и в этом случае взломанный Apache не будет иметь доступа к моему домашнему каталогу?

Получается, что SELinux это в некотором роде аналог песочниц типа jails в FreeBSD или lxc/bubblewrap в Linux?

В общем, камрады, поделитесь своими мыслями о SELinux: в чем основная идея, когда может быть нужен, нужен ли вообще?

 

Goganchic
()

Помогите разобраться с AGPL

Пытаюсь понять что можно делать с AGPL софтом, а что нельзя. Смотрю на mattermost. В readme написано, что бинарный код распространяется под MIT, а исходники - под AGPL. У mattermost есть бесплатная и платная версии. В платной версии есть разные штуки, типа интеграции с LDAP, поиска через Elastic Search и т.п. Правильно ли я понимаю, что если приложение распространяется по AGPL и его исходники доступны на GitHub, то я могу легально взять исходники, поменять проверку наличия платной лицензии в license.go и свободно пользоваться всеми платными фичами за исключением тех, которые требуют сетевых сервисов mattermost, таких как мобильные нотификации? Понятно, что если я захочу передавать такую версию третьим лицам или хостить на публично доступном сервисе, то я должен поделиться измененными исходниками + могут возникнуть вопросы к торговым маркам, т.е. я должен буду выпилить упоминания названия и логотипов mattermost, как тот же Oracle делает в своем дистрибутиве, основанном на RHEL.

Правильно ли я все понял или где-то ошибся?

 ,

Goganchic
()

Не работает squid в режиме intercept

В конфиге squid выставляю http_port 3129 intercept. На машине со squid-ом выполняю команду curl -I -vvv http://ya.ru --connect-to ya.ru:80:127.0.0.1:3129 и получаю ошибку 403.

Проверил настройки selinux и firewalld - ничего не блочит запросы. Убрал intercept, сделал запрос http_proxy=http://127.0.0.1:3128 curl -I -vvv http://ya.ru - все работает как надо.

Включил debug-логи squid-а, вижу следующее:

2022/08/15 17:17:30.937 kid1| WARNING: Forwarding loop detected for:
HEAD / HTTP/1.1
User-Agent: curl/7.61.1
Accept: */*
X-Forwarded-For: 127.0.0.1
Cache-Control: max-age=259200
Connection: keep-alive
Host: ya.ru

Не могу понять в чем проблема. Если я правильно понимаю принцип работы squid в режиме intercept, то должно произойти следующее:

  • запрос приходит в squid (чаще всего через dnat)
  • squid извлекает из запроса заголовок Host, резолвит имя хоста и делает к нему запрос

Если все так, то не могу понять почему возникает цикл.

Где я ошибаюсь?

 

Goganchic
()

Странное использование _mm_prefetch

Разбираю пример из статьи What Every Programmer Should Know About Memory про векторные оптимизации при умножении матриц:

#include <stdlib.h>
#include <stdio.h>
#include <emmintrin.h>
#define N 1000
double res[N][N] __attribute__ ((aligned (64)));
double mul1[N][N] __attribute__ ((aligned (64)));
double mul2[N][N] __attribute__ ((aligned (64)));
#define SM (CLS / sizeof (double))
int
main (void)
{
  // ... Initialize mul1 and mul2
  int i, i2, j, j2, k, k2;
  double *restrict rres;
  double *restrict rmul1;
  double *restrict rmul2;
  for (i = 0; i < N; i += SM)
    for (j = 0; j < N; j += SM)
      for (k = 0; k < N; k += SM)
        for (i2 = 0, rres = &res[i][j], rmul1 = &mul1[i][k]; i2 < SM; ++i2, rres += N, rmul1 += N)
        {
          _mm_prefetch (&rmul1[8], _MM_HINT_NTA);
          for (k2 = 0, rmul2 = &mul2[k][j]; k2 < SM; ++k2, rmul2 += N)
          {
            __m128d m1d = _mm_load_sd (&rmul1[k2]);
            m1d = _mm_unpacklo_pd (m1d, m1d);
            for (j2 = 0; j2 < SM; j2 += 2)
            {
              __m128d m2 = _mm_load_pd (&rmul2[j2]);
              __m128d r2 = _mm_load_pd (&rres[j2]);
              _mm_store_pd (&rres[j2], _mm_add_pd (_mm_mul_pd (m2, m1d), r2));
            }
          }
        }

  // ... use res matrix
  return 0;
}

Не до конца понимаю идею с _mm_prefetch. Как я прочитал из документации _mm_prefetch позволяет подсказать процессору как кешировать те или иные данные. Поскольку мы итерируемся блоками по SM элементов, то очевидно, что пытаться закешировать элемент, следующий за rmul1 не имеет смысла, т.к. использовать мы его все равно не будем, а попытка кеширования сбросит полезные кеши для других элементов. Поэтому мы помечаем элемент как Non-Temporal Data. Вопрос в том, почему мы помечаем адрес &rmul1[8]? Т.е. мы берем адрес 8-го double-элемента в rmul1 и помечаем его как Non-Temporal. Не понимаю почему именно 8го. Может быть это как-то связано с выравниванием по 64 байта, которое указано в начале программы?

 ,

Goganchic
()

Задать разные DNS-сервера для разных доменов

Сижу на Ubuntu 20.04. Есть несколько VPN подключений до разных рабочих сетей. В каждой сети есть свой внутренний DNS-сервер, который резолвит некоторые домены во внутренние IP-адреса. Если попытаться разрезолвить эти же домены каким-то публичным DNS-сервером (например, 8.8.8.8), то в результате получим внешние IP.

Как лучше всего настроить привязки разных доменов к разным DNS-серверам? Гуглю про dnsmasq, но вроде как для систем с systemd уже есть systemd-resolved и лучше конфигурировать его. Подскажите как лучше всего сделать?

P.s. хочу сделать статическую конфигурацию, т.е. не важно, включены сейчас VPN-сервера или нет - привязки доменов к конкретным DNS-серверам должны сохраниться как есть (да, я понимаю, что в случае если отключены vpn работать ничего не будет, но так и задумано).

 , ,

Goganchic
()

PyCharm Community из Flatpak и несуществующий python3.9

Установил PyCharm Community из Flatpak. Создал простой проект. PyCharm автоматически создает venv. Накатил туда PySide6. Открыл директорию venv в терминале PyCharm: вижу что файл venv/bin/python3 указывает на /usr/bin/python3.9. Смотрю директорию /usr/bin в терминале PyCharm - файл python3.9 - есть. Смотрю эту же директорию в обычном терминале вне PyCharm - файла python3.9 нет. Как результат - активировать venv вне PyCharm не могу. Думаю, что такое поведение как-то связано с Flatpak. Как это работает? Где почитать?

 ,

Goganchic
()

FreeIPA SSHFP ключи

У меня такой сетап:

  • ОС: Oracle Linux 8
  • FreeIPA домен
  • DNS на bind9, dnssec отключен

Пытаюсь добавить машину в домен, все проходит успешно, но получаю такое сообщение: Could not update DNS SSHFP records.

Правильно ли я понимаю, что эти записи нужны того, чтобы с помощью DNS подтвердить что ключи сервера верные? Нужны ли эти записи мне вообще, если dnssec у меня отключен? Проверяю работоспособность доменных машин - все работает и без этих записей. Добавить ipa-client-install их не может судя по тому, что в bind9.conf у меня указано allow-update { none; }.

 

Goganchic
()

VPN вложенный в другой VPN

К ряду ресурсов есть доступ только через WireGuard VPN соединение. При этом, чтобы подключиться к WireGuard пиру необходимо иметь IP в определенной стране, который можно получить с помощью другого VPN соединения (для простоты пусть это будет тоже WireGuard). Как настроить подключение таким образом, чтобы первое WireGuard соединение шло через второе? Что-то никак не могу нагуглить. Поделитесь полезной ссылкой, пожалуйста.

 

Goganchic
()

Зачем в AltLinux используется связка apt + rpm?

Смотрю на пакетный менеджер в AltLinux и вижу, что используется достаточно нетипичная связка apt-get + rpm. Насколько я знаю, обычно используется либо apt-get + deb, либо yum/dnf + rpm.

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

В чем тайный смысл?

 , ,

Goganchic
()

Маршрутизация внутри сети

Есть 2 сети: net1 и net2.

В net1 есть хост gw1, который имеет 2 сетевых интерфейса: один смотрит в Интернет, второй - в net1.

В net2 есть хост gw2, который имеет 2 сетевых интерфейса: один смотрит в net1, второй - в net2.

Вопрос: как лучше настроить роутинг для машин из net1 для хождения в net2? Вижу 2 варианта:

  1. Настроить роутинг только на gw1, а у остальных машин net1 оставить только default gw. В этом случае если роутинг нужно будет поменять - то достаточно это сделать только на одном хосте. Недостаток - избыточный трафик на gw1.
  2. Настроить на каждой машине из net1 роутинг в net2 через gw2. Так трафика в сети будет поменьше, но роутинг придется настраивать на каждой машине в net1.

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

Я прав или есть какие-то подводные камни?

 

Goganchic
()

Oracle Linux 8 wireguard

Пытаюсь установить Wireguard на Oracle Linux 8. Заметил что во всех статьях либо предлагается установить пакет kmod-wireguard (статья про Wireguard в CentOS 8), либо предполагается что wireguard уже установлен (статья про Wireguard в Oracle Linux 8).

В репозиториях Oracle Linux 8 есть пакет wireguard-tools, но нет пакета kmod-wireguard. Без него ожидаемо ловлю ошибку Unable to access interface: Protocol not supported.

Еще нашел упоманание Wireguard в доке про Unbreakable Enterprise Kernel, но у меня обычное ядро 4.18.0.

Подскажите, куда копать?

 ,

Goganchic
()

Схема сети для небольшой организации

Пытаюсь разработать схему сети для небольшой организации. В организации несколько разработчиков, один админ. Организация занимается разработкой софта (в основном разный веб). Представляю себе двухконтурную схему:

  1. DMZ-контур из которого есть доступ в интернет. Сюда помещаю внешний DNS, http-блансировщик на nginx, внешний файрвол, vpn-сервер для доступа внутрь.
  2. Внутренний контур. Сюда помещаю внутренний файрвол, который пропускает только определенные порты из DMZ, FreeIPA для домена, внутренний DNS, хранилище кода, CI/CD системы, базы данных и прочие сервера.

Доступ во внутренний контур из Интернета возможен только через DMZ. Доступ в Интернет из внутреннего контура возможен только через DMZ.

Часть HTTP-ресурсов доступна из Интернета через http-балансировщик. Сами ресурсы расположены на серверах во внутренней сети.

Часть HTTP-ресурсов доступна только из-под VPN.

Возникает ряд вопросов:

  1. в целом имеет ли такая схема право на существование?
  2. вводить ли в домен машины из DMZ-контура?
  3. какой DNS сервер указывать машинам из DMZ-контура?

 

Goganchic
()

FreeIPA кеширование sudo_rules

Пытаюсь объединить несколько машин на Oracle Linux 8 в домен с помощью FreeIPA. Никаких специфичных настрое не делал - просто запустил ipa-client-install --mkhomedir на клиентах и ipa-server-install на сервере.

Настраиваю sudo rules. Заметил, что после после удаления правил - изменения на клиентах появляются достаточно быстро, а вот после добавления правил - нет.

Читаю доку по sssd-ldap. Вижу, что sudo rules кешируются и чтобы правила применились нужно либо достаточно долго ждать, либо чистить кеш через sss_cache -E и удаление данных в /var/lib/sss/db/, либо менять настройки ldap_sudo_smart_refresh_interval и ldap_sudo_full_refresh_interval.

По последним настройкам возник вопрос: с одной стороны sudo rules у меня меняться будут не очень часто, но с другой - ждать по 15 минут, когда они применятся - не очень хочется. Какие значения для этих настроек приемлемы? В документации пишут, что если указать слишком маленькие значения - то будет генерироваться много лишнего трафика. И я вот думаю, если указать, ldap_sudo_full_refresh_interval = 300 и ldap_sudo_smart_refresh_interval = 120 это нормально или перебор? Спрашиваю потому, что дефолтные настройки в ldap_sudo_full_refresh_interval = 21600 и ldap_sudo_smart_refresh_interval = 900 кажутся совсем дикими.

 ,

Goganchic
()

RSS подписка на новые темы