LINUX.ORG.RU

Сообщения Goganchic

 

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

Форум — Admin

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

  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

Форум — Admin

Пытаюсь объединить несколько машин на 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
()

Как Xiaomi определяет возможность Turbo charge

Форум — Talks

Подключаю телефон шнуром Xiaomi (USB Type A - USB Type C) к заряднику Xiaomi - отображается Turbo Charge.

Подключаю телефон к другому заряднику или другим шнуром - отображается режим быстрой зарядки, который медленнее чем Turbo Charge.

Между шнуром и зарядником втыкаю тестер с алиэкспресса, чтобы посмотреть напряжение и ток - отображается только режим быстрой зарядки. Прозвонил мультиметром контакты тестера - все 4 USB-контакта прозваниваются, т.е. никакого последовательного подключения к контактам скорее всего нет.

Вопрос: почему телефон в этом случае не подхватывает Turbo Charge? В чем может быть подвох? На мой взгляд, если контакты данных нетронуты, то телефон и зарядник должны иметь возможность согласовать режим зарядки.

Линукс при том, что иногда раздаю с этого телефона интернет для компа на линуксе.

 

Goganchic
()

firewall-cmd правила для роутера

Форум — Admin

Хочу настроить такую сетевую схему в Oracle Linux 8:

  • DMZ Gateway с двумя сетевыми интерфейсами, один смотрит во внешний мир, другой - в DMZ сеть;
  • внутри DMZ-сети есть несколько машин;
  • одна из машин DMZ - Network Gateway? имеет 2 интерфейса: один смотрит в DMZ, другой - во внутреннюю сеть;
  • во внутренней сети - другие машины.

В системе есть firewalld с nftables бекендом.

У меня возник ряд вопросов:

  1. Какие зоны нужно назначать интерфейсам DMZ Gateway? Интерфейсу наружу - public, интерфейсу внутри - DMZ?
  2. Какие зоны нужно назначать интерфейсам Network Gateway? Интерфейсу наружу - DMZ, интерфейсу внутри - Work?
  3. Как принято настраивать роутинг в firewall-cmd? Могу сделать с помощью direct-синтаксиса. Правильный ли это подход?

Пытаюсь понять, правильно ли делать все через firewalld или же можно настроить напрямую в nftables.

 , ,

Goganchic
()

wireguard адрес по dhcp

Форум — Admin

Настраиваю wireguard в конфигурации 1 сервер - много клиентов. Типичный конфиг клиента выглядит так:

[Interface]
Address = 10.10.8.101/24 <-- тут указывается статический адрес
ListenPort = 34567
PrivateKey = some-key

[Peer]
PublicKey = some-key
AllowedIPs = 10.10.8.0/24
Endpoint = 1.2.3.4:34567
PersistentKeepalive = 25

Получается, за каждым клиентом закреплен свой отдельный IP-адрес, который будет занят, даже если клиент не в сети. Можно ли сделать что-то вроде DHCP, чтобы адреса клиентам выдавались динамически?

 ,

Goganchic
()

iptables разрешить только определенный forwarding

Форум — Admin

Есть роутер на Debian 11. Локальная сеть - enp0s8, интернет - enp0s3. Хочу сделать так, чтобы из интернета был доступен web-сервер, который лежит в локальной сети на машине 10.0.0.2, а из локальной сети - был доступен Интернет. Весь лишний forward хочу запретить. Делаю такие правила iptables:

*nat
-A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80
-A POSTROUTING -o enp0s3 -j MASQUERADE
COMMIT

*filter
-A INPUT -i lo -j ACCEPT
-A INPUT -i enp0s3 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i enp0s3 -j DROP
-A FORWARD -i enp0s3 -p tcp --dport 80 -j ACCEPT
-A FORWARD -i enp0s3 -j DROP
COMMIT

В таком конфиге Web-сервер из Интернета доступен, но Интернет из локальной сети - нет. Если убрать правило -A FORWARD -i enp0s3 -j DROP, то все работает, но это значит, что будет работать любой forward. Как бы мне сказать что forward соединений из локальной сети в Интернет можно делать, а обратно - только то, что разрешено явно? Или я загоняюсь и так делать не нужно?

 , ,

Goganchic
()

Как Linux решает куда форвордить трафик?

Форум — Admin

Настраиваю nat на Debian 11 с помощью dnsmasq и iptables. В машине 2 сетевые карты: enp0s3 - смотрит в Интернет, получает адрес по DHCP и enp0s8 - смотрит в локальную сеть, имеет статический адрес. Хочу настроить машину как gateway из локальной сети в Интернет. Настраиваю dnsmasq для раздачи DHCP и DNS в локальной сети, выставляю net.ipv4.ip_forward=1 в /etc/sysctl.conf и добавляю одно единственное правило в iptables: -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE, то есть для каждого пакета, которому нужно сделать nat, получаю ip-адрес интерфейса enp0s3 и меняю оригинальный source адрес пакета на адрес интерфейса.

Вопрос: каким образом Linux понимает, что nat нужно сделать именно с enp0s8 на enp0s3? Что если у меня не 2 а 10 интерфейсов? Правильно ли я понимаю, что дело в таблице маршрутизации, которую можно посмотреть с помощью команды ip route? Linux смотрит на адрес назначения пакета и по таблице определяет в какой интерфейс нужно запульнуть пакет.

 , ,

Goganchic
()

deb пакет мой офис

Форум — Desktop

Смотрю содержимое deb-пакета «Мой Офис». Вижу, что все файлы, включая бинарники, настройки, шрифты, иконки и прочие ресурсы лежат в директории /usr/local/bin/myoffice-standard-home-edition. Я ведь правильно понимаю, что в Linux так не принято? Ну не хочешь ты раскладывать файлы по папка - ну положи все в /opt.

 ,

Goganchic
()

Воспроизводимое Linux-окружение

Форум — General

Периодически возникает задача создания Linux-окружения по некоторому образцу. Например, хочется иметь возможность быстро развернуть новую рабочую машину или сервер. Разные версии одних и тех же пакетов могут вести себя по-разному, поэтому очень хочется избежать сюрпризов и поставить именно тот набор версий, что указан в образце.

В разных языках программирования данная проблема решена в той или ной мере. Например, в Ruby есть bundler и Gemfile.lock, в котором перечислены все версии прямых и транзитивных зависимостей, в Node.js - npm и package-lock.json. Всегда можно попросить пакетный менеджер установить фиксированные версии библиотек.

Для создания серверных воспроизводимых окружений можно использовать Docker или Podman: указываю, что хочу запустить приложение внутри контейнера на некотором образе и я точно уверен, что окружение не поменяется (ну, кроме ядра хоста, конечно).

А что насчет десктопных дистрибутивов?

Возьмем, к примеру, Ubuntu. Можно посмотреть доступные версии пакетов с помощью apt-cache madison. Если один и тот же пакет предоставляется несолькими репозиториями, то можно выбрать какую именно версию установить. Однако, для одного репозитория доступна только одна версия пакета, т.е. если у меня в официальных репах лежит nginx 1.18.0-6, то в этой репе уже нет 1.18.0-3.

Посмотрел NixOS, слоган которого «Reproducible builds and deployments». С одной стороны я могу указать список пакетов в configuration.nix, но с другой, если я подсуну конфиг на новую машину, то далеко не факт, что мне установятся те же самые версии пакетов, ведь актуальные версии в репозиториях могли измениться.

Конечно можно сделать как с Docker-ом: скопировать образ диска с помощью dd и накатить на новый хард, но, на мой взгляд, такой подход выглядит несколько костыльно, потому что предполагает, что я взаимодействую с содержимым машины, как с некоторым черным ящиком, а хочется чтобы все было прозрачно, так сказать, configuration as a code.

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

Уважаемый ЛОР, что посоветуете по поводу дистрибутива с воспроизводимым окружением?

 ,

Goganchic
()

Проектирование сложной формы в FreeCAD

Форум — General

Хочу спроектировать крепление для клавиатуры RII i4 к телефону, чтобы получить теплый ламповый телефон с механической клавиатурой. Проблема в том, что в FreeCAD я ничего кроме параллелепипедов со скругленными углами и цилиндрическими пазами или какой-нибудь типовой шестеренки я не делал. Смотрю на клавиатуру, а она вообще ни разу не квадратная. Как принято замерять все эти скругления и рисовать сложные формы? Допустим, обвел я контуры на листочке в клетку, смог измерить несколько радиусов по бокам, померил толщину штангенциркулем, а дальше как? Как принято строить 3D-модели на такие формы?

 

Goganchic
()

Не устанавливается DNS в OpenVPN

Форум — General

Использую Kubuntu 21.04. Хочу подключиться к hidemy.name с помощью OpenVPN конфига. Внутри конфига есть следующие строки:

#DNS server to use 
dhcp-option DNS 1.1.1.1

Для соединения использую Network Manager и пакет network-manager-openvpn:

  1. импортирую конфиг: nmcli connection import type openvpn file conn.ovpn
  2. запускаю соединение: nmcli connection up conn

До запуска соединения вижу такие настройки DNS:

systemd-resolve --status               
Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub

Link 2 (wlp0s20f3)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.31.1
       DNS Servers: 192.168.31.1

Link 10 (vpn0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

После активации подключения вывод не особо меняется:

Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub

Link 2 (wlp0s20f3)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.31.1
       DNS Servers: 192.168.31.1

Link 10 (vpn0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 14 (tun0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

По каким-то причинам dhcp-option DNS не подхватывается.

Есть идеи почему так может быть и как это исправить?

 ,

Goganchic
()

Запустить через OpenVPN только определенные роуты

Форум — General

Использую конфиг OpenVPN из OpenVPN road warrior installer. Эта штука настраивает так, чтобы весь трафик клиента пускался через VPN. Как сделать так, чтобы зарулить только часть трафика через VPN, а остальной трафик шел бы мимо него?

Сейчас используется такой серверный конфиг:

local 1.2.3.4
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group $group_name
persist-key
persist-tun
verb 3
crl-verify crl.pem
explicit-exit-notify

и такой клиентский:

client
dev tun
proto udp
remote 1.2.3.4 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
ignore-unknown-option block-outside-dns
block-outside-dns
verb 3
дальше инфа про сертификат

 

Goganchic
()

Зачем нужен цикл в функциях STM32 HAL

Форум — Development

Смотрю исходники STM32 HAL. Вижу следующее:

#define __HAL_RCC_GPIOC_CLK_ENABLE()  do { \
                                        __IO uint32_t tmpreg = 0x00U; \
                                        SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN);\
                                        /* Delay after an RCC peripheral clock enabling */ \
                                        tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN);\
                                        UNUSED(tmpreg); \
                                          } while(0U)

зачем здесь нужен do/while цикл? Выполняется он всегда ровно 1 раз, т.к. постусловие всегда ложно. Правильно ли я понимаю, что это нужно только для того, чтобы определить внутри цикла переменную tmpreg так, чтобы область ее видимости была в этом самом цикле и название переменной не конфликтовало с названиями внутри функции, которая вызывает макрос?

 ,

Goganchic
()

VLC не открываем видео с SMB шары

Форум — Desktop

В Kubuntu 21.04 из Dolphin пытаюсь открыть видео на сетевой SMB-шаре, к которой есть доступ без пароля. Ловлю ошибку вида:

Your input can't be opened:
VLC is unable to open the MRL `smb://192.168.1.1/Data/video.mkv`.
Check the log for details.

Пробовал задавать логин/пасс как пишут в интернетах - не помогло. Пробовал ставить kio-fuse как пишут на Reddit - тоже никакого эффекта. Проблема специфична для KDE: в Gnome все работает как нужно, т.к. Nautilus монтирует SMB-шару с помощью gvfsd-fuse и VLC работает уже с локальным файлом.

Понимаю, что можно смонтировать шару с помощью cifs и тогда VLC будет работать как надо, но это выглядит как костыль. Быть может кто-то знает более правильное решение?

 , ,

Goganchic
()

Почему /dev не пустой?

Форум — General

Смотрю корневой раздел своей десктопной Kubuntu 21.04 (подмонтировал /dev/sda1 в папку ~/root, т.е. это именно настоящие файлы, а не udev on /dev type devtmpfs), вижу что в директории /dev внутри корневого раздела есть какие-то файлы:

console
fd
full
null
ptmx
pts
random
shm
stderr
stdin
stdout
tty
urandom
zero

Что это за файлы? Правильно ли я понимаю, что они нужны для начальной загрузки ядра до этапа, когда произойдет монтирование devtmpfs?

 ,

Goganchic
()

Софт для бекапа десктопа

Форум — Desktop

Привет!

Ищу софт для бекапа десктопа, что-то похожее на Time Machine в MacOS. Хочется создавать инкрементальные бекапы на внешний шифрованный жесткий диск и в случае необходимости иметь возможность загрузиться с флешки и восстановить систему или накатить ее на новый жесткий диск. Бекапы в облако - не приоритетны.

OS - Ubuntu 20.04 или Kubuntu 21.04.

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

Посоветуйте, пожалуйста, возможных вариантов софта для бекапа.

 ,

Goganchic
()

Ubuntu отключить auto update

Форум — Admin

Разворачиваю виртуалку на Ubuntu 20.04 в Digital Ocean с целью накатить на нее некоторый набор софта. Делаю это автоматическим скриптом. И все бы хорошо, если не то, что в половине случаев виртуалка начинает автоматическую проверку обновлений и при попытке запустить sudo apt-get install ... получаю ошибку вида Could not get lock /var/lib/dpkg/lock-frontend. It is held by process. Виртуалка одноразовая: создал, накатил софт, прогнал задачу, выключил. Как лучше отключить автообновления на виртуалке? Вот тут прочитал что можно отключить apt-daily.timer и apt-daily-upgrade.timer. Нормально ли это или есть более правильный способ отключения автообновлений?

 , ,

Goganchic
()

Ubuntu 21.04 fractional scaling tearing

Форум — General

Пытаюсь разобраться с tearing-ом в Ubuntu 21.04 на Honor Magicbook с графикой Intel Iris Xe graphics. Проблема проявляется при масштабировании в 150%. В Wayland даже с масштабированием тиринга нет, но из-за бага с FF с обрезкой меню, отсутствием заголовка окна в Slack и размытым VLC и Viber для моих задач такое решение подходит со скрипом. Отказаться от проблемного софта я, к сожалению, не могу. Починить сам тоже не могу в силу закрытости некоторой части используемого софта. Ждать, когда выпустят фиксы, как показывает практика, можно очень долго.

Смотрел в сторону Xorg. Пытался применить решения с askubuntu - не помогло: в разных комбинациях AccelMethod, TearFree и DRI либо ничего не меняется, либо еще хуже - экран начинает артифачить. Все что я находил в интернете в том или ином роде повторяло решение с askubuntu.

Судя по тому, что в Wayland проблемы нет, рискну предположить что решение возможно и в Xorg. Быть может кто-то сталкивался с похожей проблемой, поделитесь, пожалуйста, полезной ссылкой с возможным решением?

 , ,

Goganchic
()

Зачем нужен man-db.service в Ubuntu

Форум — General

Обнаружил такой systemd сервис: man-db.service. Вызывается он раз в день с помощью таймера man-db.timer. Смотрю описание:

Daily man-db regeneration

Никак не могу понять, а зачем нужна эта самая регенерация базы? В моем понимании есть набор man-страниц. Есть индекс по ним. Если я не добавляю новые страницы или не удаляю существующие с помощью установки пакетов через apt-get, то как-то регенерировать индекс особого смысла нет, т.к. данные не поменялись, а, следовательно, и индекс не поменяется.

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

 ,

Goganchic
()

Ubuntu 21.04 ярлык запуска в левой панели

Форум — General

Недавно установил Ubuntu на 14" ноут. На ноуте матрица 1080p, если интерфейс не масштабировать, то выглядит все достаточно мелко. Я включил fractional saling на 150% - размер интерфейса стал приемлимым, но, как я писал в предыдущей теме, некоторые приложения стали размытыми. Среди них и telegram. Нашел в сети, что для Qt приложения, каковым является telegram, можно включить wayland-бекенд и, как следствие, размытость пропадает. Сделать это можно с помощью передачи переменной окружения QT_QPA_PLATFORM=wayland при запуске приложения.

Все бы хорошо, но запускать telegram постоянно через терминал не кажется мне хорошей идеей, поэтому я сделал в .local/share/applications файл со следующим содержимым:

[Desktop Entry]
Name=Telegram messenger
Comment=Instant messenger application
Exec=env QT_QPA_PLATFORM=wayland telegram-desktop %u
Icon=/snap/telegram-desktop/current/meta/gui/icon.png
Terminal=false
Type=Application
Categories=Network;InstantMessaging;P2P;

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

Как бы сделать такой лаунчер, чтобы он нормально закреплялся в левой панели?

 , ,

Goganchic
()

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