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

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
Расскажу историю про то, как я перенёс почту в отдельно взятой компании с Яндекса. Сразу скажу, что это не описание оптимального варианта, или какая-то рекомендация, как поступать вам. Тут ситуация специфическая. Я просто дам информацию, которая кому-то может оказаться полезной.

В компании есть Windows Server, где установлен Kerio Mailserver. Исторически так сложилось, что через него почта почти никогда не отправлялась напрямую из-за проблем с доставкой, так как компания часто переезжала с места на место в различных промзонах, где нет стабильного интернета и электричества. Иногда это был мобильный интернет.

Последние несколько лет почта работала через Яндекс по следующей схеме. Для всех сотрудников были созданы почтовые ящики. Локальный Kerio Mailserver подключался к этим ящикам и забирал почту к себе по pop3. Сами пользователи подключались к локальному серверу и забирали почту через него. Отправка осуществлялась у пользователей напрямую через Яндекс, хотя с другим почтовым оператором вся отправка централизованно настраивалась тоже через локальный сервер с помощью сервера ретрансляции. Но Яндекс такую работу не поддерживает. Там для каждого пользователя должна быть своя учётная запись.

Схема на самом деле удобная и гибкая. Изначально так настроил не я. Когда впервые увидел, подумал, что как-то сложно всё это настраивать в нескольких местах. С учётом того, что я умею настраивать почтовые сервера и имею большой опыт по их обслуживаю, не оценил решение. Но после парочки переездов и смены почтового оператора понял, что на самом деле это удобно. В ящиках много почты. У кого-то по 50 гигов. Люди привыкли работать в локальных программах, а не через веб интерфейс. У некоторых может быть подключено по 5-7 ящиков. Без локальной программы работать с таким количеством ящиков неудобно.

Встала задача переехать с Яндекса. У компании сайты живут на Masterhost. К услуге виртуального хостинга полагается неограниченное количество почтовых ящиков. Ограничение одно — 7 гигабайт места под почту включены в тарифный план. В итоге я просто создал все ящики в Masterhost (там удобная админка для этого), переключил MX записи на этого провайдера. А в локальном почтовом сервере настроил сбор почты по pop3 вместо Яндекса с Masterhost, и отправку через него же.

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

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

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

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

#mailserver
На Хабре вышел подробный обзор самого популярного в России менеджера паролей Пассворк — habr.com/ru/article/724056

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

#реклама
​​Небольшая шпаргалка по работе с оболочками в Linux. Написать её решил, когда увидел, как один человек использует системную утилиту chsh, про которую я вообще никогда не слышал. С её помощью можно быстро поменять дефолтную оболочку для пользователя.

Как узнать, какая оболочка используется у пользователя? Способов очень много. Если речь идёт о своём пользователе, под которым вы работаете, то примерно так:
# echo $SHELL
# echo $0
# ps
и т.д. Способов много. Все эти команды так или иначе подскажут вам используемую в данный момент оболочку.

Информация об оболочках хранится в системном файле /etc/passwd. Там помимо прочей информации о пользователе в том числе указана и его оболочка. Собственно, правкой этого файла я обычно и менял оболочку. Чаще всего это нужно, если создал технического пользователя для какой-то службы и забыл ему поставить оболочку nologin через отдельный ключ -s. Приходилось править этот файл.

Но можно сделать проще — воспользоваться chsh:
# useradd sysuser
# chsh -s /usr/sbin/nologin sysuser

Утилита делает ровно то же самое, что и я вручную, только быстрее — изменяет файл /etc/passwd. Раз уж упомянул утилиту useradd, читайте чем она отличается от adduser и что лучше использовать.

#linux #terminal
​​В выступлении с DevOpsConf, про которое выйдет заметка вечером, увидел упоминание очень любопытной программы nfpm, с помощью которой можно собирать свои deb или rpm пакеты. Я посмотрел и нашёл её современной, простой и полезной. Сразу же попробовал на реальном примере. Результатом делюсь с вами.

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

Итак, ставим nfpm:
# echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' |
tee /etc/apt/sources.list.d/goreleaser.list
# apt update
# apt install nfpm

Готовим для него конфиг nfpm.yaml:

name: "tegu"
arch: "amd64"
platform: "linux"
version: "v1.27.0"
section: "default"
priority: "optional"
conflicts:
 - exim4
 - postfix
maintainer: "Kalmetov Igor <ik@mbk-lab.ru>"
description: |
 Tegu is the free mailserver.
vendor: "mbk-lab.ru"
homepage: "https://project.mbk-lab.ru"
contents:
- src: ~/tegu/bin/teguctl
 dst: /opt/tegu/bin/
- src: ~/tegu/sbin/tegu
 dst: /opt/tegu/sbin/
- src: ~/tegu/tegu.conf
 dst: /etc/tegu.conf
 type: config
- src: ~/tegu/tegu.service
 dst: /etc/systemd/system/tegu.service
 type: config
overrides:
 deb:
  scripts:
   preinstall: /root/tegu/preinstall.sh
   postinstall: /root/tegu/postinstall.sh

Для простоты и демонстрации возможностей nfpm некоторые вещи упростил и поместил в скрипты. Те же права доступа и создание каталогов можно сделать сразу в конфигурации nfpm, а не в скриптах.

Файлы tegu.service и tegu.conf взял из документации. Добавил свои скрипты для выполнения некоторых действий.

preinstall.sh:

#!/bin/bash
mkdir /opt/tegu
mkdir /opt/tegu/{bin,sbin,data,certs}
chown -R mail. /opt/tegu/{data,certs}
chgrp -R mail /opt/tegu/{bin,sbin}
chmod 750 /opt/tegu/{data,certs}
chmod -R 750 /opt/tegu/sbin
chmod -R 750 /opt/tegu/bin

postinstall.sh:

chown root.mail /etc/tegu.conf
chmod 640 /etc/tegu.conf
setcap CAP_NET_BIND_SERVICE=+eip /opt/tegu/sbin/tegu
systemctl enable tegu.service
systemctl start tegu.service

Собираем пакет:
# nfpm pkg --packager deb --target ~/
using deb packager...
created package: ~/tegu_1.27.0_amd64.deb

Пакет собран. Можно установить:
# dpkg -i ~/tegu_1.27.0_amd64.deb

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

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

#linux #debian #apt #tegu
​​▶️ Посмотрел на днях выступление с DevOpsConf и прям кайфанул. Очень понравилось содержимое, которое нетипично для подобного рода мероприятий. Человек рассказал, как они обходятся без Kubernetes и Docker.

Эксплуатация без k8s / Кирилл Шваков (Kinescope)

Кратко расскажу, о чём там. У компании ~50 железных серверов в нескольких ДЦ. Одно время использовали k8s, но отказались, потому что ломался, падал, кушал ресурсы, мучал админов. Перешли на более простую схему на базе deb пакетов, Ansible и Systemd.

Описаны плюсы этого решения:

Нет лишних компонентов и прослоек. Используется штатный функционал современных ОС. Конкретно у них всё работает на Ubuntu, но планируют перейти Debian, потому что там система ещё проще.

Все сервисы собраны в отдельные бинарники, написанные на Go. Далее упакованы в deb пакеты, хранятся в локальных репозиториях. Это решает задачу установки софта с использованием штатного пакетного менеджера.

Весь софт раскатывается с помощью Ansible, запускается через Systemd. Это избавляет от необходимости использовать лишнюю прослойку в виде Docker. В Systemd из коробки есть всё то, что нужно конкретно этой компании — изоляция, ограничение ресурсов, встроенный планировщик, готовые логи средствами journald, контроль за запуском и работой.

Благодаря Systemd все сервисы видны в системе, легко мониторятся с её уровня, нет лишней прослойки, которая снижает производительность, работают надёжно, systemd не падает.

Использование Systemd упрощает логирование. Достаточно весь системный лог отправить в Loki.

Вся инфраструктура поддерживается силами одного админа, одного сетевого инженера и одного инженера хранилищ.

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

#devops #видео
​​Вчера была заметка про эксплуатацию современной ИТ системы без Kubernetes, после которой я вспомнил свой опыт изучения этого инструмента. Решил поделиться своей историей. Думаю, она будет многим интересна и в каком-то роде полезна.

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

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

Параллельно я продолжал изучение и погружение в тему. В итоге понял, что не хочу работать с Kubernetes по нескольким причинам:

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

2️⃣ Кубер активно развивается и часто обновляется. Обновление кластера —зачастую нетривиальная задача, особенно если он большой, если пропущено много релизов, если нет второго такого же кластера. Регулярный стресс гарантирован.

3️⃣ Кубернетис очень живой и динамичный. За ним постоянно нужно присматривать. Часто случаются те или иные инциденты. С удивлением и ужасом слышал в выступлениях специалистов, что случаются ночные оповещения мониторинга, когда надо проснуться и что-то чинить. У меня вообще сложилось впечатление, что в этой отрасли это норма. Люди спокойно обсуждают ночные побудки в тематических конфах на тему мониторинга всего этого куберского и девопсерского хозяйства.

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

В общем, взвесил я всё плюсы и минусы и решил, что для меня это не подходит. С кубером для себя вопрос закрыл.

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

#мысли #devops #kuber
​​Я уже рассказывал про покупку ноутбука для работы ThinkPad T480. Пользуюсь им несколько месяцев, меня всё устраивает. Так как про ноут часто спрашивают и в личку иногда пишут, я вижу, что тема актуальна. Хочу рассказать про некоторые особенности конкретно этой модели. Впрочем не только этой.

Как я уже сказал, ноутбук меня полностью устраивает. Я купил полноценную док станцию и работаю чаще всего на рабочем месте с двумя мониторами, клавиатурой и мышкой, ноут сложен. Так что в целом, мне всё равно, что там под капотом. Лишь бы браузер и терминал работали. Иногда Photoshop и Minecraft.

У меня модель с дискретной видеокартой GeForce MX150. Взял с ней на всякий случай. Вдруг, думаю, пригодится. На днях решил посмотреть, а как работает эта видеокарта и работает ли вообще. Как оказалось, она не работает. Погонял Майнкрафт, он отлично работает на встроенной видеокарте Intel UHD 620. Стал разбираться. Оказывается, в Windows 11 система сама выбирает, какую видеокарту использовать (по умолчанию использует интегрированную). Если вам нужна внешняя, то для каждого приложения в Настройках ⇨ Система ⇨ Дисплей ⇨ Графика надо выбирать приложение и явно указать, на какой видеокарте оно будет работать.

Добавил браузер и Minecraft в работу с дискретной видеокартой. Каково же было моё удивление, когда ноут жутко залагал, частота процессора упала, работать стало невозможно. Сначала решил забить и не тратить на это время. Мне в целом эта видюха не нужна. Я купил с ней, потому что охлаждение ноута с ней более качественное. Но всё же стало любопытно. Немного погуглил и понял, что это типичная для многих моделей Thinkpad проблема с охлаждением (читать тут и тут).

Не буду грузить подробностями, а сразу скажу суть. Одного небольшого кулера не хватает на эффективное охлаждение видеокарты и процессора под высокой нагрузкой обоих, да ещё в корпусе 14". Если не пользоваться видеокартой, как было у меня, то проблем вообще никаких. Проц горячее 80 градусов у меня никогда не был, чаще в районе 50-60 температура, что для ноута нормально. Если же захотите поиграть в игрушки, иначе зачем вам ноут с дискретной видеокартой, то довольно быстро словите перегрев и троттлиннг процессора.

Единственное решение — с помощью программ Throttlestop и Afterburner чуть придушить мощность процессора и видеокарты, чтобы найти баланс, когда не начинается перегрев и троттлинг. Некоторым это удаётся. Я решил не заморачиваться, так как в тяжёлые игры всё равно не играю. По-быстрому нашёл какое-то проходное решение для простых случаев с включением пары настроек в Throttlestop: FIVR Disable и Lock Turbo Power Limits. Особо даже не вникал в них. У меня троттлить почему-то начинало уже на 70 градусах проца с работающей видюхой. С этими настройками троттлинг пропал. Меня это устроило. Майнкрафт и сёрфинг в браузере поживее пошли на внешней видеокарте. Надо было давно озадачиться этим вопросом.

Проблема с охлаждением у меня была и с прошлыми ноубуками x220, причём с обоими. Я первый поменял, думал, проблема локальная, но на самом деле нет. Приходилось тоже частоту процессора уменьшать. Также эта проблема наблюдается, судя по теме на форуме lenovo, на моделях без дискретной видеокарты. Просто перегревается процессор в максимальной нагрузке. И на моделях T480s, P51, T580, T470P, ещё каких-то, упоминаемых на форуме, проблема тоже присутствует.

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

#железо
​​Мне часто задают вопрос, какую ОС Linux я использую для серверов. Кто-то знает, что я использую Debian и спрашивает, а почему именно её. В принципе, нет разницы, какой дистрибутив с поддержкой пакетов deb или rpm использовать. Я одинаково успешно могу взять любой из них. Более того, я все их так или иначе знаю и в разное время использовал.

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

После того, как Centos прекратила своё существование, а вместо неё появились Centos Stream, Rocky Linux, AlmaLinux, и с ними в компании существовавший ранее Oracle Linux, у разных хостеров появилась поддержка разных дистрибутивов, но не всех их одновременно. Это создаёт неудобства. Где-то есть Rocky, но нет Oracle, или наоборот. Где-то вообще нет ни одного из них, только Centos Stream и т.д.

Так что выбор пал на Debian не потому, что этот дистрибутив чем-то лучше других. Причина сугубо организационная. Использовать популярный дистрибутив проще и удобнее. Меньше лишних хлопот. Я в разное время устраивал голосования на канале по поводу того, кто какой Linux использует. Всегда побеждал Debian. Так что для меня выбор прост и очевиден. Думаю, теперь и для вас.

#linux
Ещё один прикол из комментариев. Человек 2 года готовился, прежде чем начать разбираться и настраивать Микротик. До этого опасался за свою нервную систему. Интересно, кто ему эти страхи внушил? Я когда первый раз взаимодействовал с Микротиком, сильно удивился, что не смог его настроить без инструкции. Думал, что это обычный домашний роутер, как все подобные. Ну немного продвинутый. Но не тут то было. Я даже не смог разобраться, как ему IP адрес назначить на интерфейсе.

Кстати, у меня там речь идёт об отключении индикаторов сетевых интерфейсов на моём домашнем роутере RB951G-2HnD. Ему уже лет 10. Висит в коридоре и очень досаждает своими миганиями, как гирлянда. Пришлось вырезать вставки из плотного картона и приклеить их монтажной лентой к Микротику. Без этого мигания видны в комнате через полупрозрачное стекло на двери. Мешает спать. В каких-то моделях индикаторы можно отключить, в каких-то нет.

#мем
​​▶️ Рассказываю про ещё одно выступление с DevOpsConf, которое показалось интересным. В нём речь идёт о трансформации инфраструктуры и подходов к работе от стародавних к современным.

DevOps в Юле: сломить устоявшееся / Александр Светлов (Юла)

Выступление получилось короткое, но ёмкое, где всё по делу. Автор рассказал, как он пришёл в Юлу, где про devops вообще ничего не слышали. Не было централизованного мониторинга и сбора логов, не было полноценной документации. На серваки ходили по SSH и читали логи в консоли. Не было централизованного хранения секретов. Созданные временные виртуалки бросали и забывали (300+ серверов с неизвестным содержимым 😱). Каждая команда разработчиков пользовалась своими инструментами.

Александр рассказал, как он с напарником последовательно меняли эту ситуацию.

1️⃣ Начали с того, что подготовили шаблоны для Ansible. Потихонечку стали инвентаризировать актуальные хосты, параллельно накатывая на них через Ansible мониторинг (Grafana + Prometheus + exporters) и сбор логов (ELK).
2️⃣ Перенесли секреты в Vault, репозитории и артефакты в Nexus.
3️⃣ Настроили бэкап данных с помощью Restic и положили их в локальный Minio.
4️⃣ Подготовили шаблоны для поднятия сервисов и научили разработчиков с ними работать. Это привело к единообразию запуска служб.
5️⃣ Всех пересадили на Gitlab.

Это я кратко по основным техническим моментам прошёлся, которые подметил для себя. В докладе больше подробностей именно взаимодействия с разработчиками и выстраивания взаимодействия.

Получилась небольшая история (не полная) про то, чем занимаются девопсы и чем они отличаются от системных администраторов, которые никуда не делись. Тот же openstack или кластеры баз данных поддерживать нужно, как и прочую железную инфраструктуру.

#видео #devops
​​Давно ничего не было на тему игр так или иначе связанных с IT. Раньше регулярно рассказывал про какие-то игры, но их количество конечно. Пробежался бегло по новинкам из этой сферы, но не увидел чего-то интересного. Хорошие игры делала Zachtronics, но они прекратили выпуск игр. Я делал подборку игр от них по нашей тематике.

Также решил сделать подборку по хакерской тематике. Все известные и интересные игры из этой области я уже обозревал:

Uplink — классика игр про хакеров из далекого 2001 года. Вы агент фирмы Uplink Corporation, у вас есть сервер со своей ОС и набором программ. Дальше надо взламывать, писать вирусы, зарабатывать деньги и т.д.

Fate — очередной симулятор хакера. Очень суровый. Я сам в него играл. Игра — это 16-разрядное досовское приложение. Для запуска на Windows 10 использовал Dosbox. В игре у вас будет юниксовая консоль и задания по взлому различных систем.

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

Keeping an Eye On You — вы оператор системы, аналог оруэловского Большого брата. У вас есть доступ ко всей информации пользователей — инфа он них в инете, личные сообщения, файлы на компьютере, звонки и т.д. Надо помочь в расследовании преступлений каких-то террористов.

ThreatGEN: Red vs. Blue — игра в стиле кибервойны в формате пошаговой стратегии. Можно играть за хакеров или защитников инфры. Война идет за инфраструктуру на базе компов, сетевых устройств, промышленного оборудования и т.д.

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

Grey Hack — многопользовательская игра, симулятор хакера. Вы играете за хакера с полной свободой действий в обширной сети процедурно генерируемых компьютеров. Терминал основан на реальных командах UNIX. Это основной инструмент для успешного проведения хакерских атак.

Hack 'n' Slash — приключенческая пазл-игра о хакерстве: перепрограммировании свойств объектов, взломе глобальных переменных, настройке поведения существ и даже изменении программного кода.

Hack RUN — симулятор хакера в духе Fate и Uplink. У вас будет доступ в несколько локалок организаций. Надо будет взламывать там системы и смотреть информацию и пользователях, где содержатся подсказки по дальнейшему взлому. По мере прохождения уровней вы будете прокачивать свои скилы.

Midnight Protocol — относительно свежая (2021) игра про хакера. Вы хакер, у вас есть определенный набор инструментов для взлома, который вы можете совершенствовать. Вам дают различные задания. Причём вы можете как хакать других людей, так и помогать ловить хакеров. Сюжетная линия разная. 

Mu Complex — игра сделана в виде головоломки на компьютере с реальной консолью Linux. На компьютере также есть браузер, можно получать доступ к почте, камерам видеонаблюдения и т.д. Вам надо осмотреться и понять, как отсюда выбраться дальше в другие системы.

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

Hackmud — многопользовательская игра, в которой сервера защищают различными логическими замками. Именно такие замки и отмычки к ним вам и надо будет создавать. Практически весь контент в игре создан игроками для игроков. В игру можно играть командой.

Hacker Simulator — один из немногих представителей игр данного жанра, где не всё в текстовом виде. Можно походить в 3D мире. В основном действие игры проходит за компьютером, в частности в консоли Linux. Вам надо выполнять задания, зарабатывать деньги, делать апгрейд железа и так по кругу.

#игра #подборка
​​Думаю, многие из вас знают такую компанию, как Sophos и её популярный продукт Sophos Firewall. Они продаются как отдельные устройства для монтажа в стойку, и как программные продукты для виртуальных машин. Я сам никогда не покупал и не настраивал их, но видел в одной компании подобный шлюз. Очень понравился своим функционалом.

Есть бесплатная версия Sophos Firewall Home Edition для домашних пользователей. Единственное ограничение — возможность использовать не более 4 процессорных ядер и 6 гигабайт оперативной памяти. Для очень многих ситуаций этого будет за глаза. Функционал сопоставим с коммерческой версией!

Основные возможности:
приоритизация трафика, двойной WAN
веб-фильтрация с контролем посещаемых сайтов по спискам, в том числе с использованием mitm.
графики использования, ограничения и квоты для различных пользователей
встроенный vpn сервер (разные реализации, в том числе openvpn)
антивирус для веб и почтового трафика

Я одно время не мог найти бесплатную версию на сайте. Думал, её убрали. Недавно решил ещё раз проверить и сразу нашёл. Скачать можно вот с этой страницы: https://www.sophos.com/en-us/free-tools/sophos-xg-firewall-home-edition Там нет проверки вводимых в форму данных. Можно написать всё, что угодно и сразу получить ссылку на скачивание. Но на почту придёт серийный номер, который нужен для активации продукта. Без него можно только триал на 30 дней запустить. Загрузка с IP адресов РФ заблокирована, я скачал через VPN. Это ограничение было и в 2020 году, не в 2022 появилось.

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

Для тех, кто будет пробовать, подскажу несколько моментов. Первый сетевой интерфейс по умолчанию используется как LAN, второй как WAN. После установки через LAN интерфейс зайдите на https://172.16.16.16:4444, учётка admin / admin, в консоли она же используется.

#gateway
​​Расскажу про простой и быстрый способ увидеть лог smtp сессии при обращении к какому-то почтовому серверу. Как вы уже знаете из прошлой заметки про curl, она умеет работать с различными протоколами. В том числе и с smtp.

В общем случае самый эффективный способ поговорить с smtp сервером, это обратиться к нему на 25 порт телнетом. И надавать ему туда своих команд. Примеров в сети много. Но это долго и не всегда нужно. Можно воспользоваться curl:

# curl smtp://mail.site.ru:25 -v \
--mail-from sysadmin@site.ru \
--mail-rcpt sysadmin@site.ru \
--user 'sysadmin@site.ru:password' \
--upload-file ~/email.txt

Содержимое email.txt примерно такое:

From: sysadmin@site.ru
To: sysadmin@site.ru
Subject: test email
Date: Mon, 17 Apr 2023 00:17:16

Dear Sysadmin,
Welcome to this test email. What a lovely day.

В консоли будете наблюдать лог smtp сессии. Если что-то не так, увидите ошибку.

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

Мне захотелось разобраться в проблеме, поэтому погрузился в тематику. Выяснил, что Zabbix отправляет почту через curl. Со стороны почтового сервера было не очень понятно, в чём конкретно проблема, он просто ругался на неправильную аутентификацию. Немного поигрался в консоли с curl и понял, в чём проблема.

Curl почему-то по умолчанию предлагает аутентификацию DIGEST-MD5 и она по какой-то причине происходит с ошибкой. По идее, клиент дальше должен пробовать другие методы, но конкретно в этой ситуации curl получал ошибку аутентификации и больше никаких попыток не делал. Дело было на сервере Centos 7, где curl очень старой версии. В сети нашёл информацию, что на нём реально могут быть проблемы с аутентификацией. Обновил утилиту до последней версии, но мне это не помогло.

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

Вот эта же проблема, описанная на форуме Zabbix, а вот предложенное решение по обновлению curl на centos 7, которое мне не помогло.

#linux #curl #zabbix
​​Долгое время у меня в закладках была масштабная система по анализу работы сайтов или веб приложений под названием PostHog. Несколько раз заходил на сайт, мельком всё просматривал и закрывал, так как не видел, где мне она может пригодиться даже теоретически. В итоге всё же изучил продукт и решил поделиться с вами. Хоть он и будет полезен очень малой части пользователей, тем не менее на русском языке я почти не нашёл информации о нём. Возможно, она окажется полезной. Продублирую её на сайте.

PostHog — open source аналог Google Analytics или Яндекс.Метрики. Причём не на уровне просмотра количества посетителей и времени, проведённом на сайте. Там функционал по отслеживанию и аналитике сопоставим, а где-то превосходит публичные сервисы. Особенно, если вы сами пишите свой сайт и можете интегрировать на уровне кода взаимодействие с PostHog.

Чтобы полностью оценить функционал этой системы, можно посмотреть записанную демонстрацию — https://www.youtube.com/watch?v=BPDmpepEwSY
Основные возможности:
сбор и анализ статистики сайтов и мобильных приложений
схемы взаимодействия пользователей с сайтом и приложением, визуализация навигации
запись сессий пользователей, отслеживание конверсий
возможность проведения и оценки A/B тестирования
сбор данных с внешних источников

И весь этот функционал можно развернуть у себя. Причём очень просто и быстро. Весь функционал реализован на базе Docker контейнеров и разворачивается автоматически с помощью bash скрипта. Подробности в руководстве. Для успешной установки надо предварительно установить пакеты curl, gnupg, sudo. Также необходим внешний IP и A запись, чтобы можно было получить бесплатный сертификат от Let's Encrypt. Без этого хозяйство не заведётся. Под капотом там веб сервер caddy, clickhouse, kafka, zookeeper, postgres, redis, minio. Не продукт, а мечта девопса.

Базовый функционал можно получить просто интегрируя скрипт PostHog в код сайта или приложения, как вы это обычно делаете с кодом метрики или аналитики. Пример, опять же, в документации. Ну а если вы пилите свой сайт сами, то там же описана интеграция со всеми популярными языками программирования и фреймворками. Ну и до кучи через API.

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

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

#website
​​Маленькая, простая и удобная утилита для быстрой проверки работы дисковой подсистемы — ioping. Есть в базовых репозиториях популярных систем на базе Linux. Ставим в Debian 11:
# apt install ioping

Проверяем отклик диска (I/O latency), наподобие сетевого отклика:
# ioping .
4 KiB <<< . (ext4 /dev/sda2 19.0 GiB): request=3 time=3.54 ms
4 KiB <<< . (ext4 /dev/sda2 19.0 GiB): request=4 time=3.68 ms

Измеряем среднее количество иопсов (iops):
# ioping -R /dev/sda
21.6 k requests completed in 2.93 s, 84.5 MiB read, 7.38 k iops, 28.8 MiB/s
generated 21.6 k requests in 3.00 s, 84.5 MiB, 7.21 k iops, 28.2 MiB/s
min/avg/max/mdev = 42.4 us / 135.5 us / 1.13 ms / 71.1 us

Последовательное чтение:
# ioping -RL /dev/sda
8.63 k requests completed in 2.79 s, 2.11 GiB read, 3.10 k iops, 774.3 MiB/s
generated 8.63 k requests in 3.00 s, 2.11 GiB, 2.88 k iops, 719.2 MiB/s
min/avg/max/mdev = 98.2 us / 322.9 us / 4.45 ms / 160.4 us

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

Не знал раньше про эту программу. Думаю, её можно добавить в список софта для стандартной установки наравне с mc, htop, screen и т.д.

#linux #terminal
​​Не все системные администраторы знают, что есть отдельный класс программ под названием IPAM (IP Address Management). Они служат для управления пространствами IP адресов. Причём бывают как отдельные программы, где реализована только эта функциональность, так и программы для инвентаризации и учёта IT инфраструктуры, куда включают и IP адреса.

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

Если же вы исповедуете принцип — каждой задаче свой инструмент, то можно использовать для IP адресов специально разработанные для этого программы. Наиболее популярные я уже описывал:

NetBox — это не только учёт IP адресов, но я всё равно отнёс эту программу сюда, потому что она заточена под учёт сетевой инфраструктуры и является в первую очередь рабочим инструментом сетевых инженеров. Функционал IPAM там сделан не для галочки, а реализован в полной мере.

TeemIP — это как самостоятельный продукт, так и дополнительный модуль для iTop. Думаю, что актуально только для тех, кто использует iTop. Как отдельный продукт он не так хорош, как некоторые другие.

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

GestioIP — помимо функционала IPAM реализован простенький мониторинг средствами icmp и snmp, поэтому он умеет выполнять автообнаружение узлов в сети. Из приятных особенностей — возможность интеграции с OCS Inventory NG (бесплатное ПО для инвентаризации сети).

Перечисленные выше программы являются наиболее известными, бесплатными, с открытым исходным кодом. Помимо них есть ещё IPplan, openDCIM, HaCi, NIPAP. Коммерческих решений для IPAM существует очень много, так что не буду их перечислять. Отдельно отмечу только одно.

Служба в Windows Server. Возможно не все знают, но начиная с Windows Server 2012 там есть отдельная служба IP Address Management (IPAM) Server. Можно развернуть и пользоваться, не привлекая сторонние программы для этого. Причём там это работает в связке с DNS сервером.

#ipam #подборка
Много лет назад (8), когда я активно занимался поддержкой офисов, не раз сталкивался с вирусами-шифровальщиками. Причём с одним из них я столкнулся, когда они прям только начали появляться и были в новинку. Никто толком не понимал, что это такое и как восстанавливать данные.

Как сейчас помню, это был вирус, который ставил расширение .vault на файлы. Он зашифровал компанию, которую я только взял на обслуживание и даже не успел толком дела принять. Проводил инвентаризацию. Бэкапами ещё не занимался. Хорошо хоть права доступа на запись у человека были не ко всем общим файлам, так что пострадал в основном только он, запустивший вирус из почтового вложения и ещё пару человек, которым он его переслал, чтобы они проверили, почему файл не открывается 😁

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

Когда я воочию увидел, как легко безвозвратно потерять все данные, стал по-другому относиться к бэкапам. Я сам тогда ещё ни разу не сталкивался с тем, что данные могут быть вот так утеряны безвозвратно и шансов на восстановление нет. Сам за бэкапами всегда следил. Потом и тут всё настроил и забэкапил. Позже они ещё раз словили шифровальщика. Данные им из бэкапа восстановил. Причём всё это было с работающим платным антивирусом Eset. Тогда антивирусы очень слабо реагировали на шифровальщиков.

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

Написать на эту тему решил, чтобы рассказать про сервис https://www.nomoreransom.org/ru/index.html Зашёл его проверить и с удивлением обнаружил, что сайт всё ещё функционирует. Во время разгула шифровальщиков, не все в полной мере шифровали файлы. Были и те, кто косил под популярных шифровальщиков, и те, кто реально ничего не шифровал. Для некоторых случаев антивирусные компании создавали дешифраторы и они реально помогали. Я знал такие случаи.

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

#вирус #сервис
Простой и быстрый способ забэкапить свои репозитории из github или gitlab. Я не стал тут изобретать велосипед, а просто поискал информацию. Нашёл много всяких программ и утилит на различных языках программирования. Всё это отмёл, пока не нашёл простые bash скрипты. Для меня было очевидно, что для решения этой задачи достаточно bash и api указанных сервисов.

В итоге воспользовался вот этим репозиторием:
https://github.com/alexadam/repo-backup
Очень простое и рабочее решение.

Я всё своё храню в Gitlab. Сходил в настройки, выдал токен с разрешениями на чтение api и репозиториев. И использовал его в скрипте:

#!/bin/sh

dirname=gitlab-backup-$(date "+%Y-%m-%d-%H-%M-%S")
mkdir "$dirname"
cd $dirname

privateToken=YOUR_ACCESS_TOKEN
userName=YOUR_GITLAB_USERNAME

curl --header "Private-Token: $privateToken" \
"https://gitlab.com/api/v4/users/$userName/projects" \
| jq -r '.[] | .id, .name' \
| while IFS= read projectId; read projectName; do
curl --header "Private-Token: $privateToken" \
"https://gitlab.com/api/v4/projects/$projectId/repository/archive.zip" \
--output $projectName.zip
done

echo Done! All files downloaded here: $(pwd)

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

Я до этого git clone делал по списку. Подом думаю, что я ерундой страдаю. В итоге забрал себе этот скрипт, который работает в разы быстрее и проще.

#backup #git #devops
​​Мне посоветовали посмотреть на почтовый сервер Axigen Mail Server, про который я вообще ни разу не слышал. С интересом изучил его, но быстро разочаровался. Это коммерческий продукт с очень ограниченной бесплатной версией: 5 доменов, 5 пользователей, 5 групп. С такими ограничениями этот сервер подходит только для личного использования.

Тем не менее, сервер мне понравился. Разворачивается он очень просто и быстро. Для запуска есть всё, что только можно: deb и rpm пакеты, docker образ, образ VM для VMWare и VirtualBox, Helm чарт для k8s, установщик для Windows.

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

# docker run --name=axigen -dt -v ~/axigen_var:/axigen/var \
-p 443:443 -p 9443:9443 \
-p 993:993 -p 995:995 \
-p 25:25 -p 465:465 \
-p 9000:9000 -p 7000:7000 axigen/axigen

Функционал типичный для личного органайзера:
почта
календарь
адресная книга
планировщик дел
заметки

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

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

Сайт / Demo

#mailserver #заметки
​​Вы знаете, как узнать, кто и насколько активно использует swap в Linux? Можно использовать для этого top, там можно вывести отдельную колонку со swap. Для этого запустите top, нажмите f и выберите колонку со swap, которой по умолчанию нет в отображении. Насколько я слышал, это не совсем корректный способ, поэтому, к примеру, в htop эту колонку вообще убрали, чтобы не вводить людей в заблуждение.

Самый надёжный способ узнать, сколько процесс занимает места в swap, проверить /proc/$PID/smaps или /proc/$PID/status. Первая метрика будет самая точная, но там нужно будет вручную вычислить суммарный объём по отдельным кусочкам используемой памяти. Вторая метрика сразу идёт суммой.

В сети много различных скриптов, которые вычисляют суммарный объем памяти в swap для процессов и выводят его в различном виде. Вот наиболее простой и короткий:

#!/bin/bash
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`
do
PID=`echo $DIR | cut -d / -f 3`
PROGNAME=`ps -p $PID -o comm --no-headers`
for SWAP in `grep VmSwap $DIR/status 2>/dev/null | awk '{ print $2 }'`
do
let SUM=$SUM+$SWAP
done
if (( $SUM > 0 )); then
echo "PID=$PID swapped $SUM KB ($PROGNAME)"
fi
let OVERALL=$OVERALL+$SUM
SUM=0
done
echo "Overall swap used: $OVERALL KB"

Здесь просто выводятся значения метрики VmSwap из /proc/$PID/status. А тут пример скрипта, где суммируются значения для swap из /proc/$PID/smaps и далее сортируются от самого большого потребителя к наименьшему. Не стал показывать его, потому что он значительно длиннее. Главное, что идею вы поняли. Наколхозить скрипт можно и самому так, как тебе больше нравится.

Можно по-быстрому в консоли посмотреть:
# for file in /proc/*/status ; \
do awk '/VmSwap|Name/{printf $2 " " $3} END { print ""}' \
$file; done | sort -k 2 -n -r | less

#linux #script #perfomance
Немного юмора в пятницу. Диалоги клиентов и заказчиков.

- На каком языке лучше делать сайт интернет-магазина? Ruby, PHP, Python?
- А вы сделайте так, что бы можно было выбрать язык.
===
- Как вы можете рассуждать о невозможности, если даже не пробовали.
===
- Вы профессионал, вот вам деньги, покажите как правильно.
- Вот так правильно.
- Я не согласен.
===
- Вы делаете сайты?
- Да. 
- Сделайте тогда нам сайт с зеркальным фоном, чтобы клиент видел своё отражение.
===
Работаю в сфере дизайна уже 23 года. Мой начальник однажды сказал:
- Смешай два цвета пигмента, чтобы получить жёлтый.*
- Какие два цвета мне использовать?
- Ты эксперт, а не я, вот и думай.
*жёлтый — базовый цвет, как красный и синий, их нельзя получить смешиванием.

Если кто не знает, это комментарии к видео:
The Expert (Русский дубляж)
Оригинал на английском:
The Expert (Short Comedy Sketch)
Рекомендую посмотреть, если ещё не видели. Это пародия на современный корпоративный рабочий процесс.

После просмотра роликов, вы поймёте и вот это:

- Что нам мешает скинуть вниз стекло с 10 этажа при этом не разбив его?
- Физика.
- Просто игнорируйте её.

#юмор