Для тех, кто захочет позаниматься на выходных и подтянуть свой навык в администрировании Linux в преддверие начала учебного года, предлагаю шикарную ссылку на обучающий материал по теме RHCSA (Red Hat Certified System Administrator).
Поясню тем, кто не знает, что это базовый курс от Red Hat для Linux администраторов. Сертификацию сдавать не обязательно, можно просто поучиться по этой программе. Её часто рекомендуют как общепризнанную базу. Так что если вас кто-то будет просить посоветовать, с чего начать изучение Linux, предложите ему пройти обучение по этому курсу.
Собственно, вот ссылка - https://basis.gnulinux.pro
Автор проделал огромную работу. Он записал видео и одновременно подготовил текстовую информацию с картинками. Читать её можно как на сайте автора, так и в репозитории github. Материал адаптирован для новичков и дополнен автором, то есть это не точное обучение по программе RHCSA.
Увидел этот курс недавно и был очень удивлён качеством и подачей. Пожалуй, в бесплатном доступе от энтузиастов мне не доводилось такого видеть.
#обучение #бесплатно
Поясню тем, кто не знает, что это базовый курс от Red Hat для Linux администраторов. Сертификацию сдавать не обязательно, можно просто поучиться по этой программе. Её часто рекомендуют как общепризнанную базу. Так что если вас кто-то будет просить посоветовать, с чего начать изучение Linux, предложите ему пройти обучение по этому курсу.
Собственно, вот ссылка - https://basis.gnulinux.pro
Автор проделал огромную работу. Он записал видео и одновременно подготовил текстовую информацию с картинками. Читать её можно как на сайте автора, так и в репозитории github. Материал адаптирован для новичков и дополнен автором, то есть это не точное обучение по программе RHCSA.
Увидел этот курс недавно и был очень удивлён качеством и подачей. Пожалуй, в бесплатном доступе от энтузиастов мне не доводилось такого видеть.
#обучение #бесплатно
В прошлом году на канале я уже делал заметку про замечательную утилиту Ventoy, которая позволяет сделать флешку с множеством ISO образов. Можно выбрать любой из них и загрузиться.
Казалось бы, что в этом такого? Нет никаких проблем сделать загрузочную флешку. Тут смысл именно в простоте. Программа формирует флешку с директорией, в которую можно просто копировать ISO образы. А затем в загрузочном меню выбирать любой из них. Ventoy поддерживает не только ISO, но и некоторые другие: WIM, IMG, VHD(x), EFI.
Я с тех пор с себе сделал подобную флешку и иногда пользовался. Вспомнил про неё, потому что автор канала Plafon, на который я подписан, выпустил ролик по этой теме. Можете посмотреть, чтобы наглядно увидеть, как это всё работает на практике. У автора рабочая станция на Linux. Он отдельно упомянул, что с линукса не всегда удобно делать загрузочную флешку с Windows. А с Ventoy нет никаких проблем. Просто кладёшь образ в директорию на флешке и всё работает.
Из аналогов этой программы можно упомянуть YUMI – Multiboot USB Creator. Но лично мне Ventoy понравилась больше.
P.s. если ещё не подписаны на этот канал, то рекомендую, мне нравится.
Сайт - https://www.ventoy.net/
Исходники - https://github.com/ventoy/Ventoy
Казалось бы, что в этом такого? Нет никаких проблем сделать загрузочную флешку. Тут смысл именно в простоте. Программа формирует флешку с директорией, в которую можно просто копировать ISO образы. А затем в загрузочном меню выбирать любой из них. Ventoy поддерживает не только ISO, но и некоторые другие: WIM, IMG, VHD(x), EFI.
Я с тех пор с себе сделал подобную флешку и иногда пользовался. Вспомнил про неё, потому что автор канала Plafon, на который я подписан, выпустил ролик по этой теме. Можете посмотреть, чтобы наглядно увидеть, как это всё работает на практике. У автора рабочая станция на Linux. Он отдельно упомянул, что с линукса не всегда удобно делать загрузочную флешку с Windows. А с Ventoy нет никаких проблем. Просто кладёшь образ в директорию на флешке и всё работает.
Из аналогов этой программы можно упомянуть YUMI – Multiboot USB Creator. Но лично мне Ventoy понравилась больше.
P.s. если ещё не подписаны на этот канал, то рекомендую, мне нравится.
Сайт - https://www.ventoy.net/
Исходники - https://github.com/ventoy/Ventoy
Игра Компьютерщик, о которой я рассказывал пару недель назад, в 1998 году открыла целую веху подобных игр. Одного из последователей я упоминал - Взломщик. Есть ещё целая серия подобного рода игр - Компьютерная эволюция, которая была популярна в своё время.
С 2002 по 2008 год вышло три версии этой игры, а в 2008 автор открыл исходники, сам прекратил разработку. С тех пор вышла целая куча новых версий. Компьютерная эволюция развивает идею Компьютерщика, только делает акцент на железную часть. В игре куча различных операционных систем и оборудования.
Начало там примерно такое же, как в Компьютерщике. Вы начинаете самостоятельную жизнь с самым маломощным компьютером с бесплатным ПО. Вам надо работать, учиться, прокачивать комп, ставить ПО, заниматься хакерством (в первых версиях не было).
По этой игре автор 6-й версии запилил свой сайт, выложил свою версию и собрал много полезной информации об игре. Адрес - http://compevo6.ru. Игра для старичков, кто застал в сознательном возрасте 90-е и начало 2000-х. Она вся пронизана духом того времени. Для всех остальных вряд ли это покажется интересным, хотя кто знает.
Я так понимаю, что сейчас имеет смысл играть сразу в 6-ю, последнюю версию. Скачать можно с сайта, который упомянул.
#игра
С 2002 по 2008 год вышло три версии этой игры, а в 2008 автор открыл исходники, сам прекратил разработку. С тех пор вышла целая куча новых версий. Компьютерная эволюция развивает идею Компьютерщика, только делает акцент на железную часть. В игре куча различных операционных систем и оборудования.
Начало там примерно такое же, как в Компьютерщике. Вы начинаете самостоятельную жизнь с самым маломощным компьютером с бесплатным ПО. Вам надо работать, учиться, прокачивать комп, ставить ПО, заниматься хакерством (в первых версиях не было).
По этой игре автор 6-й версии запилил свой сайт, выложил свою версию и собрал много полезной информации об игре. Адрес - http://compevo6.ru. Игра для старичков, кто застал в сознательном возрасте 90-е и начало 2000-х. Она вся пронизана духом того времени. Для всех остальных вряд ли это покажется интересным, хотя кто знает.
Я так понимаю, что сейчас имеет смысл играть сразу в 6-ю, последнюю версию. Скачать можно с сайта, который упомянул.
#игра
🛡 Хочу поделиться с вами продуктом на базе Nginx, который мне понравился своей простотой и удобством. Речь пойдёт про Bunkerweb, который реализует в том числе функционал WAF (Web Application Firewall). Это собранный Docker контейнер с Nginx внутри и кучей дополнительного функционала для обеспечения безопасности.
Bunkerweb может работать как непосредственно локальный веб сервер, так и в режиме reverse proxy. Большая часть функционала реализована штатными средствами Nginx и модулями к нему. В качестве WAF используется ModSecurity, для защиты от ботов интеграция с различными каптчами.
📌 Для настройки есть мастер создания конфигурации. Оценить функционал и основные возможности проще всего через него, а не через просмотр описания или доков. Там сразу понятно, что он умеет и как настраивается. Перечислю основные фишки:
◽ есть встроенный веб интерфейс для управления (видео с демонстрацией)
◽ поддержка плагинов (уже есть интеграции с CrowdSec, ClamAV, Discord, Slack, VirusTotal)
◽ WAF на базе ModSecurity и набора правил OWASP
◽ распознавание ботов, их блокировка или показ каптчи
◽ блок ip по странам или внешним списками
◽ поддержка сертификатов let's encrypt
Весь функционал подробно описан в документации. Запускается Bunkerweb в Docker, Kubernetes, локально с ручной установкой или через Ansible. Доступны, по сути, все возможные способы, кому что ближе и удобнее.
Проект оставил очень хорошее впечатление. Он хорошо документирован, описан, понятно сделан, продуман. Мне показалось, что это хорошее решение не только с точки зрения безопасности, но и просто установки и управления Nginx. Можно через конструктор собрать набор опций, запустить Bunkerweb, а потом посмотреть в конфиге, как всё это реализовано. Так как всё собрано на базе open source продуктов, разобраться не трудно. При желании, можно что-то в свои наработки утащить.
Можно рассматривать этот продукт как панель управления для Nginx с базовым набором правил безопасности. Это если его просто с дефолтными настройками запустить. А дальше уже при желании можно наращивать функционал.
Сайт - https://docs.bunkerweb.io
Исходники - https://github.com/bunkerity/bunkerweb
Demo - https://demo.bunkerweb.io/
#waf #security #nginx
Bunkerweb может работать как непосредственно локальный веб сервер, так и в режиме reverse proxy. Большая часть функционала реализована штатными средствами Nginx и модулями к нему. В качестве WAF используется ModSecurity, для защиты от ботов интеграция с различными каптчами.
📌 Для настройки есть мастер создания конфигурации. Оценить функционал и основные возможности проще всего через него, а не через просмотр описания или доков. Там сразу понятно, что он умеет и как настраивается. Перечислю основные фишки:
◽ есть встроенный веб интерфейс для управления (видео с демонстрацией)
◽ поддержка плагинов (уже есть интеграции с CrowdSec, ClamAV, Discord, Slack, VirusTotal)
◽ WAF на базе ModSecurity и набора правил OWASP
◽ распознавание ботов, их блокировка или показ каптчи
◽ блок ip по странам или внешним списками
◽ поддержка сертификатов let's encrypt
Весь функционал подробно описан в документации. Запускается Bunkerweb в Docker, Kubernetes, локально с ручной установкой или через Ansible. Доступны, по сути, все возможные способы, кому что ближе и удобнее.
Проект оставил очень хорошее впечатление. Он хорошо документирован, описан, понятно сделан, продуман. Мне показалось, что это хорошее решение не только с точки зрения безопасности, но и просто установки и управления Nginx. Можно через конструктор собрать набор опций, запустить Bunkerweb, а потом посмотреть в конфиге, как всё это реализовано. Так как всё собрано на базе open source продуктов, разобраться не трудно. При желании, можно что-то в свои наработки утащить.
Можно рассматривать этот продукт как панель управления для Nginx с базовым набором правил безопасности. Это если его просто с дефолтными настройками запустить. А дальше уже при желании можно наращивать функционал.
Сайт - https://docs.bunkerweb.io
Исходники - https://github.com/bunkerity/bunkerweb
Demo - https://demo.bunkerweb.io/
#waf #security #nginx
Расскажу вам про возможность консоли Linux, с помощью которой можно подшутить над коллегой, который с ней не знаком. Когда первый раз сталкиваешься, можно прилично удивиться или даже испугаться, что тебя взломали.
В Linux можно через консоль отправлять сообщения другому человеку. Для этого вам надо подключиться вместе с кем-то к серверу и посмотреть их номера. Проще всего это сделать с помощью команды w.
Допустим, другой человек подключился к консоли pts/1. Отправим ему сообщение:
Это сообщение появится у него в консоли, после решётки. Можно как в режиме онлайн отправлять сообщения, так и запланировать их, например, с помощью at. Если человек один работает на сервере, то консоль у него будет нулевая.
Если никогда не пользовался этим функционалом и вообще ничего про него не знаешь, можно серьезно удивиться или напрячься. Что за хрень и кто со мной разговаривает? Какого-то другого применения этого функционала я не придумаю.
То же самое можно сделать с помощью write, например так:
и дальше пишешь текст, но так русский язык не работает, я не разбирался, из-за чего это.
#bash #юмор
В Linux можно через консоль отправлять сообщения другому человеку. Для этого вам надо подключиться вместе с кем-то к серверу и посмотреть их номера. Проще всего это сделать с помощью команды w.
# w
21:25:41 up 356 days, 11:46, 2 users, la: 0.01, 0.03, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 123.456.158.81 17:18 5.00s 0.19s 0.01s w
root pts/1 321.654.177.11 17:19 13.00s 0.06s 0.06s -bash
Допустим, другой человек подключился к консоли pts/1. Отправим ему сообщение:
# echo 'Ты кто такой? Тебя сюда не звали' > /dev/pts/1
Это сообщение появится у него в консоли, после решётки. Можно как в режиме онлайн отправлять сообщения, так и запланировать их, например, с помощью at. Если человек один работает на сервере, то консоль у него будет нулевая.
Если никогда не пользовался этим функционалом и вообще ничего про него не знаешь, можно серьезно удивиться или напрячься. Что за хрень и кто со мной разговаривает? Какого-то другого применения этого функционала я не придумаю.
То же самое можно сделать с помощью write, например так:
# write user /dev/pts/1
и дальше пишешь текст, но так русский язык не работает, я не разбирался, из-за чего это.
#bash #юмор
⚡️ Хочу предостеречь тех, у кого сайты на Bitrix. Как я понял, сейчас идёт волна взломов этого движка. У меня пострадал сайт одного из клиентов. Подробный бюллетень с описанием уязвимости ещё в июле публиковал НКЦКИ (ссылка на pdf). Там и вероятные пути попадания зловреда, его признаки, рекомендации по устранению последствий и рекомендации по защите.
У меня частично совпали признаки заражения с тем, что опубликовано в бюллетени, но не полностью. Модуля Vote не было, заражение прилетело через какую-то другую уязвимость. И особых разрушений на сайте тоже не было. Подменили пару файлов, добавили один новый, вставили вредоносную ссылку в код. Дату изменения файлов подделали (❗️), так что привычный поиск изменённых недавно файлов не поможет. Но не поменяли дату изменения директории, где этот фай лежал, так что теоретически можно найти следы, но сложно.
Код зловреда хитрый, поэтому его долго не замечали. Открывал фоном ссылку на сторонний сайт только один раз в день и только тем, кто пришёл на сайт из поиска. Постоянные пользователи не замечали ничего, как и администрация. Онлайн сканеры антивирусов, как и браузеры со своими встроенными проверками тоже не видели никаких проблем.
Мне устранить последствия удалось достаточно просто, потому что в стандартных бэкапах сайтов всегда храню все изменения файлов в течении дня. То есть прошёл день, я сравниваю вчерашний бэкап и сегодняшний. Все изменившиеся файлы кладу в отдельную папку с именем в виде даты. И такую историю изменений храню очень долго. Первое заражение сайта было ещё в июле, в августе один раз меняли ссылку. Мне удалось найти все изменённые файлы ещё с июля и заменить их оригиналами. Без этого не знаю, сколько времени пришлось бы ковыряться и всё равно наверняка бы не узнал, всё ли вычистил. А тут сразу все изменения файлов перед глазами. Подробно такая схема бэкапа описана у меня на сайте в статье про rsync. Рекомендую к обычным полным или инкрементным бэкапам добавлять такие, разностные по каждому дню.
Сайт доработанный, так что просто взять и обновить его нельзя. Нанимаются отдельно разработчики и выполняют обновление. Сразу предупредил владельца, чтобы оперативно проводил обновление. Других вариантов надёжной защиты не знаю. Пока выполнил рекомендации из бюллетеня и постоянно слежу, не повторился ли взлом. Если повторится, постараюсь подробно изучить, как именно он выполняется. Повторного заражения пока не было.
Проверил другие сайты, тоже давно не обновлявшиеся. Не нашёл следов заражения. Скорее всего используется какой-то модуль, который установлен не везде, либо отдельная редакция подвержена заражению.
Если сталкивались последнее время со взломом Битрикса, то какие меры для защиты приняли, помимо обновления до последней версии?
#bitrix
У меня частично совпали признаки заражения с тем, что опубликовано в бюллетени, но не полностью. Модуля Vote не было, заражение прилетело через какую-то другую уязвимость. И особых разрушений на сайте тоже не было. Подменили пару файлов, добавили один новый, вставили вредоносную ссылку в код. Дату изменения файлов подделали (❗️), так что привычный поиск изменённых недавно файлов не поможет. Но не поменяли дату изменения директории, где этот фай лежал, так что теоретически можно найти следы, но сложно.
Код зловреда хитрый, поэтому его долго не замечали. Открывал фоном ссылку на сторонний сайт только один раз в день и только тем, кто пришёл на сайт из поиска. Постоянные пользователи не замечали ничего, как и администрация. Онлайн сканеры антивирусов, как и браузеры со своими встроенными проверками тоже не видели никаких проблем.
Мне устранить последствия удалось достаточно просто, потому что в стандартных бэкапах сайтов всегда храню все изменения файлов в течении дня. То есть прошёл день, я сравниваю вчерашний бэкап и сегодняшний. Все изменившиеся файлы кладу в отдельную папку с именем в виде даты. И такую историю изменений храню очень долго. Первое заражение сайта было ещё в июле, в августе один раз меняли ссылку. Мне удалось найти все изменённые файлы ещё с июля и заменить их оригиналами. Без этого не знаю, сколько времени пришлось бы ковыряться и всё равно наверняка бы не узнал, всё ли вычистил. А тут сразу все изменения файлов перед глазами. Подробно такая схема бэкапа описана у меня на сайте в статье про rsync. Рекомендую к обычным полным или инкрементным бэкапам добавлять такие, разностные по каждому дню.
Сайт доработанный, так что просто взять и обновить его нельзя. Нанимаются отдельно разработчики и выполняют обновление. Сразу предупредил владельца, чтобы оперативно проводил обновление. Других вариантов надёжной защиты не знаю. Пока выполнил рекомендации из бюллетеня и постоянно слежу, не повторился ли взлом. Если повторится, постараюсь подробно изучить, как именно он выполняется. Повторного заражения пока не было.
Проверил другие сайты, тоже давно не обновлявшиеся. Не нашёл следов заражения. Скорее всего используется какой-то модуль, который установлен не везде, либо отдельная редакция подвержена заражению.
Если сталкивались последнее время со взломом Битрикса, то какие меры для защиты приняли, помимо обновления до последней версии?
#bitrix
Обычно, когда надо узнать информацию о железе в Linux, начинаю перебирать утилиты типа lspci, lshw, dmidecode. Понятное дело, что ключей к ним я не помню, есть шпаргалки. Одну из них я публиковал в прошлом году.
Можно поступить проще. Есть утилита на perl - inxi. Узнал о ней случайно, увидел в одном из чатов. Плюс, в комментариях к заметкам пару раз её видел, так что забрал в закладки, а сейчас дошли руки попробовать.
Она присутствует в базовых репозиториях популярных систем, так что ставится через пакетный менеджер:
А дальше самое интересное. У этой небольшой утилиты куча зависимостей. В прикрепленной картинке пример установки inxi в Debian. Я как увидел это, сразу понял, что инструмент не для серверов. Ставить столько зависимостей, чтобы посмотреть информацию о системе, абсурд. Скорее всего утилита перекочевала из десктопных систем, где большая их часть уже установлена в системе, так как там и видюхи чаще всего стоят, и куча всевозможных портов на материнке, чего в виртуалках просто нет и чаще всего не надо.
В целом inxi известный инструмент с большой историей. Он есть в официальных репозиториях всех известных дистрибутивов Linux, а также Freebsd и MacOS. Так что если вас не смущает количество зависимостей, то можете смело ставить. Собственно, эти зависимости и ставятся, чтобы собрать как можно больше информации о системе. И тут inxi действительно хорош. У него очень удобно и информативно организован вывод данных.
Сразу посмотреть всю информацию обо всём железе и самой системе (в том числе о типе гипервизора):
Базовая информация о системе:
Информация о процессоре:
Информация об оперативной памяти:
Информация о дисках:
И разделах на них:
Информация о сетевых картах:
В том числе с ip адресами (lan и wan):
Информация о видеокарте:
Список системных репозиториев:
Если к любой команде добавить ключ -c и дальше указать число от 0 до 42, то можно выбрать цветовую схему. Примерно так:
Параметров у inxi очень много. Она умеет показывать логические разделы lvm, подключенные bluetooth устройства, температуру с датчиков, даже погоду. По идее, это неплохой инструмент для стандартизации сбора информации с помощью какой-то системы мониторинга. Можно написать универсальный шаблон под неё и собирать всю интересующую информацию, в первую очередь с парка рабочих станций.
Сайт - https://smxi.org/docs/inxi-about.htm
Исходники - https://github.com/smxi/inxi
Обзор - https://www.youtube.com/watch?v=36L2NrvmCMo
#linux #железо
Можно поступить проще. Есть утилита на perl - inxi. Узнал о ней случайно, увидел в одном из чатов. Плюс, в комментариях к заметкам пару раз её видел, так что забрал в закладки, а сейчас дошли руки попробовать.
Она присутствует в базовых репозиториях популярных систем, так что ставится через пакетный менеджер:
# apt install inxi
# dnf install inxi
А дальше самое интересное. У этой небольшой утилиты куча зависимостей. В прикрепленной картинке пример установки inxi в Debian. Я как увидел это, сразу понял, что инструмент не для серверов. Ставить столько зависимостей, чтобы посмотреть информацию о системе, абсурд. Скорее всего утилита перекочевала из десктопных систем, где большая их часть уже установлена в системе, так как там и видюхи чаще всего стоят, и куча всевозможных портов на материнке, чего в виртуалках просто нет и чаще всего не надо.
В целом inxi известный инструмент с большой историей. Он есть в официальных репозиториях всех известных дистрибутивов Linux, а также Freebsd и MacOS. Так что если вас не смущает количество зависимостей, то можете смело ставить. Собственно, эти зависимости и ставятся, чтобы собрать как можно больше информации о системе. И тут inxi действительно хорош. У него очень удобно и информативно организован вывод данных.
Сразу посмотреть всю информацию обо всём железе и самой системе (в том числе о типе гипервизора):
# inxi -F
Базовая информация о системе:
# inxi -b
Информация о процессоре:
# inxi -C
Информация об оперативной памяти:
# inxi -m
Информация о дисках:
# inxi -D
И разделах на них:
# inxi -p
Информация о сетевых картах:
# inxi -n
В том числе с ip адресами (lan и wan):
# inxi -ni
Информация о видеокарте:
# inxi -G
Список системных репозиториев:
# inxi -r
Если к любой команде добавить ключ -c и дальше указать число от 0 до 42, то можно выбрать цветовую схему. Примерно так:
# inxi -F -c 5
Параметров у inxi очень много. Она умеет показывать логические разделы lvm, подключенные bluetooth устройства, температуру с датчиков, даже погоду. По идее, это неплохой инструмент для стандартизации сбора информации с помощью какой-то системы мониторинга. Можно написать универсальный шаблон под неё и собирать всю интересующую информацию, в первую очередь с парка рабочих станций.
Сайт - https://smxi.org/docs/inxi-about.htm
Исходники - https://github.com/smxi/inxi
Обзор - https://www.youtube.com/watch?v=36L2NrvmCMo
#linux #железо
Media is too big
VIEW IN TELEGRAM
Пост немного не формат канала, тем более для утра среды, но всё равно хочу поделиться. Сам только вчера вечером увидел объявление. У группы Научно-технический рэп (НТР) завтра будет концерт в Москве. Подробности по ссылке - https://future.moscow/ntr
Научно-технический рэп (НТР) — группа, которая в искрометной форме вещает о наболевшем. В песнях НТР — реалии жизни IT-специалистов, биографии знаменитых ученых, восстание машин, тепловая смерть Вселенной, темная сторона Силы и матбой.
Это не реклама, её никто не заказывал. Мне нравится творчество этой группы, решил поддержать. Сам бы с удовольствием сходил, но 1-го сентября не получается.
Постоянно слушаю их песни. Собрал их в своей группе @srv_admin_humor (просто хранилище, канал не веду специально). На некоторые популярные песни один энтузиаст создал прикольные клипы, собраны на его канале - https://www.youtube.com/c/kawaiidesuintegral
#музыка #юмор
Научно-технический рэп (НТР) — группа, которая в искрометной форме вещает о наболевшем. В песнях НТР — реалии жизни IT-специалистов, биографии знаменитых ученых, восстание машин, тепловая смерть Вселенной, темная сторона Силы и матбой.
Это не реклама, её никто не заказывал. Мне нравится творчество этой группы, решил поддержать. Сам бы с удовольствием сходил, но 1-го сентября не получается.
Постоянно слушаю их песни. Собрал их в своей группе @srv_admin_humor (просто хранилище, канал не веду специально). На некоторые популярные песни один энтузиаст создал прикольные клипы, собраны на его канале - https://www.youtube.com/c/kawaiidesuintegral
#музыка #юмор
У меня вчера ночью сайт упал. Утром пока встал, покушал, сел за компьютер, накопилось большое количество сообщений в личке от читателей, как в vk, так и в телеге. Даже не ожидал, что столько народу читают сайт, где уже давно не обновлялись статьи. Всем спасибо за беспокойство.
Ситуация получилась хрестоматийная, так что решил разобрать её и прокомментировать. Упала база данных Mariadb. Её прибил OOM Killer. По мере устаревания кэша, отваливались страницы. Рассказываю, почему это произошло.
Для меня сайт не является критически важным ресурсом, так что какого-то особого контроля за ним не веду. После очередного переезда на новый сервер, изменились его характеристики. Я быстро на глазок подогнал все конфиги под эти характеристики и оставил всё без точечной калибровки. Где-то месяц или два всё это нормально работало.
Вчера ночью кто-то немного нагрузил сайт. Существенно выросло число запросов, разросся access log веб сервера, стартовала куча процессов php-fpm, открылись подключения к базе. Параллельно сразу же выросла нагрузка от fail2ban, который анализирует лог файлы и от filebeat, который отправляет логи в ELK. В итоге OOM Killer одновременно прибил filebeat и mariadb. Причём filebeat поднялся сам, у него в systemd сервисе прописано
В итоге что я сделал:
1️⃣ Поправил конфиг MariaDB. Конкретно изменил параметры, которые снизили максимальное количество оперативной памяти, которую может забрать процесс:
2️⃣ Поправил конфиг пула php-fpm. Заметил, что очень много запущено рабочих процессов, которые явно не используются все. Был 61 процесс, а после перезапуска понаблюдал и убедился, что для нормальной работы надо 10-15 штук всего. Процессы стартовали по потребности во время всплесков нагрузки, но долго потом висели в памяти, не закрывались. Добавил параметр
По сути просто сбалансировал потребление памяти между приложениями. Теперь надо нагрузить сайт одновременными тяжелыми запросами хотя бы с 10-15 разных IP адресов и посмотреть, сколько памяти скушают fail2ban и filebeat, чтобы ещё раз подкорректировать параметры. Желательно всё это замониторить, но в том же Zabbix нетривиальная задача настроить мониторинг, следящий за потреблением ресурсов отдельными динамическими процессами. Я знаю только одну систему мониторинга, которая это умеет из коробки - Newrelic.
Я не первый раз сталкиваюсь с ситуацией, когда сборщики и анализаторы логов непредсказуемо нагружают сервер. Тот же Fail2ban запросто его может положить сам при очень резком всплеске запросов. Так что это немного колхозное решение в лоб и нужно это понимать. С filebeat то же самое. Не зря его часто меняют на что-то другое: FluentD или Vektor.
В целом, эту ситуацию не трудно разрулить и даже автоматизировать настройку. Тут ключевой параметр - количество оперативной памяти, которую потребляет один рабочий процесс php-fpm. Это всегда будет зависеть от конкретного сайта. Вычисляется он, а потом по цепочке выстраивается потребление памяти всех остальных приложений. Затем обязательно настраивается ограничение запросов с одного IP. Потом результат тестируется стресс тестами и фиксируется. После этого для вас будут представлять опасность только DDOS атаки, которые на уровне одного сервера уже не отбить.
#webserver
Ситуация получилась хрестоматийная, так что решил разобрать её и прокомментировать. Упала база данных Mariadb. Её прибил OOM Killer. По мере устаревания кэша, отваливались страницы. Рассказываю, почему это произошло.
Для меня сайт не является критически важным ресурсом, так что какого-то особого контроля за ним не веду. После очередного переезда на новый сервер, изменились его характеристики. Я быстро на глазок подогнал все конфиги под эти характеристики и оставил всё без точечной калибровки. Где-то месяц или два всё это нормально работало.
Вчера ночью кто-то немного нагрузил сайт. Существенно выросло число запросов, разросся access log веб сервера, стартовала куча процессов php-fpm, открылись подключения к базе. Параллельно сразу же выросла нагрузка от fail2ban, который анализирует лог файлы и от filebeat, который отправляет логи в ELK. В итоге OOM Killer одновременно прибил filebeat и mariadb. Причём filebeat поднялся сам, у него в systemd сервисе прописано
Restart=always
, а MariaDB нет, хотя там указано Restart=on-abort
. По идее, с этой настройкой база тоже должна была подняться после остановки OOM Killer, но этого не случилось. В итоге что я сделал:
1️⃣ Поправил конфиг MariaDB. Конкретно изменил параметры, которые снизили максимальное количество оперативной памяти, которую может забрать процесс:
key_buffer_size
innodb_buffer_pool_size
innodb_log_file_size
max_connections
2️⃣ Поправил конфиг пула php-fpm. Заметил, что очень много запущено рабочих процессов, которые явно не используются все. Был 61 процесс, а после перезапуска понаблюдал и убедился, что для нормальной работы надо 10-15 штук всего. Процессы стартовали по потребности во время всплесков нагрузки, но долго потом висели в памяти, не закрывались. Добавил параметр
pm.process_idle_timeout = 30
, чтобы через 30 секунд неактивности рабочий процесс завершался. Также более строго ограничил максимальное количество рабочих процессов параметром pm.max_children
, чтобы они не смогли занять слишком много памяти. По сути просто сбалансировал потребление памяти между приложениями. Теперь надо нагрузить сайт одновременными тяжелыми запросами хотя бы с 10-15 разных IP адресов и посмотреть, сколько памяти скушают fail2ban и filebeat, чтобы ещё раз подкорректировать параметры. Желательно всё это замониторить, но в том же Zabbix нетривиальная задача настроить мониторинг, следящий за потреблением ресурсов отдельными динамическими процессами. Я знаю только одну систему мониторинга, которая это умеет из коробки - Newrelic.
Я не первый раз сталкиваюсь с ситуацией, когда сборщики и анализаторы логов непредсказуемо нагружают сервер. Тот же Fail2ban запросто его может положить сам при очень резком всплеске запросов. Так что это немного колхозное решение в лоб и нужно это понимать. С filebeat то же самое. Не зря его часто меняют на что-то другое: FluentD или Vektor.
В целом, эту ситуацию не трудно разрулить и даже автоматизировать настройку. Тут ключевой параметр - количество оперативной памяти, которую потребляет один рабочий процесс php-fpm. Это всегда будет зависеть от конкретного сайта. Вычисляется он, а потом по цепочке выстраивается потребление памяти всех остальных приложений. Затем обязательно настраивается ограничение запросов с одного IP. Потом результат тестируется стресс тестами и фиксируется. После этого для вас будут представлять опасность только DDOS атаки, которые на уровне одного сервера уже не отбить.
#webserver
Поддержка ОС Centos 7 будет продолжаться до 30 июля 2024 года. Ещё примерно 2 года. Но уже сейчас появляются инструменты по миграции с этой ОС на что-то другое. Как все уже знают, Cenots 8 прекратила своё существование, так что переезжать придётся на какой-то форк.
Причин, по которым уже сейчас стоит переехать на что-то более свежее на самом деле много. Простой пример - Zabbix Server больше не поддерживает эту систему. Основная причина - очень устаревшие пакеты.
Команда дистрибутива Almalinux разработала свой инструмент Elevate на базе leapp по миграции с Centos 7 на одну из альтернатив:
◽ AlmaLinux OS 8
◽ CentOS Stream 8
◽ EuroLinux 8
◽ Oracle Linux 8
◽ Rocky Linux 8
Я попробовал его для миграции Centos 7 ⇨ Rocky Linux 8. На удивление всё прошло более ли менее гладко. Пару лет назад, когда пробовал с помощью leapp переехать с Centos 7 на 8, не получилось, бросил попытки.
А тут всё прошло хорошо за одним исключением. Сначала конвертация не хотела выполняться из-за того, что проверка находила драйверы ядра, которые больше не поддерживаются в 8-й версии. Стал разбираться, оказалось, что это драйвер floppy, который был загружен в текущей системе. Просто выгрузил его:
и успешно провел конвертацию.
Так что инструмент рабочий, рекомендую присмотреться, у кого остались старые системы.
Информация об Elevate - https://almalinux.org/elevate
Инструкция - https://wiki.almalinux.org/elevate/ELevate-quickstart-guide.html
Видео процесса - https://www.youtube.com/watch?v=WJpa1E6jnok
#centos
Причин, по которым уже сейчас стоит переехать на что-то более свежее на самом деле много. Простой пример - Zabbix Server больше не поддерживает эту систему. Основная причина - очень устаревшие пакеты.
Команда дистрибутива Almalinux разработала свой инструмент Elevate на базе leapp по миграции с Centos 7 на одну из альтернатив:
◽ AlmaLinux OS 8
◽ CentOS Stream 8
◽ EuroLinux 8
◽ Oracle Linux 8
◽ Rocky Linux 8
Я попробовал его для миграции Centos 7 ⇨ Rocky Linux 8. На удивление всё прошло более ли менее гладко. Пару лет назад, когда пробовал с помощью leapp переехать с Centos 7 на 8, не получилось, бросил попытки.
А тут всё прошло хорошо за одним исключением. Сначала конвертация не хотела выполняться из-за того, что проверка находила драйверы ядра, которые больше не поддерживаются в 8-й версии. Стал разбираться, оказалось, что это драйвер floppy, который был загружен в текущей системе. Просто выгрузил его:
# modprobe -r floppy
и успешно провел конвертацию.
Так что инструмент рабочий, рекомендую присмотреться, у кого остались старые системы.
Информация об Elevate - https://almalinux.org/elevate
Инструкция - https://wiki.almalinux.org/elevate/ELevate-quickstart-guide.html
Видео процесса - https://www.youtube.com/watch?v=WJpa1E6jnok
#centos
Чтобы закрыть тему с Centos, ещё немного информации про конвертацию. У меня есть одна машина с Centos Stream 8. Оставил её, чтобы следить за развитием этой системы. Довольно много людей используют Stream. У хостеров вижу шаблоны для её установки. Так что хоронить, её судя по всему, не стоит.
В конце прошлого года был релиз CentOS Stream 9, в которой SElinux теперь отключается не
Идея там такая же, как и раньше использовалась в обычной Centos, для которой тоже не было готовых конвертеров для перехода с ветки на ветку. Подключается репозиторий от новой ветки, обновляются все пакеты, удаляется старое ядро. Я вот тут всё по шагам сделал и получил новую версию системы. Способ рабочий.
Кто-то постоянно пользуется Stream? По идее для какого-то веб сервера пойдёт, где побыстрее свежие пакеты нужны. Для этого Ubuntu хорошо подходит, но если нужен rpm дистрибутив, то Stream в самый раз.
#centos
В конце прошлого года был релиз CentOS Stream 9, в которой SElinux теперь отключается не
SELINUX=disabled
, а selinux=0
😁. Официальных инструментов для перехода с 8-й на 9-ю версию нет, но можно это сделать кустарными способами. Я один из таких проверил, он реально рабочий. Идея там такая же, как и раньше использовалась в обычной Centos, для которой тоже не было готовых конвертеров для перехода с ветки на ветку. Подключается репозиторий от новой ветки, обновляются все пакеты, удаляется старое ядро. Я вот тут всё по шагам сделал и получил новую версию системы. Способ рабочий.
Кто-то постоянно пользуется Stream? По идее для какого-то веб сервера пойдёт, где побыстрее свежие пакеты нужны. Для этого Ubuntu хорошо подходит, но если нужен rpm дистрибутив, то Stream в самый раз.
#centos
В копилку менеджеров для подключений предлагаю положить ещё один хороший продукт - Ásbrú Connection Manager. Это бесплатный Open Source проект и только под Linux. У него очень хороший функционал для бесплатного продукта и приятный внешний вид. С учётом того, что под Linux вообще не так много подобных программ, обратить на неё внимание точно стоит.
Функционал у Asbru-CM плюс-минус как у всех. Умеет много всего:
◽ поддерживает ssh, rdp, vnc, telnet, webdav, sftp, ftp;
◽ выполнять те или иные команды на удалённом при подключении;
◽ выполнять локально какие-то действия при удалённом подключении;
◽ интеграция с KeePassXC для хранения секретов;
◽ подключение через proxy;
◽ организовывать соединения в виде вкладок или отдельных окон.
Интересна история названия программы - Ásbrú. В норвежской мифологии Ásbrú - это радужный мост, соединяющий Мидгард (Землю) и Асгард, царство богов. Написана Ásbrú на Perl.
Аналогом Ásbrú на Linux является Remmina и Remote Desktop Manager. Писал на них обзоры.
Сайт - https://www.asbru-cm.net/
Исходники - https://github.com/asbru-cm/asbru-cm
#менеджеры_подключений
Функционал у Asbru-CM плюс-минус как у всех. Умеет много всего:
◽ поддерживает ssh, rdp, vnc, telnet, webdav, sftp, ftp;
◽ выполнять те или иные команды на удалённом при подключении;
◽ выполнять локально какие-то действия при удалённом подключении;
◽ интеграция с KeePassXC для хранения секретов;
◽ подключение через proxy;
◽ организовывать соединения в виде вкладок или отдельных окон.
Интересна история названия программы - Ásbrú. В норвежской мифологии Ásbrú - это радужный мост, соединяющий Мидгард (Землю) и Асгард, царство богов. Написана Ásbrú на Perl.
Аналогом Ásbrú на Linux является Remmina и Remote Desktop Manager. Писал на них обзоры.
Сайт - https://www.asbru-cm.net/
Исходники - https://github.com/asbru-cm/asbru-cm
#менеджеры_подключений
Стартовал новый учебный год. Самое время подготовить программу на него. Решил сделать подборку бесплатных обучающих материалов, которые уже были ранее опубликованы на канале. Много всего хорошего накопилось.
▪ Как стать DevOps Инженером с Нуля, что учить и в каком порядке. Обзорное видео от Дениса Астахова, автора ютуб канала ADV-IT.
▪ Основы Docker - хорошее обучающее видео по Docker для новичков.
▪ Play-with-docker - онлайн тренажер для изучения Docker.
▪ Полный видеокурс по Kubernetes из 22 обучающих уроков. Там вообще всё от нуля до мониторинга и деплоя приложений.
▪ Play-with-k8s - онлайн платформа для изучения Kubernetes.
▪ LearnGitBranching - песочница для обучения основам git с визуализацией всех действий.
▪ Oh My Git - изучение git в игровой форме (прям как для детей 😁)
▪ Бесплатный курс по основам git - бесплатный курс от Слёрм на их площадке.
▪ Базовое администрирование Linux-серверов - ещё один бесплатный курс от Слёрм.
▪ Kodekloud-engineer - бесплатная обучающая платформа, где вам будут прилетать максимально приближенные к реальным задачи по теме сисадминства и devops.
▪ Kodekloud - платформа с курсами по devops, есть бесплатные.
▪ RHCSA (Red Hat Certified System Administrator) - адаптированный курс на базе RHCSA для изучения Linux.
#подборка #обучение
▪ Как стать DevOps Инженером с Нуля, что учить и в каком порядке. Обзорное видео от Дениса Астахова, автора ютуб канала ADV-IT.
▪ Основы Docker - хорошее обучающее видео по Docker для новичков.
▪ Play-with-docker - онлайн тренажер для изучения Docker.
▪ Полный видеокурс по Kubernetes из 22 обучающих уроков. Там вообще всё от нуля до мониторинга и деплоя приложений.
▪ Play-with-k8s - онлайн платформа для изучения Kubernetes.
▪ LearnGitBranching - песочница для обучения основам git с визуализацией всех действий.
▪ Oh My Git - изучение git в игровой форме (прям как для детей 😁)
▪ Бесплатный курс по основам git - бесплатный курс от Слёрм на их площадке.
▪ Базовое администрирование Linux-серверов - ещё один бесплатный курс от Слёрм.
▪ Kodekloud-engineer - бесплатная обучающая платформа, где вам будут прилетать максимально приближенные к реальным задачи по теме сисадминства и devops.
▪ Kodekloud - платформа с курсами по devops, есть бесплатные.
▪ RHCSA (Red Hat Certified System Administrator) - адаптированный курс на базе RHCSA для изучения Linux.
#подборка #обучение
На днях была рассылка от компании Onlyoffice. Они анонсировали бесплатный онлайн конвертер офисных документов разных форматов. Например, перевести pdf в word, xlsx в pdf, csv в xls и т.д.
Очевидно, что самым востребованным направлением является конвертация pdf во что-то другое. Например в doc или fb2 (для книг актуально, которые часто только в pdf формате есть). Я попробовал на нескольких примерах, работает нормально.
Не нужна регистрация, нет никакой рекламы. Всё работает быстро и чётко. Единственное ограничение - размер файла не более 5 Мб. Это мало, особенно для книг, но что есть, то есть.
Мне кажется, хороший ход сделали маркетологи. Подобный сервис реально востребован. Я сам иногда пользуюсь. В сети много клонов, но все они чаще всего с рекламой или ещё какой-то заманухой. А тут по сути сам сервис является рекламой своих продуктов, так что нет смысла его как-то монетизировать отдельно.
Даже если самому не надо, можно этот сервис предлагать каким-то знакомым, далёким от IT.
https://www.onlyoffice.com/ru/convert.aspx
#сервис
Очевидно, что самым востребованным направлением является конвертация pdf во что-то другое. Например в doc или fb2 (для книг актуально, которые часто только в pdf формате есть). Я попробовал на нескольких примерах, работает нормально.
Не нужна регистрация, нет никакой рекламы. Всё работает быстро и чётко. Единственное ограничение - размер файла не более 5 Мб. Это мало, особенно для книг, но что есть, то есть.
Мне кажется, хороший ход сделали маркетологи. Подобный сервис реально востребован. Я сам иногда пользуюсь. В сети много клонов, но все они чаще всего с рекламой или ещё какой-то заманухой. А тут по сути сам сервис является рекламой своих продуктов, так что нет смысла его как-то монетизировать отдельно.
Даже если самому не надо, можно этот сервис предлагать каким-то знакомым, далёким от IT.
https://www.onlyoffice.com/ru/convert.aspx
#сервис
Вы в курсе, что знаменитую на весь мир игру тетрис придумал Алексей Леонидович Пажитнов в 1984 году, работавший в Вычислительном центре Академии наук СССР. Он вёл работу над искусственным интеллектом и распознаванием речи, или не вёл, а разрабатывал игру 🙂
У меня в детстве был тетрис в виде отдельного игрового устройства. Оказывается, тетрис есть даже в официальных репозиториях популярных дистрибутивов Linux:
Игра реально залипательная. Я минут 30 поиграл, прежде чем написал эту заметку. Мне показалось, что на Linux она чересчур сложная. Постоянно выходят не те фигуры, много повторов и совсем редко длинные палочки появляются. Из-за этого довольно быстро проигрывал, а за раунд удавалось сократить 3-5 полных линий и дальше всё.
Даже по картинке ниже видно, что у меня с начала игры вышли 7 белых квадратов (4 подряд были), по паре остальных фигур и ни одной палочки. Как тут выигрывать?
#игра
У меня в детстве был тетрис в виде отдельного игрового устройства. Оказывается, тетрис есть даже в официальных репозиториях популярных дистрибутивов Linux:
# apt install bastet
# dnf install bastet
# /usr/games/bastet
Игра реально залипательная. Я минут 30 поиграл, прежде чем написал эту заметку. Мне показалось, что на Linux она чересчур сложная. Постоянно выходят не те фигуры, много повторов и совсем редко длинные палочки появляются. Из-за этого довольно быстро проигрывал, а за раунд удавалось сократить 3-5 полных линий и дальше всё.
Даже по картинке ниже видно, что у меня с начала игры вышли 7 белых квадратов (4 подряд были), по паре остальных фигур и ни одной палочки. Как тут выигрывать?
#игра
Расскажу вам про отличную бесплатную Open Source систему контроля доступа к сервисам и системам - Teleport. Она очень функциональная, кроссплатформенная, немного навороченная. Попробую кратко рассказать принцип работы.
Допустим, у вас есть какой-то веб сервис и полноценный сервер в закрытой сети. Вы не хотите открывать к ним доступ извне. Вам нужно точечно выдавать права к этим ресурсам различным пользователям. Есть вариант организовать это с помощью VPN, но это решение сетевого уровня. В то время как Teleport обеспечивает доступ на уровне сервисов.
Вы разворачиваете какой-то сервер в интернете, привязываете к нему DNS имя. Устанавливаете туда сервер Teleport. Добавляете все свои внутренние ресурсы, к которым хотите настроить доступ. Добавляете пользователей и назначаете им права доступа. Далее на целевых серверах ставите Teleport и связываете его с сервером и ресурсами, которые туда добавили.
Теперь централизованно можете управлять доступом к своим внутренним ресурсам. При этом ведётся лог подключений. В качестве ресурсов могут выступать: ssh подключения к серверам, доступ к kubernetes, к базам данных, к десктопным системам (в т.ч. windows по rdp), к отдельным приложениям (gitlab, grafana и т.д.).
Доступ к серверу Teleport и ресурсам осуществляется через браузер. Можно включить двухфакторную аутентификацию. Доступ к SSH может осуществляться как через web, так и с помощью локального приложения со своим cli. Выглядит это примерно так:
Я систему не разворачивал и не использовал. Изучил сайт, документацию, видео. На вид выглядит очень круто. Можно закрыть вопросы как подключений администраторов для управления всего и всем, так и пользователей к своим компьютерам и терминальным серверам. Компания, которая разработала и поддерживает Teleport, зарабатывает на поддержке и облачной версии. За счёт этого Community версия выглядит очень неплохо. Каких-то ограничений я не нашёл.
Аналог этой системы я описывал ранее - Trasa. Teleport показался более функциональным, удобным, с хорошей документацией.
Сайт - https://goteleport.com/
Исходники - https://github.com/gravitational/teleport
Обзор - https://www.youtube.com/watch?v=6ynLlAUipNE
#remote #управление #devops
Допустим, у вас есть какой-то веб сервис и полноценный сервер в закрытой сети. Вы не хотите открывать к ним доступ извне. Вам нужно точечно выдавать права к этим ресурсам различным пользователям. Есть вариант организовать это с помощью VPN, но это решение сетевого уровня. В то время как Teleport обеспечивает доступ на уровне сервисов.
Вы разворачиваете какой-то сервер в интернете, привязываете к нему DNS имя. Устанавливаете туда сервер Teleport. Добавляете все свои внутренние ресурсы, к которым хотите настроить доступ. Добавляете пользователей и назначаете им права доступа. Далее на целевых серверах ставите Teleport и связываете его с сервером и ресурсами, которые туда добавили.
Теперь централизованно можете управлять доступом к своим внутренним ресурсам. При этом ведётся лог подключений. В качестве ресурсов могут выступать: ssh подключения к серверам, доступ к kubernetes, к базам данных, к десктопным системам (в т.ч. windows по rdp), к отдельным приложениям (gitlab, grafana и т.д.).
Доступ к серверу Teleport и ресурсам осуществляется через браузер. Можно включить двухфакторную аутентификацию. Доступ к SSH может осуществляться как через web, так и с помощью локального приложения со своим cli. Выглядит это примерно так:
# tsh login --proxy=tp.site.com --user=sysadmin
Я систему не разворачивал и не использовал. Изучил сайт, документацию, видео. На вид выглядит очень круто. Можно закрыть вопросы как подключений администраторов для управления всего и всем, так и пользователей к своим компьютерам и терминальным серверам. Компания, которая разработала и поддерживает Teleport, зарабатывает на поддержке и облачной версии. За счёт этого Community версия выглядит очень неплохо. Каких-то ограничений я не нашёл.
Аналог этой системы я описывал ранее - Trasa. Teleport показался более функциональным, удобным, с хорошей документацией.
Сайт - https://goteleport.com/
Исходники - https://github.com/gravitational/teleport
Обзор - https://www.youtube.com/watch?v=6ynLlAUipNE
#remote #управление #devops
Сколько я себя знаю в профессии системного администратора, никаких прокси серверов, кроме Squid не доводилось ни видеть, ни настраивать. Если лет 15-20 назад он стоял почти везде (я даже себе домой ставил локально, когда модемом пользовался), так как трафик экономили.
Сейчас прокси ставят гораздо реже, но тем не менее используют. А в некоторых отраслях в обязательном порядке, но чаще какие-то готовые решения, типа шлюза ИКС или Ideco (и там, и там тоже squid). Я не раз получал заказы как на настройку, так и на перенос или обновление очень старых версий Squid. Люди до сих пор им пользуются, так как бесплатных альтернатив нет.
Squid полностью отвечает поставленным задачам, может быть поэтому и не возникло никаких альтернатив. Вопросы возникают только с управлением и просмотром статистики. Я видел и использовал огромное количество всевозможных решений. Начинал с SAMS. Это был отличный продукт как для управления, так и для статистики. Поддерживалась интеграция с AD. Это было очень удобно. Насколько я понимаю, этот проект давно мёртв.
Неплохой вариант для управления - Webmin. Можно выполнять настройки по добавлению пользователей, ограничению доступа, управлению списками и т.д. Всё через веб, лазить в консоль не надо. Можно научить кого-то далёкого от серверов. Но статистики нет. Для этого надо использовать отдельное решение.
Так же я настраивал работу squid на основе групп AD. Вручную создавались списки доступа в соответствии с группами в AD, потом людей просто по группам перемещали. Тоже управлять мог человек, далёкий от Linux и прокси серверов. Статистику делал с помощью lightsquid. Малофункциональная панель, мне не очень нравилась.
Как-то я издалека начал. Заметку хотел написать по поводу веб панели для формирования и просмотра статистики Squid - Screen Squid. Среди бесплатных решений она наиболее функциональна из тех, что знаю. Работает на базе стандартного стека php+perl+mysql. Проект не заброшен, в июне было очередное большое обновление. Автор панели помогает с настройкой в отдельном чате - https://t.me/screensquid.
Быстро посмотреть и попробовать Screen Squid можно в докере, чтобы не поднимать веб сервер вручную. Есть готовый docker-compose. Нужно понимать, что все логи Screen Squid хранит в SQL базе. При большом трафике будет большой объём базы. Нужно это отдельно продумать заранее. Есть вариант использовать PostgreSQL, вместо MySQL.
Если у кого-то есть Squid в хозяйстве, скажите, чем управляете и что используете для просмотра статистики.
Сайт - http://break-people.ru/cmsmade/?page=scriptology_screen_squid
Исходники - https://sourceforge.net/projects/screen-squid/
Docker - https://gitlab.com/dimonleonov/screensquid-compose
#squid #gateway
Сейчас прокси ставят гораздо реже, но тем не менее используют. А в некоторых отраслях в обязательном порядке, но чаще какие-то готовые решения, типа шлюза ИКС или Ideco (и там, и там тоже squid). Я не раз получал заказы как на настройку, так и на перенос или обновление очень старых версий Squid. Люди до сих пор им пользуются, так как бесплатных альтернатив нет.
Squid полностью отвечает поставленным задачам, может быть поэтому и не возникло никаких альтернатив. Вопросы возникают только с управлением и просмотром статистики. Я видел и использовал огромное количество всевозможных решений. Начинал с SAMS. Это был отличный продукт как для управления, так и для статистики. Поддерживалась интеграция с AD. Это было очень удобно. Насколько я понимаю, этот проект давно мёртв.
Неплохой вариант для управления - Webmin. Можно выполнять настройки по добавлению пользователей, ограничению доступа, управлению списками и т.д. Всё через веб, лазить в консоль не надо. Можно научить кого-то далёкого от серверов. Но статистики нет. Для этого надо использовать отдельное решение.
Так же я настраивал работу squid на основе групп AD. Вручную создавались списки доступа в соответствии с группами в AD, потом людей просто по группам перемещали. Тоже управлять мог человек, далёкий от Linux и прокси серверов. Статистику делал с помощью lightsquid. Малофункциональная панель, мне не очень нравилась.
Как-то я издалека начал. Заметку хотел написать по поводу веб панели для формирования и просмотра статистики Squid - Screen Squid. Среди бесплатных решений она наиболее функциональна из тех, что знаю. Работает на базе стандартного стека php+perl+mysql. Проект не заброшен, в июне было очередное большое обновление. Автор панели помогает с настройкой в отдельном чате - https://t.me/screensquid.
Быстро посмотреть и попробовать Screen Squid можно в докере, чтобы не поднимать веб сервер вручную. Есть готовый docker-compose. Нужно понимать, что все логи Screen Squid хранит в SQL базе. При большом трафике будет большой объём базы. Нужно это отдельно продумать заранее. Есть вариант использовать PostgreSQL, вместо MySQL.
Если у кого-то есть Squid в хозяйстве, скажите, чем управляете и что используете для просмотра статистики.
Сайт - http://break-people.ru/cmsmade/?page=scriptology_screen_squid
Исходники - https://sourceforge.net/projects/screen-squid/
Docker - https://gitlab.com/dimonleonov/screensquid-compose
#squid #gateway
Если вам необходимо выполнить одновременно на нескольких хостах какую-то команду по SSH, можно воспользоваться очень удобным и простым инструментом для этого - orgalorg. Сразу скажу, что способов решения данной задачи очень много, начиная от простого однострочника на bash и заканчивая ClusterSSH или Ansible. Покажу в конце примеры.
Я пишу именно про orgalorg, потому что там это реализовано максимально просто и быстро. Для тех, кому нет нужды разбираться в настройках, разных подходах и тем более изучать ansible.
Основные возможности orgalorg:
◽ параллельное выполнение ssh команд на удалённых хостах
◽ одновременная загрузка файла на несколько удалённых хостов
◽ аутентификация как по ключам, так и интерактивно по паролю
◽ возможность выбрать файл как источник команд для удалённых хостов
Orgalorg написан на go и может быть установлен с его помощью:
В директории ~/go/bin будет собранный бинарник orgalorg.
Одновременное выполнение команды uptime на двух хостах с аутентификацией через пароль:
С помощью orgalorg можно легко добавить свой публичный ключ на эти хосты:
После этого можно выполнять команды напрямую, минуя ключ -p и ввод пароля. Смотрим информацию о шлюзе по умолчанию на группе хостов:
Загрузим файл ~/file.txt с текущего хоста на два удалённых в директорию /tmp:
Orgalorg поддерживает много функций. Например, открытие интерактивного сеанса с удалённым хостом или отображение в режиме реального времени изменение одного и того же лог файла с разных хостов.
Если у вас рабочая система на Linux, то похожий функционал можно получить с помощью ClusterSSH. При выполнении команд на разных хостах, будут автоматом открываться терминалы с автоматическим подключением к ним. Это удобно в тестовой среде. Позволяет выполнить какую-то команду и тут же в терминале наблюдать за выполнением, а потом продолжить работу в этом терминале.
Всё описанное выше можно выполнить с помощью Ansible. Вот пример выполнения команды на нескольких хостах с интерактивной аутентификацией по паролю:
Файл host.txt с инвентарём должен быть следующего содержания:
А вот эта же задача решается с помощью однострочника на bash:
#bash
Я пишу именно про orgalorg, потому что там это реализовано максимально просто и быстро. Для тех, кому нет нужды разбираться в настройках, разных подходах и тем более изучать ansible.
Основные возможности orgalorg:
◽ параллельное выполнение ssh команд на удалённых хостах
◽ одновременная загрузка файла на несколько удалённых хостов
◽ аутентификация как по ключам, так и интерактивно по паролю
◽ возможность выбрать файл как источник команд для удалённых хостов
Orgalorg написан на go и может быть установлен с его помощью:
# apt install golang
# go get github.com/reconquest/orgalorg
В директории ~/go/bin будет собранный бинарник orgalorg.
Одновременное выполнение команды uptime на двух хостах с аутентификацией через пароль:
# ./orgalorg -p -o 10.20.1.44 -o 10.20.1.45 -C uptime
Password:
10.20.1.45 12:46:49 up 18 min, 2 users, load average: 0.02, 0.03, 0.06
10.20.1.44 12:46:49 up 18 min, 2 users, load average: 0.02, 0.03, 0.06
С помощью orgalorg можно легко добавить свой публичный ключ на эти хосты:
# ./orgalorg -p -o 10.20.1.44 -o 10.20.1.45 \
-i ~/.ssh/id_rsa.pub -C tee -a ~/.ssh/authorized_keys
После этого можно выполнять команды напрямую, минуя ключ -p и ввод пароля. Смотрим информацию о шлюзе по умолчанию на группе хостов:
# ./orgalorg -o 10.20.1.43 -o 10.20.1.44 -o 10.20.1.45 \
-i ~/.ssh/id_rsa.pub -C ip r | grep default
10.20.1.45 default via 10.20.1.1 dev eth0
10.20.1.43 default via 10.20.1.1 dev eth0
10.20.1.44 default via 10.20.1.1 dev eth0
Загрузим файл ~/file.txt с текущего хоста на два удалённых в директорию /tmp:
# ./orgalorg -o 10.20.1.44 -o 10.20.1.45 \
-i ~/.ssh/id_rsa.pub -er /tmp -U ~/file.txt
Orgalorg поддерживает много функций. Например, открытие интерактивного сеанса с удалённым хостом или отображение в режиме реального времени изменение одного и того же лог файла с разных хостов.
Если у вас рабочая система на Linux, то похожий функционал можно получить с помощью ClusterSSH. При выполнении команд на разных хостах, будут автоматом открываться терминалы с автоматическим подключением к ним. Это удобно в тестовой среде. Позволяет выполнить какую-то команду и тут же в терминале наблюдать за выполнением, а потом продолжить работу в этом терминале.
Всё описанное выше можно выполнить с помощью Ansible. Вот пример выполнения команды на нескольких хостах с интерактивной аутентификацией по паролю:
# ansible -k -u root -a "uptime" -i hosts.txt servers
Файл host.txt с инвентарём должен быть следующего содержания:
[servers]
10.20.1.44
10.20.1.45
А вот эта же задача решается с помощью однострочника на bash:
# hosts=('10.20.1.44' '10.20.1.45'); \
for HOST in "${hosts[@]}"; \
do ssh -f root@$HOST "uptime"; done
#bash
Информация для пользователей Windows. Хочу рассказать о небольшой программе, о которой случайно узнал и сразу же стал пользоваться. Очень её не хватало. Я даже не знал, что она существует.
Monitorian позволяет управлять яркостью одного или сразу нескольких мониторов. У меня как раз такой случай. Функции автояркости у моих мониторов нет, так что приходилось вручную подкручивать в разное время суток яркость и иногда контраст. С помощью Monitorian это делать очень удобно, причём сразу на обоих мониторах.
Поставить программу можно через магазин Windows:
После запуска она живёт в трее и позволяет ползунками управлять яркостью и контрастом всех подключенных мониторов. Это очень удобно. Теперь она всегда со мной ❤️.
Исходники - https://github.com/emoacht/Monitorian
#windows
Monitorian позволяет управлять яркостью одного или сразу нескольких мониторов. У меня как раз такой случай. Функции автояркости у моих мониторов нет, так что приходилось вручную подкручивать в разное время суток яркость и иногда контраст. С помощью Monitorian это делать очень удобно, причём сразу на обоих мониторах.
Поставить программу можно через магазин Windows:
# winget install Monitorian
После запуска она живёт в трее и позволяет ползунками управлять яркостью и контрастом всех подключенных мониторов. Это очень удобно. Теперь она всегда со мной ❤️.
Исходники - https://github.com/emoacht/Monitorian
#windows
На днях столкнулся с непривычным поведением dhcp клиента на разных дистрибутивах Linux. Точнее, неожиданным образом он себя повёл на Ubuntu 22. Пришлось потратить немного времени, чтобы разобраться.
Началось всё с того, что я на системе с Ubuntu заметил сетевые маршруты, которые не настраивал сам. Немного напрягся, так как ситуация неординарная. Лишние маршруты в системе не должны появляться. Выглядело это примерно так:
По описанию маршрутов видно, что пришли они по dhcp. Но и на dhcp сервере я не добавлял их. Начал проверять эти адреса. Оба европейские. PTR запись одного из них содержала в названии поддомен ntp. Тут я понял, что это адреса публичных серверов времени.
В качестве dhcp сервера и шлюза выступал Mikrotik. Зашёл в его настройки и увидел, что в настройках sntp client указаны как раз эти серверы, маршруты к которым были добавлены. Перепроверил все настройки dhcp сервера на микротике, нигде не увидел явной настройки, которая бы отвечала за передачу этих маршрутов клиентам.
Решил проверить в самой Ubuntu, какие настройки она получает по dhcp. Я всегда знал, что leases, которые получает dhcpclient, живут в директории /var/lib/dhcp в обычном текстовом файле. В Ubuntu там было пусто. Я специально запустил в этой же сетке Debian 11 и Rocky Linux 8, проверил, у них файл leases на указанном месте. И там есть параметр:
через него передаются настройки ntp. Я, кстати, не знал о том, что Mikrotik их передаёт. Но ни в Debian, ни в Rocky не добавляются новые маршруты к этим ntp серверам.
Стал дальше разбираться с Ubuntu. Оказывается, там leases переехали в /run/systemd/netif/leases и живут в файле с многозначительным именем 2, чтобы никто точно не запутался и сразу понял, о чём тут речь. Если я правильно понял, то управляет в том числе и клиентом dhcp теперь systemd. Настройки и статус хранит в своих потрохах.
Очевидно, что все настройки, полученные от dhcp сервера на Ubuntu аналогичны другим системам, но именно она почему-то добавила статические маршруты к ntp серверам. Совершенно не понял, зачем. Загрузил для проверки в этой же сети Ubuntu 20. Она маршруты не создаёт.
Беглый поиск в гугле по ключевым словам не помог найти ответ на свой вопрос - зачем стали добавляться статические маршруты до ntp серверов, полученных по dhcp и кто за эту настройку отвечает.
Это один из примеров, почему лично мне не очень нравится Ubuntu. Там постоянно что-то меняется и это часто мешает или тратит твоё время.
#linux
Началось всё с того, что я на системе с Ubuntu заметил сетевые маршруты, которые не настраивал сам. Немного напрягся, так как ситуация неординарная. Лишние маршруты в системе не должны появляться. Выглядело это примерно так:
# ip r
default via 10.20.1.1 dev eth0 proto dhcp src 10.20.1.45 metric 1024
...............................
37.120.179.169 via 10.20.1.1 dev eth0 proto dhcp src 10.20.1.45 metric 1024
193.136.164.4 via 10.20.1.1 dev eth0 proto dhcp src 10.20.1.45 metric 1024
По описанию маршрутов видно, что пришли они по dhcp. Но и на dhcp сервере я не добавлял их. Начал проверять эти адреса. Оба европейские. PTR запись одного из них содержала в названии поддомен ntp. Тут я понял, что это адреса публичных серверов времени.
В качестве dhcp сервера и шлюза выступал Mikrotik. Зашёл в его настройки и увидел, что в настройках sntp client указаны как раз эти серверы, маршруты к которым были добавлены. Перепроверил все настройки dhcp сервера на микротике, нигде не увидел явной настройки, которая бы отвечала за передачу этих маршрутов клиентам.
Решил проверить в самой Ubuntu, какие настройки она получает по dhcp. Я всегда знал, что leases, которые получает dhcpclient, живут в директории /var/lib/dhcp в обычном текстовом файле. В Ubuntu там было пусто. Я специально запустил в этой же сетке Debian 11 и Rocky Linux 8, проверил, у них файл leases на указанном месте. И там есть параметр:
option ntp-servers 193.136.164.4,37.120.179.169;
через него передаются настройки ntp. Я, кстати, не знал о том, что Mikrotik их передаёт. Но ни в Debian, ни в Rocky не добавляются новые маршруты к этим ntp серверам.
Стал дальше разбираться с Ubuntu. Оказывается, там leases переехали в /run/systemd/netif/leases и живут в файле с многозначительным именем 2, чтобы никто точно не запутался и сразу понял, о чём тут речь. Если я правильно понял, то управляет в том числе и клиентом dhcp теперь systemd. Настройки и статус хранит в своих потрохах.
Очевидно, что все настройки, полученные от dhcp сервера на Ubuntu аналогичны другим системам, но именно она почему-то добавила статические маршруты к ntp серверам. Совершенно не понял, зачем. Загрузил для проверки в этой же сети Ubuntu 20. Она маршруты не создаёт.
Беглый поиск в гугле по ключевым словам не помог найти ответ на свой вопрос - зачем стали добавляться статические маршруты до ntp серверов, полученных по dhcp и кто за эту настройку отвечает.
Это один из примеров, почему лично мне не очень нравится Ubuntu. Там постоянно что-то меняется и это часто мешает или тратит твоё время.
#linux
Хочу поделиться с вами очень приятной находкой в виде бесплатной программы для бэкапа SQL баз и обычных файлов - SQLBackupAndFTP. Программа работает под Windows и на самом деле платная, но есть функциональная бесплатная версия с некоторыми ограничениями.
SQLBackupAndFTP умеет:
◽ бэкапить вручную и по расписанию базы данных MSSQL, MySQL, PostgreSQL
◽ складывать бэкапы на FTP, SFTP, FTPS, локальную или сетевую папку, Yandex.Disk
◽ отправлять уведомления на почту
◽ писать лог выполняемых действий
◽ автоматически удалять старые бэкапы
◽ работать через прокси
◽ подключаться к sql серверу и выполнять там sql команды
Основное ограничение бесплатной версии - не более двух баз данных, добавленных в планировщик. Вручную запускать бэкапы можно для неограниченного количества баз. Ещё ограничения бесплатной версии: нет поддержки S3, только полные бэкапы, нет поддержки шифрования.
Я попробовал программу. Скачивается с сайта без всяких регистраций и других ужимок. Настройки очень простые и наглядные. Сама программа выглядит современно и удобно. Порадовала возможность снять бэкап mysql базы, подключившись к веб интерфейсу phpmyadmin. То есть не нужен прямой доступ к базе. Раньше нигде не видел такого функционала.
Программа оставила приятное впечатление. Если вам некритичны ограничения, то можно пользоваться. Уточню ещё раз, что вручную запускать бэкап можно неограниченного количества баз. Вы можете их добавить в интерфейс и запускать время от времени вручную по мере необходимости. Знаю людей, которые базы 1С вручную раз в неделю копируют на Яндекс.Диск. Эта программа может существенно упростить задачу, особенно людям, далёким от IT.
Сайт - https://sqlbackupandftp.com/
#backup #mysql #windows
SQLBackupAndFTP умеет:
◽ бэкапить вручную и по расписанию базы данных MSSQL, MySQL, PostgreSQL
◽ складывать бэкапы на FTP, SFTP, FTPS, локальную или сетевую папку, Yandex.Disk
◽ отправлять уведомления на почту
◽ писать лог выполняемых действий
◽ автоматически удалять старые бэкапы
◽ работать через прокси
◽ подключаться к sql серверу и выполнять там sql команды
Основное ограничение бесплатной версии - не более двух баз данных, добавленных в планировщик. Вручную запускать бэкапы можно для неограниченного количества баз. Ещё ограничения бесплатной версии: нет поддержки S3, только полные бэкапы, нет поддержки шифрования.
Я попробовал программу. Скачивается с сайта без всяких регистраций и других ужимок. Настройки очень простые и наглядные. Сама программа выглядит современно и удобно. Порадовала возможность снять бэкап mysql базы, подключившись к веб интерфейсу phpmyadmin. То есть не нужен прямой доступ к базе. Раньше нигде не видел такого функционала.
Программа оставила приятное впечатление. Если вам некритичны ограничения, то можно пользоваться. Уточню ещё раз, что вручную запускать бэкап можно неограниченного количества баз. Вы можете их добавить в интерфейс и запускать время от времени вручную по мере необходимости. Знаю людей, которые базы 1С вручную раз в неделю копируют на Яндекс.Диск. Эта программа может существенно упростить задачу, особенно людям, далёким от IT.
Сайт - https://sqlbackupandftp.com/
#backup #mysql #windows