imageНедавно мне пришлось, что называется, перебороть себя. Дать доступ на свой любимый сервер некоему чужаку. Он натоптал своими грязными ботинками в моей уютной домашней директории, мацал косматыи лапами мои опрятные скрипты инициализации, рылся в логах, натащил в /opt какого-то барахла непонятно откуда. В общем, вел себя, как у себя дома.

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

Собственно, решение основано на программе screen. Это консольных оконный менеджер, про который на хабре уже писали.

Устанавливаем программу screen и пишем вот такой скрипт:

#!/bin/sh
already_up=`pgrep screen`
if [ -z "$already_up" ]
then   
    screen -L -S Shared /bin/bash -l
else   
    screen -x Shared
fi

Скрипт при запуске проверяет, есть ли уже запущенный screen. Если нет, то запускает новую сессию «Shared», если screen уже запущен, присоединяется к сессии «Shared».

Удаленному работнику этот скрипт будет шеллом. Сохраняем скрипт в /usr/local/bin/get_in.sh и делаем его исполняемым.

Теперь добавим аккаунт для удаленного работника и изменим его шелл по-умолчанию на get_in.sh. У меня в /etc/passwd появилась вот такая запись:

tech:x:503:503::/home/tech:/usr/local/bin/get_in.sh

Последний штрих. В /home/tech/.screenrc добавляем строчку:

logfile /tmp/screenlog-%Y%m%d-%c:%s

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

Теперь все готово к приходу гостей. Отсылаем удаленному работнику пароль от tech, сами заходим как tech (и, если нужно, делаем «su -»), и ждем. Все, что делает техник у себя в терминале автоматически отображается и в моей консоли.

Чего же мы, на самом деле, добились:

  • Контроль/мониторинг в реальном времени всего, что происходит в удаленном терминале техника
  • Логгирование комманд и их вывода
  • Нет необходимости раскрывать пароль суперпользователя

Комментарии (28)


  1. kira-dev
    10.08.2021 22:18
    +1

    Это консольных оконный менеджер, про который на хабре уже писали.

    эта утилита 1987 года, старше меня)

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

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


  1. alexovchinnicov
    11.08.2021 06:25
    -9

    Похоже на выдуманную историю. Не верю что в 2021 году кто-то еще вручную заходит на сервера для установки и настройки.


    1. mrtippler
      11.08.2021 09:04
      +8

      Ну да, давно уже никто никакие сервера не настраивает, не до того. Все теперь блоги ведут, да еще на хабре постят. ))


      1. alexovchinnicov
        11.08.2021 10:56
        -3

        Вы абсолютно правы, руками сервера уже не настраивают. Для минусующих сообщу, что на 2021й актуально https://en.wikipedia.org/wiki/Docker_(software) и его производные, да https://en.wikipedia.org/wiki/Infrastructure_as_code . Плюс по моему скромному мнению, результаты и выводы автора статьи, с точки зрения безопасности сомнительны.


        1. DaemonGloom
          11.08.2021 10:58
          +3

          Хорошо, а теперь разверните мне, пожалуйста, drweb es сервер в докере.


          1. alexovchinnicov
            11.08.2021 11:33

            Я не знаком с Dr.Web Enterprise Server, полагаю раз вы задаёте такой вопрос, значит разработчик в стадиях своего SDLC не озаботился возможностью запуска продукта в легкой виртуализации. Но это не означает, что это невозможно в принципе.


            1. JerleShannara
              12.08.2021 17:26

              Эээ, а для чего были придуманы такие штуки как резервные копии?


        1. edo1h
          11.08.2021 17:34
          +1

          Для минусующих сообщу, что на 2021й актуально

          ну-ну. в той части, которую сам контролируешь, ещё можно обсуждать, но если есть купленный софт, который «ручками» настраивается сторонним админом по ssh (а в случае винды по тимвьюеру/энидеску/…) — то это просто данность. и да, в 2021 году оно ещё актуально.


        1. retomoto
          14.08.2021 13:04

          К сожалению, в Docker не все возможно (да и не все нужно) завернуть , да и Iac - не панацея. Пример из статьи, где компания поставляющая свой софт не дает дистры и мануалы, а отправляет своего техника удаленно инсталлировать свой продукт - прекрасное тому подтверждение, каким бы невероятным он вам не казался.


  1. 13werwolf13
    11.08.2021 06:27

    byobu-enable

    screen это конечно тру, но всё таки byobu удобнее


    1. iddqda
      11.08.2021 11:55

      tmate еще удобней https://tmate.io/


      1. 13werwolf13
        11.08.2021 12:20

        Немножко не то, но интересная весчь, спасибо потыкаю


  1. ashed
    11.08.2021 10:04
    +1

    Частичное пересечение со статьёй
    https://habr.com/ru/post/186732/


  1. amarao
    11.08.2021 12:30
    +3

    Мне кажется, где-то в районе "долго настраивал под себя" уже что-то странное.

    Тераформ? Ансибл? Шеф? Посмотрели что сделал "специалист", добавили в роль/плейбуку/кубуку/etc, переподняли сервер с нуля. Не?\

    Immutable infrastructure, всё такое. Добро пожаловать в 2021.


    1. JerleShannara
      11.08.2021 16:15
      +2

      Всё это имеет смысл, если серверов/сервисов много. Когда кхм… уровень «файлопомойка с принтсервером», то это уже оверкилл.


      1. amarao
        11.08.2021 16:36
        +2

        Файлопомойка в в 2021 называется "объектное хранилище", и всё зависит от важности происходящего. Если через этот принтер проходят договора на сумму в x1000 годовой зарплаты админа, то аптайм этого принтера может быть важнее всех остальных серверов вместе взятых.


        1. Worky
          11.08.2021 15:17
          +1

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


  1. zolti
    11.08.2021 12:52
    +3

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


    1. Worky
      11.08.2021 13:41
      +3

      Просто все девупсами стали, в облаках живут! это слово уже скоро ругательное будет у обычных админов. И что печально - тянут разработку ОС и системных утилит в сторону своих авс и пр облаков тем самым монополизируя их. Но для СНГ все это дорого, дешевле свое иметь и обычного админа. И применить эти тера-анисблы-докеры тогда негде...


  1. anonymous
    00.00.0000 00:00


  1. anonymous
    00.00.0000 00:00


  1. Tamahome
    11.08.2021 17:07
    +1

    Вендорский софт может устанавливаться и ансиблом, но роль/бук вам не дадут, ибо на саппорте у них весь бизнес держится...
    Админа спрашивать никто не станет, СБ согласуют - бумажки подписаны.


  1. justhabrauser
    11.08.2021 23:05

    (… с такими камментами аж добавить что-то страшно…
    — Как перебортировать колесо на велосипеде?
    — Да как обычно — привычно заправляете свой вертолет...)
    Вопрос автору — а как это счастье реагирует на работу в mc и редакторах (mcedit/nano)?
    Всё палит — или ничего?


  1. alexovchinnicov
    12.08.2021 08:39
    -2

    Россия — это отдельная цивилизация, для сохранения которой необходимо приоритетно развивать высокие технологии, заявил президент Владимир Путин


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

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

    Я и amarao честно пытались донести до комментаторов и автора, что на 2021й год в «других» цивилизациях уже принято считать, что сервера не представляют ценность, главное это данные и их доступность. Поломка сервера это штатное событие. Ordnung muss sein! Именно по этому появились Immutable Infrastructure, Infrastructure as code и другие подходы, а к ним соответсвующие инструменты упомянутые в комментах. Repeatability у автоматики выше чем при работе вручную по документации. Соблазн, быстро «поправить руками» пресекается на корню какими бы ИТ-знаниями не обладал специалист. Компании готовы платить не за многолетний опыт работы, а за владение трендовыми ИТ-навыками, а работник пытается достичь высокой маржинальности своих скиллов в сфере информационных технологий, не смотря на проблему быстрого устаревания знаний и недостатка времени для получения новых.

    В заключении хочу пожелать тем кто добавил статью в закладки проверить на ваших дефолтных настройках возможность входа по
    ssh tech@lovelyserver -t "/bin/sh"

    после чего объективно оценить ценность статьи. А если ваше ментальное состояние противится реалиям «другой» цивилизации, вы продолжаете люто ненавидеть DevOps и всё новое, не поленитесь прочитать про HIDS и установить российское или opensource решение для аудита действий на вашем обожаемом сервере. Не оставляйте вашу цивилизацию под угрозой!


    1. edo1h
      12.08.2021 12:20
      -1

      Но автор считает себя умнее их, усложняет им работу, после чего публично хвалиться статьёй.

      гхм, а в чём усложнение? насколько я понимаю, «чужаки» делали свои дела, просто у автора остались логи их действий.


    1. select26
      12.08.2021 14:24
      +2

      Я и amarao честно пытались донести до комментаторов и автора, что на 2021й год в «других» цивилизациях уже принято считать, что сервера не представляют ценность

      Что вы, что amarao.
      Решения должны соответствовать задачам. При чем тут рассуждения про ценность серверов?
      Вы про remote access support слышали? И компании типа AlienVault это предлагают как штатную опцию. Нужно удалить lock-файл на основании анализа логов, а они teraform. Ага.
      И не каждый сервер можно легко пересоздать. Вы витаете в облаках и забыли про железные серверы. Да, в 21 веке есть задачи, которые бегут на deducated серверах. В силу различных причин. И кластеры данных на deducated серверах до сих пор cобирают. И сервер пересоздать не всегда просто из за требований к безопасности. Да много причин!

      К автору - как справедливо отметили, screen'у уже более четверти века. Это штатный инструмент и ваши восторженные отзывы устарели так же на четверть века. И, кстати, аналогичных инструментов немало.


  1. alexovchinnicov
    13.08.2021 08:25
    -1

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

    Но в ИТ такое сплошь и рядом. У нас коллектив как семья, зачем нам ITIL/ITSM подход к организации сервисного управления скажут большинство комментаторов этой статьи. Есть схема с описанием инфраструктуры? А документация по плану устранения ЧС в письменном виде? Так времени нет ответят они. А как посчитать затраты времени если внедрения HelpDesk/ServiceDesk просаботированы.
    Прозрачная структура позволяет проще привлекать сторонних специалистов для расширения и модернизации, а новому штатному ИТ-специалисту быстрее войти в курс дела. Админу, особенно в единственном лице это всегда невыгодно, но это выгодно компании. Получается, что «профессионал» на доверии получил деньги и не выполнил условия трудового контракта в надежде еще раз получить их за подобные задачи.
    Аналогичная ситуация и с вендорами в России. Подсмотрев как взрослые пацаны рубят бабло на subscription-based customer support, появился и стал распухать Единый реестр российских программ. Где Ceph становиться Р-Хранилище, oVirt обзывают ROSA Virtualization, а мало известная OpenNebula носит гордое название Программный комплекс "Средства виртуализации "Брест".
    С железом, впрочем, не лучше.
    Российские программные продукты как правило имеют документацию далекую от продукта прародителя и максимально рассчитаны на то что-бы вы оформите подписку на поддержку. роль/плейбуку/кубуку/etc от мирового комьюнити не работают, свои вендор не дает заказчику, как и не контейнеризирует продукт. Попутно не отстает законодательная база, которая по сути запрещает opensource в первозданном виде в стране. Вот тут и расцветает ваш remote access support. Все приближенные к российскому ИТ довольны.

    Тем временем современная уборщица ведет документацию, осваивает роботов мойщиков окон и полов, не мешает работать другим и всё это без амбиций как в ИТ.


  1. Antonto
    15.08.2021 10:34
    +2

    Я бы сократил скрипт до:

    screen -x Shared || screen -L -S Shared