Арчесервер

Схоже, переїзд на Арч пройшов доволі вдало. Заодно я перелопатив усі сервіси, які були на старому сервері, попереписував конфіги, дещо замінив, дещо підлаштував. Технічні деталі для охочих навожу під катом.

  • Система, очевидно, — затишний Арчик. Заінсталлено все на шифрований LVM (тому що можу), зверху розміщується Btrfs (так, я вирішив ризикнути). Розшифровка налаштована так, що її можна провести по мережі віддалено, при цьому доступ до цієї процедури надається виключно по ключу.
  • Окремий рядок про systemd. Тепер замість cron і NTP-клієнта він також використовується. Плюс до того, мережа (дуалстек IPv4/IPv6) відтепер рулиться через systemd-networkd.
  • Фаєрвол тепер nftables. Усе супер, шкода тільки, що fail2ban поки що з ним не працює.
  • DNS зроблений хитро. Є локальний резолвер для кеша у вигляді PowerDNS, який форвардить запити на dnscrypt-proxy. Ще працює systemd-resolved.
  • Для пошти я задіяв давню зв’язку Postfix+Dovecot, але цього разу сів і розібрався з тим, що накопіпастив у конфіги. Відповідно, конфіги стали набагато компактнішими. Для фільтрування спаму я задіяв Rspamd+rmilter, переписавши для них PKGBUILD’и. Виявляється, ця зв’язка дуже зручна, причому працює з дефолтними конфігами. А ще вона нормально навчається по ходу справи без свистоплясок із FIFO, які я городив для SpamAssassin’а. DSPAM, до речі, є в репах, але він настільки давно не оновлювався розробниками, що я його вже не ризикую ставити. Веб-інтерфейс для пошти, як і зазвичай, працює на Roundcube, у який до того ж інтегровано керування sieve-фільтрами, а ще працює зв’язка із сервером CardDAV. Адміниться пошта через Postfix Admin. Для перегляду статистики Rspamd є його власний WebUI. А, ну ще не забув я і про OpenDKIM/OpenDMARC.
  • Веб, звісно, працює на nginx, PHP-бекенд’ом рулить PHP-FPM. Цього разу я не став пхати всі інстанси в одного юзера, а зробив красиво: один користувач на один сайт в окремому пулі. БД заправляє MariaDB з невеликим коригуванням дефолтного конфіга. Адміниться, очевидно, через phpMyAdmin. Для прискорення PHP піднято memcached, OPcache і APCu. memcached окрім того, що використовується для зберігання PHP-сесій, ще відповідає за сторедж для грейлістінга через rmilter.
  • XMPP на Prosody. Трохи мав проблем із переїздом на нову версію, але все вирішилося доволі швидко з розробниками в жаббер-конференції.
  • CalDAV/CardDAV працює на Radicale. Це мені потрібно для централізованого зберігання календарів і контактів. З ним же синхронізується і телефон.
  • Моніторинг (три сервера) зроблений через Zabbix.
  • Зв’язок з іншими серверами зроблений через tinc. Дуже зручно, бо один сервер стоїть за провайдерським NAT’ом (для екстреного доступу є SSH через TOR).
  • За приватний git відповідає Gitolite. Публічний доступ я закрив, усе публічне лежить на GitHub’і.
  • Робочі документи синхронізує Syncthing.
  • Бекапи /etc і БД жмуться, шифруються і заливаються на Dropbox. Стискання /etc робиться через lrzip, БД — через PBZIP2. Так, я спеціально тестував компресори, щоб знайти адекватне співвідношення час/місце відповідно до оброблюваних даних.
  • Ну і важлива деталь — усюди TLS.

Уся ця конструкція жере 473 МіБ ОЗП невдовзі після завантаження і десь близько 800 після того, як наповниться кеш MariaDB.

Єдина поки не вирішена проблема — це бінд nginx’а на IPv6-сокет під час завантаження. Ну, він не біндиться, незважаючи на те, що адреса до моменту старту уже виставлена. Говорять, що лікується переходом на netctl, тому є підозри, що винуватий systemd-networkd. Однак у якості воркераунда nginx зараз просто біндиться на [::]:80/443. Здається, некритично.

Система переживає регулярні апдейти і поводить себе консистентно після перезавантажень, тому є підстави вважати, що все OK. Головне — читати те, що пишуть під час виконання yaourt -Syyu –aur, а також слідкувати за релізами софта, який використовується на сервері, якщо приїжджають мажорні релізи.

2 Comments on “Арчесервер

  1. > Окремий рядок про systemd. Тепер замість cron
    Зручно? Читав (відносно давно), що у порівнянні з кроном потребує дещо більше рухів для того, щоб додати завдання, наприклад.

  2. Зручно. Рухів трохи більше, так, але воно логічно виходить: окремо задача, окремо — таймер для неї.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.

*

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.