Арчесервер

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

  • Систе­ма, оче­ви­дно, — зати­шний Арчик. Заін­стал­ле­но все на шифро­ва­ний 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 коментарі в “Арчесервер
  1. Apricot сказав:

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

  2. Oleksandr Natalenko сказав:

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

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

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*

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