ServerAdmin.ru
31.7K subscribers
901 photos
56 videos
24 files
3.03K links
Авторская информация о системном администрировании.

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

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

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

Автор проекта Samohosting на Youtube организовал некоторое время назад публичный форум, типа того, что были популярны в рунете лет 20 назад, только на современном движке. Вот адрес:

https://forum.samohosting.ru

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

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

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

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

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

Если знаете ещё какие-то живые, интересные форумы по теме IT, поделитесь рекомендациями. Мне на ум только 4pda приходит, ну может ещё ixbt. Хотя на последний больше на старые темы через поиск попадаю. Но это всё гиганты, которые постоянно читать и следить не будешь. Слишком большой объём. Мне больше по душе проекты среднего размера, которые можно охватить своим вниманием если не целиком, то хотя бы какой-то частью.

#разное
👍133👎1
Решил по максимуму наполнить тему почтового сервера. На очереди сбор и обработка логов в ELK, но для этого надо сначала с этим стеком обновить статью.

А пока более простой материал на тему автоматической загрузки больших вложений в свой Nextcloud для отправки получателям не самого файла, а ссылки на него:

Автоматическая загрузка почтовых вложений в Nextcloud при отправке через RoundCube и Thunderbird

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

Отдельный вопрос стоит с аутентификацией в Nextcloud, если нет общей SSO для почты и остальных сервисов. Но даже если и нет, то можно один раз настроить пользователю доступ, чтобы он потом этим пользовался.

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

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

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#mailserver #nextcloud
Please open Telegram to view this post
VIEW IN TELEGRAM
👍58👎2
🎥 Вебинар по Linux: Пользователи и права в Linux: первые шаги администратора
Разберёмся, как устроена система пользователей в Linux и зачем нужны root, sudo и su.

На вебинаре вы узнаете:
- Какие бывают типы пользователей в Linux и чем они отличаются.
- Где хранится информация о локальных пользователях и как её читать.
- Как безопасно переключаться между пользователями с помощью su и sudo.
- Какие ошибки часто совершают новички при работе с правами.

В результате вебинара вы:
- Узнаете, как Linux идентифицирует пользователей и их права.
- Сможете легко переключаться между пользователями.
- Научитесь читать системные файлы /etc/passwd и /etc/shadow.
- Поймёте, как использовать sudo без ошибок и повысить безопасность своей системы.

🎁 Все участники вебинара получат специальные условия на полное обучение курса "Administrator Linux. Basic"

👉 Для участия зарегистрируйтесь: https://clck.ru/3QsSQf

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍9👎6
Невероятные события, от которых хочется истерически хохотать и плакать одновременно. Совсем недавно купил домой неттоп FIREBAT A8. Писал про него заметку. Хороший аппарат, очень понравился. У меня на нём сын в танки играет. Настройки средние, fps примерно 120-150. Вообще никаких проблем.

Сразу как купил, разобрал его, увидел, что там 1 планка памяти на 16 GB. Подумал, что неплохо бы купить ещё одну такую же. Судя по отзывам, это увеличивает не только непосредственно объём памяти, но и общую производительность системника.

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

Память против цены 4199 в октябре стоит 23999 сейчас. Понятное дело, я слышал, что подорожала память и диски, но особо не фокусировался на этом. Стараюсь новостной шум пропускать мимо ушей, чтобы не отвлекаться на него. Это мешает нормально жить.

И вот реальность меня настигла. Как думаете, когда всё это вернётся в нормальное русло? По таким ценам покупать память полный бред и разорение.

Хочу, кстати, себе вот эти накладные беспроводные наушники купить на НГ: Nothing Headphone (1). Нужен хороший шумодав для работы. Люблю работать в полной тишине. Бегло посмотрел отзывы, обзоры на разные подобные наушники. Вроде неплохие из среднего ценового сегмента. Остановился на них. Что-то можете посоветовать по этой теме?

И одновременно затычки с шумодавом хочу. Текущие простенькие Redmi AirDots 3 Pro честно отработали 2,5 года и вот одно ухо сломалось. Надо тоже поменять. Хорошие наушники из бюджетных, рекомендую, если они ещё продаются. Можно по идее их же и купить, но хочется как обычно, что-то новенькое попробовать.

Могу еще порекомендовать проводную мышь A4Tech X-710BK и клавиатуру A4Tech KV-300H. Я уже лет 15 их постоянно покупаю. Постоянно не потому, что они часто ломаются, а потому что рабочих мест много и я везде ставлю их.

Клавиатура только одна умерла и то, потому что дети кефиром залили. Я её разобрал, промыл, собрал, но через 2 недели она всё равно перестала работать. У неё внутри, кстати, толстая железная пластина. За счёт этого она тяжёлая и монолитная. И при этом тонкая, как ноутбучная. Мне нравится этот низкопрофильный формат.

#железо
👍83👎1
Потихоньку обновляю статью про ELK Stack. Так как к репозиториям Elastic нет прямого доступа с IP адресов России, специально поднял именно для этой статьи простенький репозиторий на небольшом VPS в USA. Понятно, что можно этого не делать, так как есть различные зеркала. Но мне, чтобы не проверять каждый раз ссылки и не сверять версии, удобнее всё замкнуть на себя, чтобы статья была самодостаточной, актуальной и всегда воспроизводилась по написанной последовательности команд. У меня нет возможности обновлять её после каждого нового релиза.

Для этого я поднял свой репозиторий для Debian на Aptly. Это максимально простой и неприхотливый по ресурсам инструмент. Я уже рассказывал про его настройку ранее. С тех пор он так и трудится уже несколько лет (с 2022-го года) и не требует к себе никакого внимания. Достаточно только новые пакеты время от времени туда загружать и обновлять веб сервер.

В этот раз нужно было добавить репозиторий для Debian 13 Trixy. Делается это в несколько команд, если ранее всё уже было настроено для предыдущих версий:

# aptly repo create -comment="Elastic repo" -component="main" -distribution="trixie" -architectures="amd64" elastic-trixie
# aptly repo add elastic-trixie filebeat-*-amd64.deb elasticsearch-*-amd64.deb kibana-*-amd64.deb logstash-*-amd64.deb filebeat-*-amd64.deb
# aptly publish repo elastic-trixie

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

# wget -qO - http://elasticrepo.serveradmin.ru/elastic.asc | gpg --dearmor -o /usr/share/keyrings/elastic.gpg
# echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] http://elasticrepo.serveradmin.ru trixie main" | tee /etc/apt/sources.list.d/elasticrepo.list
# apt update

Показываю просто для примера. Использовать этот репозиторий для установки продуктов elastic не надо, так как я регулярно его не обновляю, только вместе со статьёй. Есть копия всего репозитория у Яндекса: https://mirror.yandex.ru/mirrors/elastic/. Там все версии всех пакетов, то есть полная копия официального зеркала.

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

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

#!/bin/bash

VERS="9.0.8"
PACKAGES="elasticsearch kibana logstash filebeat"
DISTROS="bullseye bookworm trixie"

# Download
for pkg in $PACKAGES; do
  if [ "$pkg" = "filebeat" ]; then
    path="beats/filebeat"
  else
    path="$pkg"
  fi
  wget https://artifacts.elastic.co/downloads/${path}/${pkg}-${VERS}-amd64.deb
done

# Add package and publish
for distro in $DISTROS; do
  for pkg in $PACKAGES; do
    aptly repo add elastic-${distro} ${pkg}-${VERS}-amd64.deb
  done
  aptly publish update $distro
done


Достаточно указать желаемую версию в VERS и запустить скрипт.

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

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#aptly
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72👎3
Deckhouse Conf 2026 — один день концентрированного технического хардкора.

9 апреля в Москве соберём 1000 инженеров, которые строят платформенные продукты и управляют инфраструктурами.

Зачем приезжать:
— Проверенные кейсы внедрения.
— Демо технологий Deckhouse и возможность протестировать их своими руками.
— Хардкорные технические доклады про виртуализацию, SDN, мониторинг, миграцию на микросервисы и многое другое.
— Прямой контакт с разработчиками и ведущими инженерами.
Один день, два трека, 1000 гостей, максимум полезного общения.

Регистрируйтесь
👍9👎1
Сервисов для доступа к консоли сервера через браузер много, ровно как и для совместного доступа. В разное время я писал про них и сейчас уже не обращаю внимания. Нужно редко и только в каких-то специфичных делах, типа обучения или менторства, помощи.

Но про sshx.io напишу. Он сделан очень красиво и удобно. Я прям оценил, понравилось. Принцип работы следующий.

1️⃣ Скачиваете бинарник на любую систему (Windows, Linux, macOS, FreeBSD):

# wget https://sshx.s3.amazonaws.com/sshx-x86_64-unknown-linux-musl.tar.gz
# tar xzvf sshx-x86_64-unknown-linux-musl.tar.gz


2️⃣ Запускаете:

# ./sshx
 sshx v0.4.1
 ➜ Link: https://sshx.io/s/xQNAKizOnL#03oCwWqQre8VWI
 ➜ Shell: /bin/bash


3️⃣ Открываете ссылку в браузере, попадаете на свой сервер.

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

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

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

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

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#remote
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92👎4
Для тех, кто работает с Docker контейнерами, рассказываю про современный, удобный и простой инструмент, который позволяет выполнять некоторые операции с контейнерами и репозиториями вообще без установки Docker на хост. Плюс, он есть в стандартных репозиториях популярных систем, что упрощает установку и использование в целом.

Речь пойдёт про skopeo. Ставится так:

# apt install skopeo
# dnf install skopeo
# brew install skopeo

Для установки работы не нужен root, как и не нужна установка службы самого Docker. То есть это облегчённый консольный клиент для работы с контейнерами и репозиториями.

Смотрим информацию о контейнере и о конфигурации, по аналогии с докеровской командой inspect. Сам образ при этом не скачивается:

# skopeo inspect docker://docker.io/twinproduction/gatus
# skopeo inspect --config docker://docker.io/twinproduction/gatus

# skopeo inspect docker://registry.rocket.chat/rocketchat/rocket.chat
# skopeo inspect --config docker://registry.rocket.chat/rocketchat/rocket.chat

Увидели всю основную информацию о контейнере: версии, когда последний релиз был, слои, порты, Entrypoint и т.д. На самом деле удобно даже для нечастой работы с контейнерами. Я обычно в hub иду руками смотреть последний релиз, если надо уточнить для какого-то нового контейнера. Можно skopeo себе на рабочую машину поставить и пользоваться. Правда если контейнер с большой историей, там огромная портянка тэгов тянется.

Можно образ к себе скачать в виде архива:

# skopeo copy docker://docker.io/nginx:latest --override-os linux docker-archive:/tmp/nginx/nginx-latest.tar

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

# skopeo copy docker-archive:/tmp/nginx/nginx-latest.tar docker://registry.local/nginx:latest

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

Skopeo удобно использовать в CI/CD для некоторых задач. Можно скопировать образ из одного репозитория в другой, например, с публичного в локальный перед запуском других задач:

# skopeo copy docker://docker.io/nginx:latest docker://registry.local/nginx:latest

Можно проверить наличие какой-то тэга перед дальнейшими задачами:

# skopeo list-tags docker://docker.io/twinproduction/gatus

Так же можно подписать образ, выполнить синхронизацию двух репозиториев с набором различных версий контейнеров, пометить образы в репозитории на удаление. Skopeo поддерживает аутентификацию в registry.

Все доступные команды описаны в man:

◽️inspect, list-tags
◽️copy, delete, sync
◽️login, logout
◽️standalone-sign, standalone-verify
◽️generate-sigstore-key, manifest-digest

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

Некоторые полезные ссылки по теме на другие инструменты для Docker:
▪️Sinker для синхронизации образов
▪️Nexus - локальный репозиторий docker образов
▪️Harbor - ещё один локальный registry только для образов
▪️Диагностика работы контейнеров с помощью cdebug
▪️Линтер для Dockerfile - Hadolint
📊Сtop - top для контейнеров
🛡 Проверка образов на уязвимости с помощью Trivy
🛡 Автоматическое закрытие уязвимостей с помощью Copacetic
🛡 Проверка образов с помощью Dockle

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#docker #devops
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍82
Вам подарок!🎁

28 декабря исполняется 7 лет компании Сервер Гейт. В честь праздника компания дарит ПОДАРКИ ВСЕМ ПОКУПАТЕЛЯМ! 

За эти годы компания:
закрепились в числе лидеров рынка серверного оборудования;
построила репутацию надёжного поставщика;
помогла сотням клиентов найти оптимальные решения для бизнеса.

🎁 Специальный подарок к празднику уже ждет Вас!
В честь Дня рождения компания Сервер Гейт запустила подарочную акцию: USB‑hub в подарок к каждому заказу серверного оборудования!

Сроки акции: 16.12 - 28.12.2025
Как участвовать: оформляйте заказ на сайте или через менеджера.

☎️ 8-800-222-86-42
💻 ПЕРЕЙТИ НА САЙТ

Реклама, ООО "Сервер Гейт", ИНН 7728456472.
👍10👎8
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Это видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне понравились.

Отказоустойчивый кластер Angie c VRRP и KeepaliveD
Пример настройки отказоустойчивости с помощью Keepalived. Типичный и самый популярный подход для кластеризации сервисов на Linux. Подобным образом можно много чего настроить, так что рекомендую посмотреть для общего понимания самого процесса кластеризации.

How to Build a Home Server in 2026 (without going insane)
Автор выбирает, из чего собирать сервер в 2026 году. Негодует по поводу цен на память и диски. Он, кстати, из Германии. Привёл пример 2х32ГБ за $630. Это информация для тех, кто жалуется, что у нас продавцы цены задрали. К сожалению, это не их рук дело, иначе это было бы просто обойти. Его рекомендация - б.у.шный офисный комп на барахолке 😁

Proxmox Datacenter Manager — центр управления виртуальной инфраструктурой
Обзор нового продукта Proxmox - единая панель управления всеми гипервизорами, кластерами и серверами бэкапов. Я ещё не пробовал. Интересно было посмотреть. Выглядит удобно. Особенно миграция понравилась. Получается, кластер теперь, если он не HA, уже и не нужен. Миграция и между одиночными хостами работает нормально.

Как объединить серверы в кластер Proxmox VE | Пошаговая настройка узлов
Если ещё не видел, как собирать кластер из Proxmox VE, можете посмотреть. Сама по себе настройка простая. А вот дальнейшая эксплуатация и сопутствующие вопросы, например, с сетью, миграциями, было бы интересно посмотреть.

Распаковка и включение ASUS GX10. Компьютер для ИИ от NVIDIA (DGX Spark)
Распаковочка компьютера от Nvidia. Я и не знал, что подобные существуют. Их можно в кластера объединять. В Москве от 312 т.р. за них цены стартуют.

Установка XPEnology на TerrMaster F4-425 Plus
Если не знаете, что такое XPEnology, можете посмотреть. Тут очень подробно рассказано и показано, как её установить. Это ломаная версия ОС от Synology. Проект известный, у меня 10+ лет уже NAS на XPEnology крутится.

Manage your network like a PRO // Netbox Tutorial
Хорошее руководство по настройке Netbox - бесплатный и один из самых популярных продуктов для визуализации и документирования информационных систем и сетей. Поддерживает все современные подходы, имеет множество интеграций с другими системами. Это прям топчик среди систем подобного рода.

Гайд по созданию Telegram бота на Python + деплой
Если интересна эта тема, пробуйте. Не пугайтесь, если вы не программист и не умеете программировать. Я в своё время, когда захотел сделать бота, довольно быстро изучил базу и запустил бота. И это ещё до распространения ИИ. Сейчас ещё проще это сделать. Мне даже кажется, что админам или девопсам проще это сделать, так как они лучше ориентируются в инфраструктуре, которая нужна для работы. Непосредственно написание кода в контексте бота сейчас не самая сложная часть процесса.

Бекапируем Почту. Архиваторы: Mail-archiver, Open Archiver, Bichon, Piler.
Большой обзор нескольких программ для бэкапа почтовых ящиков. Mail-archiver я недавно обозревал. Нормальное решение. Про другие даже не слышал. Нужно будет пробовать. Тема актуальная. Автору больше всего понравился Open Archiver. Надо будет его попробовать.

My New Home Assistant Dashboard To Make Plex Kid-Friendly
Любопытный опыт автора по связыванию Home Assistant и Plex для просмотра ребёнком мультиков. Особенно заинтриговало начало, где он настроил запуск мультиков по разным RFID меткам. Для этого даже считыватель приобрёл. Это что-то типа видиков в прошлом получается. Жаль, не показал, как это работает. Он в итоге отказался от карточек.

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54👎1
В комментариях к заметкам на тему доступа к серверу по SSH регулярно возникают споры о безопасности парольной аутентификации, смены стандартного порта, доступа root, о настройке fail2ban и т.д.

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

В общем случае никаких проблем с безопасностью службы SSH не будет, если вы оставите возможность подключаться root и использовать для этого сложный несловарный пароль. Менять стандартный порт 22 или ставить Fail2Ban тоже не обязательно. Достаточно поменять несколько настроек и про какой-либо перебор паролей можно забыть.

MaxAuthTries 3
MaxSessions 2
MaxStartups 10:30:60

◽️MaxAuthTries - максимальное количество попыток аутентификации для одного соединения.
◽️MaxSessions - ограничение на количество активных сеансов на одно соединение. Можно сделать больше, если в реальности вам это нужно.
◽️MaxStartups - до 10-ти одновременных соединений все принимаются, при количестве соединений от 10 до 60 новые соединения отбрасываются с вероятностью 30%, при 60+ активных соединениях новые не открываются.

При таких настройках массовый перебор паролей становится нереален из-за ограничения в количестве попыток.

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

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

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

Запускаем одновременно две службы на разных портах. На стандартном 22 для всех и на 22555 для себя с ограничениями по IP. На 22 ставим параметры, как я показал выше. А для 22555 указываем ограничения по своим спискам IP адресов. Показываю, как это примерно выглядит.

# cp /etc/ssh/sshd_config /etc/ssh/sshd_root.conf

# cat sshd_config

Port 22
...
MaxAuthTries 3
MaxSessions 2
MaxStartups 10:30:60
...

Остальные настройки по желанию. Конфигурация приватной службы:

# cat sshd_root.conf

Port 22555
AllowUsers root@192.168.137.0/24 root@1.2.3.4 root@5.6.7.8
...

Создаём для приватной службы юнит systemd:

# cd /etc/systemd/system
# cp sshd.service sshd-root.service

Меняем в конфигурации sshd-root.service один параметр:

ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_root.conf

Запускаем приватную службу:

# systemctl daemon-reload
# systemctl enable --now sshd-root

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

# iptables -A INPUT -p tcp --dport 22555 -s 192.168.137.0/24,1.2.3.4,5.6.7.8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22555 -j DROP

Много написал, что на практике не особо нужно. Я бы всё закрывал через Iptables с любыми настройками. Но даже если SSH открыт для всех, для root и по паролю, то в реальности никаких проблем это не доставит, если всё настроить аккуратно и не сливать пароль. Ключ, как и пароль, тоже может утечь. Это не абсолютная защита и не панацея, в отличии от файрвола, если его случайно не выключат (а так бывает).

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#ssh
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍182👎4
💥 MySQL Multi-Source Replication: как построить мультимастер-БД, которая не падает

23 декабря в 20:00 мск — бесплатный урок курса «Инфраструктура высоконагруженных систем»

Устали от падения мастера? Переходите от Master-Slave к мультимастеру, где запись идёт на несколько нод одновременно, а система переключается при сбое за секунды.

📌 Что будет:
— Эволюция репликации: от Master-Slave к Multi-Master
— Пошаговая настройка Multi-Source Replication
— Автоматический failover через Keepalived (с демо!)
— Стратегии для highload: горизонтальное масштабирование записи

🎯 После вебинара сможете:
— Развернуть Multi-Source/Multi-Master MySQL
— Настроить автоматическое переключение мастеров
— Избегать конфликтов записи
— Проектировать отказоустойчивые БД

Особенно полезно админам Linux, DevOps и архитекторам.

👉 Регистрация открыта: https://clck.ru/3Qwh8H

Вебинар приурочен к старту курса «Инфраструктура высоконагруженных систем».

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍11👎4
Продолжая утреннюю тему, разберу ещё один спорный момент насчёт использования sudo на серверах. В своих статьях и заметках я sudo никогда не пишу, да и не использую. И нередко получаю на этот счёт замечания, что автор советует плохое, использует небезопасные практики и сидит на сервере под root. Якобы это не безопасно.

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

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

Допустим, я единственный пользователь сервера, настроил его и администрирую единолично. Других людей там нет. Я не использую sudo. И какие это должно вызывать проблемы безопасности?

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

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

С помощью sudo удобно настраивать шаблоны систем для каких-то узких задач. Например, есть веб сервер, на который нужен почти полный доступ разработчиков, чтобы они могли смотреть логи Nginx, Php-fpm, перезапускать сервисы, менять их конфигурации и т.д. Но при этом за самой системой, её обновлением, закрытием уязвимостей следит другая служба, которая сама всё обновляет, перезагружает и следит за стабильной работой системы в целом. Через sudo разработчикам даётся доступ к нужным им службам, а всё остальное им недоступно, чтобы ненароком чего не сломали, не нарушили общие правила безопасности. В данном случае можно сказать, что дать полный доступ разработчикам к серверу без sudo небезопасно.

☝️К чему я всё это пишу? Специалист он на то и специалист, что разбирается в теме и в каждом конкретном случае думает, как ему сделать удобнее и безопаснее, а не просто повторяет заученные или случайно увиденные примеры. Подходы к настройке и управлению инфраструктурой на 3 сервера и на 100 будут разные. В одном случае от sudo никакого толка не будет, а в другом без него никуда, хотя и это не точно. По умолчанию никакой безопасности sudo не добавляет. Её и в системе то нет в базовой установке. Надо отдельно устанавливать там, где это действительно нужно.

Например, можно запретить подключение по SSH для root, настроить аутентификацию по ключам, и каждый раз при входе на сервер делать что-то типа sudo su и вводить пароль или перед каждой командой писать sudo. А можно разрешить подключение сразу под root, настроить аутентификацию по ключу и закрыть ключ паролем. Его тоже придётся один раз ввести, но попадаешь на сервер сразу под root. Какая схема безопаснее? А какая удобнее?

Кстати, для тех, кто ещё не знает, напомню, что sudo появилась и в Windows. Я уже пользуюсь, удобно.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍138👎5
Существует простая, эффективная и немного маргинальная технология по ограничению доступа через интернет к своим сервисам - port knocking. Думаю, она многим известна. Я сам не раз про неё делал заметки. Там смысл в том, что нужно послать определённую последовательность сетевых пакетов на файрвол, и он откроется для твоего IP. Пример того, как это настраивается в Mikrotik.

В Linux это можно реализовать специальным софтом knockd или сделать вручную правила для iptables примерно так же, как в Mikrotik. Там под капотом тот же iptables. Настраивается очень просто. Ниже набор правил для открытия доступа на 30 секунд при отправке 1 icmp пакета размером ровно 116 байт. Во всех примерах в интернете в основном не пингуют, а стучат в разные TCP порты. Мне реализация на базе icmp кажется проще и удобнее, главное, чтобы icmp не был заблокирован:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m length --length 144 -m recent --name SSH_KNOCK --set
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --name SSH_KNOCK --rcheck --seconds 30 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP


Теперь пингуем на винде:
> ping 192.168.137.38 -n 1 -l 116
или в линуксе:
# ping 192.168.137.38 -c 1 -s 116
и нам открывается 22-й порт.

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

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

Но сейчас настали такие времена, когда port knocking имеет смысл настраивать. VPN запросто может не работать. Софт типа Anydesk тоже работает через раз, особенно через мобильную связь. Нет 100% уверенности, что удастся подключиться здесь и сейчас.

Port knocking в этом плане очень прост и надёжен. Открывается конкретно для тебя на короткий срок прямой доступ. При этом установленное соединение уже не ограничено по времени. Пинганул свой внешний файрвол, он открыл для тебя доступ на 1 минуту. Ты подключился и работаешь, пока связь не оборвётся. Потом ещё раз можно пингануть для нового соединения. Этот подход нормально работает для SSH или RDP.

Есть развитие этого подхода в виде HTTP запросов для открытия доступа. С ними чуть проще в плане удобства, так как можно сохранить нужную ссылку и потом просто переходить по ней для открытия доступа. Но это не очень безопасно, так как ссылку могут где-то по почте или мессенджерах передавать, больше шансов что она куда-то на сторону уйдёт. Реализовать подобное можно в таких бесплатных проектах, как:

▪️Labean
▪️Updater
▪️webhook

Делается обычный вебхук, который создаёт правило в файрволе на основе клиентского IP адреса.

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

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#gateway
Please open Telegram to view this post
VIEW IN TELEGRAM
👍108👎2
⚡️ Храните бэкапы и логи выгодно:
в S3 Selectel появился новый класс хранилища — ледяное.

📦Минимальная стоимость хранения и Erasure Coding — оптимально для редко используемых файлов.


Протестируйте хранилище и перенесите данные в S3 Selectel по акции «миграционные каникулы»: у вас будет 30 дней бесплатного использования входящих запросов и хранилища.

Создавайте заявку и пользуйтесь: https://slc.tl/ck0bl

Реклама. АО "Селектел". erid:2W5zFK4JVm2
👍10👎7
⚠️ Хочу предупредить всех, кто использует Telegram ботов для различных задач. Вчера впервые столкнулся с ситуацией, когда к боту получил доступ кто-то посторонний. Причём, я не знаю, как. Да и в целом не знаю, что именно произошло. Просто мой бот стал присылать мне рекламу казино.

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

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

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

Такая вот история вышла. Я раньше с этим не сталкивался и не задумывался, что бота можно внезапно потерять. Если на него что-то важное заведено, то можно получить проблемы (привет заметкам с управлением сервером через TG 😎). Имейте это ввиду и как минимум для каждой задачи или системы делайте отдельного бота. Так хоть будет понятно, с какой стороны проблемы. И не особо доверяйте им.

#разное
👍130👎1