ServerAdmin.ru
28.7K subscribers
276 photos
34 videos
12 files
2.6K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Настроил себе для личных нужд менеджер дашбордов для браузера (это я так его сам обозвал) - Heimdall Aplication Dashboard - https://heimdall.site. Основная идея его выступать в роли стартовой страницы для браузеров. У меня много устройств и браузеров используется, так что актуально.

Мне Heimdall понравился по нескольким причинам:
1. Нет привязки к браузеру, всё хранишь у себя.
2. Поддержка пользователей, так что можно собирать разные дашборды для разных пользователей. Это может быть полезно для командной работы.
3. Есть интеграция с различными сервисами по API. Можно на дашборде выводить некоторую информацию по приложению. Я еще не настраивал.
4. Лично мне понравилось, как это всё выглядит.
5. С помощью тэгов можно собирать различные дашборды со ссылками под разные нужды.

Ставится всё это в том числе в докере (я так поставил):

docker run --name=heimdall -d -v ~/heimdall:/config \
-e PGID=1000 -e PUID=1000 \
-p 8080:80 -p 8443:443 linuxserver/heimdall

Внутри всё работает на обычном веб сервере и php, на базе фреймворка Laravel. Так что можно и без докера запускать.

#сервис #selfhosted
​​Сегодня у меня заметка про, не побоюсь этого слова, царя бесплатных self-hosted VPN сервисов - SoftEther VPN. Такого количества поддерживаемых технологий и реализаций vpn в одном продукте я еще не видел.

SoftEther VPN умеет поднимать L2TP/IPsec, OpenVPN, MS-SSTP, L2TPv3, EtherIP, а также имеет свой собственный SoftEther VPN Protocol (Ethernet over HTTPS), который неотличим от обычного HTTPS-трафика. Работает всё, как говорится, "из коробки".

Серверную часть можно поставить на любую из популярных ОС - Windows, Linux, MacOS, Freebsd. С клиентом та же история. В винде ставится через обычный инсталлятор, потом управляется через запуск приложения. На Linux надо качать исходники и собирать. Что любопытно, страница загрузки на сайте поддерживает работу в консольном браузере Lynx. Можно через него зайти и скачать нужную версию сразу на сервер. Настраивать придется правкой конфигов в консоли.

Я погуглил руководства на тему настройки SoftEther в Linux. Везде настройка идёт через консоль. То есть это не то решение, которое поставил, настроил за 5 минут через браузер и пользуешься. Придётся поразбираться немного. К тому же там есть свои абстракции и терминология.

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

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

https://www.softether.org/

#vpn #selfhosted
На днях в очередной раз пользовался своим сервисом Webpagetest и решил, что не плохо бы про него рассказать, хотя ранее о нём уже были упоминания на канале. Это один из немногих сервисов, которыми я регулярно пользуюсь уже несколько лет.

Webpagetest позволяет протестировать производительность сайта, визуализируя загрузку контента в виде водопада запросов. Также записывается видео загрузки сайта. Функционал у сервиса обширный. Можно считать его профессиональным инструментом тех, кто занимается вопросами ускорения работы сайта. Есть сервисы для обычных людей, типа PageSpeed Insights, где зашел, быстро запустил тест, посмотрел циферки, не понял, что с ними делать и ушёл. Не знаешь даже, из какой географической локации проверка была.

Webpagetest для вдумчивой работы и анализа (проверки PageSpeed Insights он тоже в себя включает). Я как-то написал статью на примере проверки скорости работы сайта с помощью указанного инструмента. Это было давно, но данные там актуальны. Статья не устарела.

Также у меня есть статья на тему установки и настройки своего инстанса Webpagetest. В этом его огромное преимущество перед другими сервисами, которые размещены где-то на сторонних серверах. Тут вы можете всё запустить у себя и быть уверенным, что узким местом не станет ваш сервер или посторонние каналы связи.

Для того, чтобы просто посмотреть о чём идет речь и какой конкретно присутствует функционал, можете воспользоваться бесплатным публичным сервисом - https://webpagetest.org.

Webpagetest создан с заделом на серьезное промышленное использование. Он умеет автоматически масштабироваться в AWS при росте запросов на тесты. У него есть API для автоматизации тестов. В общем, приятный и полезный во всех отношениях продукт. На Linux ставится очень быстро и просто из готовых Docker образов. Хотя я и так его устанавливал, прямо на сервер.

#selfhosted #сервис
​​Я совсем не касался на своем канале темы чатов, которые можно развернуть на своих серверах. Хотя тема актуальна и востребована. Я много времени потратил на тестирование тех или иных чатов. К сожалению, не нашел то, что устроило бы на 100%. И при этом все они хуже того же Telegram. После него не хочется пользоваться чем-то другим. Тем не менее, не всегда и не везде его можно использовать. Self-hosted решения всё равно занимают свою нишу.

Начать серию постов хочу с Zulip. У меня есть статья по нему, но не знаю, насколько она еще актуальна. Писалась года 3 назад. Думаю, продукт с тех пор сильно изменился. Я его много тестировал и внедрял. Подкупила относительная простота клиента, хорошая документация и то, что его использует Dropbox для своих внутренних коммуникаций.

Установить, настроить и разобраться у меня не составило каких-то больших проблем. В целом, чат как чат, со всеми присущими современному софту минусами. Написан на фреймворке Electron, поэтому тормозной. В огромной истории, накопившейся за полгода-год найти что-то нереально. Клиент жутко тормозит. Примерно как сейчас в Skype, которым я вообще перестал пользоваться.

Из плюсов стоит отметить следующее:
Поддержка различных SSO провайдеров (google, github, gitlab и т.д.) 
 Синхронизация учёток с LDAP / AD
 Ролевая система прав и доступов
Простая установка и поддержка
Готовые интеграции с кучей софта (prometheus, ansible, git, zabbix и т.д.)

В целом, Zulip не хуже современных бесплатных аналогов, таких как mattermost, rocket chat, matrix и т.д. Нормальный зрелый продукт с большим сообществом. Когда я делал внедрение и сравнивал их всех, Zulip понравился больше. Если вы выбираете себе чат, обязательно посмотрите на него. Он достоин внимания. А тормозные клиенты сейчас почти у всех популярных чатовых платформ, так что считать его минусом в сравнении с другими нельзя.

Дальше будут заметки как минимум про mattermost, mychat, rocket chat. Если пользовались чем-то из этого, то поделитесь впечатлениями.

#chat #selfhosted
​​Очередная заметка про self-hosted vpn на базе Algo VPN. Судя по всему, интересная и полезная штука.

https://github.com/trailofbits/algo

Интересное там вот что:
- установка и настройка производятся с помощью ansible
- под капотом современный и быстрый WireGuard 
- а также IPsec

Algo VPN умеет генерить qr коды для быстрого подключения клиентов WireGuard, которые есть под все популярные платформы. Опционально может блокировать рекламу с помощью встроенного dns.

У многих популярных облачных провайдеров (Amazon, GCP, Azure и т.д.) есть готовые шаблоны для быстрого разворачивания. То есть продукт вполне себе именитый и уже состоявшийся.

Ставить лучше всего либо на готовый инстанс облачного провайдера, либо на свой сервер на базе Ubuntu, так как для нее есть установщик. Подойдет даже Ubuntu WSL в Windows. Ставится следующим образом.

# apt install -y --no-install-recommends python3-virtualenv git
# git clone https://github.com/trailofbits/algo.git
# cd algo
# python3 -m virtualenv --python="$(command -v python3)" .env && source .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r requirements.txt

Дальше смотрим config.cfg и добавляем пользователей. По умолчанию уже есть 3 штуки: phone, laptop, desktop. Остальное можно не трогать. Как закончили с пользователями, запускаем установку:

# ./algo

По ходу дела вам зададут несколько простых вопросов по поводу будущего функционала. Затем побежит исполняться ansible-playbook. После того, как он отработает, увидите сообщение, что все установлено и настроено.

В директории configs/ip-server будут конфиги юзеров для wireguard и ipsec. На всякий случай убедитесь, что все службы запущены. Это wireguard на 51820 и strongwan (charon IKE daemon) на 4500. Можно забирать конфиги и настраивать клиентов.

Если нужно будет добавить еще клиентов или удалить, то правим config.cfg и запускаем плейбук еще раз.

# ./algo update-users

По сути вся инструкция уместилась в одну заметку. Можно забирать в закладки.

#vpn #selfhosted
​​Вновь возвращаюсь к теме чатов. В этот раз речь пойдёт про MyChat - https://nsoft-s.com. У меня ранее была подробная статья на сайте с разбором этого чата. Я достаточно внимательно его тестировал в свое время и планировал внедрять, но так и не сложилось.

В этом чате меня в первую очередь привлекло и привлекает до сих пор - легковесный клиент. Отталкивает - несколько старомодный его дизайн. Но это субъективно. Функционал у чата отличный. Если сравнивать с другими, то лично мне он показался самым функциональным.

К плюсу, хотя для кого-то это может быть минус, простая установка и настройка на Windows. Разобраться несложно. Обычный установщик и затем привычный интерфейс для настроек. Есть хорошая документация, форум, техподдержка. С освоением и настройкой лично у меня проблем не возникло. Из коробки работает интеграция с AD.

Я не буду подробно всё расписывать, так как это есть в статье. Рекомендую обратить внимание на MyChat и попробовать. Он самобытен и не похож на многочисленные клоны Slack. Уверен, кому-то он точно понравится. Когда я тестировал, клиент был очень сильно похож на старый icq клиент - Miranda, которым я долго пользовался.

Продукт активно развивается, постоянно обновляется, расширяет функционал. Это такая долгоиграющая история. Ему уже лет 10 наверное, может больше. Давно его знаю.

#chat #selfhosted
​​Если вы всё еще пользуетесь rss читалками, то держите полезную программу, которая превращает различные потоки информации в rss ленты. RSS формат что-то в последнее время не особо популярен, хотя мне читалки на его основе кажутся удобными.

RSSHub - https://docs.rsshub.app/en/ Ставится в докере:

docker run -d --name rsshub -p 1200:1200 diygod/rsshub

Сразу же можно пользоваться. Покажу на примере своего канала:

http://172.29.128.115:1200/telegram/channel/srv_admin/

IP надо на свой заменить :) В браузере получите rss ленту моих записей в канале. RSSHub поддерживает огромное количество различных источников информации. Вот еще один пример с сайтом на wordpress:

http://172.29.128.115:1200/blogs/wordpress/serveradmin.ru/

Полный список поддерживаемых источников можно в документации посмотреть. Идея такая, что вы просто после адреса своего инстанса указываете путь к тому или иному потоку и адресу источника. В моих примерах это /telegram/ и /blog/wordpress/.

С помощью RSSHub можно все ваши потоки информации направить в одну читалку. Для единоличного пользования ресурсов надо минимум. Этой заметки достаточно, чтобы сразу начать пользоваться RSSHub, так что можно забрать в закладки.

Еще пользуетесь RSS лентами или забили?

#selfhosted
​​Продолжаем тему чатов. На этот раз рассмотрим Mattermost. Это один из клонов Slack, который на момент своего появления был очень на него похож. Сейчас уже не знаю, так как подробно не слежу ни за Mattermost, ни за Slack. Проект open source, есть возможность развернуть на своих серверах. За отдельную плату предоставляется расширенный функционал, без которого зачастую очень грустно эксплуатировать Mattermost.

https://github.com/mattermost/mattermost-server
https://github.com/mattermost/desktop
https://mattermost.com/

Примерно 4 года назад я изучал и внедрял Mattermost, после этого написал статью. Понятное дело, что она устарела, но представление о том, что из себя представляет этот чат, получить можно. Очень хочется всё это дело с чатами обновить, но пока нет возможности. MM я внедрил в двух компаниях. В одной прижилась и заменила Skype. Из другой убрали, так как оказалось, что отдельный чат-сервер не нужен и обошлись в итоге публичными мессенджерами.

В отличие от Zulip, в Mattermost интеграция Active Directory / LDAP есть только в платной версии, так же как и система управления правами и доступами. Без этого управлять чатами для коллектива хотя бы в 30-50 человек становится трудно и неудобно.

Из плюсов я отмечу удобный клиент. Мне понравился как функционал, так и внешний вид. Все как-то привычно и на своих местах. Не надо особо разбираться, как тут всё устроено. Например, в Zulip не так интуитивно. К сожалению, клиент MM написан, как и многие прочие, на Electron. Но оптимизирован нормально и больших тормозов при поисках в истории я не наблюдал.

MM часто сравнивают с Rocket Chat. В момент появления они были очень похожи, но со временем пути разошлись. В Rocket Chat больше функционала в бесплатной версии. Но при этом под капотом в серверной части JavaScript (Meteor framework), а в MM - Go и React, что выглядит предпочтительнее.

Последнее время я вижу в отзывах при их сравнении, что отдают предпочтение именно Rocket Chat. Следующая заметка будет про него. Думаю, это связано с с тем, что MM в первую очередь метит в корпоративный, платный сегмент, предоставляя услуги значительно дешевле, чем Slack. В связи с этим функционал бесплатной версии сильно урезан.

Кстати, проект RockyLinux выбрал платформу Mattermost для своего общения.

#chat #selfhosted
​​Продолжаю тему чатов. В этот раз рассмотрю любимый многими Rocket.Chat. Я его никуда не внедрял и скорее всего не буду. Чтобы освежить свои впечатления, решил установить и пощупать последнюю версию. Сначала думал статью написать, но по факту я нашел полностью рабочую инструкцию, по которой за 15 минут всё настроил. Не вижу смысла повторять.

Как я уже упоминал ранее, Rocket.Chat это JavaScript, а приложение для общения на Electron. Для меня это приговор. Мне совершенно не нравится эта связка, потому что она тормозная. Это самый существенный минус данного чата. Ставить приложение на компьютер нет никакого смысла. Там под капотом тот же Chromium. Проще всё в одном браузере открывать, нежели плодить их в системе.

К сожалению, сейчас очень много приложений написаны на Electron и тормозят, поэтому однозначно давать минус рокет чату не стоит за это. Но в связке с JavaScript получается минус в квадрате. Дальше расскажу о плюсах. Их у Rocket.Chat хватает. Стоит отдать ему должное.

Рокет предлагает самый большой функционал в бесплатной версии среди всех известных мне чатов. Тут не нужны никакие компромиссы. Есть, пожалуй, всё, что надо от чата. Что мне больше всего понравилось - расширенное управление правами и доступами. Можно настроить практически всё, что угодно и как угодно. В mattermost этого вообще нет в бесплатной версии.

В плане внешнего вида у меня тоже нет никаких претензий. Выглядит приятно, гармонично, интуитивно понятно. Пользоваться удобно. Очень много интеграций с другими продуктами. Rocket.Chat известная платформа. Практически везде увидите возможность интеграции с ней.

Подвожу итог. Если подбираете себе selfhosted чат, пробовать Rocket.Chat однозначно надо. Если вас не смущают технологии, на которых он построен, и устраивает быстродействие и работа клиента, то внедряйте и пользуйтесь. Продукт зрелый, известный, много кто пользуется. Каких-то явных проблем с ним нет.

https://rocket.chat/
https://github.com/RocketChat

Помимо своего сервера, есть возможность покупать чат по подписке как saas сервис. Цены раза в 3 ниже, чем за Slack. Вместо картинки с чатом, покажу вам лучше админку и настройки, которые там есть.

#chat #selfhosted
​​Если вам необходимо регулярно проверять хосты и сервисы на уязвимости, и не хочется колхозить различные проверки с помощью nmap и других сканеров, можете попробовать OpenVAS. Это Open Source проект.

https://github.com/atomicorp/gvm
https://github.com/atomicorp/openvas-docker
https://www.openvas.org/

Openvas представляет из себя сканер уязвимостей и всю соответствующую обвязку вокруг него для организации полноценной системы. Он автоматически обновляет базы уязвимостей, запускает запланированные задачи по базе добавленных хостов, отправляет задачи и т.д.

Для установки есть свой репозиторий для rpm-based дистрибутивов. Попробовать проще всего, запустив openvas в docker.

docker run -d -p 443:443 --name openvas atomicorp/openvas

Далее идём в веб интерфейс, авторизуемся как admin / admin. Первым делом нужно добавить host в разделе Configuration -> Targets. Затем создать задачу в Scans -> Tasks. Теперь задачу можно запустить и посмотреть, как всё это работает. Настройка интуитивна, так что больших проблем возникнуть не должно.

После работы задачи, можно посмотреть отчёт. Ниже пример подобного отчёта при сканировании чистой системы Centos 8 с единственно открытым ssh портом.

#security #selfhosted
​​У меня уже было много заметок про различные системы мониторинга (#мониторинг). Сегодня будет еще одна - Icinga. Это весьма зрелая и качественная система мониторинга, на которую стоит обратить внимание, если выбираете, на чём остановиться и еще не решили, что вам нужен Zabbix или Prometheus.

Изначально это был форк Nagios. Но со временем их пути сильно разошлись, так что можно считать Icinga самостоятельным продуктом. Причем качественным и полностью бесплатным:

https://icinga.com/
https://github.com/Icinga

Icinga полноценная система мониторинга, которая включает в себя:
- Автоматизацию мониторинга инфраструктуры, в том числе сетевой, в том числе с использованием иерархической распределенной структуры.
- Сбор метрик и логов.
- Аналитику.
- Оповещения.
- Отчёты.
- Визуализацию, в том числе с помощью дополнительных модулей для дашбордов.

В общем, там есть всё, что надо, для полноценного мониторинга. Данные может собирать как с помощью агентов, так и без них. Бэкенд написан на C++, веб интерфейс на php. В качестве БД поддерживает MySQL, Oracle Database, PostgreSQL.

Когда тестировал, очень понравился красивый, лакончиный, отызвчивый и шустрый веб интерфейс. Прям приятно по нему потыкать, все быстро открывается, логично распределено. Попробовать проще всего, развернув всё через docker-compose. Есть репозиторий:
https://github.com/lippserd/docker-compose-icinga
Там готовый compose файл, но есть ошибки в Dockerfile в /env/icingaweb2/. Рабочая версия файла будет такая:

FROM alpine/git
WORKDIR /
COPY icingadb-load-monitoring.patch .
RUN git clone https://github.com/Icinga/icingadb-web.git icingadb && \
cd icingadb && \
git checkout e6e5bb30d37eacaf5498f96412b4b5f400cc9309 && \
cd .. && \
git apply --directory icingadb icingadb-load-monitoring.patch

FROM icinga/icingaweb2:2.9
USER root
RUN rm -rf /usr/share/icingaweb2/modules/icingadb/*
USER www-data
COPY --from=0 /icingadb /usr/share/icingaweb2/modules/icingadb

Используйте эту репу только для тестов. Я не знаю, кто и зачем ее сделал и можно ли доверять всему. На постоянку лучше развернуть без докера.

После запуска всех контейнеров идите в веб интерфейс на порт 8080, учетка - icingaadmin / icinga.

Можете также публичное demo посмотреть:
https://icinga.com/demo/

#мониторинг #selfhosted