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

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

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

Регистрация в РКН: https://vk.cc/cG1Urj
Download Telegram
​​Ниже на картинке наглядное подтверждение того, что выбор дистрибутива 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
​​⚡️Научитесь эффективно работать с NoSQL базами данных!

На онлайн-курсе «NoSQL» от OTUS собраны самые популярные решения: Cassandra, MongoDB, Redis, ClickHouse, Tarantool, Kafka, Neo4j, RabbitMQ.

📚За 5 месяцев обучения вы сможете:
Уверенно работать с любой NoSQL БД, проектировать систему хранения, индексы, профилировать запросы и обеспечивать оптимальную надежность и производительность.

Пройдите успешно вступительный тест и получите гарантированную скидку на курс.

📌ПРОЙТИ ТЕСТ – https://otus.pw/jIwp/
👎7👍4
▶️ Я давно подписан на youtube канал про Linux - PLAFON.
https://www.youtube.com/channel/UCf7pLsR7lko69y8ySTpoKxg
Не упоминал про него, потому что он не про системное администрирование, и как-то повода не было. Но вчера посмотрел очередное видео и решил поделиться с вами.

Видео на канале качественные, смотрю с удовольствием. Автор хорошо монтирует и подбирает визуальный ряд. Основная тематика - использование Linux в повседневной жизни. У автора канала хорошая сборка железа и периферии, любопытно наблюдать. Из дистрибутивов он остановился на Fedora, поэтому много роликов посвящены именно ей.

На недавнем видео DaVinci Resolve 17 на Fedora Linux 35 c AMD Radeon 5700XT он рассказывает, как заставил работать видюху на свободном, а не проприетарном драйвере. Приятно выглядит рабочий стол и окружение. А ещё все такое плавное и летает. Я прям позавидовал. У меня всё как-то тормозит на ноуте, потому что он старый. Давно поменять надо, но так и не дошли руки. А теперь хз на что менять с нынешними ценами. Подожду до осени.

#видео
👍39👎9
​​Мне стало любопытно получить обратную связь от вас, моих дорогих читателей и профессиональных системных администраторов Linux. Поэтому решил затронуть вот какую тему. У меня стародавняя привычка, которой я придерживаюсь до сих пор. Любопытно узнать, кто ещё поступает так же.

Все задания cron пишу в системный /etc/crontab. Практически не пользуюсь пользовательскими файлами для этого. И вообще никогда не пользуюсь директориями cron.d, cron.daily, cron.hourly и т.д. Лично мне удобнее, когда все задания в одном месте. Я просто открываю /etc/crontab и сразу всё вижу. Если надо, правлю. Мне не очень понятен смысл кучи cron заданий в разных местах. Синтаксис позволяет описать любые интервалы и задания в одном файле.

Исключения, конечно же есть. Если сервером пользуюсь не только я, то в системный cron стараюсь не лазить, пишу в своём, пользовательском. Речь в заметке идёт о тех серверах, которыми управляю я единолично.

А вы где храните свои задачи cron?

Удобный калькулятор расписания cron
Бесплатный мониторинг задач cron

#linux
👍55👎8
​​Необычная и атмосферная игра "про хакеров", где большую часть времени нужно проводить в консоли - hackmud. Игра достаточно известная в своём жанре. Чтобы полноценно играть, надо немного понимать JavaScript, любить консоль, ASCII и чтение логов. Если бы не js, идеальный набор сисадмина. Хотя сейчас знать js полезно всем. Даже мне приходится изучать, так как постобработка значений айтемов в Zabbix именно на JavaScript, так что у меня уже есть отдельная папочка со шпаргалками к различным обработкам.

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

Отзывы:
📌Хакерское проникновение онлайн sim на основе JavaScript, более точно, все сценарии написаны в игре. Виртуальная утопия для бегства от действительности поклонников киберпанка, роман 90-х 80-х взламывает культуру, БРАКОВАННУЮ МОНЕТУ, daylap и это все.

📌Очень реалистичный симулятор хакера. Есть мультиплеер. Может побудить тебя наконец-то изучить JS!! В принципе, во всем разобрался сам. Использовал минимум гайдов для полного погружения.

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

Steam - https://store.steampowered.com/app/469920/hackmud/
Документация - https://github.com/hackmud-unofficial/documentation
Сайт - https://www.hackmud.com/

#игра
👍24👎6
Ранее я рассматривал софт для восстановления удалённых файлов в Linux. В комментариях возникали вопросы и обсуждения по поводу механики этого процесса. Сегодня рассмотрим немного теории и частный практический пример из этой области.

Файлы в Linux удаляются с помощью системного вызова unlink. Он удаляет имя из файловой системы. Если это имя было последней ссылкой на файл и больше нет процессов, которые держат этот файл открытым, данный файл удаляется и место, которое он занимает, освобождается для дальнейшего использования. Если имя было последней ссылкой на файл, но какие-либо процессы всё ещё держат этот файл открытым, файл будет оставлен, пока последний файловый дескриптор, указывающий на него, не будет закрыт.

Исходя из этой информации можно легко восстанавливать удалённые файлы, удерживаемые процессом. Выполним простой эксперимент с помощью bash. Создадим тестовый скрипт именем script.sh следующего содержания:

#!/bin/bash
sleep 30000
exit

Устанавливаем бит исполняемости:
# chmod u+x ./script.sh
Запускаем скрипт в фоне и удаляем.
# ./script.sh &
# rm -f ./script.sh

Итак, у нас есть процесс оболочки, который удерживает файл скрипта. Имени уже нету, но есть дескриптор, с которым ассоциирован файл. Нужно получить дескриптор файла. В этом нам поможет команда lsof:
# lsof -c script.sh

В выводе нас интересует PID - идентификатор процесса и FD - дескриптор, ассоциированный со скриптом:
script.sh 17871 root 255r  REG  8,1    30 8400545 /tmp/script.sh (deleted)

Читаем содержимое файла скрипта.
# cat /proc/17871/fd/255

Перенаправляем вывод cat в файл:
# cat /proc/17871/fd/255 > new_script.sh
Получаем наш исходный скрипт, который удалили.

Поднимаем процесс из фона и уничтожаем.
# fg
CTRL+C

Теоретически таким образом можно восстановить удалённые файлы виртуальных машин. Я не раз получал вопросы по этому поводу. Некоторые умудряются по ошибке удалить исходный файл VM, а потом через 2 недели заметить это. При этом машина всё это время успешно работает.

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

#terminal #restore
👍77👎6
​​Я неоднократно получал рекомендацию посмотреть на децентрализованный мессенджер Jami, особенно в контексте моих заметок на тему selh-hosted серверов для организации собственного мессенджера для общения. Эти заметки можно почитать по тэгу #chat

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

Можно поднять свою ноду, процесс описан в wiki. По дефолту клиент стучится на bootstrap.jami.net:4222, оттуда уже берёт список известных нод и дальше использует какую-то из них, не обязательно центральную. Но при первом запуске подключается именно к jami.net. Теоретически можно настроить в закрытом периметре свою ноду и замкнуть всех своих клиентов на неё. Из описания не понял, можно ли исключить её из общей сети, чтобы она была только твоя, с твоим блокчейном абонентов.

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

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

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

Сайт - https://jami.net/
Исходники - https://git.jami.net/savoirfairelinux/jami-project
Обзор - https://www.youtube.com/watch?v=3MU2Kg7gwF8

#chat
👍53👎6
​​Хочу познакомить вас с очередной российской разработкой. На этот раз это будет программа для удалённого управления компьютерами - АССИСТЕНТ. Я скачал и попробовал его, так что опишу своими словами, как он мне пришёлся.

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

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

Программа работает примерно так же, как и все остальные. Можно на постоянку установить полноценную версию, а можно только запустить дистрибутив под названием "Ассистент «Быстрый старт»", чтобы к вам могли подключиться по ID и паролю, а потом просто закрыть программу и удалить.

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

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

Лицензируется Ассистент по количеству разрешённых одновременных подключений. Платная версия начинается с 3-х таких подключений и стоит 72000р. Более дорогие лицензии существенно расширяют функционал: возможность вести инвентаризацию оборудования, поднимать свой локальный сервер соединений, полная интеграция с AD и многое другое. Всё описано на сайте.

Впечатления от программы сугубо положительные. Честно говоря, сейчас не понимаю, зачем использовать AnyDesk или TeamViewer. Надо переходить на Ассистент. У него дистрибутив маленький ~20 мб, ставится и запускается быстро. Он мне показался лучше упомянутых программ без каких-то компромиссов. Для персонального использования на текущий момент идеальный вариант, особенно с учётом рисков последних недель с использованием иностранного ПО.

Сайт - https://мойассистент.рф/
Реестр ПО - https://reestr.digital.gov.ru/reestr/304523/

#remote #отечественное
👍116👎21
​​Актуальность VPN растёт день ото дня. Сейчас столько всяких событий происходит с защитами, запретами, ограничениями и т.д., что голова кругом идёт. Доходит до того, что мой сайт serveradmin.ru, который хостится в Москве, у кого-то в России открывается только через VPN. Я даже не знаю, как расследовать такие инциденты. Явно есть проблемы у каких-то операторов.

Существует очень удобная и простая в плане установки и настройки панель для управления VPN на базе популярного и современного WireGuard под названием Firezone. Это бесплатный Open Source продукт. С её помощью можно управлять всеми настройками WireGuard через браузер.

Для Firezone подготовлен установщик, который автоматом всё развернёт на вашем сервере, в том числе и WireGuard. Достаточно только запустить готовый bash скрипт. Сейчас разумно предостеречься от подобных методов, так что можно установить всё вручную. Это описано в документации. Сам Firezone собран в rpm или deb пакет. Компоненты web-интерфейса выполняются под непривилегированным пользователем. Поддерживаются все современные Linux дистрибутивы.

Из дополнительных плюшек, помимо управления пользователями, Firezone умеет управлять nftables для ограничения доступа клиентов к каким-то хостам. Все настройки выполняются через веб интерфейс, который построен на базе Admin One Bulma Dashboard.

Проект претендует на нечто большее, чем уровень pet project и пилит коммерческую версию с разными способами аутентификации, а так же интеграцией с SAML и LDAP. Из всех панелей управления WireGuard эта показалась наиболее приятной и проработанной. Остальные можете посмотреть по метке в конце поста.

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

#vpn #wireguard
👍55👎1
​​FreeScout Help Desk - отличный вариант бесплатной Open Source системы для организации технической поддержки. Первое, что сразу же привлекает - скорость работы, простота и легкость веб интерфейса. Функциональный, лаконичный и ненагруженный веб интерфейс, с которым приятно работать. Причём за внешней простотой скрывается очень хороший для бесплатной версии функционал.

У FreeScout есть всё то же самое, что и у большинства программ подобного рода. А вот некоторые особенности:
100% совместимость с мобильными браузерами
нормальный перевод на русский язык
полная интеграция с почтовыми ящиками, по сути в FreeScout есть встроенный imap клиент
контроль за коллизиями, когда с одной заявкой начинают работать 2 сотрудника
удобный онлайн редактор написания ответов
картинки можно просто перетаскивать в область ответа и просматривать, а не прикладывать как вложение
push уведомления
есть мобильное приложение

Расширить функционал бесплатной версии можно с помощью платных плагинов, цена которых очень демократична: 5-15$ в зависимости от плагина. За 100$ можно собрать хорошую сборку, которая будет в разы дешевле того же Zendesk. Причем эти 100$ нужно заплатить один раз. Все дополнения продаются навечно, а не по подписке. Разумный и перспективный подход к монетизации, как по мне.

Построено всё это на базе Laravel, так что ставится на обычный веб сервер с PHP. Можно быстро запустить и попробовать в докере.

Я уже много делал обзоров на различные HelpDesk системы, современные и не очень, с большим функционалом и очень простым. Были примеры с красивым и современным веб интерфейсом (uvdesk, zammad). Но лично мне интерфейс FreeScout понравился больше всего, хоть он и выглядит просто. Для данного типа систем это скорее плюс.

Demo - https://freescout.net/demo/
Сайт - https://freescout.net/
Исходники - https://github.com/freescout-helpdesk/freescout/
Документация - https://github.com/freescout-helpdesk/freescout/wiki

#helpdesk
👍29👎1
​​Познакомился с отечественным сервисом git, условным аналогом github - https://gitflic.ru. Зарегистрировался там и на всякий случай перенёс несколько своих основных личных репозиториев. Я их всегда хранил на gitlab, но последнее время стал регулярно копировать локально, опасаясь блокировки или ещё каких-нибудь диверсий.

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

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

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

#git #бесплатно #отечественное
👍51👎11