ServerAdmin.ru
31.3K subscribers
673 photos
55 videos
22 files
2.87K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Регистрация в РКН: https://vk.cc/cG1Urj
Download Telegram
В одной из старых заметок, где я обсуждал выбор рабочего ноутбука, поднимал вопрос док-станции. Я непременно хотел ноут с её поддержкой. На что получил много комментариев на тему того, что старые доки уже устарели и сейчас полно разнообразных от дешёвых до дорогих с разъёмом Type-C или Thunderbolt.

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

Я решил, что наверное уже старею, не принимаю новые современные и удобные технологии. Не стал покупать новый БП, а купил простенькие доки в разъём Type-C. Купил сразу два - домой и в офис.

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

1️⃣ Во-первых, док станция чётко резервирует место на столе под ноут, которое больше ничем не занимается. Пришёл - поставил.

2️⃣ Во-вторых, док станция лучше организует подключение проводов. Она стационарная, тяжёлая, стоит в одном месте, провода не болтаются.

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

В общем, пользоваться можно, но классические док-станции во всю ширину ноутбуков всё равно удобнее. Следующий ноут буду так же с нормальной док-станцией покупать.

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

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

#железо
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103👎29
В заметках про Bit Rot, которое приводит к повреждению файлов при долговременном хранении, не хватало информации о том, как вообще можно смоделировать ситуацию, чтобы проверить настроенное хранилище.

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

1️⃣ Для ускорения проведения экспериментов предлагаю всё делать на маленьких разделах диска. Покажу на примере mdadm raid1:

# apt-get install mdadm
# mdadm --create /dev/md0 -l 1 -n 2 /dev/sdb /dev/sdс
# mkfs.ext4 /dev/md0
# mount /dev/md0 /mnt

2️⃣ Заполняем весь раздел файлом:

# dd if=/dev/urandom of=/mnt/testfile

Команда остановится с ошибкой, как только на диске закончится место.

3️⃣ Вычисляем хэш файла:

# md5sum /mnt/testfile
4b1f1e62670849f08c975e9cab8cfd10 /mnt/testfile

4️⃣ Запишем что-нибудь напрямую на блочное устройство. Чтобы точно попасть в созданный файл, я и сделал его во весь объём раздела.

# dd if=/dev/urandom of=/dev/sdb seek=10000000 count=1 bs=10 conv=notrunc

Записали 1 блок размером 10 байт, отступив от начала 10 МБ или 100 МБ. Не помню точно, считается этот отступ в байтах или в размере блока.

5️⃣ Ещё раз проверяем хэш:

# md5sum /mnt/testfile
4b1f1e62670849f08c975e9cab8cfd10 /mnt/testfile

На удивление, он остался тем же. Я ожидал, что изменится.

6️⃣ Запускаем проверку целостности данных в массиве и когда закончится, смотрим результат:

# echo 'check' > /sys/block/md0/md/sync_action
# cat /sys/block/md0/md/mismatch_cnt
128

У нас 128 несинхронизированных секторов. Точную причину проблем не посмотреть, но мы в данном случае знаем, что причина в том, что мы напрямую изменили часть данных.

7️⃣ Запускаем исправление ошибок:

# echo 'repair' > /sys/block/md0/md/sync_action

Ждём по логу ядра окончание ремонта и смотрим ещё раз на количество ошибок:

# cat /sys/block/md0/md/mismatch_cnt
0

Проверяем исходный файл:

# md5sum /mnt/testfile
4b1f1e62670849f08c975e9cab8cfd10 /mnt/testfile

Хэш не поменялся.

Я проводил несколько подобных экспериментов, меняя разные участки на блочном устройстве. Не всегда один repair приводил к исчезновению ошибок синхронизации, но после 2-х, 3-х раз они пропадали. И хэш файла всё время был один и тот же. Но если я через dd писал напрямую в md0:

# dd if=/dev/urandom of=/dev/md0 seek=10000000 count=1 bs=10 conv=notrunc

То хэш неизменно менялся. Этот способ изменения файлов реально их меняет, хэш становится другим.

То же самое пробовал делать с массивом с включённым dm-integrity. Как и ожидается, массив получает ошибку хэша в определённом секторе:

device-mapper: integrity: dm-0: Checksum failed at sector 0xe88b8

А вот дальше я сталкивался в разных экспериментах с разным результатом. Это может не приводить ни к каким ошибкам, возникающие на некоторое время ошибки синхронизации через несколько минут сами пропадают без запуска принудительной синхронизации через repair. Хэш файла не меняется.

Но один раз я получил ошибку чтения файла, а в логе было следующее:

device-mapper: integrity: dm-0: Checksum failed at sector 0x2b4f8
md/raid1:md0: dm-0: rescheduling sector 175144
device-mapper: integrity: dm-0: Checksum failed at sector 0x2b4f8
device-mapper: integrity: dm-1: Checksum failed at sector 0x2b4f8
md/raid1:md0: redirecting sector 175144 to other mirror: dm-1
device-mapper: integrity: dm-1: Checksum failed at sector 0x2b4f8


И так далее по кругу. То есть сектор был определён как повреждённый. Шла попытка взять его с другого диска, но там он тоже был с изменённой checksum. Не знаю, с чем это связано. Как-будто мое изменение успело синхронизироваться на второй диск и блока с правильным хэшем просто не осталось. В итоге файл вообще перестал открываться (Input/output error), его хэш нельзя было посмотреть.

Методику для тестов я вам показал. Можете помучать свои хранилища перед внедрением в эксплуатацию.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#mdadm #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍120👎6
Картинка из раздела Sysadminhumor на Reddit, хотя вроде бы и не смешно. Заставила задуматься над тем, что всё в этом мире ходит по кругу. Сначала были мейнфреймы, их я не застал. Потом появились персональные компьютеры, с которыми я в 2000-х начинал работал. Далее стали появляться терминальные серверы, мне даже довелось повнедрять бездисковые станции, перемещаемые профили и рабочие места на терминальных серверах.

Потом всё это поехало в виртуальные машины, а они, соответственно, в облака. Со временем с виртуальными рабочими местами как-то подуспокоились. Все, кто хотел, попробовали или внедрили VDI. Уже не вижу, чтобы эту технологию как-то активно продвигали. В основном все работают за своими компьютерами и ноутбуками, но уже в веб приложениях. Хотя на днях ходил в Сбербанк. Там оператор меня полностью обслужил, используя только планшет. Обратил внимание, что экран монитора у него был выключен. Либо уснул, либо он компьютер не включает за ненадобностью.

И вот теперь технологический виток сделал круг и облачные технологии обратно переезжают на сервера в виде Azure Local. То есть это тот же облачный Azure, который можно развернуть у себя локально. Судя по всему рост облачных сервисов прекратился и Microsoft начали наполнять рынок опять локальными решениями, чтобы занять его.

Вот сама статья в Forbes:

Azure Local Brings The Power Of Cloud To On-Premises And Edge

Там одна вода. Судя по всему, это реклама.

Интересно, Azure Local можно будет запустить в виртуальных машинах на Azure или AWS? И будет ли аналог от AWS и GCP?

#разное
👍56👎3
Существует очень простой способ объединить несколько различных дисков в единый логический раздел. Речь идёт именно о логическом объединении. То есть у вас могут быть два абсолютно любых хранилища, смонтированных в разные разделы. Например, /mnt/sda и /mnt/sdb. Вы можете объединить их в единый диск в новой точке монтирования /mnt/sdab. Объём двух разделов суммируется в новой точке монтирования. При этом файлы будут писаться в зависимости от настроек в оба исходных диска, а /mnt/sdab просто будет единое место, к которому можно обращаться для работы с файлами.

Сразу поясню, где это может пригодиться.

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

🔹У меня не раз бывали ситуации, когда мне нужно было объединить в единый раздел несколько raid1 или raid10. Для этого я их объединял с помощью LVM. Бывает так, что у вас есть сервер с 4-мя дисками, но при этом они одинаковые парами, например 2 по 2TB и 2 по 3TB. Вы делаете 2 зеркала mdadm, а потом поверх него пускаете LVM. Получаете 5TB в одном разделе. В некоторых случаях удобнее и безопаснее обойтись без LVM, а сделать логическое объединение.

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

🔹Сервер для бэкапов, где допустимо логическое объединение дисков. А для бэкапов это часто допустимо.

Работает всё это на базе mergerfs. Покажу сразу на практике. Допустим, у нас есть 2 диска sda и sdb по 20G. Создаём на них по одному разделу и монтируем в систему:

# cfdisk /dev/sda
# cfdisk /dev/sdb
# lsblk
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sdb1
# mkdir /mnt/sda
# mkdir /mnt/sdb
# mount /dev/sda1 /mnt/sda
# mount /dev/sdb1 /mnt/sdb
# df -h
/dev/sda1    20G  24K  19G  1% /mnt/sda1
/dev/sdb1    20G  24K  19G  1% /mnt/sdb1

Создали, примонтировали, убедились, что всё работает. Устанавливаем mergerfs и создаём общий диск:

# apt install mergerfs
# mkdir /mnt/sdbc
# mergerfs -o defaults,allow_other,category.create=mfs,moveonenospc=true,minfreespace=1G /mnt/sda1:/mnt/sdb1 /mnt/sdab
# df -h | grep sdab
a1:b1      40G  48K  38G  1% /mnt/sdab

Я добавил к параметрам по умолчанию следующие:
◽️allow_other - позволяет пользователям видеть файловую систему, иначе увидит только root.
◽️category.create=mfs - политика распределения файлов по дискам в зависимости от наличия там свободного места, где больше места, туда пишем.
◽️moveonenospc=true - при сбое записи если, к примеру, на устройстве не осталось места или превышена квота, файл будет записан в другое место.
◽️minfreespace=1G - если на устройстве меньше 1G места, туда больше не пишем.

С такими настройками если записывать на общее хранилище одинаковые по размеру файлы, то они будут по очереди записываться на разные диски. Их можно будет напрямую увидеть в /mnt/sda1 и /mnt/sdb1.

# dd if=/dev/zero of=/mnt/sdab/tempfile1 bs=1M count=1000
# dd if=/dev/zero of=/mnt/sdab/tempfile2 bs=1M count=1000
# ls /mnt/sdab
tempfile1 tempfile2
# ls /mnt/sda1
tempfile2
# ls /mnt/sdb1
tempfile1

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

Общее хранилище можно подключать через fstab или systemd-mount. Примеры есть в репозитории.

Полезный прикладной софт. Работает просто, решает конкретную задачу.

🌐 Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#fileserver
1👍199👎3
Заметил на днях, что давно мне обновления в Windows 11 не прилетали. Зашёл в раздел обновлений, выполнил проверку. Ничего нового нет. Обратил внимание - висит предупреждение, что моя версия системы больше не поддерживается. Удивился. Винда лицензионная, никаких твиков, остановок служб не делал. Даже Defender в этой системе не отключал.

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

Полез в интернет. Оказывается, таких как я полно. По какой-то причине не всем приходят обновления на новые версии в рамках Windows 11. Вариантов решить эту проблему и обновиться много. Не буду все перечислять. Там и создание установочного диска, и правка локальных политик, и изменение настроек обновления.

Я сразу выбрал, как мне показалось, самый простой и надёжный вариант. Скачал Windows11InstallationAssistant.exe с сайта Microsoft и запустил. Какое-то время он качал файлы, а потом начал очень длительное обновление. Заставил меня понервничать. В какой-то момент обновление минут 30 висело на стадии 31% и не двигалось. Я уже прикидывал, как буду восстанавливать систему. Предварительно, само собой, сделал полный бэкап с помощью Veeam Agent for Windows. Я им постоянно пользуюсь, он бесплатный.

В итоге всё обошлось. Примерно за пару часов с момента запуска ассистента система полностью обновилась. И сразу начала отчёты в центр слать. Без перерыва шуршат два процесса:

- Windows Hello Security Process
- Служба индексации

Индексация через несколько часов прекратилась, а вот первая до сих пор грузит процессор и вынуждает гудеть вентиляторы ноута. Предстоит разбирательство с этой новой проблемой. Как говорится: "Не было печали, апдейтов накачали". Вот только не качать их варианта не было.

#windows
👍92👎17
Протестировал на днях бесплатный WAF, о котором недавно упомянул в подборке видео - SafeLine. Это open source версия платного китайского продукта с ограниченной функциональность, которая тем не менее выглядит неплохо. Продукт в целом понравился, но есть несколько нюансов с ним. Расскажу по порядку.

SafeLine представляет из себя веб панель для управления обратным прокси для веб ресурсов с базовыми возможностями по защите. Бесплатная версия включает в себя следующие возможности:

◽️принимает на себя все запросы и проксирует их на указанные локальные или удалённые сервисы;
◽️получает бесплатные сертификаты от let's encrypt и использует их для защищаемых ресурсов;
◽️блокирует запросы со стандартными уязвимостями: SQL Injection, XSS, Path Traversal, Code Injection, XXE и некоторыми другими;
◽️устанавливает лимиты к различным ресурсам на основе количества запросов и кодов ответов с ошибками;
◽️определяет по IP страну, ведёт статистику и рисует карты запросов
◽️ведёт логи всех запросов;
◽️позволяет создавать простые правила блокировки на основе IP адресов, URL, методов и т.д.

Устанавливается и настраивается эта штука очень просто. Есть скрипт для автоматической установки через docker compose, либо вручную по инструкции.

Я развернул SafeLine в автоматической установке. Далее:

1️⃣ Настроил DNS запись для сервера.
2️⃣ Установил на него тестовое веб приложение.
3️⃣ Зашёл в SafeLine, получил для домена TLS сертификат.
4️⃣ Настроил обратное проксирвоание на локальный url с использованием TLS сертификата и доменного имени.
5️⃣ Потестировал различные запросы и посмотрел, как WAF на них реагирует.

В целом, работает нормально. Настраивается просто и быстро. Выглядит аккуратно и удобно. Для тестов использовал подобные запросы:

▪️SQL Injection: /?id=1+and+1=2+union+select+1
▪️XSS: /?id=<img+src=x+onerror=alert()>
▪️Path /?id=../../../../etc/passwd
▪️Code Injection: /?id=phpinfo();system('id')
▪️XXE: /?id=<?xml+version="1.0"?><!DOCTYPE+foo+SYSTEM+"">

Кстати, их можно сохранить к себе, если будете настраивать и тестировать похожие продукты.

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

❗️В лицензионном соглашении сказано, что собирается какая-то обезличенная информация об IP адресе сервера и версиях ПО для развития продукта. Это не редкость для бесплатных продуктов. С одной стороны хорошо, что сказали, с другой - лучше бы не собирали.

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

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

В завершении перечислю полезные ссылки по теме:

🔹Тестирование WAF с помощью waf-bypass или gotestwaf.
🔹WAF Open-appsec в виде модуля к Nginx.
🔹WAF Bunkerweb на базе Nginx и ModSecurity с веб панелью.
🔹Nemesida WAF - есть бесплатная версия коммерческого продукта.
🔹VultureProject - WAF+Firewall+Load-balancing+reverse-proxy на базе HardenedBSD.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#waf
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍120👎4
Решал на днях необычную для себя задачу. Нужно было определённые запросы к веб серверу Nginx сохранять отдельно. Можно общий лог обрабатывать, но есть более красивое и удобное решение - использовать возможности модуля map. Он универсальный и может много где использоваться. Покажу на примере с логом.

Пишем в отдельные файлы ошибку 404 и все коды 5XX. Добавляем в секцию http:

map $status $to404log {
404 1;
default 0;
}                
map $status $to5XXlog {
~^[5]  1;
default 0;
}

И потом в тот виртуальный хост, для которого это настаиваем:

access_log /var/log/nginx/404.log combined if=$to404log;
access_log /var/log/nginx/5XX.log combined if=$to5XXlog;

Теперь все запросы со статусом 404 будут писаться в лог 404.log, а все 500-е ошибки в лог 5XX.log. При этом в общий лог они тоже будут попадать.

Работает модуль map очень просто. В данном случае мы используем встроенную переменную $status, в которой хранится код ответа на запрос. Если код будет 404, то мы назначаем созданной нами переменной $to404log значение 1. А затем в виртуальном сервере указываем через if, что если значение 1, то пишем запрос в лог. А для 500-х ошибок используем регулярное выражение, которое будет включать их все.

По аналогии можно сделать блокировку определённых user-agent. Как раз для них я очень давно использую готовую конструкцию и баню наиболее известных ботов:

map $http_user_agent $block_useragent {
default 0;
~*semrushbot 1;
~*ahrefs 1;
~*rss2tg 1;
~*seznambot 1;
~*AspiegelBot 1;
~*BLEXBot 1;
~*MASHIAH 1;
  }

Добавляю в виртуальный хост:

if ($block_useragent) {
return 403;
}

Думаю, принцип понятен. По аналогии можно блокировать разные типы запросов через переменную $request_method, какие-то урлы для каких-то user agent. Модуль geoip тоже удобно через map использовать с помощью переменной $geoip_country_code, и т.д.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#nginx
2👍232👎4
Подписчик поделился полезным скриптом для аудита VPS серверов - VPS Security Audit Script. Я кстати, всегда с благодарностью отношусь ко всем рекомендациям. Всё читаю, смотрю, о чём-то пишу потом.

Возвращаясь к скрипту. Сначала прохладно отнёсся. Думаю, мало смысла на сервер нести какой-то посторонний софт. Но потом посмотрел исходники и поменял своё мнение. Там очень простой bash код, который легко читается. В скрипте никакой экзотики. Просто анализ типовых настроек с использованием стандартных утилит командной строки Linux.

📌 Скрипт проверяет:

▪️Настройки SSH: номер порта, аутентификацию по паролю и под root
▪️Статус Firewall
▪️Настройку автоматических установок обновлений безопасности
▪️Работу Fail2Ban или CrowdSec
▪️Количество неудачных попыток логина
▪️Количество доступных, но не установленных обновлений
▪️Количество работающих служб
▪️Количество открытых на внешнем интерфейсе портов
▪️Логирование команд через sudo
▪️Некоторые системные метрики: uptime, cpu, disk, memory
▪️Необходимость перезагрузки сервера после обновления ядра
▪️Наличие файлов с SUID (Set User ID) - флаг прав доступа, позволяющий запустить исполняемый файл с правами владельца.

Кстати, понравился способ посмотреть количество доступных к обновлению пакетов:

# apt-get -s upgrade 2>/dev/null | grep -P '^\d+ upgraded' | cut -d" " -f1
49

Результат работы скрипта сохраняется в текстовый файл. Эти файлы можно хранить в системе для хранения логов, либо парсить и передавать данные в систему мониторинга. Например, можно добавить в Zabbix и сделать триггер на фразу FAIL в логе.

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

🌐 Исходники

Сам использую немного другую шутку, но решаю похожие задачи:

Мониторинг безопасности сервера с помощью Lynis и Zabbix

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#мониторинг #script
1👍227👎4
Хочу порекомендовать полезный на мой взгляд канал русскоязычного разработчика из Сан-Франциско, который 10 лет назад переехал туда из подмосковного города:

👨‍💻 Программист из Сан-Франциско

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

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

Обратил ваше внимание на этот канал по нескольким причинам:

1️⃣ Автор умный, рассудительный человек со своими мыслями, взглядами на жизнь, которыми делится. Это не значит, что я с ним во всём согласен, раз его советую. Мне просто интересно слушать умных людей и чему-то у них учиться.

2️⃣ Это опытный разработчик, который последние 10 лет живёт и работает в США на топовых для разработки позициях. Написал свою книгу по Ruby. Мне интересно посмотреть на IT индустрию в США.

3️⃣ Канал некоммерческий, автор ничего не продаёт и не предлагает. Видео выходят редко, но за много лет их накопилось приличное количество, так что можно почерпнуть много различной информации.

4️⃣ У автора математический склад ума, интересный математический подход к жизни и делам. Можно брать и использовать в своей жизни некоторый его опыт. Покажу ниже на конкретном примере.

Вот одно из его старых видео:

▶️ Нашел три работы на 200+ в США

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

Представим, что максимальный опыт это 1 и время в 10 месяцев это 1. Опытный программист имеет опыт 0,9 но он торопится найти работу и имеет время 1 месяц, то есть 0,1. А неопытный имеет опыт 0,1, но много времени - 0,9. В итоге за 10 месяцев найти хорошую работу у них шансы примерно равны. Поиск работы это во многом лотерея. Так что даже не имея большого опыта, просто посещая много собеседований, можно получить хорошее место. Этот тезис могу подтвердить даже своим опытом. Видел людей, которые были не совсем на своём месте, так как им банально повезло в трудоустройстве.

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

В целом, интуитивно это и так понятно, но математическое представление конкретизирует необходимое и упрощает движение в нужном направлении. Я как то раз у одного знакомого увидел алгоритм по сдаче квартиры, который он придумал, чтобы сдать свою квартиру за минимальное количество личного участия и без привлечения риелтора. Впечатлился, когда увидел, как это реально работает на практике. Он очень быстро сдал квартиру, предварительно пропустив через воронку всех кандидатов. Воронка была такая: отвечает на звонок ⇨ просит написать в WhatsApp, когда удобно посмотреть ⇨ просмотр один за одним ⇨ оплата либо сразу за 3 месяца, либо помесячно но +10%. В итоге быстро сдал сразу с оплатой за 3 месяца.

Люблю такие простые понятные вещи, которые упрощают жизнь.

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍76👎20
Новость разлетелась, что Proxmox выкатил совершенно новый продукт - Proxmox Datacenter Manager. Это веб панель, которая объединяет в едином интерфейсе все разрозненные хосты или кластеры. Информация пока только на форуме, так как это alpha версия:

Proxmox Datacenter Manager - First Alpha Release

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

Существует похожий продукт от энтузиаста - Cluster Manager. Я писал о нём, пользовался. До сих пор стоит на ноуте и работает. Но проект не получил развитие. Новых версий со времени написания моей заметки так и не появилось. А теперь уже и не появится, так как вышла аналогичная панель от разработчиков.

Я пока не придумал, где лучше разместить Datacenter Manager, так как он по сути не привязан ни к какому проекту, а служит для моего личного удобства. Поставил на чистую виртуалку с Debian 12, которая работает на моём рабочем ноуте. В моём случае это единственное удобное размещение, так как к серверам обычно ограничен доступ. Попасть на них можно либо по белым спискам IP, либо по VPN, которые настроены на моём рабочем ноуте.

# echo 'deb https://download.proxmox.com/debian/pdm bookworm pdm-test' >/etc/apt/sources.list.d/pdm-test.list
# wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
# apt update
# apt install proxmox-datacenter-manager proxmox-datacenter-manager-ui

Идём по https://IP-server:8443, используем аутентификацию через системную учётку root сервера, на котором установлена панель.

Для подключения PVE к панели нужно, как обычно, указать Fingerprint сертификата сервера. Те, кто используют бесплатные от LE с коротким сроком жизни, будут страдать, так как при обновлении сертификата отпечаток меняется. Я обычно оставляю самоподписанные, которые создаются при установке сервера. Потом указывается учётка от сервера. PDM автоматом подключится к PVE, создаст там для себя токен пользователю root, которым будет пользоваться во время своей работы.

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

Составлен Roadmap с обещанием следующих возможностей:

▪️Расширенное управление хостами: обновления, бэкапы, репозитории и т.д.
▪️Интеграция со службой SDN на хостах.
▪️Миграция виртуалок между хостами. Сейчас работает только, если они на ZFS.
▪️Поддержка остальных продуктов: Proxmox Backup Server и Proxmox Mail Gateway.

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

▶️ Proxmox Datacenter Manager - кластер теперь не нужен ?

#proxmox
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍152👎3
Я анонсировал ранее подборку сайтов IT блогеров со статьями на различные темы, связанные с настройкой и эксплуатацией IT систем. Собралось небольшое сообщество авторов. Полный список сайтов будет в конце. А пока анонс новых статей тех авторов, кто согласился участвовать и прислал свои материалы. 

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

🔥Поднимаем сервер синхронизации файлов Syncthing в docker
Подробная статья по настройке популярного и функционального решения для синхронизации файлов между несколькими устройствами. Для Syncthing устанавливается веб интерфейс. Показаны примеры по настройке различных устройств на базе Linux, Windows, Android.

Собираем единую ленту новостей с сайтов и Telegram-каналов на своем сервере
Установка на своём сервере агрегатора Telegram-каналов RSSHub с представлением в виде RSS-лент с помощью Tiny Tiny RSS.
Готовим агрегатор новостей с автоматической публикацией в своем Telegram-канале
Продолжение предыдущей темы. Использование готовых ботов или запуск на своего на своём сервере для автоматической публикации постов в Telegram канале.

Planka - opensource альтернатива Trello
Affine - opensource альтернатива Notion и Miro
Plane - opensource альтернатива Jira
Обзорные статьи аналогов популярных систем управления проектами.

🔥Как мигрировать базу данных Zabbix с MySQL на PostgreSQL
Подробная инструкция по миграции с одной СУБД на другую.
Как перенести Zabbix на новый сервер
Перенос Zabbix Server на новый сервер без смены СУБД. База переносится дампом.
Как перенести Zabbix Proxy на новый сервер
Перенос Zabbix Proxy. Статью не совсем понял. Прокси не хранит долговременных данных, не понятно, зачем её переносить. Можно просто поднять новую прокси, перевести клиентов на неё, а старую потушить.
Как обновить Zabbix с версии 6.0 до 7.0
Как обновить Zabbix Proxy с версии 6.0 до 7.0
Инструкции по обновлению Zabbix Server и Proxy на базе официальной. Бэкапим, подключаем новый репозиторий, обновляем пакеты, проверяем.

bat, exa – подсветка синтаксиса стандартного вывода в терминале Linux (cat, less, tail и ls)
Обзор современных консольных утилит Linux, аналога более старых.

Анализ дампов синих экранов Windows используя WinDBG
Создание и анализ дампов после BSOD с помощью WinDBG.

Как исправить пустую страницу после входа в ECP/OWA на сервере Exchange
Разбор ошибки, которая возникает при проблемах с настройкой TLS сертификатов.

🔥Тестовое задание. lamp + php 7 + php 8
Lemp + php 7 + php 8
Интересная заметка, как автор проходил собеседование с практическим заданием. В первом материале разбор тестового задания, а во втором оно же, только вместо Apache используется Nginx.

Замена системного диска в зеркале ZFS на Proxmox VE
Инструкция по замене диска в ZFS, на котором установлена система и загрузчик. Материал с последовательностью команд и результатом их работы.

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

Как решить проблему, когда Пуск не отвечает в Windows Server 2016
Какой-то странный баг с неработающим пуском на сервере. Сам не сталкивался с таким, хотя с этой версией периодически работаю.

Если кто-то хочет присоединиться к этой подборке, то пишите мне в личные сообщения. Пока список выглядит так:

▪️https://r4ven.me
▪️https://wiki-it.ru
▪️https://www.gurin.ru
▪️https://sysadminhub.ru
▪️https://devopslife.ru
▪️https://bite-byte.ru
▪️https://sysadminium.ru
▪️https://desoft.ru
▪️https://www.pc360.ru
▪️https://bafista.ru
▪️https://it-experience.ru
▪️https://blogadminday.ru
▪️https://marukhin.ru

#статьи
3👍111👎3
Тестировал вчера open source панель для управления сервером и установки на него софта - Cosmos. Сам автор позиционирует её как Secure and Easy Selfhosted Home Server. Панель и сама работает в Docker, и софт запускает тоже в контейнерах. Это уже не первая подобная панель на канале. Сразу скажу, что ничего особенного в ней не увидел. Она не лучше и не проще всех остальных похожих.

В целом, пользоваться можно. Даже русский язык есть, но переведено кривовато. Я переключился на английский. У всех подобных панелей на базе Docker есть один существенный минус. Они хоть и позиционируют себя как простые и быстрые в настройке, на деле это не так. Запуск приложений в Docker, особенно когда их много на одном сервере, требует от пользователя понимания, как всё это между собой связано и работает. Постоянно возникают небольшие нюансы в работе, которые не решить без этих знаний. А если вы знаете Docker, то и панель вам особо не нужна. Ставишь Portainer и запускаешь всё там.

Cosmos в целом неплоха в сравнении с остальными. Выделю несколько полезных особенностей:

▪️Интерфейс адаптивен, работает и на мобильных устройствах.
▪️Можно создавать пользователей веб панели. Бесплатная версия позволяет создать 5 штук.
▪️Панель нативно поддерживает работу MergerFS и SnapRAID.
▪️Из коробки HTTPS от Let's Encrypt.
▪️Поддержка OAuth 2.0 и OpenID, 2FA через Google аутентификатор или аналоги.
▪️Есть встроенные средства безопасности, на основании которых можно ограничивать доступ к публикуемым ресурсам. Можно ограничивать доступ на основе групп. Блокировать ботов, тех, кто превышает лимиты по запросам или трафику.

Запустить и посмотреть на Cosmos можно так:

# docker run -d --network host --privileged --name cosmos-server -h cosmos-server --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket -v /:/mnt/host -v /var/lib/cosmos:/config azukaar/cosmos-server:latest

Если настроено доменное имя, то можно сразу получить сертификат от Let's Encrypt, а все устанавливаемые службы будут запускаться на поддоменах. Если же сделать установку без HTTPS по IP адресу сервера, то сервисы будут подниматься на отдельных TCP портах. Я и так, и так попробовал.

Аналоги Cosmos:

◽️CasaOS
◽️Runtipi

Мне лично CasaOS больше всего понравилась. Она более целостно смотрится, магазин приложений больше, как и в целом сообщество. Но Cosmos более функциональна в базе.

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

#docker #linux
1👍56👎3
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Как обычно, ниже те видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне показались интересными и полезными.

Ребята, как же быстро летит время. Каждый раз я уточняю, точно ли прошло уже две недели. Кажется, что всего неделя. В ежедневной рутине не замечаешь, как проходит ЖИЗНЬ. И чем дальше, тем больше вопросов, правильно ли ты распоряжаешься отмеренным тебе временем. Глубоко убеждён, что жизнь, которую проживает человечество в современных городах - противоестественна и губительна для него.

Обзор Runtipi - веб панели для запуска своего домашнего сервера
Изменил название ролика, так как исходное неинформативное. Автор рассказывает про Runtipi. Интересная панель, про которую я ранее писал.

GitLab CI/CD - Как работают Runners, Установка своего SHELL GitLab Runner на Linux и Windows
Практическое руководство по настройке и использованию GitLab Runners. Хороший подробный урок с теорией и практикой.

Terminal tools for IT pros
Обзор консольных утилит, с которыми работает автор: cmatrix, bat, fzf, zoxide, eza, yadm, nmap, tcpdump, iperf3, direnv, kubectx, jq.

Provisioning Virtual Machines in Proxmox with Terraform – Full Walkthrough
Практическое руководство по использованию Terraform в связке с Proxmox. Автор использует провайдер telmate/proxmox. Напомню, что есть уже не менее популярный, но более функциональный bpg/proxmox. Лучше использовать его.

Home Lab Tour 2024: Servers, Apps, Docker, and more!
Блогер показал, какое железо и софт стоят у него дома. Я всегда с любопытством смотрю такие видео. Просто нравится.

Proxmox Datacenter Manager (Alpha) First Look!
Обзор PDM для тех, кто его ещё не видел.

Пора перестать пользоваться Google Photo
Очередной обзор и инструкция по программе Immich. Она, судя по всему, самая популярная из бесплатных, которую можно развернуть у себя. Хотелось бы что-то подобное настроить, потому что уже утонул в семейных фотках и видео. Ни у кого нет времени разбираться и как-то каталогизировать все поступающие фотографии. Пока на настройку тоже нет времени 😁

Как устроена База Данных? Схемы, ограничения, индексы, кластеры
Базовая информация по базам данных на примере PostgreSQL. Хорошая подача и качество контента. Канал нравится, но он больше для разработчиков. Смотрю те темы, что пересекаются с эксплуатацией.

Building My ULTIMATE Linux Workstation
Хотелось бы сказать, что в видео авторский взгляд на сборку топовой рабочей машины для работы с ОС Linux, но это не совсем так. Статья частично рекламная, частично для закрытия темы. Тем не менее, мне было любопытно посмотреть, что сейчас есть из ценового сегмента чуть выше среднего.

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍105👎8
🔝 ТОП постов за прошедший месяц. Все самые популярные публикации по месяцам можно почитать со соответствующему хэштэгу #топ. Отдельно можно посмотреть ТОП за прошлый год. ТОП за этот год будет в следующей публикации.

Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые дополнительные возможности по настройке: https://t.iss.one/boost/srv_admin.

📌 Больше всего пересылок:
◽️Шпаргалка на тему создания LVM Raid (590)
◽️Публичные DNS и NTP серверы от MSK-IX (572)
◽️Скрипт для аудита серверов - VPS Security Audit Script (512)

📌 Больше всего комментариев:
◽️Моя покупка Mikrotik hAP ax³ (233)
◽️Обновление Windows до 24H2 (131)
◽️Использование док-станций с ноутбуком (111)

📌 Больше всего реакций:
◽️Заметка про использование и замену диска в mdadm (270)
◽️Пример небольшой инфраструктуры для 1С на Proxmox (250)
◽️Публичные DNS и NTP серверы от MSK-IX (246)

📌 Больше всего просмотров:
◽️Использование док-станций с ноутбуком (10298)
◽️Обучающая игра SLASH\ESCAPE (10270)
◽️Советы по снижению спама от Zabbix Server (9748)

#топ
👍41👎5
🎄🔝 Под конец года осталось закрыть один технический момент. Подготовил список наиболее популярных публикаций в этом году. Надеюсь, вам будет интересно после праздников его посмотреть и найти что-то для себя полезное. Потратил несколько часов, чтобы его составить. В прошлом году это была практически самая просматриваемая публикация.

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

Благодаря этому у меня есть возможность публиковать только тематическую рекламу, выбирать рекламодателей и не публиковать то, что мне самому не нравится. Рекламодатели положительно отзываются на отклик на свои публикации и возвращаются вновь. Так что стабильный поток рекламы - это ваша заслуга 😁

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

📌 Больше всего пересылок:
◽️Подборка заметок по консольным утилитам Linux (1212)
◽️Бесплатные курсы от Postgres Professional (1139)
◽️Топ-10 артефактов Linux для расследования взлома (1118)
◽️Подборка команд и полезных ссылок для Docker (1100)
◽️Готовые профили для Wireshark (1017)
◽️Создание TLS сертификатов через свой CA (958)
◽️Терминальный сервер на базе Windows 10,11 (904)
◽️Бесплатные курсы по Ansible (878)
◽️Шпаргалка по поиску свободного места в Linux (864)
◽️Система управления инфраструктурой OpenRPort (786)

📌 Больше всего комментариев:
◽️Массовый BSOD на Windows (362)
◽️Баг с переключением раскладки в Windows (324)
◽️Как найти работу в ИТ после 45 лет? (294)
◽️Тайная жизнь современных ОС (235)
◽️Моя покупка Mikrotik hAP ax³ (232)
◽️Настройка NFS сервера (224)
◽️Проблемы со спиной от сидячей работы (218)
◽️Гипервизор для одной виртуальной машины (210)
◽️Утро на удалёнке (209)
◽️Новость с исключением русских мэйнтейнеров (208)

📌 Больше всего реакций:
◽️Следы на сервере после подключения по SSH (802)
◽️Заметка про мой распорядок дня (538)
◽️Заметка ко дню победы на 9-е мая (416)
◽️Шпаргалка по tcpdump (370)
◽️Терминальный сервер на базе Windows 10,11 (336)
◽️Комбинация Alt+Shif+3 в терминале bash (325)
◽️Мем - Позовите системного администратора (310)
◽️Мем про интернет по карточкам (300)
◽️Настройка default_server в Nginx (298)
◽️Взлом СДЕК (292)

📌 Больше всего просмотров:
◽️Список IP адресов Youtube для ускорения (17700)
◽️Бесплатные курсы от Postgres Professional (16700)
◽️Подборка заметок по консольным утилитам Linux (15500)
◽️Бесплатные курсы по Ansible (14700)
◽️Готовые профили для Wireshark (14700)
◽️Grafana+Influxdb+K6 для нагрузочного тестирования (14500)
◽️Браузер Mypal68 для Windows XP (14300)
◽️Шпаргалка по поиску свободного места в Linux (14200)
◽️Клиент для WireGuard TunnlTo (13900)
◽️Подборка авторских IT роликов (13700)

#топ
21👍204👎2
🎄Поздравляю всех с наступающим Новым годом. В наши дни это особенный праздник, который оброс множеством ритуалов, особенно если у вас есть дети. И особенно, если их много. Мне кажется, я уже недели две отмечаю новый год. Посетил кучу различных концертов и ёлок, в том числе с участием своих детей. Получил и вручил подарки, подготовленные силами супруги. Самому некогда этим заниматься.

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

Теперь про меня. До 27 лет я был один. Проживал обычной холостяцкой жизнью и особо не задумывался о том, чего вообще хочу и к чему стремлюсь. Зарабатывал нормально, одному хватало. Купил машину, потом квартиру в ипотеку. Ездил отдыхать заграницу, по выходным где-то с друзьями отдыхал, пьянки-гулянки. Вспомнил обо всём этом на днях, когда старые фотографии просматривал. Некоторые, кстати, не открывались (привет, bit rot). Вроде так посмотришь со стороны, весёлая жизнь была, но не могу сказать, что я был счастлив.

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

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

Вернулся в Москву и начал потихоньку действовать. По неопытности наломал дров. Первый брак был неудачный. Обижаться, как любят многие обжёгшиеся, ни на кого не стал. Ни на женщин, ни на законы, ни на государство, ни на "матриархат", ни на жизнь, хотя через МДшное движение прошёл, материалы изучил. Принял, чтобы был виноват сам, ошибся. Сделал работу над ошибками и попробовал второй раз. Параллельно завязал с вредными привычками, сменил работу.

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

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

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

#разное #мысли
37👍505👎7
Всем привет. Поздравляю с окончанием праздников. Наконец-то можно снова заняться полезными и интересными делами. Как у вас, без происшествий прошли выходные? У меня было ровно одно небольшое событие, которое потребовало моего участия. Решил сразу рассказать, пока не забыл.

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

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

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

TLS: Initial packet from [AF_INET]1.2.3.4:40564
VERIFY ERROR: depth=0, error=CRL has expired
OpenSSL: error:1417C086:SSL routines:tls_process_client_certificate:certificate verify failed
TLS_ERROR: BIO read tls_read_plaintext error
TLS Error: TLS object -> incoming plaintext read error
TLS Error: TLS handshake failed

Основное тут: CRL has expired. Файл со списками отозванных сертификатов оказался просрочен. Сколько лет использую OpenVPN, в том числе с CRL (Certificate Revocation List), а первый раз с таким сталкиваюсь (поправочка, 7 лет назад уже сталкивался, но забыл).

Файл crl.pem был сгенерирован с помощью набора скриптов easy-rsa. В них по умолчанию параметр EASYRSA_CRL_DAYS выставлен в 180 дней. Если за этот срок не будет нового отзыва и пересоздания файла crl.pem, то сервер OpenVPN перестанет принимать соединения с указанной выше ошибкой.

Просто пересоздал файл, увеличив срок жизни файла до 10 лет. В своём случае не вижу смысла ограничивать срок жизни этого файла. К тому же последнее время обхожусь без него. Для тех, кто не знает, напомню, что нежелательных клиентов OpenVPN сервера можно отключать с помощью настройки сервера ccd-exclusive.

Если указана эта настройка, то для того, чтобы подключение клиента состоялось, для него должен существовать файл с настройками в client-config-dir. Если его там нет, он не подключится. Я всегда пользуюсь этими настройками, так что файлы конфигураций для клиентов есть. Если надо кого-то отключить, то достаточно просто удалить этот файл. И клиент не сможет подключиться.

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

📌 Полезные материалы по теме OpenVPN:

▪️Одновременный запуск нескольких клиентов OpenVPN
▪️Маршруты для клиента на основе url, а не ip адреса
▪️Запуск OpenVPN сервера на разных внешних IP адресах
▪️Диагностика низкой скорости через OpenVPN
▪️Запускаем OpenVPN сервер за 443 портом веб сервера
▪️Бесплатная веб панель для управления сервером
▪️Создание туннелей с коррекцией ошибок (Forward Error Correction)

На всякий случай уточню, что ни в заметке, ни в ссылках, нет никакой информации об обходе блокировок сайтов. Это описание использования OpenVPN для обеспечения сетевой связности распределённых сетей.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#openvpn
3👍176👎5
В праздники наконец-то появилась возможность поиграться с контейнерами в Mikrotik hAP ax³, который недавно приобрёл. У него, кстати, WiFi намного мощнее, чем в моём старичке RB951G-2HnD. Последний с трудом добивал до дальних частей комнат, удалённых от коридора, где он висел. Новый без проблем достаёт везде. Мне кажется, что у RB951G в какой-то момент мощность сигнала деградировала. Он уже 10+ лет в квартире трудится, но только последние год-два стал замечать, что в некоторых углах при закрытых дверях связь плохая.

В контейнере я в первую очередь хотел видеть Pi-hole, чтобы порезать некоторую рекламу у домашних пользователей интернета в виде жены и детей. Мне без надобности, так как блокировки на уровне DNS не очень удобны. Я предпочитаю у себя на компе сам всем этим управлять. А остальным всё равно. Им будет в любом случае полезно.

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

В итоге всё настроил. Можно самому Микротику указать в качестве основного DNS сервера IP адрес контейнера с Pi-Hole, но будет не очень удобно, так как во всех логах будет фигурировать один IP адрес клиента - сам Микротик. Я сделал по-другому. Пробросил в Firewall все запросы от клиентов по 53-м портам в контейнер. В итоге в админке Pi-Hole увидел IP адреса клиентов и сделал исключения для личных устройств.

В целом, всё работает нормально. Работу одного контейнера hAP ax³ тянет вообще без каких-либо напрягов. Можно ещё парочку аналогичных запустить, но мне особо ничего не нужно. Не придумал, что ещё там запускать.

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

❗️Удивил старый телевизор Samsung. Ему лет 15, подключен к локалке, чтобы смотреть на нём фильмы с DLNA сервера. Он больше всех DNS запросов наотправлял для резолва домена samsung com. Интересно, какие данные он туда передаёт. Надо будет закрыть ему доступ в интернет.

#mikrotik
15👍133👎3