ServerAdmin.ru
28.4K subscribers
263 photos
33 videos
12 files
2.59K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​В разных заметках я вскользь касался утилиты командной строки Linux — netcat или сокращённо nc. Эта старя и полезная unix утилита, которая заслуживает отдельной публикации, чтобы сохранить её в закладки. С помощью nc удобно устанавливать TCP соединения и принимать и отправлять UDP пакеты во время отладки и настройки сети и фаерволов.

Самый простой случай. Проверим, отвечает ли TCP порт:
# nc -vz 192.168.13.113 139
Connection to 192.168.13.113 139 port [tcp/*] succeeded!
Ключ -v выводит отладочную информацию, которая как раз включает информацию о статусе подключения, -z — режим сканирования.

Можно быстро просканировать диапазон портов, не прибегая к посторонним инструментам. Это удобнее и быстрее, чем ставить и вспомнить ключи nmap.
# nc -vz 192.168.13.113 1-1023 2>&1 | grep succeeded
Connection to 192.168.13.113 135 port [tcp/*] succeeded!
Connection to 192.168.13.113 139 port [tcp/*] succeeded!
Connection to 192.168.13.113 445 port [tcp/*] succeeded!
Я тут сразу обработал вывод, показав только открытые порты. Без фильтрации nc вывалит информацию по всем портам сразу в консоль, что неудобно для больших диапазонов.

Отправляем UDP пакет:
# nc -zvu 212.193.62.10 53
Connection to 212.193.62.10 53 port [udp/domain] succeeded!
Просто добавляем ключ -u к командам выше. Статус порта тут не всегда показывает правду, так что ориентироваться на него не стоит. Это инструмент именно для отправки пакета. Для сканирования udp портов лучше взять nmap, zmap или masscan.

Netcat удобно использовать, когда отлаживаешь firewall. С его помощью можно поднять сервис на нужном порту и постучаться в него. Я чаще всего использую его для проверки правил, когда делаю заметки на тему фаерволов.

Поднимаем службу на 11222 порту:
# nc -lvp 11222
Ncat: Listening on 0.0.0.0:11222
С другого сервера подключаемся:

# nc -v 192.168.13.113 11222
Connection to 192.168.13.113 11222 port [tcp/*] succeeded!
Теперь в терминал клиента можно что-то написать, а на сервере в терминале он отобразится. Если всё нормально, в настройках firewall всё в порядке. Можно для верности соответствующие правила посмотреть и счётчики пакетов на них.

Таким образом даже файлы можно передавать, или целые директории. Для этого надо открыть сервер и направить его вывод в файл.
# nc -lvp 11222 > recive.txt
А на клиенте подключиться и передать файл:
# nc -v 192.168.13.113 11222 < info.txt
Передавать таким образом можно любой файл, а не только текстовый. Также вывод можно направить сразу в shell. Этим пользуются злоумышленники, если имеют возможность запустить nc на сервере.
Из этой же серии возможность передать образ диска по сети с помощью dd и nc. Выглядит примерно так. Сервер:
# nc -lvp 11222 > dd of=/backup/sda.img.gz
Клиент:
# dd if=/dev/sda | gzip -c | nc 192.168.13.113 11222
Но конкретно эту задачу удобнее решить с помощью ssh:
# dd if=/dev/sda | ssh root@192.168.13.113 "dd of=/dev/sda"

Netcat может выступать в качестве веб сервера, если ему передать html страницу на вход.
# while true; do nc -lp 80 < /var/www/html/index.html; done
По ip адресу сервера откроется дефолтная апачевская страничка.

У netcat насыщенный функционал. Можно почитать в man. Он хорошо оформлен с реальными примерами и описанием функционала. Netcat умеет менять адрес и порт клиента, использовать прокси с аутентификацией, подключаться к unix сокету и т.д.


#terminal #linux
​​Думаю, многие знают про программный шлюза на базе Freebsd — pfSense. Он, мне кажется, безусловный лидер в этой нише с очень большой историей. У него есть клон, который отпочковался в 2015 году и получил название OPNsense. У этих продуктов первое время была какая-то война с дискредитацией друг друга, но в итоге закончилась.

У OPNSense более современный и функциональный веб интерфейс. Он и выглядит приятнее, и по факту более удобен в том числе компоновкой разделов. Особенно что касается обновления пакетов. Там всё очень подробно расписано по новым пакетам. Также удобен функционал поиска, который помогает быстрее найти нужные настройки. Да и банально, первый раз зайдя в интерфейс pfSense, вы вряд ли быстро найдёте раздел меню, перезагружающий или выключающий сервер. Он почему-то находится в Diagnostics.

Оба продукта на базе ОС Freebsd. Базовый функционал у них примерно одинаковый:
DNS Server;
DHCP Server, Relay;
NAT;
Zone based Firewall;
WAN Failover и load balancing, VLAN, WLAN;
VPN (OpenVPN, Ipsec и другие);
Web Proxy (squid), Netflow Exporter;
QoS;
HA кластер;
Логирование всех изменений и настроек. Возможность откатить их обратно.

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

В мониторинге Zabbix есть шаблон для сбора метрик с обоих систем по SNMP.

Если присматриваете себе программный шлюз, то посмотрите обоих. Базовый функционал у них примерно одинаков, а различия не критичные, хоть и в некоторых случаях существенные. Например, OPNSense умеет автоматически складывать свои шифрованные бэкапы в Nextcloud. Поддержка этого реализована в веб интерфейсе и настраивается просто и быстро. Мелочь, но весьма приятная. В pfSense этого просто нет. Можно только вручную сохранить xml файл с настройками. Ну а про веб интерфейс я в начале уже сказал. У OPNsense он приятнее, логичнее и современнее.

Сайт / Исходники

#gateway
​​Самый популярный движок для сайтов во всём мире — Wordpress. Именно на нём создано больше всего сайтов. Сам я все сайты делал исключительно на нём, хотя администрировать приходилось разные движки. Если меня спросит кто-нибудь посоветовать движок для информационного сайта или сайта-визитки, то совет будет однозначный. Я не вижу смысла использовать что-то другое.

Wordpress обычно предъявляют пару основных претензий: он небезопасный и он тормозной. Небезопасные чаще всего плагины, а не сам движок, в котором даже если и находят уязвимости, то исправления выходят в тот же день. А вот насчёт скорости дам один практический совет, как решить эту проблему для информационного сайта, который можно закэшировать.

Ставим плагин WP Super Cache. Включаем кэширование, указываем директорию для кэша, настраиваем предварительную загрузку кэша (отдельный раздел настроек). С такими настройками плагин будет автоматически создавать и периодически обновлять статические страницы, размещая их в определённой директории.

Теперь идём в настройки Nginx и настраиваем отдачу этих статических страниц напрямую через веб сервер, в обход php движка. Для этого настраиваем корневой location примерно так:

location / {
try_files /wp-content/cache/supercache/$http_host/$cache_uri/index-https.html $uri $uri/ /index.php?$args;
}

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

С этими настройками вы закрываете вопрос тормознутости сайта на Wordpress процентов на 90. Остальное останется под другие оптимизации, которые можно уже не делать. Сайт и так будет грузиться очень быстро. Он фактически стал статическим.

В WP Super Cache есть возможность указать настройки обновления или сброса кэша, например, при появлении нового комментария или новой статьи. Также можно выбрать пользователей или группы, для которых кэширование работать не будет. Кэшированием можно гибко управлять, в отличие от такого же кэша, только средствами Nginx. Он по быстродействию будет такой же, только без настроек, что неудобно.

Более подробно этот метод описан в документации самого плагина:
https://wordpress.org/documentation/article/nginx/#wp-super-cache-rules
Там имеет смысл добавить ещё немного настроек для исключения кэширования некоторых запросов. Примерно так. Эти настройки должны быть выше в конфигу виртуального хоста, чем предыдущий корневой location.

set $cache_uri $request_uri;
if ($request_method = POST) {
    set $cache_uri 'null cache'; }
if ($query_string != "") {
    set $cache_uri 'null cache'; }
if ($request_uri ~* "(/wp-admin/|/forum/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
    set $cache_uri 'null cache'; }
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
    set $cache_uri 'null cache'; }

Далее можно заняться оптимизацией картинок и включением сжатия brotli. Но это если хотите сделать всё максимально возможное. В общем случае и так нормально будет.

Тема ускорения Wordpress плотно оккупирована в поисковой выдаче сеошниками. А они про настройки Nginx ничего не знают и не умеют, поэтому найти подобное решение с плагином где-то через поиск вряд ли получится. А если искать по-серьёзному материалы админов, то найдёте скорее всего кэширование напрямую через сам Nginx или какой-нибудь Varnish. Но это будет не так гибко и удобно.

#webserver #wordpress
Вчерашняя заметка про OPNsense вызвала повышенную активность в комментариях. Решил немного подбить информацию по этой теме, чтобы было всё в одном месте.

Существует несколько условных категорий программных шлюзов, которые можно установить на своё железо.

🟢 Начнём со шлюзов на базе FreeBSD с веб интерфейсом.

PfSense — безусловный лидер всей этой отрасли шлюзов с веб интерфейсом. Несмотря на то, что ОС FreeBSD переживает не лучшие времена в плане развития и популярности, никаких проблем в самой pfSense с этим нет, если вы не используете какое-то специфическое железо. В виртуальных машинах популярных гипервизоров всё заводится без проблем.

OPNsense — форк pfSense с более интенсивным развитием и современным веб интерфейсом. У него есть некоторые замечания к работе, но в целом некритичные. Можно смело использовать, если понравится. Функционал примерно как у pfSense.

ИКС — отечественная разработка на базе FreeBSD. Это платный продукт. Включил его в эту подборку, потому что есть бесплатная версия для 9-ти устройств в сети. Мне нравится этот программный шлюз. Неплохо его знаю. Одно время использовал дома, но не захотелось держать железку постоянно включённой для него, удалил.

🟢 Шлюзы на базе Linux с веб интерфейсом. Основной их плюс в том, что там внутри более популярный и понятный линуксоидам (но не всем остальным людям) iptables.

IPFire — мне кажется, он наиболее известный и функциональный из линуксовых шлюзов. Я сам им немного пользовался. В настройке он проще, в функционале беднее, чем тот же pfSense. Но для простых случаев это может оказаться плюсом. В основе не популярный, как это обычно бывает в таких случаях, дистрибутив, а собственная сборка на базе ядра Linux.

ClearOS — ещё одна коммерческая система, но есть Community версия с ограниченным базовым функционалом, которого во многих случаях хватает за глаза. Эту систему я одно время активно использовал, потому что она была на базе CentOS. Когда у меня везде стояли CentOS, мне это было удобно. В своё время написал статью про неё, которая была популярной.

Endian — ещё один шлюз на базе CentOS с большой историей. Первый релиз был в 2009 году. Мне трудно про него сказать что-то конкретное, потому что сам его не разворачивал и никогда не видел. В РФ он как-то не снискал популярности и малоизвестен. По описанию с сайта плюс-минус всё то же самое, что у остальных. Есть как коммерческая, так и Community версия.

Zentyal — это не совсем шлюз, скорее сборка всё в одном для малого бизнеса. Позиционируют себя как замена AD и Exchange для небольших компаний. Базовый функционал шлюза тоже представлен (dns, dhcp, nat, firewall, vpn и т.д.). Есть платная и Community версия. Построен на базе Ubuntu.

Шлюзы без веб интерфейса, только CLI.

VyOS — безусловный лидер и вообще единственный известный мне шлюз с настройкой через CLI. Построен на базе Debian, синтаксис максимально приближён к JunOS. VyOS заточен исключительно под сетевые функции, которых у него максимальное количество из всех программных шлюзов. Это не только уровень шлюза для офиса или виртуальной инфраструктуры. Он подойдёт и для провайдеров. VyOS больше инструмент сетевых инженеров.

❗️Все шлюзы, которыми я управлял лично, настраивал сам на базе стандартных дистрибутивов. Благодаря этому очень быстро прокачал свои навыки в этой сфере и без проблем могу заходить в консоль всех описанных шлюзов, разбираться с проблемами, что-то править. Я понимаю как работу фаерволов, в том числе в FreeBSD, так и отдельных пакетов. Рекомендую начинать с этого. А потом уже выбирать какие-то готовые сборки для упрощения и экономии времени. Мои статьи по шлюзам на freebsd, centos, debian.

#подборка #gateway
👨‍💻 Тайм-менеджмент для системных администраторов

Я давно написал на сайте обзор книги тайм менеджмент для системного администратора. Думаю, многие подписчики ее не читали, так как упоминание о ней на канале было несколько лет назад, а сама статья написана ещё раньше. Решил напомнить про статью и порекомендовать прочитать, так как актуальность она не потеряла вообще нисколько. Эта тема вечная, пока роботы не заменили людей в решение насущных дел.

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

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

Вообще, самодисциплина и умение организовать себя на продуктивную деятельность — основа успеха любой деятельности. Какой бы ты умный специалист ни был, но если регулярно что-то забываешь или затягиваешь решение задач, ничего путного не получится.

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

Но это я уже в другую область полез. Хотел у вас спросить, как упорядочиваете свои дела? Какие программы или подходы используете? Может ещё какие-то книги посоветуете на эту тему?

#разное
​​С выходом версии Zabbix Server 6.4 была анонсирована новая схема интеграции с LDAP. В блоге Zabbix вышла статья, которая подробно раскрывает эту тему — Just-in-Time user provisioning explained. Передам кратко её суть.

Раньше, чтобы пользователь мог аутентифицироваться через LDAP, его обязательно надо было создать в локальной базе данных пользователей. Во время аутентификации шла проверка в LDAP на предмет соответствия введённых имени пользователя и пароля. Заданный локальный пароль игнорировался. Очевидно, что такая схема работы неудобна, так как подразумевает двойную работу по заведению пользователя.

В версии 6.4 заводить вручную локального пользователя не надо. После ввода логина и пароля в форму веб интерфейса, Zabbix сам идёт на LDAP сервер и проверяет введённые данные, а также группы и email пользователя, если он там найден. Если всё в порядке, то Zabbix сам создаёт пользователя с соответствующими настройками групп доступа и email.

В статье поэтапно показана процедура настройки LDAP аутентификации. В том числе показан пример запуска LDAP сервера с phpldapadmin в составе для веб интерфейса управления. Этот LDAP каталог подключается к Zabbix Server. Далее очень подробно описан механизм взаимодействия и создания зависимостей между Zabbix и LDAP.

Статья написана подробно и информативно. Если вам интересна данная тема, то рекомендую. Хорошо всё раскрыто. Функционал ожидаемый и очень востребованный.

#zabbix
Держите готовый набор объяснений и оправданий по поводу падения прода. Для вашего удобства, перевожу в копируемый вид.

🔥Падает тот, кто бежит. Кто ползёт, не падает.

◽️Не упав, не узнаешь, кто тебя поддержит.

◽️Опуститься легко — подняться трудно.

◽️Если придётся упасть — упади красиво.

◽️Падение — не провал. Провал — остаться жить там, где упал.

◽️Почему сервера падают? Для того, чтобы научиться подниматься.

🔥 Не тот велик, кто никогда не падал, а тот — кто падал и вставал.

◽️Победитель тот, кто встанет на один раз больше, чем упал.

Надеюсь ваши сервера поднимаются чаще, чем падают. У меня вот позавчера ночью сервера в Selectel упали на 2 часа. Пишу через час заявку в ТП, а мне в ответ предупреждение, которое было неделю назад. Там говорили о том, что будут какие-то работы по электроснабжению. Понятное дело, что я прочитал и сразу же забыл. Не думал, что это к двухчасовым простоям приведёт.

Сижу, думаю, интересно, как они сервера погасили. Их же обесточили. Дождался, когда загрузится, посмотрел логи. Выключился сервер штатно. Либо у них централизованно это управляется, либо специально обученный человек ходит и жмёт на кнопки.

#мем
​​🎓 Я сейчас прохожу обучение у Скоромнова Дмитрия на его очном курсе Архитектура современных компьютерных сетей. Позже будет отзыв по итогу. Лектор посоветовал неплохой курс по сетям от МФТИ, который они выложили в онлайн во время пандемии в 2021 году.

Лекции по курсу "Компьютерные сети", Климанов М.М.
https://www.youtube.com/playlist?list=PLthfp5exSWErPFK_-EAhVtxO3XoY0gsSe

Это не первый курс МФТИ, про который я пишу. У этого института довольно много бесплатного образовательного материала хорошего качества, в том числе на тему IT. Сам я курс не смотрел. Если кто-то видел, дайте обратную связь по нему.

Вот ещё качественный курс на базе этого же института на тему администрирования Linux. Не так давно писал о нём.

Администрирование Linux
https://www.youtube.com/playlist?list=PLrCZzMib1e9rx3HmaLQfLYb9ociIvYOY1

#обучение
​​У вас были ситуации, когда хотелось скрыть, что вы работаете в IT, умеете настраивать компьютеры и смартфоны? 😁

Автор юмористического ролика с переозвучкой известного фильма как-то раз проболтался и потом пожинал плоды.

Я вообще здесь работаю юристом. Будь проклят тот день, когда по доброте душевной я переустановил в этой организации винду.

Настрой сеть, установи браузер, запароль Wi-FI, почисти кэш, обожми кабель, ребутни роутер, поменяй краску на принтере, напиши сайт, программу, мануал, второй том "Мёртвых душ" и всё это за первый час рабочего дня!

Будни техподдержки (Переозвучка)
https://www.youtube.com/watch?v=bCDjHVhgDDQ

Меня в бытность техподдержкой на работе просили починить компьютерный стул, поменять лампу, поменять стартёр в лампе, починить компьютерный стол, вскрыть замок от тумбочки, которая является частью стола с компьютером, от которой потеряли ключ.

Брат моего приятеля мне как-то раз заявил, что не понимает меня. Нафига я хожу каждый день на работу, если могу взломать банк и получить нужное количество денег. Я же компьютерщик со стажем, а это уже считай, что хакер.

#юмор
​​🎓Делюсь с вами ресурсом с набившим оскомину названием DevOps Roadmap. Подобных "дорожных карт" сейчас много, и я обычно не обращаю на них внимание. Но на эту обратил.

Меня привлекла качественная реализация этой карты. Тут не просто набор технологий и инструментов, но и подробные описания со ссылками и примерами по каждому пункту.

Тут мало того, что отрисовано красиво и информативно, так ещё и темы раскрыты. Можно использовать и как справочник, и как отправную точку для изучения.

Я просмотрел весь сайт. Там много разных карт, но именно по DevOps мне показалось, что самая лучшая реализация. Помимо непосредственно сайта есть ещё и репозиторий на github с каким-то невероятным количеством звезд (233к 😮). Я вообще столько никогда не видел. Посмотрел на список contributors. Такое ощущение, что вся IT Индия отметилась.

Сайт / Исходники

#обучение #devops
В воскресенье решил порассуждать на вечную тему — как не задалбываться на работе и не только. Я постоянно вижу среди знакомых, читаю в комментариях или статьях в интернете, как люди совершают одни и те же ошибки. Им всё надоело, но они уговаривают себя, заставляют, пытаются собраться, подключить силу воли и двигаться дальше.

Начну с силы воли и издалека. Вообще, воля — это ограниченный ресурс и использовать его надо аккуратно. На силе воли далеко не уедешь. Я видел, как люди пытались бросить пагубные привычки вроде пития алкоголя или курения с применением силы воли. Это полностью провальная тактика. Я тоже когда-то пытался её придерживаться, так что знаю, о чём говорю. Мне казалось в юности, что у меня сильная воля. Я мог пробежать марафон без подготовки.

Лет до 30-ти я и выпивал, и курил. С переменным успехом бросал последнее несколько раз. Но бросил окончательно только тогда, когда забыл про силу воли и применил метод осознанности. Проанализировал влияние алкоголя и табака на свой организм, увидел и осознал вред. После этого перестал употреблять и то, и другое без каких-либо проблем. Результат устойчивый. Хотя до этого курить бросал раза 3 и снова начинал.

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

А потом врубится защитный механизм организма в виде прокрастинации и пофигизма. Станет всё равно и не захочется ничего делать. Тут некоторые могут подключить волю и продержаться ещё немного. Но итог всё равно известен. Защитная функция организма включается тогда, когда вы занимаетесь с его точки зрения бесполезными для вас делами. Это надо понять и принять.

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

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

Я рассуждаю не гипотетически. Всё, что я описываю, испытывал сам и применял на себе. Несколько раз заметно менял сферу деятельности, но по прежнему оставался в IT. В итоге остановился на том, что нравится и получается лучше всего. Да, иногда тоже устаю или кажется, что всё надоело. Но у меня это обычно быстро проходит и является скорее следствием усталости, а не самого направления деятельности. Я осознанно пришёл к тому, что нравится и получается, методом проб себя в разных сферах.

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

🙏🏻 Надеюсь эта заметка сподвигнет кого-нибудь сделать новый шаг и изменить свою жизнь к лучшему.

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

digwebinterface.com — dig через web. Удобен тем, что можно сформировать ссылку с параметрами и отправить кому-то итоговый результат. Да и в целом удобен минималистичный интерфейс с полной копией консольного функционала.

🔥crt.sh — проверка выпущенных TLS сертификатов для всех поддоменов любого домена. Так как сейчас всё на TLS, так что легко искать чужие поддомены.

🔥shellcheck.net — проверка синтаксиса shell скриптов. Имеет смысл прогнать свой скрипт и проверить рекомендации.

🔥cheat.sh — продвинутый man с примерами на любые линуксовые темы, к которому можно обращаться из командной строки и получать подсказки по очень широкому спектру вопросов.

hcl2json.com — проверка синтаксиса и конвертация json, yaml и hcl друг в друга.

explainshell.com — удобная шпаргалка по стандартным консольным утилитам типа tar, find, grep и т.д.

webpagetest.org — лучший сервис по анализу скорости работы сайта.

asciinema.org — публикация записи консоли в веб. Постоянно вижу записи с него в репозиториях гитхаба или в статьях с примерами.

ilovepdf.com — лучший онлайн сервис для работы с pdf.

📌Отдельно у меня были хорошие подборки для работы с:

почтовым сервером
json
regex

Regex прям очень рекомендую. Эти ссылки у меня постоянно под рукой. Часто нужны.

#подборка #сервис
​​Очень простой в установке и использовании инструмент для анализа работы СУБД Postgres — pgCenter. Это open source разработка нашего соотечественника Алексея Лесовского, который сейчас трудится в PostgresPro. Он давно известен своим проектом zabbix-extensions (проект давно заброшен и неактуален), где собрана куча скриптов для мониторинга всего и вся в Linux.

PgCenter — набор утилит командной строки, которые позволяют анализировать состояние СУБД в режиме реального времени, наподобие программы top и других подобных инструментов.

PgCenter пригодится как обычным админам, чтобы быстро оценить состояние СУБД (использование ресурсов, просмотр ошибок и т.д.), так и DBA для детального изучения (встроенная статистика) и решения проблем (долгие транзакции, конфликты репликации и т.д.).

В репозитории автоматически собираются rpm и deb пакеты для локальной установки, а также Docker образы. Попробовать проще всего вот так:
# docker run -it --rm lesovsky/pgcenter:latest pgcenter top \
-h 1.2.3.4 -U user -d dbname

У автора есть ещё несколько полезных утилит. Скорее всего напишу о них отдельно:
Noisia — генератор нагрузки PostgreSQL.
pgSCV — экспортёр метрик для Prometheus и Victoriametrics.
pgstats.dev — веб проект с описанием метрик Postgres для мониторинга.

Исходники

#postgresql
​​Для создания своего "облачного" хранилища файлов, похожего на Dropbox, Google Drive, Yandex.Disk и т.д. можно воспользоваться известным open source решением Seafile. Это популярный сервер, про который я вообще ни разу не упоминал, хотя услышал про него впервые очень давно, ещё до того как появился owncloud, который породил форк Nextcloud — наиболее известный на сегодняшний день продукт для автономного файлового хранилища.

Seafile существует как в коммерческой, так и в Community редакции с открытым исходным кодом. Код также открыт и для клиентов под все популярные системы: Windows, Linux, Macos, Android. Для Linux версии есть консольный клиент. Для самого сервера есть веб интерфейс, через который осуществляется управление.

Основной особенностью Seafile можно считать маленькие требования к ресурсам, так что его можно запускать на Raspberry Pi. Для этого существует отдельная сборка сервера.

Несмотря на свою простоту и лёгкость, Seafile предлагает неплохой бесплатный функционал:
создание и управление аккаунтами пользователей
версионирование файлов и логирование доступа к ним
мобильный клиент
возможность подключать хранилище в виде виртуального диска
создание ссылок для общего доступа к файлам или по паролю
шифрование файлов
просмотр медиа файлов через веб интерфейс
онлайн редактор для совместной работы над текстовыми файлами в формате Markdown (другие форматы, типа docx, xlsx и т.д. не поддерживаются).

Оценить функционал можно в публичном demo - https://demo.seafile.com.
Запустить у себя тоже нет никаких проблем. Есть готовый docker-compose.yml от разработчиков. Там же все инструкции.

Ядро сервера Seafile написано на C 😎 (вспомнилось Папа может в си). Этим объясняется его легкость и быстродействие. Веб интерфейс на Python (django) и JavaScript.

Я сам никогда не использовал этот сервер, поэтому не могу поделиться информацией по эксплуатации. Если кто-то активно пользовался, то дайте обратную связь. Если рассматривать только хранение файлов, на текущий день это решение лучше или хуже Nextcloud?

Сайт / Исходники / Демо

#fileserver
​​Я неоднократно получал как вопросы, так и запросы на настройку аватарок в почтовых клиентах. Подобные вещи реализованы в популярных почтовых сервисах, типа yandex или gmail. К сожалению, сделать так же у себя не получится.

В почтовых протоколах smtp и imap нет понятия аватар. Соответственно почтовые системы по умолчанию никакие аватары принимать и понимать не могут. Изображения к контактам интерпретируют почтовые клиенты на основе своей базы контактов. Каждый сервис ведёт свою базу контактов и аватарок к ним. Реализация закрыта, так что мы наверняка не может судить откуда они берут картинки. Также нет и доступа к общей базе данных контактов.

Реализовать такое на своём почтовом сервере не представляется возможным, если, конечно, вы не захотите написать свой почтовый клиент и реализовать там эту возможность, как это сделали почтовые гиганты.

#mailserver
Решил собрать в одну публикацию все варианты настройки и управления OpenVPN сервера через web интерфейс. Я напишу то, что знаю сам. Буду рад, если кто-то ещё поделится рабочими и удобными вариантами.

Access Server — родное решение от авторов OpenVPN. Это платный продукт, а бесплатная версия ограничена двумя пользователями. Для единоличного использования подходит. Если нужно больше, то есть лекарство, легко ищется. Если вас это не смущает, то можно пользоваться.

Pritunl — один из лучших веб интерфейсов для OpenVPN и Wireguard. К сожалению, платный. Бесплатная версия практически не имеет настроек, но при этом нет никаких ограничений по пользователям. В целом, если вам нужен базовый vpn сервер, то это нормальное решение. Возможно, лучшее.

Рутокен VPN — open source решение от авторов Рутокен. Настройки базовые, можно менять конфигурацию сервера и добавлять пользователей. Бонусом идёт свой клиент под Windows, который поддерживает аутентификацию через ключи рутокен. Только последним он и интересен, так как аналогов не видел.

Veeam PN — это было отличное бесплатное решение для организации vpn сервера от компании Veeam. Поддерживалась как OpenVPN, так и Wireguard. Когда писал эту заметку, с сожалением узнал, что этот проект закрыт, новых версий больше нет. Его интегрировали в платную версию DR Services.

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

PfSense, OPNSense, Clearos и т.д. — в этих продуктах тоже есть раздел для управления OpenVPN. С учётом того, что эти системы нетребовательны к ресурсам, можно поднять и для одной роли vpn сервера. Решение вполне нормальное, с заделом на больший функционал.

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

#openvpn #подборка
​​Максимально простой и удобный способ ограничить на локальном сервере или компьютере скорость сетевого интерфейса или конкретного процесса. Для этого можно воспользоваться open source инструментом TrafficToll.

Это приложение написано на Python, так что поставить можно из pip. Для Debian это выглядит так:

# apt install python3-pip
# pip3 install traffictoll

Для управления настройками используется конфиг в yaml формате. Простейший вид вот такой:

download: 1mbps
upload: 1mbps
download-minimum: 100kbps
upload-minimum: 100kbps

Ограничиваем максимальную скорость и гарантируем минимальную. Запускаем TrafficToll:

# tt eth0 eth0.yaml

Теперь попробуйте что-то загрузить на сервер. Скорость интерфейса будет ограничена одним мегабайтом в секунду. В конфигурации используется нижний регистр, что, по-моему, неверно в данном случае. Мегабайты пишутся с заглавной буквы и без p, то есть Mps. Тем не менее, я это проверил на практике.

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

Исходники

#network
​​Если хотите посмотреть, попробовать, изучить работу кластера PostgreSQL, можно воспользоваться готовым плейбуком ansible — postgresql_cluster. Это production ready решение, которое просто и легко устанавливается. У меня получилось базовую версию без балансировки на haproxy и consul развернуть сходу.

Всё описание есть в репозитории. Если нет опыта в этом хозяйстве, то развернуть лучше Type B: один мастер и две реплики. Это будет обычный HA кластер на базе Patroni. Если не ошибаюсь, на текущий момент это самое популярное решение для построения кластеров PostgreSQL.

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

Patroni известный продукт, по которому много статей и руководств в интернете. Как пример, вот мастер-класс по нему от самих авторов. Предложенный репозиторий тоже распространён. Можно нагуглить статьи с его участием. Например, вот тут тестируют отставание реплики на кластере, развёрнутом из этого репозитория.

После установки статус кластера смотрите командой:
# patronictl -c /etc/patroni/patroni.yml list

Можете отключать ноды и смотреть, как кластер будет на это реагировать.

#postgresql
​​Если вам нужно запускать Android приложения на PC, то предлагаю вариант с использованием эмулятора Memuplay. В общем и целом, особых проблем с работой эмуляторов нет. Их немало, есть из чего выбирать. Но все они используют виртуализацию, поэтому запускать их надо на железе, а не в виртуальной машине.

Я запускал memuplay в виртуальной машине Win10 на гипервизоре Proxmox. Для корректной работы эмулятора, нужно настроить вложенную виртуализацию (Nested Virtualization). Без этого эмулятор не заработает.

Memuplay бесплатен и это вызывает некоторые опасения. В подобного рода продукты любят зашивать вирусы и черви. Я запускал эмулятор с включенным Kaspersky Security Cloud. Он никаких проблем не заметил. Надеюсь, что эмулятор чист.

В виртуальной машине с подключением по RDP интерфейс неотзывчивый. Пользоваться не очень комфортно, но для каких-то простых задач сойдёт.

Альтернативный вариант — бесплатная версия Genymotion. Для домашнего использования она доступна с некоторыми ограничениями. Сам я её не пробовал. Она тоже требует виртуализацию, так что на арендованных VPS подобные эмуляторы запускать скорее всего не получится. Единственный вариант — договориться с тех. поддержкой о включении вложенной виртуализации, но не уверен, что кто-то будет это делать.

Сайт

#android
На прошлой неделе я проходил очное обучение у Дмитрия Скоромнова по его курсу Архитектура современных компьютерных сетей. По итогу обучения написал небольшую статью, чтобы вы имели представление, что это такое и как проходит обучение.

У меня есть доступ к курсам некоторых школ, но обучения у них ни разу не прошёл. Всё собираюсь и откладываю. Реально у меня нет большой потребности в какой-то конкретной теме, да и времени свободного особо тоже нет. Сети решил пройти, потому что это база, которая нужна ну просто везде в сфере IT, куда ни посмотри.

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

Приведу пару примеров. Ещё больше есть в статье. Я научился нормально работать в Wireshark и полностью понимать всю информацию, что можно в ней увидеть. Раньше я в основном интуитивно смотрел там информацию об источниках и объёме трафика. Проанализировать содержимое не мог, так как банально не понимал структуру ethernet кадров. Тема эта не очень простая для самостоятельного обучения.

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

В общем, сам курс могу порекомендовать, так как весь его прошёл. А подробности читайте в статье.

https://serveradmin.ru/otzyv-na-kurs-arhitektura-sovremennyh-kompyuternyh-setej-ot-kursy-po-it-rf/

#обучение