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

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Решил познакомиться с ещё одним документом от CIS по рекомендациям для Debian 11. Там 874 страницы 😱. Делаю очень краткую выжимку основного, что может пригодиться в среднестатистическом сервере. Реализация рекомендаций подробно описана в самом документе.

🔹Отключите поддержку неиспользуемых файловых систем (cramfs, squashfs, udf и т.д.). Достаточно отключить соответствующие модули ядра.

🔹/tmp и /var/tmp лучше вынести в отдельный раздел со своими параметрами. Например, noexec, nosuid, nodev и т.д. В идеале, отдельный раздел и настройки должны быть ещё и у /var/log, /home, /dev/shm.

🔹Отключите автомонтирование устройств через autofs. Проверка:
# systemctl is-enabled autofs

🔹Отслеживайте изменения в системных файлах, например с помощью AIDE (Advanced Intrusion Detection Environment):
# apt install aide aide-common

🔹По возможности включайте, настраивайте (и страдайте 👹) AppArmor.

🔹Настройте синхронизацию времени какой-то одной службой (chrony, ntp или  systemd-timesyncd).

🔹Проверьте все открытые порты и отключите всё ненужное:
# ss -tulnp

🔹Отключите неиспользуемые сетевые протоколы. Например, ipv6.

🔹Настройте Firewall. Запретите все соединения, кроме разрешённых явно (нормально закрытый файрвол). Не забудьте про все используемые протоколы.

🔹Настройте аудит доступа, изменения, удаления системных файлов с помощью auditctl.
# apt install auditctl
Убедитесь, что доступ к логам сервиса ограничен.

🔹Настройте логирование действий, выполняемых через sudo. Запретите использование su, если пользуетесь sudo.

🔹По возможности настройте отправку системных логов куда-то вовне.

🔹Отключите возможность подключаться пользователю root по ssh, если хотите отслеживать активность пользователей под их индивидуальными учётными записями.

Сам документ — CIS Debian Linux 11 Benchmark. Напомню, что у меня есть заметка со списком действий, которые я обычно выполняю при настройке типового сервера под Linux. Надо будет её переработать с учётом этих рекомендаций. Кое-что туда точно можно добавить.

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

#cis #security #linux
Забавный вчера диалог в комментариях ВК вышел. Интересно, кто-то встретил свою судьбу через профессию с помощью настройки дома кому-то компа или роутера?

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

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

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

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

#мем
​​Для тех, кто впервые настраивает веб сервер, бывает странно видеть названия imap папок вида:
.&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-
.&BBoEPgRABDcEOAQ9BDA-
.&BCcENQRABD0EPgQyBDgEOgQ4-
Создаётся впечатление, что с сервером какие-то проблемы.

На самом деле это не проблема. Почему-то исторически сложилось, что названия imap директорий хранятся в кодировке UTF-7. Для англоязычных названий проблем нет, а вот кириллические понять невозможно.

Вы можете воспользоваться любым преобразователем кодировок либо в виде веб сервиса, либо прямо в консоли с помощью iconv -f UTF7 -t UTF8. Ещё проще скопировать на почтовый сервер готовый скрипт. И пользоваться им, когда понадобится. Текст можете проверить, там ничего особенного.

# git clone https://github.com/Yar4e/lsmaildir
# cd lsmaildir
# chmod u+x lsmaildir
# ./lsmaildir /opt/tegu/mail/zeroxzed.ru/vladimir/.maildir
.Отправленные   .&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-
.Архив          .&BBAEQARFBDgEMg-
.Корзина        .&BBoEPgRABDcEOAQ9BDA-
.Черновики      .&BCcENQRABD0EPgQyBDgEOgQ4-
.Спам           .&BCEEPwQwBDw-
cur             cur
new             new
tmp             tmp

#mailserver
​​У Dmitry Lambert, Head Of Customer Support Zabbix, в блоге вышло подробное видео на тему установки Zabbix 6.4:

Zabbix 6.4 Installation Guide: Comprehensive Tutorial for CentOS Stream with MySQL

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

В Zabbix есть параметр AllowUnsupportedDBVersions, который позволяет отключить проверку соответствия версии СУБД, если используется неподдерживаемая версия. В некоторых случаях работа на неподдерживаемой версии возможна, хоть и не рекомендована. Если у вас по какой-то причине нет возможности обновить СУБД, а более новая версия Zabbix Server не поддерживает её, можно воспользоваться этим параметром.

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

Zabbix agent item "agent.ping" on host "servername" failed: \
first network error, wait for 15 seconds
resuming Zabbix agent checks on host "servername": \
connection restored

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

Я проверил всё, что только можно. И на сервере, и на клиенте. Ничего не помогает. Стал вручную UDP пакеты с агента на сервер слать и заметил, что они иногда пропадают. Где-то по пути следования пакеты теряются. С агента улетают, на сервер не приходят. Как решить этот вопрос, я не знал. Пришлось подставить костыль. Сильно уменьшил таймаут ожидания на сервере и время повторной проверки отключившегося хоста:
Timeout=5
UnreachableDelay=5

Так хотя бы после первой сетевой проблемы, повторная проверка производится максимум через 10 секунд и хост снова возвращается на мониторинг. До этого по 15 секунд были значения и хост частенько мог отваливаться на время вплоть до минуты. Из-за этого все графики были рваные.

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

#zabbix
​​Когда просматривал материалы CIS по настройке операционных систем, отметил себе программу AIDE (Advanced Intrusion Detection Environment), про которую раньше не знал. Решил изучить.

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

Установить AIDE не сложно, так как эта программа есть в репозиториях популярных дистрибутивов.
# apt install aide

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

Будем наблюдать за изменением файлов сайта в директории /var/www/html. Отслеживать можно как содержимое файлов, так и атрибуты. Для этого переименовываем изначальный конфиг и делаем свой, где будет только то, что нам надо:

database_in=file:/var/lib/aide/aide.db
database_out=file:/var/lib/aide/aide.db.new
database_new=file:/var/lib/aide/aide.db.new
gzip_dbout=yes
report_summarize_changes=yes
report_grouped=yes
log_level=warning
report_level=changed_attributes
ALL = p+u+g+acl+sha256+ftype
/var/www/html ALL

Создаём базу данных о файлах:
# aideinit

В директории /var/lib/aide появятся два файла aide.db и aide.db.new. Теперь создадим новый файл в директории /var/www/html:
# touch /var/www/html/test.txt

Проверяем изменения с помощью aide:
# aide --check --config /etc/aide/aide.conf

В консоли увидите информацию о добавленном файле:
f+++++++++++++++++: /var/www/html/test.txt

Для дальнейших проверок, нужно текущий файл с базой данных сделать основным, обновив его перед этим:
# aide --update --config /etc/aide/aide.conf
# mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Теперь проверьте, как работает контроль за изменением владельца файлов. Измените владельца у файла и ещё раз запустите проверку:
# chown mail /var/www/html/test.txt
# aide --check --config /etc/aide/aide.conf
File: /var/www/html/test.txt
 Uid    : 0                | 8
Владелец файла с root (id 0) изменился на mail (id 8)

Подобные проверки оборачиваются в скрипты и добавляются в планировщик cron или systemd-timers. Базы данных в случае необходимости можно сохранять и оставлять на долгосрочное хранение, а не держать только прошлое и новое состояние.

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

#security #linux
​​Я осенью на скорую руку в доме сделал видеонаблюдение на базе камер Hikvision и бесплатного ПО от этой же компании. Сама программа не очень удобная, плюс больше не обновляется, так как более современные версии в бесплатной редакции имеют сильно урезанный функционал. Так что в любом случае со временем заменю это хозяйство на что-то более функциональное.

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

Вот ограничения бесплатной версии:
Максимальное количество IP-камер – 32 канала видео + аудио
Односерверная установка
Отсутствие какой-либо аналитики (это функционал платных редакций), но есть датчик движения

Как вы видите, ограничения очень условные для небольших и средних установок, где до 32-х камер, и где необходимо только видеонаблюдение. Ограничений на хранение архива нет. Для загородного дома идеально подходит. Умеет слать скриншоты с камеры в Telegram при работе программного датчика движения. Интеграция через vbs или node.js скрипты. Через них вообще очень широкие возможности для интеграции и выполнения каких-либо действий.

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

Всё это ставится и настраивается через обычный Windows установщик, так что не требует каких-то особых знаний. Интерфейс плюс-минус как у всех подобных программ. Сильно разбираться с настройкой не придётся, как у того же iVMS-4200 от Hikvision, с которым мне пришлось немного повозиться.

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

Сайт

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

В компании есть 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