ServerAdmin.ru
28.9K subscribers
303 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Если вам нужно скрыть UDP трафик или организовать соединение там, где разрешено только TCP или ICMP, то может помочь Udp2raw-tunnel. Это open source решение от автора UDPspeeder, про который я рассказывал отдельно.

Udp2raw умеет маскировать UDP пакеты, добавляя фейковые ICMP/TCP заголовки. Фаерволы, не имеющие в своем арсенале анализаторов пакетов, будут считать их пакетами соответствующих протоколов с фейковыми заголовками.

При этом настроить и запустить в работу Udp2raw очень просто. Достаточно скачать бинарник, запустить его с некоторыми параметрами. И то же самое сделать со стороны клиента.

# Запустить со стороны сервера:
./udp2raw_amd64 -s -l0.0.0.0:4096 \
-r 127.0.0.1:7777  -k "passwd" --raw-mode faketcp -a

# Запустить со стороны клиента:
./udp2raw_amd64 -c -l0.0.0.0:3333 \
-r44.55.66.77:4096 -k "passwd" --raw-mode faketcp -a

Подключение к локальному UDP порту 3333 на стороне клиента будет эквивалентно подключению к локальному порту 7777 на сервере. При этом через туннель пойдёт фейковый TCP трафик.

Зачем это может быть нужно? Например, в публичных сетях часто закрыт UDP трафик, открыт только TCP на 80 и 443 порту. С помощью Udp2raw можно обойти это ограничение. Правда я в этом случае использую OpenVPN на TCP порту. Но он достаточно легко определяется и блокируется при желании.

Если заблокирован и TCP и UDP, то поднимаем фейковый туннель через ICMP. Со стороны своего сервера настраиваем OpenVPN, через ICMP туннель подключаемся к своему OpenVPN и пользуемся полным доступом в сеть.

Исходники / Инструкция с OpenVPN

#vpn #firewall #security
​​GestioIP - бесплатный open source продукт для управления IP адресации сетей и автоматического обнаружения сетевых устройств. Его можно отнести к IPAM (IPv4/IPv6 Address Management). Для сбора информации о сетевых устройствах используются протоколы ICMP и SNMP.

Программа представляет из себя обычное веб приложение, написанное на Perl. Для запуска требуется веб сервер, например Apache, и база данных Mysql. Поддерживаются все популярные Linux дистрибутивы. Для быстрой установки есть bash скрипт. Он ставит все необходимые пакеты, копирует конфиги, создаёт службу. Для быстрого запускать можно запустить всё в докер. Есть готовый контейнер или docker-compose для запуска всех сопутствующих служб разом.

📌 Основные возможности GestioIP:
 Всё управление через веб интерфейс.
 Интеграция с DNS и DHCP.
 Автообнаружение сетей, хостов, VLAN.
 Калькулятор подсетей, отображение свободных адресов и сегментов сети.
 Экспорт и импорт информации, в том числе в xls таблицы.

Как я уже сказал, GestioIP бесплатный продукт с открытым исходным кодом. Развивается за счёт платных модулей (API, управление конфигурациями) и технической поддержки.

Из особенностей GestioIP можно отметить интеграцию с OCS Inventory NG (бесплатное ПО для инвентаризации сети). С помощью Apache mod_auth можно настроить авторизацию в веб интерфейс через AD или другой LDAP.

Продукт довольно простой, в веб интерфейсе ничего лишнего. Заточен именно под управление IP адресами. Вот аналоги со схожим функционалом:
phpIPAM (программа исключительно для IPAM)
NetBox (IPAM не основной функционал)

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

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

#IPAM #управление #ITSM
На днях опять упал сайт, на этот раз из-за неправильной настройки php-fpm. Он съел всю память под нагрузкой. Я неправильно понимал значение одного из параметров, плюс мониторинга php-fpm не было. Сейчас уже нормально разобрался, настроил мониторинг. Решил сделать заметку по настройке php-fpm. Для себя и для вас.

Php-fpm может работать в трёх режимах:
static - фиксированное количество процессов
dynamic - динамическое управление процессами
ondemand - создание процессов при получении запросов

Я чаще всего использую режим dynamic, так как он универсален. Всегда запущены сколько-то процессов (от 1 и более), а их количество поддерживается по заданным правилам.

Основные параметры, которые настраиваем для режима dynamic.

📌 pm.max_children - указывает на то, сколько всего процессов php-fpm могут быть созданы. Если ошибётесь и выставите слишком большое число, то вся память веб сервера будет занята и oom killer прибьёт какое-нибудь приложение. Опытным путём необходимо выяснить, сколько в среднем памяти занимает один рабочий процесс php-fpm для вашего сайта, потом прикинуть, сколько памяти можно отдать для всех процессов php-fpm. На основе этого задать параметр.

📌 pm.start_servers - количество процессов, запускаемых при старте php-fpm. Можно начинать с небольших значений в 5-10. Остальные процессы будут создаваться динамически.

📌 pm.min_spare_servers - минимальное количество бездействующих процессов. После того, как нагрузка снизилась, остаются бездействующие процессы. Этот параметр определяет, сколько простаивающих процессов будут держаться в запасе на случай, если опять вырастет нагрузка. Создание новых процессов занимает некоторое время, так что наличие простаивающих процессов немного ускоряет обработку новых запросов. В зависимости от посещаемости и всплесков запросов следует выставить этот параметр.

📌 pm.max_spare_servers - максимальное количество бездействующих процессов. Если доступно больше свободных процессов, чем здесь задано, лишние будут завершены. То есть количество простаивающих процессов будет всегда в интервале описываемых spare параметров.

📌 pm.process_idle_timeout - время простоя, по истечении которого бездействующий процесс будет завершён.

Поясню, какой логики надо придерживаться при настройке php-fpm. Если у вас несколько сайтов, то для безопасности каждому сайту лучше создавать отдельного системного пользователя и от его имени запускать отдельный php-fpm пул. Именно в таких ситуациях имеет смысл использовать режим dynamic, так как это компромисс между максимально быстрым и затратным по памяти режимом static и более медленным, но экономным по памяти режимом ondemand.

Если у вас один сайт, один пул, то вы можете точно рассчитать максимально возможное количество памяти под php-fpm и сразу выставить максимальное число процессов. Это самый производительный вариант, так как время на создание новых процессов во время обработки запросов не тратится. У вас всё статично.

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

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

Ещё несколько параметров, про которые тоже надо не забыть.
user = site01_user
group = site01_user
listen = /run/php/site01.ru.sock
slowlog = /var/log/php-fpm/site01.ru.log
php_value[session.save_path]  = /sites/site01.ru/php_session

#webserver #phpfpm
​​▶️ Понравилось видео с Linus Torvalds, где он рассказывает, почему не использует Debian:

https://www.youtube.com/watch?v=qHGTs1NSB1s

Суть его объяснения в том, что он как-то раз пытался установить Debian на Mac и у него не получилось. Больше он не пробовал. Далее поясняет, что многие его считают большим техническим специалистом, потому что он разрабатывает ядро Linux. Но на самом деле это не так. С его слов, он не разбирается в операционных системах, и в плане их обслуживания полный профан. Ставит себе и семье ту систему, которая максимально просто устанавливается и настраивается. Жаль, он не пояснил, какая именно. У меня закрались подозрения, что может это винда 😄.

У меня постоянно спрашивают родственники и знакомые, какой им купить компьютер, ноутбук, смартфон. А я даже не знаю, что ответить. Я вообще не слежу за этой темой. Кто бы мне собрал системник 🙄. Я последний раз собирал компьютер домой около 10-ти лет назад. Желания собирать его самому из комплектующих нет никакого. Если нужен будет системник, куплю в сборе из каких-то готовых вариантов.

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

А вы как обычно отвечаете на подобные вопросы? Рекомендуете какие-то конкретные модели, бренды, решения или общие принципы рассказываете?

#железо
У меня давно создан англоязычный сайт:

https://sysadminwork.com.

Это был пробный шар. 4 года назад я перевёл несколько своих статей, чтобы посмотреть, какой будет результат. Он меня удовлетворил. Через пару месяцев после публикации 6-ти статей было 100-150 посетителей в сутки.

Сейчас, спустя 4 года, посещаемость сайта 30-40 человек. Это при том, что сайт был сделан буквально за пару недель, а через год туда были добавлены ещё 3 статьи. Больше я сайтом вообще не занимался. Аудитория сайта - 15% РФ, далее идёт 11% USA и потом разные другие англоязычные страны.

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

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

Если у кого-то есть желание каким-то образом использовать этот домен и сайт, я готов его продать за символическую цену в 5000 р. Это та стоимость, за которую мне не жалко потратить своё время на все сопутствующие процедуры по передаче домена и сайта. Если желающих не будет, то я просто не буду продлевать домен. 16 октября он будет заморожен а потом разделегирован.
Меня уже неоднократно просили написать, как я веду Telegram канал. Какие инструменты использую, как готовлю информацию и т.д. Я решил сделать цикл заметок по этой теме, которые буду публиковать по выходным. Сегодня будет вводная публикация с общей информацией и планом постов.

Изначально идеи развивать Telegram канал не было. Сделал его и просто копировал туда ссылки на статьи с сайта. Мне нравился Telegram как мессенджер, активно им пользовался, поэтому решил, что и канал не помешает. Одновременно с ним был создан чат и больше времени я уделял чату. Сам там общался. Сейчас чат продан, его ведёт другой человек и ко мне он отношения больше не имеет.

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

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

Возможно дополню план, если придут в голову ещё какие-то идеи. Либо вы сами можете задавать вопросы, которые вас интересуют. Постараюсь дать на них ответы в том или ином виде.

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

#развитие_канала
​​Системным администраторам и devops инженерам постоянно приходится заниматься мониторингом. Это неотъемлемая часть нашей работы. Чаще всего это привычный мониторинг железной (серверы) и виртуальной (виртуальные машины) инфраструктуры. Относительно недавно появился новый тип мониторинга - APM (Application Performance Monitoring). По-русски это мониторинг приложений.

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

Основные метрики мониторинга приложений:
Время отклика различных служб и веб страниц сервиса.
Бизнес метрики (звонки, заказы, заявки и т.д.).
Время отклика запросов к БД.
Логи и ключевые записи в них.
События из инфраструктурного мониторинга.

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

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

APM мониторинг гораздо сложнее любого другого, так как работает в связке с бизнесом, разработчиками и поддержкой инфраструктуры. По моей информации лидером в это области является New Relic. Стоит дорого, функционал обширный, продаётся как сервис.

Есть open source аналог - signoz. Эту платформу комплексного мониторинга приложений можно развернуть на своих серверах. Проект уже состоявшийся и известный. Хороший вариант, чтобы установить, настроить и разобраться.

❗️Если кто-то думает, в какую сторону развиваться, можно выбрать это направление. Думаю, что это очень востребованные специалисты, так как их никогда не будет много. Людей, способных работать на стыке разных направлений всегда мало.

Если работали с какой-то APM системой, поделитесь информацией и своим впечатлением от неё.

#мониторинг #apm
​​Я уже неоднократно писал, что для заметок использую Joplin. Но он мне порядком надоел двумя вещами.
1️⃣ Чем дольше его использую, тем тормознее становится. Запускается сейчас значительно дольше чем, тогда, когда только начинал им пользоваться.
2️⃣ Второй момент - есть проблемы с редактором и разметкой. Работа с таблицами очень неудобная.

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

Установил и попробовал CherryTree. Какой же кайф, когда приложение написано на компилируемом языке программирования, а не на современном веб фреймворке. Оно летает: быстро запускается, отличный отклик. Я уже начинаю забывать, что так бывает.

В плане удобства и организации работы есть нюансы. Программа старая, необычная. Ведение заметок не похоже на то, что предлагается в похожем современном софте. Заметки распределяются по категориям в виде древовидной структуры. В качестве редактора используется WYSIWYG. Данные хранятся в XML файле или SQLite базе. Можно зашифровать паролем.

Прикольная фишка CherryTree - разное оформление для разных заметок, вплоть до цвета фона. Также поддерживается подсветка синтаксиса различных языков программирования, причём на хорошем уровне. Похоже, что программу создавал программист для программистов (не проверял).

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

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

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

#заметки
​​Чего только не придумают люди, лишь бы man не читать и ключи к командам не запоминать. Я лично всё записываю к себе, но есть более функциональный и современный подход. Существует сервис сheat.sh, про который многие наверняка слышали. Я лично - нет. Узнал вместе а написанием этого поста.

Cheat.sh - онлайн сервис, к которому можно обращаться из командной строки и получать подсказки по очень широкому спектру вопросов. Показываю простой пример. Вам надо создать или распаковать tar архив. Я лично знаю все необходимые ключи наизусть. Если вы не знаете, то быструю подсказку получите вот так:

# curl cheat.sh/tar

# To extract an uncompressed archive:
tar -xvf /path/to/foo.tar
# To extract a .tar in specified directory:
tar -xvf /path/to/foo.tar -C /path/to/destination/
# To create an uncompressed archive:
tar -cvf /path/to/foo.tar /path/to/foo/
# To extract a .tgz or .tar.gz archive:
tar -xzvf /path/to/foo.tgz
tar -xzvf /path/to/foo.tar.gz

Согласитесь, это информативнее, чем просто чтение man, где ещё надо собрать все необходимые ключи. И так по всем утилитам - netstat, ip, iptables и т.д. Приводятся наиболее популярные и востребованные примеры, чтобы выполнить какое-то конкретное действие.

Приятно, что запрос информации максимально простой. Не надо ничего запоминать, кроме самого домена cheat.sh, у которого есть и более короткий алиас - cht.sh.

Помимо подсказок по консольным командам, cheat.sh обладает базой знаний по языкам программирования. Например, я на днях забыл точный синтаксис конструкции с if else в python. Прям так и пишем запрос в cheat.sh:
# curl cht.sh/python/if+else
и получаем короткий и точный ответ. Поддерживаются все популярные языки программирования.

Можно поставить оффлайн клиент для работы с базой себе локально на машину, или запустить в Docker. Всё это описано в репозитории проекта, как и более подробные примеры использования.

🔥 Сервис cheat.sh достоин того, чтобы наравне с explainshell и shellcheck отправиться в закладки, чтобы навсегда остаться забытым в их недрах.

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

#bash #terminal
​​Вы понимаете разницу между аутентификацией и авторизацией?

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

Кратко объясняю, в чём разница:

✔️ Аутентификация - проверка подлинности. Например, сверка имени пользователя и пароля для учётной записи.
Аутентификация отвечает на вопрос: "Кто это".

Авторизация - предоставление прав на определённые действия. Например, учётная запись авторизована на выполнение операций записи в базу данных.
Авторизация отвечает на вопрос: "Что можно ему делать".

Покажу на наглядном примере. Вы подключаетесь по SSH к серверу. При вводе логина и пароля или предоставлении сертификата вы проходите процедуру аутентификации. Затем, в зависимости от того, в какую группу входит пользователь, система предоставляет те или иные права - это процедура авторизации.

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

Полный цикл доступа к системе может выглядеть так:
назвали имя, прошли идентификацию ⇨
указали пароль, прошли аутентификацию ⇨
получили права доступа, прошли авторизацию.

Путали когда-нибудь эти понятия?

#теория
В последнее время навводили кучу запретов на загрузку софта с IP адресов РФ. Я покажу на наглядном примере, как поднять свой deb репозиторий, наполнить его санкционным софтом и использовать в своей инфраструктуре.

Пример будет не гипотетический, а самый что ни на есть актуальный. Допустим, нам надо на парке серверов обновить filebeat от компании elastic, которая закрыла доступ к своим публичным репозиториям с территории РФ. Я включил прокси, скачал через браузер пакет filebeat-8.4.3-amd64.deb.

Далее идём на сервер с Debian, где будем настраивать локальный репозиторий с помощью aptly.
# apt install aptly

Создаём конфиг /etc/aptly.conf. Содержимое берём из документации, где меняем только rootDir и имя FileSystemPublishEndpoints.

{
 "rootDir": "/mnt/repo",
 "downloadConcurrency": 4,
 "downloadSpeedLimit": 0,
 "architectures": [],
 "dependencyFollowSuggests": false,
 "dependencyFollowRecommends": false,
 "dependencyFollowAllVariants": false,
 "dependencyFollowSource": false,
 "dependencyVerboseResolve": false,
 "gpgDisableSign": false,
 "gpgDisableVerify": false,
 "gpgProvider": "gpg",
 "downloadSourcePackages": false,
 "skipLegacyPool": true,
 "ppaDistributorID": "elk",
 "ppaCodename": "",
 "FileSystemPublishEndpoints": {
  "elkrepo": {
   "rootDir": "/var/www/aptly",
   "linkMethod": "symlink",
   "verifyMethod": "md5"
  }
 },
 "enableMetricsEndpoint": false
}

Создаём необходимые директории:
# mkdir -p /mnt/repo /var/www/aptly

Создаю репозиторий для Debian 11:
# aptly repo create -distribution="bullseye" elk
Копирую на сервер пакет и добавляю его в репозиторий:
# aptly repo add elk ~/filebeat-8.4.3-amd64.deb

Создаю gpg ключ для репозитория:
# gpg --default-new-key-algo rsa4096 --gen-key --keyring pubring
Real name: elkrepo

Публикуем репозиторий с этим ключом:
# aptly publish repo elk

Далее вам нужно поднять любой веб сервер и настроить через него доступ к директории /var/www/aptly. Если не хочется это делать, можно запустить сам aptly как веб сервер (дефолтный порт 8080):
# aptly serve

Он автоматом создаст и опубликует директорию /mnt/repo/public. Для удобства можно туда выгрузить публичный ключ:
# gpg --export --armor > /mnt/repo/public/elkrepo.asc

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

Теперь идём на клиенты и подключаем репозиторий. Для этого создаём файл /etc/apt/sources.list.d/elk_repo.list:

deb http://10.20.1.56:8080 bullseye main

Обновляем пакеты и устанавливаем или обновляем filebeat:
# apt update && apt install filebeat

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

#debian #elk
​​У меня на днях Anydesk категорически отказался дальше работать. Не даёт подключаться даже по ip адресу в локальной сети, просит денег. TeamViewer удалён уже давно, не пользуюсь им. Пора переходить на что-то другое.

Я давно собрал в одной статье все программы для удалённого доступа, на которые писал обзоры:

https://serveradmin.ru/top-besplatnyh-programm-dlya-udalyonnogo-dostupa/

Статья регулярно обновляется. Там уже не топ-10, а топ-14. Надо переходить на какую-то другую бесплатную программу. Пока мне видится хорошим вариантом АССИСТЕНТ. У него полностью бесплатная версия для физических лиц с поддержкой одного одновременного соединения, что для единичных и нечастых подключений совершенно не критично.

А если хотите развернуть что-то бесплатное на своих серверах, то пробуйте Aspia, RustDesk или MeshCentral.

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

📌 Selfhosted Open Source:
ZeroViewer. В качестве сервера для коммутации используется любой SSH сервер. К клиентам (только под Windows) подключение на основе VNC.
Aspia. Хорошее быстродействие удобство использования. Хост можно поставить как на Linux из deb пакета, так и на Windows из msi. То же самое с клиентами.
MeshCentral. Все подключения к клиентам через браузер из личного кабинета. Бесплатных аналогов подобного уровня практически нет. Есть интеграция с бесплатным софтом для инвентаризации Tactical RMM.
RustDesk. Работает как через публичные, так и свой сервер. Умеет открывать TCP туннели. Одно из наиболее популярных решений в этом классе. Часто получал на него рекомендации.
TrustViewer. Работает как через публичные, так и свой сервер. Клиент только под Windows, весом 2 Мб. Из фишек - расширенные права доступа для пользователей. Сервер бесплатный в том числе и для коммерческого использования, но код закрыт.

📌 Selfhosted коммерческий с бесплатной версией:
LiteManager. Хороший коммерческий софт, который можно развернуть на своих серверах. Бесплатная версия позволяет использовать его на 30 компьютерах без каких-либо ограничений.
RMS Удаленный доступ. Простой и легковесный софт. Есть интеграция с AD, возможность собрать свой дистрибутив с настройками. Бесплатная версия на 10 компов.

📌 Услуга как сервис:
DWService. Полностью бесплатный сервис. Поддерживается альтруистами за счёт пожертвований. Есть клиент под все системы. Подключение к клиентам через браузер из личного кабинета.
Getscreen.ru. Качественный сервис для управления клиентами через браузер. Бесплатная версия для двух клиентов. Далее платно, но цены низкие. Многие пользуются, отзывы хорошие.
АССИСТЕНТ. Аналог Anydesk или TeamViewer. Работает по такой же схеме. Для физических лиц полностью бесплатен с поддержкой одного одновременного подключения. Есть проблемы со стабильностью, иногда может не подключаться с первого раза или обрывать соединение.
AeroAdmin. Аналог Ассистента и других подобных программ. Дистрибутив всего 3 Мб, умеет подключаться к rdp сессиям. Ограничения бесплатной версии - 17 часов в месяц к каждому ID, разных ID не более 20. Подключения по IP в локальной сети не лицензируются.

📌 Работа только в локальной сети:
X2Go. Решение под Linux на основе протокола NX, у которого быстродействие лучше VNC. Интересен именно как альтернатива последнему.

#подборка #remote
​​Один читатель посоветовал обратить внимание на интересную российскую программу для мониторинга сети - 10-Страйк Мониторинг Сети. Посмотрел на неё и сразу понял, для чего она и кто целевая аудитория. Похожа, кстати, на Algorius.

10-Страйк Мониторинг Сети работает только под Windows и представляет из себя готовую систему мониторинга, которую не надо специально настраивать и дорабатывать (но можно при желании). Мониторинг простой и работает сразу из коробки. Поддерживает наблюдение за компьютерами, сетевыми устройствами, ИБП, IP камерами, видеорегистраторами и т.д. Все шаблоны, оповещения, графики преднастроены. От администратора требуется только хосты добавлять.

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

Программа умеет автоматически сканировать и рисовать карту сети с возможностью добавления туда индикаторов. Выглядит всё это симпатично и информативно. Особенность программы в том, что она реально просто и быстро настраивается, плюс, стоит недорого. Тарифицируется по сенсорам. Сколько надо, столько и покупаете. Ненужные сенсоры просто отключаете. Например, мониторинг 500 сенсоров в обычной лицензии стоит 30000 р. Пи этом лицензии бессрочные.

Я посмотрел сайт 10-strike.ru. У них целая куча недорогих программ под Windows. Видно, что компания старая и программы из далёкого прошлого, хотя и развиваются до сих пор. Но интерфейс выдаёт их. Хотя лично я ничего плохого про это не скажу. Мне эти старые нативные программы нравятся больше современных веб интерфейсов. Они более отзывчивы и легковесны.

Сайт / Реестр ПО / Обзор

#мониторинг #отечественное
Существуют программы, которые на основе типа трафика могут направлять его в разные направления. Расскажу вам про одну такую программу - SSLH. Её можно запустить на каком-то TCP порту, например 8080. Если на этот порт направить HTTP трафик, SSLH его перенаправит на веб сервер, если это SSH трафик - на SSH сервер, если OpenVPN, то на его сервер. Таким образом можно маскировать какие-то сервисы, оставляя их при этом полностью доступными.

С одним из вариантов использования подобного подхода я сталкивался сам. Допустим, есть у вас где-то в Америке VPS, там живёт веб сервер. А ещё вам хочется держать там же OpenVPN на 443 порту, чтобы использовать для обхода блокировок и проходить через сети, где всё закрыто, кроме HTTP и HTTPS портов. SSLH отлично решает эту задачу.

Она есть в базовых репозиториях Debian:
# apt install sslh

Далее запускаем:
# sslh-select -f --listen 0.0.0.0:443 \
--tls 127.0.0.1:443 \
--ssh 127.0.0.1:22 \
--openvpn 127.0.0.1:1194

Теперь, если зайти браузером на сервер, то запрос будет перенаправлен на 443 порт веб сервера, если SSH клиентом, то на 22-й порт, если OpenVPN клиентом, то на дефолтный 1194 порт openvpn сервера.

То же самое через Docker:
docker run --rm -it sslh:latest \
 --listen=0.0.0.0:443 \
 --ssh=hostname:22 \
 --tls=hostname:443
--openvpn=hostname:1194

Более функциональный вариант через docker-compose. Пример конфига, где трафик уходит в разные контейнеры:

version: "3"

services:
 sslh:
  image: sslh:latest
  hostname: sslh
  ports:
   - 443:443
  command: --listen=0.0.0.0:443 --tls=nginx:443 --openvpn=openvpn:1194
  depends_on:
   - nginx
   - openvpn

 nginx:
  image: nginx

 openvpn:
  image: openvpn

Исходники

#openvpn #webserver
​​▶️ Чтобы провести в выходные время с пользой, предлагаю вам свежие обучающие видео от realmanual по настройке и подключению к кластеру Proxmox распределённого хранилища Linstor. Для тех, кто не слышал о нём, поясню, что это оркестратор томов для VM на базе технологий LVM или ZFS и DRBD.

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

Proxmox: разворачиваем Linstor хранилище ч.1
Proxmox: разворачиваем Linstor хранилище ч.2
Proxmox: разворачиваем Linstor хранилище ч.3

На выходе у вас будет отказоустойчивый кластер как по вычислительным нодам, так и по хранилищу. И всё это на базе бесплатного open source софта. Да и настройка не особо сложная.

#proxmox #видео #обучение
Не ожидал такой активный отклик на тему заметок по ведению канала. Раз вам интересно узнать, как я его веду, то расскажу. Сегодня остановлюсь на теме написания постов.

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

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

📌 Основные источники информации для статей:

1️⃣ Моя непосредственная деятельность в качестве системного администратора. Если сталкиваюсь с чем-то интересным, рассказываю об этом или делюсь мыслями по каким-то рабочим вопросам. Таких постов не много, так как что-то необычное, интересное, новое случается не так часто. В основном рутина.
2️⃣ Читаю новости, другие каналы, смотрю видео по своей деятельности. Если вижу что-то интересное, записываю в todo лист. Когда нет готовых идей по постам, открываю этот лист и начинаю изучать то, что показалось интересным. Чужая информация это только идея о том, что можно написать. Я начинаю собирать информацию по теме, что-то пробовать, настраивать у себя. Только после этого я формулирую итоговый текст полностью своими словами.
3️⃣ Мои мысли на различные айтишные темы, не связанные непосредственно с какими то событиями или продуктами. Например, как проверять бэкапы, какое выбирать железо, хостинг и т.д. Так как у меня большой практический опыт, всегда есть о чём сказать по существу.
4️⃣ Развлекательный контент на тему IT. Какие-то юморные видео, игры, музыка, что-то ещё. Самая сложная тема, на которую уходит больше всего времени. Не уверен на 100%, что об этом стоит писать, так как не вижу особого отклика. Мне просто кажется, что имеет смысл разбавлять основной контент развлекательным. Нравится разнообразие.
5️⃣ Крупные события популярных брендов. Если выходит что-то новое у Zabbix, Mikrotik, Elastic или кого-то ещё, пишу об этом. Не часто, только если информация действительно интересная и мне есть чем её дополнить от себя, чтобы стало интереснее, чем официальная часть.
6️⃣ Бесплатные обучающие материалы. Если встречаю где-то что-то полезное по тематике канала, то пишу об этом пост.

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

В связи со сказанным выше, могу добавить, что на написание двух постов у меня в среднем уходит 2-4 часа в день. Иногда меньше, иногда больше. Но на длительном интервале средние цифры именно такие - 3 часа каждый день, даже когда болеешь или в отпуске. Ещё один час уходит на всякие технические моменты, связанные с рекламой, бухгалтерией и всем остальным. Так что в среднем 4 часа в день уходят на канал. Если кто-то хочет повторить успех, рассчитывайте на тяжёлый регулярный труд. На обдумывание, написание, вычитку и исправление этого поста ушло где-то 1,5 часа, хотя казалось бы, просто сел и написал.

На этом тему заканчиваю. Надеюсь, получилось её раскрыть за ограничение в 4000 символов на пост. Завтра расскажу про техническую часть.

#развитие_канала
Отказоустойчивая IT-инфраструктура от @Selectel

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

Почему в Selectel удобно и безопасно:

◽️Поможем перенести проекты в Selectel: оценим требования, подберем решение и организуем бережный переезд.
◽️Мы резервируем все системы, чтобы ваши сервисы продолжали работать во время сбоев или плановых работ. Следим за питанием, температурой, охлаждением.
◽️ У нас больше 40 сервисов: можно объединить в гибридную инфраструктуру выделенные и облачные серверы, настроить бэкапы, защититься от DDoS и многое другое.
◽️ Чтобы начать работу с нашими сервисами, достаточно зарегистрироваться в панели управления Selectel и пополнить баланс. Это займет пару минут.

Оставьте запрос на сайте, и мы свяжемся с вами в течение рабочего дня: https://slc.tl/iklyd

Реклама. ООО «Селектел»
​​Продолжаю цикл заметок про ведение канала. Сегодня расскажу про техническую часть, которая скрыта от вас.

📌 Очевидно, что для ведения канала нужен какой-то планировщик и редактор. Я предпочитаю бесплатный сервис telepost.me. Чего-то лучше просто не встречал. Меня серьезно смущает, что он полностью бесплатен. В голове всегда гуляет мысль, а где здесь подвох. Я бы предпочёл за него платить. Все остальные сервисы подготовки, планирования и отложенной публикации, которые смотрел, предлагают писать и управлять постами в клиенте Telegram через бота. Мне категорически это не нравится. Писать и готовить посты в браузере лично мне намного удобнее. Получается, что функционал бесплатного telepost.me лучше, чем у платных аналогов. Редко с таким сталкиваешься.

📌 Далее очень важная вещь, без которой я как без рук - календарь публикаций. Там формируется точный список постов на ближайшее время. Иногда сразу на неделю вперёд, но чаще только на несколько дней. Веду его в planyway.com. Это надстройка над Trello. Нравится там в первую очередь наглядный вид сразу всего месяца (пример во вложении). Для каждого поста указано время публикации, реклама выделена отдельным цветом (красный). Как только пост готов и загружен в планировщик, я помечаю его выполненным. Для постов есть возможность внутри сделать подзадачи. Например, к рекламным у меня их 3 - отправил счёт, получил оплату, получил текст. Как только что-то из этого выполняется, подзадачу закрываю.

Сервис очень удобный, попробуйте. Пригодится практически в любой деятельности, где важно планирование наперёд. Я пытался его заменить чем-то другим, так как иногда он может упасть на пару часов, плюс, опасаюсь блокировки. Но так и не нашёл замену. Одно время пользовался Яндекс.Календарём, но он по функционалу сильно не дотягивает до Planyway.

📌 Все посты из Telegram копируются в группу VK. Там, кстати, просмотры в среднем уже догнали показатели этой группы, а чаще стали превышать. Плюс, некоторые посты выстреливают на 20-30 тысяч, а недавно и 60 тысяч просмотров. Это к вопросу о том, что VK умирает. Живее всех живых: люди читают, комментируют, пишут в личку не меньше, чем здесь. Одно время пытался автоматизировать копирование постов туда, но пришлось отказаться, так как часто приходится немного менять текст под VK. Там есть нюансы с зависимостью охвата от содержимого. Так что это всё делается вручную.

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

#развитие_канала
​​Я как-то раз уже вскользь упоминал о возможности пробрасывать порты через SSH в рамках общей заметки о разных возможностях этого протокола. Сейчас хочу поподробнее остановиться на этом с конкретным примером.

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

1️⃣ Настроить ограничение на подключение по IP. Это сработает в том случае, если у вас существует список статичных IP адресов, с которых вы подключаетесь, а необходимости подключаться с адресов не из этого списка не возникнет. Тогда всё просто. Настраиваете Firewall и забываете о проблеме. Но для надёжности неплохо было бы настроить мониторинг правил фаревола, так как я неоднократно сталкивался с ситуациями, когда по различным причинам фаервол не работал или необходимые правила в нём не были активны.

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

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

Подключаемся с локальной машины по SSH следующим образом:
# ssh -L 8080:127.0.0.1:80 -N -f user@remote.host
8080 - локальный порт машины, с которой подключаемся
127.0.0.1:80 - порт, на котором работает веб сервер, не забудьте его запустить только на localhost, чтобы с других адресов он не был доступен
-N -f - ключи для запуска соединения в фоновом режиме, в WSL оно останется активным даже после закрытия терминала

Теперь можно открыть интерфейс Zabbix через проброшенный порт со своего компьютера: http://127.0.0.1:8080/zabbix/

Не нужно настраивать ни VPN, ни Firewall. На сервере открыт только порт SSH, вы можете подключиться к веб интерфейсу из любого места, где есть возможность использовать SSH соединение.

Все популярные SSH клиенты позволяют настраивать проброс портов и сохранять параметры. Так что достаточно один раз настроить соединение и использовать его. Можно и других людей так же подключать. А создав для каждого из них отдельного пользователя можно получить простой аудит подключений на основе логов SSH.

Берите на вооружение, особенно те, кто не умеет, не хочет, ему не нужно учиться настраивать Firewall, а хочется по-быстрому настроить безопасный доступ к какому-то сервису. Программисты часто грешат тем, что на тестовых серверах вешают базу на внешний интерфейс, чтобы подключаться к ней напрямую. А потом забывают, отключить, поменять дефолтную учётку и т.д. Лично сталкивался с этим и не раз.

Когда соединение станет не нужно, через px axf посмотрите его pid и прибьёте через kill. Подобных подключений можно много открыть на разные локальные порты с разных удалённых серверов.

#linux #ssh
​​Вы в курсе, что существует публичный сервис, на котором можно посмотреть историю всех выпущенных сертификатов для домена? Я мельком видел в комментариях об его упоминании, но лично никогда не проверял. А теперь решил проверить - https://crt.sh.

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

Проверьте себя на всякий случай, а ссылочку сохраните. Сервис реально полезный.

https://crt.sh

#сервис