ServerAdmin.ru
26.3K subscribers
188 photos
24 videos
8 files
2.44K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Делюсь с вами отличным youtube каналом на тему системного администрирования и devops - Unix way.

https://www.youtube.com/channel/UCgY050JAKtaew3IEgGW1qSQ

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

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

Пример отличной серии роликов на тему Jenkins:

Система автоматизации Jenkins. Часть 1 (установка, базовые понятия)
Система автоматизации Jenkins. Часть 2 (Jenkins Jobs Builder, простое ci/cd)
Система автоматизации Jenkins. Часть 3 (более сложные ci/cd)

Так же там хороший цикл про Kubernetes, PostgreSQL и некоторые общие инструменты из системного администрирования Linux.

#видео #обучение
Очередная тематическая инди игра с айтишной тематикой - Hack 'n' Slash.

https://store.steampowered.com/app/246070/Hack_n_Slash/

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

Обзор игры - https://www.youtube.com/watch?v=wOFhChsT1mg

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

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

Решил забрать себе в закладки и попробовать поиграть с сыном, когда чуть подрастёт (7 лет сейчас). Пока он только смотрит, как папа в Герои Меча и Магии 3 играет :)

Еще немного отзывов об игре:

Вау. Игра, однозначно, не для всех.
Это как искать баг в чужом коде (коде с кучей переходов goto, к тому же). Если вы хотя бы раз испытывали восторг, когда после долгих стараний наконец вам удалось заставить заработать программу так, как надо, то вы сможете получить удовольствие, проведя пару часов за этой игрой (она очень короткая).

Странная игра. Должна понравится любителям ArtMoney. Т.е. по сути эта игра со встроенной програмой для взлома ее же самой. Интересная концепция.

Вы играете в скрипты? Все любят играть в скрипты. Поэтому мы сделали для вас больше скриптов. Но всех бесят кривые скрипты. поэтому вы можете ковырять их кривыми руками прямо из игры. И даже иногда не умирать от этого. 

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

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

В один из дней интернет пропал капитально и в ночь ушли на резервном. А ночью регулярно делаются бэкапы, которые я как раз настраивал. Трафика было порядка 20 Гб. Утром мне сотрудник оттуда пишет, что бэкапов отправили на 65 т.р. по текущему тарифу. Сам я ни за инетом, ни за тарифами и оплатой не слежу и не в курсе дел, так что даже не подумал о том, что их нужно отключить. Мне важно, чтобы бэкапы выполнялись и были рабочие.

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

В качестве решения проблемы попросили перевести задним числом эту симку на самый дорогой безлимитный тариф (1300 р. в месяц) и сделать перерасчёт по нему. Пообещали, что в последствии будем использовать его. Оператор пошел навстречу и сделал перерасчёт. На ровном месте сэкономили 63 т.р.

Лично для меня всё это неудивительно, так как я постоянно сталкиваюсь с подобными ситуациями и всегда торгуюсь, если вижу шансы на снижение оплаты. Главное всё составить и описать грамотно, чтобы тебе пошли навстречу. Думаю, если бы просто попросили отменить этот счёт, потому что он неадекватно большой, ничего бы не вышло. А так описали ситуацию, намекнули на возможность (не пригрозили, так как разрывать договор не хотелось и не планировалось) разрыва договора, предложили выход из ситуации. Тому, кто принимает решение, не пришлось ничего додумывать и размышлять на тему того, как поступить. Ему достаточно было просто согласиться. Минимум усилий.

У вас были истории, где вы влетали на большие незапланированные платежи? Помню историю Василия Озерова из Rebrain, где он по ошибке переключил офис на резервный инет по лимитному тарифу и получил счёт на 2-3 млн. рублей. Они тоже разрулили ситуацию и не платили полный счёт.
​​Вчера познакомился с любопытной утилитой для мониторинга - Monika. Такое душевное название 😄 Автор объясняет, что это от индонезийского "Monitoring Berkala", что переводится как "periodic monitoring". Странное у него представление о сокращениях. Нам, потомкам советский людей, такое трудно понять.

https://github.com/hyperjumptech/monika
https://monika.hyperjump.tech/overview

Автор не поленился и расписал, зачем он придумал еще одну утилиту для мониторинга. Во второй ссылке подробно описано в разделах Motivation и Not just another tool.

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

Monika написана под node.js, так что без проблем запускается либо через ноду, либо в докере, примерно так:

docker run -v ${PWD}/monika.json:/config/monika.json hyperjump/monika:latest

Конфиг тоже очень простой и наглядный. Пример проверки с отправкой оповещения по smtp.

 {
  "notifications": [
   {
    "id": "unique-id-smtp",
    "type": "smtp",
    "data": {
     "recipients": ["YOUR_EMAIL_ADDRESS_HERE"],
     "hostname": "smtp.gmail.com",
     "port": 587,
     "username": "YOUR_GMAIL_ACCOUNT",
     "password": "YOUR_GMAIL_PASSWORD_OR_APP_PASSWORD"
    }
   }
  ],
  "probes": [
   {
    "id": "1",
    "name": "Monika Landing Page",
    "description": "Landing page of awesome Monika",
    "interval": 10,
    "requests": [
     {
      "url": "https://hyperjumptech.github.io/monika",
      "timeout": 7000
     }
    ],
    "alerts": ["status-not-2xx"]
   }
  ]
 }

Оповещения поддерживаются во все популярные направления - smtp, slack, telegram, webhook, whatsapp, discord и т.д. У утилиты полноценная и понятная документация. Выглядит добротным и качественным проектом.

#мониторинг
​​Если вы всё еще пользуетесь rss читалками, то держите полезную программу, которая превращает различные потоки информации в rss ленты. RSS формат что-то в последнее время не особо популярен, хотя мне читалки на его основе кажутся удобными.

RSSHub - https://docs.rsshub.app/en/ Ставится в докере:

docker run -d --name rsshub -p 1200:1200 diygod/rsshub

Сразу же можно пользоваться. Покажу на примере своего канала:

http://172.29.128.115:1200/telegram/channel/srv_admin/

IP надо на свой заменить :) В браузере получите rss ленту моих записей в канале. RSSHub поддерживает огромное количество различных источников информации. Вот еще один пример с сайтом на wordpress:

http://172.29.128.115:1200/blogs/wordpress/serveradmin.ru/

Полный список поддерживаемых источников можно в документации посмотреть. Идея такая, что вы просто после адреса своего инстанса указываете путь к тому или иному потоку и адресу источника. В моих примерах это /telegram/ и /blog/wordpress/.

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

Еще пользуетесь RSS лентами или забили?

#selfhosted
В прошлую пятницу захотелось поэкспериментировать и установить себе систему macOS. Зачем мне это нужно - не знаю. Просто любопытство. Хотелось посмотреть на современную систему от Apple. Я ей немного пользовался несколько лет назад, но вообще не понравилось. Windows в качестве рабочей и личной системы полностью устраивает.

Тем не менее, я установил macOS на виртуальную машину Proxmox. Пришлось немного повозиться и разобраться, так как готовой рабочей инструкции не нашлось. Так как информация на текущий момент получилась уникальной и полезной, решил сразу оформить в статью, чтобы можно было повторить простым копипастом.

В общем, вот статья - https://serveradmin.ru/ustanovka-macos-v-proxmox/, пользуйтесь. Может кто-то найдет практическое применение подобной установки. Поделитесь в комментариях, если видите какую-то практическую пользу от этой системы в VM. Так как нет видеокарты, сам интерфейс очень тормозит и пользоваться некомфортно. Чтобы было нормально, надо пробрасывать в виртуалку видеокарту, но я уже не стал так заморачиваться.

#proxmox #статья #macos
​​На днях в комментариях к статье по обновлению Debian 10 до 11 отписался человек, у которого отключился ноут в середине обновления. В итоге система умерла и сама загружаться не хотела.

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

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

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

Ровно это и помогло в данном случае с Debian. Удалось загрузиться на предыдущем ядре и успешно завершить обновление. Система Linux довольно живуча. У меня еще ни разу не было ситуации, чтобы я не смог её восстановить в случае каких-то проблем.

#ошибка
​​Продолжаем тему чатов. На этот раз рассмотрим Mattermost. Это один из клонов Slack, который на момент своего появления был очень на него похож. Сейчас уже не знаю, так как подробно не слежу ни за Mattermost, ни за Slack. Проект open source, есть возможность развернуть на своих серверах. За отдельную плату предоставляется расширенный функционал, без которого зачастую очень грустно эксплуатировать Mattermost.

https://github.com/mattermost/mattermost-server
https://github.com/mattermost/desktop
https://mattermost.com/

Примерно 4 года назад я изучал и внедрял Mattermost, после этого написал статью. Понятное дело, что она устарела, но представление о том, что из себя представляет этот чат, получить можно. Очень хочется всё это дело с чатами обновить, но пока нет возможности. MM я внедрил в двух компаниях. В одной прижилась и заменила Skype. Из другой убрали, так как оказалось, что отдельный чат-сервер не нужен и обошлись в итоге публичными мессенджерами.

В отличие от Zulip, в Mattermost интеграция Active Directory / LDAP есть только в платной версии, так же как и система управления правами и доступами. Без этого управлять чатами для коллектива хотя бы в 30-50 человек становится трудно и неудобно.

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

MM часто сравнивают с Rocket Chat. В момент появления они были очень похожи, но со временем пути разошлись. В Rocket Chat больше функционала в бесплатной версии. Но при этом под капотом в серверной части JavaScript (Meteor framework), а в MM - Go и React, что выглядит предпочтительнее.

Последнее время я вижу в отзывах при их сравнении, что отдают предпочтение именно Rocket Chat. Следующая заметка будет про него. Думаю, это связано с с тем, что MM в первую очередь метит в корпоративный, платный сегмент, предоставляя услуги значительно дешевле, чем Slack. В связи с этим функционал бесплатной версии сильно урезан.

Кстати, проект RockyLinux выбрал платформу Mattermost для своего общения.

#chat #selfhosted
​​Поставил себе вчера на тест любопытную систему автоматизации управления сетевыми устройствами - eNMS.

https://github.com/eNMS-automation/eNMS
https://www.enms.io/

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

К устройствам можно подключаться по ssh прямо через веб интерфейс. Можно создавать различные задачи в виде ansible плейбуков, bash скриптов или каких-то еще настроек. Можно создавать так называемые workflow в виде последовательности задач с различными переходами в зависимости от статусов выполненных предыдущих заданий. Можно добавлять регулярные задачи по расписанию. Всё это может быть привязано и запущено на конкретных устройствах.

В общем, там много всего для автоматизации. Есть встроенная система оповещений и контроля доступа на базе пользователей, групп и ролей. Ставится всё просто. Я на Ubuntu запустил следующим образом:

# apt install git python3-pip
# git clone https://github.com/afourmy/eNMS.git
# cd eNMS
# pip3 install -r build/requirements/requirements.txt
# export FLASK_APP=app.py
# flask run --host=0.0.0.0

И дальше зашел http://10.20.1.16:5000/, учётка admin / admin.
В системе уже будет demo набор данных, так что можно сразу оценить возможности и реализацию.

У проекта неплохая документация - https://enms.readthedocs.io/en/develop/base/features.html Но это не та система, которую можно с пол тычка освоить, надо разбираться. В рунете вообще не нашёл по ней информации. В гугле только общие слова. На вид система не плоха, с учётом того, что она полностью бесплатная.

#управление #мониторинг
​​Решил немного навести справки по Rocky Linux. Давно не слышал новостей об этом проекте. Видел уже кое-где имя этого дистрибутива в описаниях поддерживаемых систем. Мне кажется, что именно он станет приемником Centos. Думаю, что все свои статьи в тематике Centos буду писать про Rocky Linux.

На официальном сайте появился раздел с документацией, где уже есть любопытные статьи. Например, как установить rockylinux в wsl. А еще там есть информация, как отключить firewalld и установить iptables. У меня прям потеплело в душе, когда это увидел. Я делаю ровно то же самое почти на всех rpm-based дистрибутивах. Предпочитаю настраивать именно iptables. За это часто получаю критику, но тверд в своих предпочтениях 😎.

У проекта сформировался командный состав с должностями и персоналиями. Ознакомиться можно по ссылке. Проповедуется максимальная открытость и вовлеченность сообщества. Еще есть какие-то вакантные места и подбираются желающие их занять.

Уже сейчас RL можно запустить на Raspberri Pi. Подробности установки есть в wiki. Там же есть ссылки на все чат группы, которые использует проект. Общение происходит в облачной версии Mattermost. Еще на старте было объявлено, что Slack не подходит при активных темпах роста сообщества. Слишком высокая стоимость выходит. Подробности этого решения можно посмотреть на форуме. В качестве альтернативы Slack рассматривались: Mattermost, Rocket.chat, Matrix, Discord, Zulip.

Из явных проблем, не решённых до сих пор, является невозможность установить RL c UEFI и secure boot. Судя по недавнему сообщению на форуме, проблема не решена до сих пор, что намекает на низкие темпы разработки и правки багов. Хотелось бы ошибаться. Мне кажется, в интересах всего Linux сообщества наличие одного явного лидера в среде бесплатных дистрибутивов уровня enterprise, каковым являлся Centos до недавнего времени.

#rockylinux
​​У меня было несколько заметок по Mysql клиентам, которые можно установить и использовать для работы с базами данных. Речь шла как о приложениях для PC, так и php скриптах. 

Adminer - простенький php скрипт, состоящий из одного файла.
HeidiSQL - лёгкая портабельная программа для pc. Поддерживает mysql / postgresql / mssql.
Mysql workbench - монструозная многофункциональная программа для PC от самого проекта mysql.

Данный список приложений для PC выглядит не полным без Dbeaver, которая особенно хороша для PostgreSQL. Часто видел рекомендации использовать именно её для работы с этой БД.

https://github.com/dbeaver/dbeaver
https://dbeaver.com/

Dbeaver представлена не только в виде бесплатной open source версии, но и различных платных редакций. Подробности на сайте можно посмотреть. Если вы не разработчик, то бесплатной версии хватит за глаза. Список поддерживаемых БД солидный:

Mysql / MariaDB
PostgreSQL
MSSQL
Oracle
DB2, Firebird, MongoDB, ClickHouse, Sqlite, СУБД ЛИНТЕР!!! и другие.

Полный список поддерживаемых БД смотрите на сайте. Там, по-моему, присутствуют все существующие современные базы данных. Dbeaver есть под Windows, Linux, Macos. Под винду есть портированная версия. Написано всё это на Java, так что про быстродействие промолчу.

#mysql #программа
​​Вы знали, что в rpm-based дистрибутивах есть утилита, которая определяет, нужна серверу в данный момент перезагрузка или нет? Она живет в базовом репозитории (baseos) и называется needs-restarting. Входит в состав пакета yum-utils.

# yum install yum-utils

Проверяем, нужна ли перезагрузка:

# needs-restarting -r
No core libraries or services have been updated since boot-up.
Reboot should not be necessary.

После установки обновлений вывод меняется:

# needs-restarting -r
Core libraries or services have been updated:
 kernel -> 3.10.0-1160.42.2.el7

Reboot is required to ensure that your system benefits from these updates.

More information:
https://access.redhat.com/solutions/27943

Debian и Ubuntu эту информацию выдают обычно в приветствии после ssh подключения. Не знаю, на основе чего там реализован этот функционал, не разбирался.

#terminal #утилита
Бодренький видосик на тему того, как разработчик наблюдает за тестированием своего продукта тестировщиками (qa). Обыграна стандартная ситуация, как видит свой продукт разработчик и все остальные.

Ролик в первую очередь интересен актерской игрой и мимикой героини. Мне понравился, делюсь с вами.

https://www.youtube.com/watch?v=baY3SaIhfl0

#юмор #видео
​​Когда работаешь в консоли Linux, постоянно приходится использовать команду systemctl для управления службами systemd. Решил собрать наиболее популярные команды в шпаргалку, чтобы удобно было сохранить и пользоваться.

Запустить службу. После внедрения systemd постоянно путался и сначала писал имя службы, а потом команду start. Сейчас уже переучился.
systemctl start mysql

Добавить в автозагрузку:
systemctl enable nginx

Добавить сервис в автозагрузку и сразу запустить. Заменяет две предыдущие команды. Я не так давно узнал и стал использовать именно объединённую команду:
systemctl enable --now mariadb

Перечитать настройки служб. Обязательно нужно выполнить после того, как изменили какие-то настройки юнитов systemd.
systemctl daemon-reload

Список всех unit-files, а так же их состояний:
systemctl list-unit-files
Список выше можно ограничить по типам:
systemctl -t service
systemctl -t timer
systemctl -t mount

Посмотреть статус конкретной службы:
systemctl | grep ssh

Проверить статус автозапуска:
systemctl is-enabled nginx

Посмотреть конфигурацию юнита:
systemctl cat sshd

Перечислил основное, с чем самому приходится сталкиваться. Если пропустил какую-то популярную и полезную команду, дайте знать, добавлю в список. Про stop, restart, reload, status не стал писать. Очевидные команды. Есть еще is-active и try-restart, но на практике я их вообще не использую.

Добавлю еще, что с помощью systemctl можно перезагружать и завершать работу системы, но лично я по старинке использую старые команды reboot и shutdown.
systemctl poweroff
systemctl reboot

#terminal
Освойте востребованные ИТ-профессии в Университете Иннополис со скидкой 50%.

Набор проводится по направлениям DevOps и разработка на Android. Старт - 15 сентября.

Университет Иннополис запускает онлайн-курсы в рамках федерального проекта «Цифровые профессии». Государство оплачивает 50% стоимости обучения.

Онлайн-курсы идут 3,5 месяца с поддержкой преподавателя и наставника, опытных ИТ-специалистов. Выпускникам выдается диплом о профессиональной переподготовке.

Программа курса "Разработка мобильных приложений на базе Android":

— Языки программирования Java, Kotlin
— Android SDK
— Серверное администрирование
— Утилитарные библиотеки и сборщики
— Итоговый проект для портфолио

Программа курса "Linux и инструменты DevOps":

— Linux-системы
— DevOps-инструменты
— язык программирования Python
— сетевая диагностика и DNS
— настройка серверов и сервисов

Если вы начинающий разработчик, хотите профессионально прокачаться, то выбирайте понравившийся курс!
⠀⠀
По всем вопросам пишите 👉 @IT_Innopolis

#реклама
​​Все слышали про очень известный в прошлом сервис Hamachi, который потом переименовали в LogMeIn? Когда он только появился, это был прорыв. Можно было через интернет объединиться в локальную сеть и играть в сетевые игрушки, которые работали только в локальной сети.

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

Клиенты есть под все современные платформы. Я для теста установил клиент на Windows и Centos 8. Они оба получили по новому сетевому интерфейсу с серым ip. По этим ip адресам они видят друг друга. Настройка максимально простая и удобная. В Windows просто ставишь клиент и авторизуешься своей учётной записью. В Centos было интереснее. Подключаешь репозиторий и ставишь консольный клиент. После установки получаешь ссылку, которую нужно открыть в браузере. После этого сервер тоже подключился к виртуальной локальной сети.

Сам сервис платный, но есть тариф Free, который позволяет одному пользователю подключить до 20-ти своих устройств. Для личного использования этого тарифа хватает за глаза. В платных тарифах куча дополнительных возможностей - управление сетями, разные авторизации и т.д.

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

https://tailscale.com

#vpn #tailscale
​​Небольшая шпаргалка по настройкам nginx для повышения безопасности веб сервера.

📌 Отключите server_tokens, чтобы nginx не показывал свою версию.
server_tokens off;

📌 Отключите старые версии tls и ssl. Сейчас нормально поддерживать только tls 1.2 и 1.3.
ssl_protocols TLSv1.2 TLSv1.3;
Также уделите внимание настройке ciphers, убрав те, что содержат уязвимости. Помочь в этом может сервис SSL Configuration Generator.

📌 Если есть возможность, ограничьте HTTP методы, убрав те, что вам точно не нужны.
location / {
limit_except GET HEAD POST { deny all; }
}

📌 Установите модуль ModSecurity.
https://github.com/SpiderLabs/ModSecurity
Хорошее видео по установке и настройке этого модуля:
https://www.youtube.com/watch?v=XzeO2EL4sLU

📌 Используйте заголовок X-Frame-Options. Это позволит защититься от click-jacking атак, явно указав, что страница может загружаться в том же frame, что и сам сайт.
add_header X-Frame-Options "SAMEORIGIN";

📌 Используйте заголовок Content-Security-Policy. Это позволит защититься от XSS атак.
add_header Content-Security-Policy "default-src 'self';" always;
Это только пример! Подобрать настройки политики стоит самостоятельно в каждом конкретном случае. Если нет желания разбираться, не настраивайте вообще. Еще информация по этой политике и nginx тут.

И не забывайте, что есть отличный сервис по генерации конфигов nginx на все случаи жизни. Я тестировал его, работает нормально, можно пользоваться.

Свой итоговый конфиг можно проверить на ошибки с помощью утилиты gixy, о которой я тоже уже писал ранее.

#nginx #webserver
DevSecOps Wine

В 2017 году происходит масштабная утечка данных Equifax в следствие отсутствии проверки SCA в процессе разработки.

В 2019 году уязвимость, связанная с runC, подвергает опасности тысячи кластеров Kubernetes.

В 2020 осуществляется серия атак на API Docker со стороны группировки TeamTNT с помощью легитимных образов Ubuntu и Weave Scope.

В 2021 уязвимость Dependency Confusion позволила внедрить вредоносный пакет в цепочки поставок Microsoft, Apple и сотни других компаний.  

Все это является следствием упущений в обеспечении DevSecOps

DevSecOps Wine - канал про выстраивание безопасной разработки и AppSec. Автор поднимает темы безопасности Kubernetes, Docker, облаков (AWS, GCP, Azure), а тажке того, что касается современных SAST, DAST, SCA и других средств, встраиваемых в CI/CD. Все это разбавляется темами Vault и Service Mesh.

Также обсудить тему devsecops можно в чате.

#реклама
​​Вчера потыкал любопытную панельку, которая умеет красиво отображать SLO (Service Level Objectives). Это примерно то же самое, что и SLA, которое все знают, но только для внутреннего пользования. То есть не обязательства перед другими, как в SLA, а внутренний показатель качества работы сервиса.

Речь пойдёт про SLO tracker. Это небольшая панелька для отображения в %% и минутах вашего SLO.

https://github.com/roshan8/slo-tracker
https://slotracker.com/

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

SLO tracker имеет несколько готовых интеграций с Prometheus, NewRelic, Pingdom, Datatog. Для них в системе есть ссылка для вебхука, который надо повесить на нужное событие, за которым будете следить. Например, доступность сайта должна быть 99,9 в год. Значит можно поваляться примерно 526 минут за это время. Добавляем SLO в панель, вешаем вебхук в систему мониторинга на недоступность сайта и следим за SLO. Панель будет показывать, сколько уже повалялись в этом году и сколько еще можно провести в этом же состоянии.

Если нет системы мониторинга или готовой интеграции, события и их длительность можно руками добавлять через веб интерфейс. Самих метрик для SLO может быть много. Для просмотра их всех разом, есть отдельный дашборд. Можно завести подобную панель для контроля за аутсорсерами. Заносить туда руками простой по их вине, потом предъявлять.

Чтобы все это добро потрогать, достаточно запустить в докере:

git clone https://github.com/roshan8/slo-tracker
cd slo-tracker
docker-compose up --build -d

Демо потыкать можно тут - http://demo.slotracker.com:3000/

Это было для простых парней поиграться с панельками. Если у вас всё серьезно, вы devops и вам реально нужен хороший инстрeмент для контроля SLO, то смотрите в эту сторону - Sloth:

https://github.com/slok/sloth
https://sloth.dev/

#мониторинг
​​Продолжаю тему чатов. В этот раз рассмотрю любимый многими Rocket.Chat. Я его никуда не внедрял и скорее всего не буду. Чтобы освежить свои впечатления, решил установить и пощупать последнюю версию. Сначала думал статью написать, но по факту я нашел полностью рабочую инструкцию, по которой за 15 минут всё настроил. Не вижу смысла повторять.

Как я уже упоминал ранее, Rocket.Chat это JavaScript, а приложение для общения на Electron. Для меня это приговор. Мне совершенно не нравится эта связка, потому что она тормозная. Это самый существенный минус данного чата. Ставить приложение на компьютер нет никакого смысла. Там под капотом тот же Chromium. Проще всё в одном браузере открывать, нежели плодить их в системе.

К сожалению, сейчас очень много приложений написаны на Electron и тормозят, поэтому однозначно давать минус рокет чату не стоит за это. Но в связке с JavaScript получается минус в квадрате. Дальше расскажу о плюсах. Их у Rocket.Chat хватает. Стоит отдать ему должное.

Рокет предлагает самый большой функционал в бесплатной версии среди всех известных мне чатов. Тут не нужны никакие компромиссы. Есть, пожалуй, всё, что надо от чата. Что мне больше всего понравилось - расширенное управление правами и доступами. Можно настроить практически всё, что угодно и как угодно. В mattermost этого вообще нет в бесплатной версии.

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

Подвожу итог. Если подбираете себе selfhosted чат, пробовать Rocket.Chat однозначно надо. Если вас не смущают технологии, на которых он построен, и устраивает быстродействие и работа клиента, то внедряйте и пользуйтесь. Продукт зрелый, известный, много кто пользуется. Каких-то явных проблем с ним нет.

https://rocket.chat/
https://github.com/RocketChat

Помимо своего сервера, есть возможность покупать чат по подписке как saas сервис. Цены раза в 3 ниже, чем за Slack. Вместо картинки с чатом, покажу вам лучше админку и настройки, которые там есть.

#chat #selfhosted
​​На прошлой неделе в официальном блоге Zabbix прочитал статью "5 основных причин использовать Zabbix для мониторинга сети". Решил тезисно перевести её и сохранить, чтобы можно было показывать тем, кто будет спрашивать "Почему Zabbix?" Примерно для этого же я написал в свое время статью сравнение Zabbix vs Prometheus. Теперь всегда даю ссылку, если меня кто-то спрашивает, зачем еще нужен Zabbix, если есть Prom. Одно другому не мешает.

1️⃣ Бесплатное решение с открытым исходным кодом. Пояснять тут нечего. У Zabbix нет платной версии. В open source всегда доступен полнофункциональный продукт. Продаётся только тех. поддержка, доработки, обучение и сертификация.

2️⃣ Обширный функционал. С помощью Zabbix можно реализовать абсолютно любые проверки. Никаких компромиссов и ограничений. Доступен как агентный, так и безагентный мониторинг, snmp, ipmi, modbus и другие протоколы. Стандартные механизмы обработки получаемых данных дополняются постобработкой с помощью javascript. Для триггеров тоже нет практически никаких ограничений. Свой внутренний синтаксис для их написания позволяет реализовать практически любую логику. Доступно множество готовых интеграций с системами оповещений. Есть возможность настроить многоступенчатые, гибкие планы рассылок уведомлений с условиями и зависимостями.

3️⃣ Все данные хранятся только у вас. Zabbix позволяет выполнять self-hosted установку на различные устройства. Все ваши данные всегда под вашим контролем. Вы сами выбираете, где, как и сколько их хранить, а так же откуда собирать. Никакой зависимости от сторонних сервисов как в случае с saas мониторингом (отсылка к New Relic наверное).

4️⃣ Хороший баланс функционала и простоты настройки. Стандартные настройки и шаблоны закрывают базовые потребности в мониторинге. Но при этом нет никаких ограничений в расширении функционала путём создания своих собственных шаблонов. Для этого есть все инструменты. Также Zabbix хорошо масштабируется на работу множества пользователей с ним без усложнения процедуры управления всем этим хозяйством.

5️⃣ Коммерческие услуги. Помимо помощи от большого open source сообщества вокруг Zabbix, у вас всегда есть возможность получить профессиональную техническую поддержку. И этим пользуются многие крупные коммерческие организации. Так же у Zabbix есть своя программа обучения и сертификации.

Видео на английском по этой же теме - https://www.youtube.com/watch?v=R525x4O89Qw Много конкретных примеров веб интерфейса на настроенном сервере. Если смотреть в Яндекс.Браузере, будет доступен синхронный перевод на русский язык (забавно послушать, docker image - образ доктора 😂).

#zabbix #мониторинг