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

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

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

Регистрация в РКН: https://vk.cc/cG1Urj
Download Telegram
​​Ранее я уже рассказывал про отличный open source проект по управлению удалёнными компьютерами через браузер - MeshCentral. Это реально удобное и функциональное решение, о котором многие отзываются положительно.

Существует проект Tactical RMM для мониторинга и управления компьютерами на базе Windows. Особенность его в том, что он интегрируется с MeshCentral и использует его в своей инфраструктуре для подключения к компьютерам. Получается очень функциональная и удобная связка на основе только open source продуктов.

Tactical RMM по закрываемым задачам похож на такие продукты как Spiceworks, Snipe-IT и подобные программы. Сюда можно было бы добавить glpi и itop, но всё же это более навороченные и сложные продукты, в отличие от Tactical RMM. Но зато интеграция с MeshCentral делает его очень удобным в ежедневной рутине по поддержке пользователей.

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

- подключаться к remote shell;
- выполнять удалённо скрипты;
- показывать логи машин;
- управлять службами, обновлениями;
- устанавливать софт через chocolatey;
- выполнять инвентаризацию железа и ПО;
- показывать основные метрики системы;
- выполнять проверки на тему работы какой-то службы, наличия свободного, места на дисках, загрузки CPU и RAM и т.д.;
- отправлять уведомления.

Установить Tactical RMM можно с помощью готового скрипта, который лежит в репозитории. Он всё поставит сам. В основе там Django, NodeJS, Postgresql, MongoDB. Скрипт всё это сам поставит и подготовит конфиги. Либо можно использовать готовый Docker контейнер. Всё это описано в документации.

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

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

Исходники - https://github.com/amidaware/tacticalrmm
Демо - https://demo.tacticalrmm.com/
Документация - https://docs.tacticalrmm.com/

#remote #управление #ITSM
👍68👎4
CDN с защитой от DDoS-атак с геораспределённой системой узлов от российского хостинг-провайдера DDoS-Guard.

Сегодня многие российские компании подвергаются массированным кибератакам и сталкиваются с замедлением работы сервисов.

Наше решение позволит снизить нагрузку на ваш веб-сервер, разгрузить канал, ускорить доставку контента и защитить ресурс от вредоносных атак независимо от их масштаба и длительности. Мы предлагаем: 

  • Ускорение загрузки страниц 
  • Защита на уровнях L3-L4 и L7
  • Прозрачное ценообразование
  • Высокий уровень производительности сети 
  • Точки присутствия по всему миру 
  • Продвинутая функциональность
  • Подробная статистика 
  • Гибкая система лимитов для исходящего трафика 
  • Отсутствие ограничения для полосы 

Узнать подробно о тарифах и подключить можно по ссылке: https://clck.ru/dZ9rk

#реклама
👍13👎10
​​На одном из чужих серверов, на котором пришлось выполнять некоторые работы, заметил новый для себя инструмент fail2web. Заинтересовался и решил посмотреть, что это такое. Это оказался web интерфейс для управления fail2ban. Так как последний я постоянно использую, решил посмотреть, как всё это выглядит.

Программа очень старая (8 лет назад написана и не развивается) и инфы по ней почти нет, кроме непосредственно репозиториев. У меня получилось разобраться и запустить. В целом, там ничего сложного.

Сначала ставим fail2rest. Это служба, которая взаимодействует с fail2ban. Написана на GO.
# dnf install golang git gcc nginx
# go get -v github.com/Sean-Der/fail2rest
# go install -v github.com/Sean-Der/fail2rest
В директории ~/go/bin будет бинарник fail2rest. Для его запуска нужно создать конфиг config.json с двумя параметрами:
{
 "Addr": "127.0.0.1:5000",
 "Fail2banSocket": "/var/run/fail2ban/fail2ban.sock"
}

После этого можно запустить fail2rest:
# fail2rest --config=config.json
Проверить работу можно отправив запрос на указанный адрес и порт:
# curl https://127.0.0.1:5000/global/ping
"pong"
Можно настроить запуск через systemd (поменяйте пути на свои):
[Unit]
Description=fail2ban REST server
Documentation=man:fail2rest(1)
ConditionPathExists=/etc/fail2rest.json
After=fail2ban.service

[Service]
ExecStart=/usr/bin/fail2rest -config=/etc/fail2rest.json

[Install]
WantedBy=multi-user.target

Теперь качаем веб интерфейс:
# git clone --depth=1 https://github.com/Sean-Der/fail2web.git /var/www/fail2web
# rm -rf /var/www/fail2web/.git
И настраиваем виртуальный хост apache или nginx. Я для простоты nginx взял:
server {
  listen    80;
  server_name YOUR_SERVER_NAME;
  auth_basic "Restricted";
  auth_basic_user_file /var/www/htpasswd;
  location / {
    root /var/www/fail2web;
  }
  location /api/ {
    proxy_pass     https://127.0.0.1:5000/;
    proxy_redirect   off;
  }
}

Не забудьте создать файл /var/www/htpasswd и добавить туда юзера. Ну и конечно желательно на HTTPS перейти, если реально будете использовать.

На этом собственно всё, можно заходить на настроенный виртуальный хост и управлять fail2ban. Сделано простенько, но функционально. Если реально постоянно какая-то движуха идёт с fail2ban, может быть полезно. Я нашёл всё то же самое, только на Docker, но уже не стал проверять.

Сразу подскажу тем, кто будет реально разбираться. Если видите в веб интерфейсе ошибку:
502 Bad Gateway - Couldn't contact fail2rest
Смотрите лог или настройки fail2ban. Например, если нет ни одного jail, будет эта ошибка. Если неправильно настроены action тоже будут ошибки. В общем, если есть какие-то проблемы с fail2ban, вы будете видеть ошибку соединения с fail2rest, что несколько сбивает с толку.

По сути эта заметка готовая инструкция. Других в интернете вообще нет, так что можно сохранить на память.

Исходники: https://github.com/Sean-Der/fail2rest
https://github.com/Sean-Der/fail2web
Обсуждение: https://www.reddit.com/r/linux/comments/294fn3/fail2web_a_fail2ban_web_gui/

#security #fail2ban
👍82👎1
​​Затрагивал уже ранее тему WAF (Web Application Firewall), решил её развить, так как актуальность подобных продуктов в последнее время выросла. Как мне кажется, наиболее известным представителем фаерволов веб приложений является Modsecurity.

Это open source продукт, который может работать с популярными веб серверами. Как минимум, я видел упоминания, что он умеет работать в связке с Nginx, Apache, IIS. Я обычно его видел в работе с Nginx. У него для этого есть отдельный модуль. В сети есть много инструкций на эту тему, так что непосредственно установка не представляет какой-то большой сложности, хотя и не сказать, что она простая. Нужно будет взять исходники Nginx, ModSecurity, Nginx Connector и всё это собрать вместе.

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

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

Видео по сборке и настройке - https://www.youtube.com/watch?v=XzeO2EL4sLU
Инструкция от Nginx - https://www.nginx.com/blog/compiling-and-installing-modsecurity-for-open-source-nginx/
Исходники: https://github.com/SpiderLabs/ModSecurity
https://github.com/SpiderLabs/ModSecurity-nginx

#security #waf
👍26👎2
​​Решал на днях задачу перенаправления запросов с одного домена на другой. В целом понятно, что это не сложно сделать с помощью nginx и его возможности proxy_pass. У меня есть подробная статья на эту тему. Но лично мне на практике никогда не приходилось именно с домена на домен перенаправления делать.

Простым и очевидным способом, описанным в статье, ничего не получилось. Перенаправленные ресурсы отдавали ошибку 404. Сходу не понял, почему так. Всё перепроверил - пути, права и т.д. Но ничего не помогло. Откуда, думаю, тут 404 берётся? Посидел, немного подумал и понял, в чём проблема.

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

server {
  listen 80;
  server_name server1.ru;
  access_log /var/log/nginx/server1.ru-access.log;
  error_log /var/log/nginx/server1.ru-error.log;

location /dir_redir {
  proxy_pass https://10.20.50.3/dir_redir;
  proxy_set_header Host server2.ru;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Real-IP $remote_addr;
  }

То есть в директиве:

proxy_set_header Host server2.ru;

Ставим в заголовок второй домен server2.ru. В данном случае запросы уходят на другой сервер 10.20.50.3, который домен server1.ru вообще не знает.

#nginx
👍68👎4
​​Я начал тему восстановления удалённых файлов откуда-то издалека. В комментариях к постам мне постоянно писали про Photorec. Причём я эту программу знаю очень давно. Неоднократно про неё писал в статьях на сайте на тему восстановления файлов после вирусов шифровальщиков. Иногда она позволяла что-то восстановить. Единственное, я не знал, что она и под Linux есть. Использовал её только под виндой.

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

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

С тех пор у меня всегда на ноуте есть архив с этой программой. Давненько не приходилось пользоваться (постучал 3 раза по деревянному столу), поэтому сразу не вспомнил. И надеюсь ещё долго не понадобится.

Инструкция для Linux / для Windows / Скачать

#restore
👍54👎2
​​▶️ Я подписываюсь и слежу практически за всеми авторскими каналами в youtube по системному администрированию. Ранее делал подборку подобных каналов, но она устарела и требует актуализации и дополнения. Возможно соберусь и сделаю это.

А сейчас хочу порекомендовать ещё один интересный канал от практикующего сисдамина и девопса, про который я сам узнал из комментариев на днях - #linux life ( https://www.youtube.com/c/linuxlifepage )

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

Вот примеры полезных видео:
Secure FTP - Быстрая установка FTP сервера с помощью Ansible
aaPanel - БЕСПЛАТНАЯ web-панель для ARM серверов!
Wireguard portal - веб интерфейс для управления
Grafana #Prometheus - МОНИТОРИМ сервера

Если знаете хорошие авторские каналы по IT тематике (но не программирование), делитесь в комментариях.

#видео
👍60👎4
Думаю, многие уже слышали про то, что в open source продукты начинают добавлять изменения, которые приводят к неработоспособности программных продуктов. Самый наглядный и известный случай - npm-пакет node-ipc. Разработчик внёс в него изменения, которые позволяют определить ip адрес места, где он запускается. Если ip принадлежит России или Белоруссии, то идёт перезапись файлов на жёстком диске.

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

Так разногласия преодолеть даже в теории невозможно. Собственно, тем, кто всё это затеял, ничего преодолевать и не надо. Их планы полностью осуществляются. Русские люди убивают друг друга на потеху остальным. Их будут всячески поощрять на раздувание конфликта. Будут кормить обещаниями, поставлять оружие, устраивать безрезультатные "переговоры". Псевдоборцуны от IT, не осознавая, работают именно на это. Причем искренне веря в то, что поступают во благо. По сути, развёрнут сценарий гражданской войны. А причина его в том, что в обоих странах нет национального правительства, которое бы отражало реальные интересы его граждан. В долгосрочной перспективе они в связке действует в интересах третьей стороны. Но понять это доступно не только лишь всем 😪

Нам, IT специалистам, остаётся только адекватно реагировать на это безумие, не умножая ненависть и вражду. Отключаем везде автоматические обновления. Полностью перестаём пользоваться готовыми сборками, скриптами c github, чужими docker контейнерами (❗️). Храним бэкапы как зеницу ока. Не мстим в ответ, преодолеваем злобу и гнев, действуем конструктивно, а не разрушающе. По возможности переходим на отечественное ПО. Я запланировал регулярно писать заметки о нём.

Список поражённого вирусом пропаганды open source софта организовал Дмитрий Симонов. Ссылка в посте из его канала - https://t.iss.one/ctorecords/2225 Там ниже в заметках есть и подробности некоторых случаев.

#мысли #security
👍209👎48
​​Не откладывая тему в долгий ящик, решил сразу же начать обзор отечественного софта, с которым я лично очень хорошо знаком. Речь пойдёт про систему мониторинга и управления ИТ инфраструктурой Veliam. Я его использовал лично в одной небольшой компании, поэтому хорошо знаю.

Veliam закрывает 3 основных направления:
1️⃣ Мониторинг
2️⃣ HelpDesk система
3️⃣ Удаленный доступ сотрудников

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

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

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

Helpdesk тоже функционален, интегрирован с мониторингом. Настраивать особо ничего не надо, всё доступно сразу после установки или регистрации в облаке.

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

Сайт - https://veliam.com/
Habr - https://habr.com/ru/company/audit-telecom/blog/
Мои статьи - https://serveradmin.ru/tag/veliam/
Реестр ПО - https://reestr.digital.gov.ru/reestr/309060/

#отечественное #remote #hepldesk #мониторинг
👍63👎6
​​Сейчас, как никогда, стали актуальны VPN. Думаю, никому из читателей не надо объяснять, почему не стоит использовать готовые сервисы по продаже VPN, а уж тем более бесплатные. Надо настроить свой персональный сервис, а для этого нужны VPS где-то за рубежом.

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

Цены там плюс-минус как везде. Платить можно рублями. Я просто заказал себе вируталку в Нью-Джерси и настроил там openvpn. Из приятного, можно заказать виртуальную сеть и раскидать её по своим виртуалкам. Подобной услуги часто нет у лоукостеров.

Особо нахваливать serverspace не буду. Работает и работает. У меня там давно уже сайты под США хостятся, теперь вот VPN сделал. На новый год была акция, которая удваивала зачисленный платёж. Я закинул много денег сразу на несколько лет вперёд, так что для меня цены вообще приятные вышли. Когда вся эта чехарда последних дней началась, расстроился. Думал, деньги эти потерял. Но вроде всё работает, никаких ссанций не было.

Под VPN минимальная стоимость виртуалки будет 287р. - 1CPU / 1Gb / 25Gb. Типовая VPS минимальной конфигурации для большинства хостеров.

Если у вас есть другие удобные варианты под VPS для VPN, делитесь информацией в комментариях.

#хостинг
👍73👎7
​​Давно не было на канале тематических игр. Решил немного разнообразить контент и продолжить рубрику. Представляю вам необычную, атмосферную игру на тему условного программирования Else Heart.Break() . Быть программистом и уметь программировать не обязательно, чтобы играть. Но надо знать английский язык, чтобы погрузиться в атмосферу игры. Это то, что её отличает от остальных. Она красивая, душевная и немного про любовь.

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

Отзывы:

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

📌 Кажется сильные стороны Else Heart.Break() - прекраснейшая музыка и великолепнейшая картинка... но при пристальном рассмотрении оказывается что сценарий и общая атмосфера выходит в лидеры [а в общем вся триада в великолепнейшей форме].

📌 Else Heart.Break() - что-то среднее между симом хакера, менеджером и квестом. Забавно, что ГГ устает если не спать, и может рухнуть дрыхнуть в любом месте. Я уже дважды спал в помойке в этой игре.

📌 Я не прошел и 10% этого инди-шминди, но это точно цифровое искусство. По каким-то своим, вывихнутым критериям. Палитра, медитативность и ощущение крейзанутости с наличием "второго дна" или "ощущением замысла" у каждого нарядного пиксела - тревожит душу.

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

Сайт - https://elseheartbreak.com/
Steam - https://store.steampowered.com/app/400110/Else_HeartBreak/
Трейлер - https://www.youtube.com/watch?v=q1lmyxrJXeo

#игра #обучение
👍18👎4
​​Ниже на картинке наглядное подтверждение того, что выбор дистрибутива Debian после прекращения поддержки Centos, был абсолютно верен. Всё вышло так, как я и предполагал. Появилось несколько форков, которые конкурируют друг с другом и создают разделение в сообществе.

Я выборочно взял трех провайдеров, где у меня есть учетные записи и виртуальные машины. И посмотрел, какие ОС они предлагают в своих шаблонах. Все три предложили разные замены Centos:
- Oracle Linux
- Rocky Linux
- AlmaLinux

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

Так что мой выбор Debian как наиболее распространённой и консервативной системы с минимумом изменений пока оправдывает себя. Все новые установки теперь делаю только на ней, если выбор дистрибутива остаётся за мной.

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

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

#debian #centos
👍76👎5
​​Я регулярно сталкиваюсь с одной и той же проблемой. Как правильно определить, какой стране принадлежит IP адрес? При использовании публичных сервисов в интернете, которые есть в первой странице выдачи гугла, результат бывает очень разнообразен. Буквально вчера столкнулся с тем, что получил 3 разных расположения одного и того же адреса. Мне показали на США, Москву и Пакистан.

При этом фильтрация на основе GEO много где используется. У меня есть ещё одна виртуалка, которая должна быть в Москве, но при этом её IP адрес иногда определяется, как принадлежащий Украине. А у меня там VPN. И иногда я вижу сайты на украинском языке. Плюс, некоторые сервисы глючат, которые привязаны к GEO посетителя.

Какие есть наиболее достоверные способы определить принадлежность IP адреса к какой-то стране? И существуют ли они вообще? Мне кажется, что да, но я их просто не знаю. Сервисы, какими сам пользуюсь, не пишу, потому что доверия к ним всё равно нет. Обычно ищу в поисковиках по запросу "проверить ip адрес".

#разное #сервис
👍26👎3
​​Любой администратор Linux так или иначе использует встроенную утилиту man для просмотра справочной информации по программам. Каждая подобная справка является отдельным документом, который пишут разработчики программного обеспечения.

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

Например, для начала поиска по man достаточно ввести символ / и далее строку поиска. После нажатия Enter начнётся поиск вперёд по тексту. Для поиска назад, нужно использовать не слеш, а символ ?.

Теперь немного магии. Допустим, вам надо найти в man описание ключа -L. Для этого вводим в поиск:
/^\s+-L
/ - поиск вперёд
^ - начало строки
\s - пробельный символ
+ - повторитель, указывает, что предыдущий символ должен повторяться один или несколько раз
-L - то, что мы ищем.
То есть будет найдена строка, которая начинается с пробелов, а далее идут символы -L. Типовая разметка для описания ключей в man.

Ориентироваться в результатах поиска можно следующим образом:
- перейти к следующему совпадению клавиша (n);
- перейти к предыдущему совпадению клавиша (N);
- перейти в начало страницы клавиша (g);
- перейти в конец страницы клавиша (G).

Также less хранит историю поиска. Вводите / и листаете клавишами вверх, вниз. Таким образом можно выбрать предыдущий шаблон поиска. Более подробно man less, man man. Как там искать вы уже знаете 😁

В конце страниц для утилит командной строки, обычно есть коды возврата и прочая полезная информация. Кстати утилиты systemd по умолчанию тоже используют less. Так что всё написанное выше актуально и для поиска в systemd.

И ещё одна маленькая и полезная фишка, которая сохранит вам много времени и нервов. Когда что-то ищешь в man, потом хочешь проверить это в терминале, по ошибке выходишь из справки и потом приходится опять искать то, что было найдено. Но man не обязательно закрывать. Его можно свернуть комбинацией клавиш CTRL+Z. Приложение уйдёт в фоновый режим. Посмотреть, что работает в фоне, можно введя в консоли:
# bg
[1]+ man ls &
[1]+ Stopped         man ls
Теперь возвращаем из фона процесс с man:
# fg man
И продолжаем читать там, где остановились. Подобные трюки можно делать с любыми процессами, запущенными в консоли.

#terminal #linux
👍94👎2
Ребят, важное предостережение. Я неоднократно ранее упоминал про telegram канал известного it сообщества it-kb.ru. К сожалению, вчера этот канал был украден у владельца и вернуть скорее всего его уже не получится. Всем, кто был подписан на этот канал рекомендую переподписаться на новый - @ITKB_channel. Последним постом там новость с подробностями истории и ссылкой с подтверждением на самом сайте - https://blog.it-kb.ru/2022/03/22/hack-telegram-channel.

Это уже не первая и не вторая известная мне история подобного развития событий. В частности, один известный канал по Linux был украден подобным образом. История обмана стара как мир. Администратору делается очень выгодное рекламное предложение. От этого предложения у него отключается критическое мышление. Он идёт на сайт, заполняет там анкету участника рекламной компании, якобы подтверждает её своей учёткой в telegram, а на самом деле в этот момент передаёт свой акк. Детали могут быть разные, но суть одна.

Принципы обмана и схемы стары, как мир. Они во все времена одинаковые. Идёт давление на слабости человека, которые у большинства плюс-минус одинаковые, либо его ставят в зажатые условия по времени и коридору принятия решений. У небезызвестного Мавроди Сергея есть книга "Сын Люцифера". Рекомендую почитать для общего образования. Там он как раз описывает схемы обмана людей, воздействуя на определённые чувства и слабости. Схема, по которой сейчас уводят Telegram каналы, там тоже описана практически один в один. В общем, это информация от настоящего специалиста в этом деле, рекомендую.

#разное
👍34👎2
​​Расскажу про ещё одну современную, бесплатную и функциональную helpdesk систему UVdesk. Это Open Source проект, построенный на базе Symfony PHP framework и MySQL. Без проблем устанавливается на собственных серверах. Также есть платная SaaS версия с дополнительным функционалом. Но даже в бесплатной self-hosted версии очень много возможностей и никаких ограничений. Всё заявленное работает полноценно.

Типовой функционал плюс-минус как у всех. Отмечу некоторые особенности, которые есть не во всех бесплатных продуктах:
- нет никаких ограничений по кол-ву агентов поддержки, тикетов, интеграций и т.д.
- встроенная поддержка reCAPTCHA и spam фильтр
- встроенная поддержка брендирования
- возможность отвечать преднастроенными шаблонами
- расширенные возможности базы знаний (категории, статьи, faq, разбивка по папкам)
- поддержка тэгов
- поддержка API
- интеграция с другими системами через плагины.

Последнюю возможность отмечу отдельно, так как это может быть важно. Для UVdesk есть готовые плагины для интеграции с популярными CMS, в основном для интернет магазинов. Стоят они не дорого, в среднем около 50$. Но с их помощью можно быстро связать свою версию UVdesk и сайтами на базе Wordpress, Prestashop, Joomla, Opencart, Magento 2 и др. Для SaaS версии эти интеграции будут бесплатны (включены в стоимость).

Установить UVdesk можно вручную, скачав исходники и запустив инсталлятор. Понадобится классический web сервер на базе php и база данных Mysql. Автоматическая установка в пару команд возможна через php composer или Docker. Все инструкции есть в документации.

Интерфейс выглядит приятно и современно. У меня от просмотра демо остались положительные впечатления. Для полностью бесплатного продукта всё сделано неплохо и функционально. При подборе self-hosted решения для себя имеет смысл рассмотреть этот продукт.

Сайт - https://www.uvdesk.com/
Исходники - https://github.com/uvdesk/community-skeleton
Документация - https://docs.uvdesk.com/
Demo - https://demo.uvdesk.com/

#helpdesk
👍31👎2
​​Linux Magic System Request Key Hacks (sysrq)

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

Проверить поддержку ядром sysrq можно следующим образом:
# cat /proc/sys/kernel/sysrq
0 - sysrq отключен
1 - sysrq полностью включен
Так же возможны другие варианты значений. Не буду приводить все их здесь, можно прочитать в ядерной документации - https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
Включить весь функционал sysrq можно так:
echo "1" >/proc/sys/kernel/sysrq

Если вы подключены напрямую к консоли сервера, то отправлять команды в ядро можно следующей комбинацией клавиш: ALT-SysRq-<command key>. Клавиша SysRq часто совмещена с PrtSc. Когда я первый раз тестировал эти функции, то пытался их ввести при SSH соединении. Работать не будет. При удалённом подключении команды можно отправлять так:
# echo <command key> > /proc/sysrq-trigger

Полное описание команд можно посмотреть в документации, на которую дал ссылку выше. Перечислю те, которые чаще всего могут пригодиться:
b - моментальная перезагрузка;
o - моментальное завершение работы;
d - показывает блокировки, которые держат устройства или файлы;
e - посылает SIGTERM всем процессам, кроме init;
l - посылает SIGKILL всем процессам, кроме init;
f - принудительно запускает oom killer;
u - попытка перемонтировать все файловые системы в read-only;
s - синхронизация подмонтированных файловых систем;

На основе перечисленных команд, можно прикинуть комбинацию, которую стоит попробовать сделать, если у вас подвис сервер и штатный reboot не проходит: e + l + s + u + b. То есть завершаем все процессы, синхронизируем файловые системы, отключаем запись на них и перезагружаемся. Не факт, что всё отработает без ошибок, но мы хотя бы попытались.

Больше примеров проблем, которые можно решить с помощью SysRq, смотрите по ссылке в самом конце статьи. Там отдельный раздел с примерами.

#terminal #linux
👍96👎3
Существует простая и удобная утилита для просмотра базы данных SQLite - termdbms. С её помощью можно быстро просмотреть содержимое базы, а при желании и внести изменения. SQLite достаточно популярный формат БД. Например, Fail2ban хранит свои данные в SQLite, или Zabbix Proxy. Иногда необходимо заглянуть в базу и посмотреть, что там есть.

Достаточно загрузить бинарник из репозитория (проверив дату релиза 😁):
https://github.com/mathaou/termdbms
И запустить просмотр:
# ./termdbms -p /var/lib/fail2ban/fail2ban.sqlite3

Помимо SQLite с помощью termdbms можно открывать CSV файлы, работать с ними и экспортировать в формат SQLite. То же самое работает и в обратную сторону - SQLite конвертирует в CSV.

#sqlite
👍13👎3
​​Продолжаю вас знакомить с софтом из списка отечественного ПО, который я пробовал лично. Сегодня речь пойдёт о программном межсетевом экране Интернет Контроль Сервер (ИКС), построенном на базе Freebsd (one love, one life ❤️)

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

◽️ Multi WAN с резервированием каналов.
◽️ Firewall с удобным управлением через браузер.
◽️ Прокси сервер с контролем доступа по группам, учет трафика, ограничение доступа.
◽️ Централизованное управление пользователями, группами пользователей, серверами ИКС.
◽️ Файловый сервер.
◽️ Почтовый и jabber сервер.
◽️ IP телефония.

❗️ИКС позволяет полностью закрыть все требования законодательства в плане обеспечения доступа в интернет в образовательных учреждениях. С его помощью можно успешно пройти проверку учебной сети. Но это не значит, что он нужен только для этого. Этот шлюз в целом закрывает все типовые задачи по организации упорядоченного и безопасного доступа в интернет. К моему удивлению, прокси сервера с подсчётом трафика до сих пор востребованы и актуальны. Буквально недавно у меня была заявка на перенос сервера на базе sams + squid с интеграцией в AD. Чуть не всплакнул от ностальгии при упоминании SAMS. Я очень плотно его использовал раньше, но проект давно заброшен.

У меня на сайте есть небольшой цикл статей с описанием установки и настройки ИКС, а также примеры некоторого функционала. Например, как настроить контроль трафика в том числе с подменой TLS сертификатов и полным контролем шифрованного трафика, а так же настройка VPN тоннелей с помощью ИКС.

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

Сайт - https://xserver.a-real.ru/
Habr - https://habr.com/ru/company/ics/blog/
Мои статьи - https://serveradmin.ru/tag/iks/
Реестр ПО - https://reestr.digital.gov.ru/reestr/301671/

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

#отечественное #gateway #икс
👍44👎18
Снова поднимаю тему бэкапов. Я про них уже много писал и кажется, что уже и добавить нечего, но как известно: "Повторение - мать учения". Я сам постоянно работаю с бэкапами, поэтому и пишу про них часто, так как это практически ежедневная часть моей деятельности.

Сделаю пару заметок на основе своего недавнего опыта. Тестировал восстановление виртуалок с Proxmox Backup Server в случае, если основной гипервизор умрёт. Цеплял хранилище с бэкапами к новому гипервизору и пробовал восстанавливать. Бэкапы лились через инет по 100 мегабитному каналу. При размере виртуалок более 30-50 Гб очень велика вероятность получения ошибки при восстановлении. Ошибка не информативная, в духе:
HTTP/2.0 connection failed
restore failed: broken pipe
Скорее всего из-за каких-то проблем с каналом, хотя на практике он не отваливался. Восстановление падало в произвольном месте, но с 3-5 попытки в итоге всё получалось. Из-за этих проблем невозможно спрогнозировать время восстановления. Можно целый день пытаться и ничего не получится. Если других бэкапов нет, это провал. Нужно обязательно иметь архив на уровне данных, а не только VM.

Второй пример c Veeam. Есть архивы на уровне файлов, хотелось ещё и VM забэкапить полностью. А это файловые сервера с дисками по 1,5-2Т. Канал в интернет - 50 мегабит. На практике оказалось просто невозможно выполнить первый полный бэкап. Он должен длиться где-то 3-4 дня для каждый VM. Если по какой-то причине связь прервётся, всё надо начинать с начала. Докачки нет. Даже если каким-то чудом удастся сделать полный бэкап, очевидно, что восстановиться из него потом тоже не получится в разумные сроки. Я в итоге применил такую тактику. Оставлял по одному диску на VM, делал бэкап, потом добавлял второй диск, делал бэкап с ним и т.д., пока не будут добавлены все диски сервера. Так что рекомендую по возможности не делать один большой диск для VM. Лучше разбить на маленькие и потом объединить уже на уровне ОС. Это если вы хотите через интернет делать полные бэкапы VM. С одним большим диском это просто невозможно на практике сделать. При этом на уровне файлов все эти файловые сервера успешно бэкапятся, так как не критичны кратковременные обрывы связи. В данном случае мне полные бэкапы VM нужны, чтобы восстанавливать их локально на подменный сервер, который в случае необходимости будет физически доставлен в нужное место.  

Какой из всего этого стоит сделать вывод? Надо всегда держать под рукой два вида бэкапов - полные VM и исходные данные в них (дампы баз, файлы и т.д.). Ну и проверять регулярно и то, и другое. Я повсеместно вижу, как люди делают бэкапы VM и на этом успокаиваются. И при этом много раз сталкивался с ситуациями, когда потом не получается восстановиться из этих бэкапов по разным причинам.

#backup
👍78👎2
Иногда возникают ситуации, когда у сервера по той или иной причине нет доступа в интернет. У меня лично теперь есть такие сервера. А вам нужно как-то обновлять и устанавливать пакеты и желательно не вручную. Для этого можно поднять свой репозиторий и вручную управлять им, обновляя все остальные машины через него. Это сложный путь и не всегда оправданный, если вам нужно обновлять одну машину, да и то не регулярно.

Для решения подобной проблему есть удобный инструмент - apt-offline (https://github.com/rickysarraf/apt-offline). Как видно из названия он актуален для DEB дистрибутивов. Я его использовал для Debian. Качаете архив с последним релизом из репозитория, копируете и распаковываете на сервере без интернета. В нём будет бинарник apt-offline, с ним и будем работать.

Для начала обновим репозитории на сервере:
# ./apt-offline set --update apt-offline.sig
Тут же в директории будет создан файл apt-offline.sig. Теперь можно всю папку с apt-offline и этим файлом перенести на сервер с интернетом и там запустить:
# ./apt-offline get --bundle bundle.zip apt-offline.sig
Информация с содержимым репозиториев будет сохранена в файл bundle.zip. Возвращаемся на сервер без инета и там запускаем обновление реп:
# ./apt-offline install bundle.zip

Теперь обновим все пакеты целевого сервера:
# ./apt-offline set --update --upgrade apt-offline.sig
Идём на компьютер с интернетом и там качаем пакеты:
# ./apt-offline get --bundle bundle.zip apt-offline.sig
Будут скачаны все обновления пакетов и зависимости. Опять берём всю директорию и копируем на сервер без инета. Там запускаем:
# ./apt-offline install bundle.zip
# apt upgrade

Для установки только одного пакета делаем следующее:
# ./apt-offline set --install-packages PACKAGENAME --update apt-offline.sig
Копируем папку на комп с инетом и там выполняем:
# ./apt-offline get --bundle bundle.zip apt-offline.sig
Возращаем на комп без инета и запускаем установку пакета:
# ./apt-offline install bundle.zip
# apt install PACKAGENAME

У вас есть в хозяйстве сервера без интернета? У меня это некоторые сервера с бэкапами, правда там я сам вручную включаю инет когда надо, а потом отключаю. А вот полностью без инета приходилось работать у некоторых заказчиков. Таскал туда руками пакеты, пока не узнал про apt-offline. На днях про него вспомнил и написал заметку.

#debian #ubuntu
👍77👎2