СофтХабрахабр

Свистать всех на Linux, гром и молния

Привет, Хабр! Сегодня я хочу рассказать о собственном опыте перевода рабочего места на Linux. Статья не претендует на 100% охват всех проблем и их решений, но кое-какие рецепты, позволяющие сделать жизнь лучше, тут все же будут. Также в статье будет некоторое количество флешбеков, и если вы хотите окунуться в воспоминания вместе со мной, то прошу под кат.

А если вы гик-отщепенец на никсах, то в решении проблем корпоративная техподдержка вам вряд ли поможет, хотя уже далеко не нулевые:
Вообще этот рассказ (а может и цикл статей, если получится) я сначала хотел озаглавить как «похождения айтишника в недружественной среде».
Потому что если вы работаете в крупном энтерпрайзе, то большая часть сервисов компании рассчитана на то, что вы пользователь windows.

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

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

Коралина в стране кошмаров

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

Но как известно, на каждую хитрую гайку найдется болт с резьбой и наш ответ Чемберлену заключался в загрузочной флешке, на которой был установлен Offline NT password changer. Сперва у нас отобрали права администраторов на компах, что напрочь лишало возможности менять какие-то настройки, требующие повышения привилегий. Все эти действия были нужны потому что при следующей перезагрузке пароль администратора накатывался обратно групповыми политиками из домена. При необходимости сделать какие-то действия от администратора я загружался, сбрасывал пароль на свой, заходил на тачку локально (а не в домен) и производил необходимые модификации.

С мессенжерами было проще — достаточно было сменить порты на SSL и включить шифрование. Следующим этапом было блокирование ICQ (да времена были еще те), Jabber и социальных сетей. Хотя на работе вообще я использовал только плагин сообщений для QIP Infium, чтобы не пропускать сообщения из vk, а не просиживал в новостной ленте (которой тогда еще вроде и не было еще). А вот с соцсетями пришлось попрощаться, что сделало жизнь немного более унылой. Один мой коллега долгое время воевал со сборкой одного java-проекта, как оказалось, проблема заключалась в блокировании в корп.сети необходимых maven-репозиториев. Вкупе с блокированием соцсетей потом была запущена еще блокировка «развлекательного и запрещенного контента», которая до кучи еще и блокирует иногда полезные ресурсы. В запрещенные попали всякие облачные сервисы (гугл диск, документы, яндекс облако и т.д.) и файловые обменники.

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

За годы работы мной был накоплен багаж из различного полезного софта (который жил на отдельном от системного разделе в силу того, что его обычно не нужно было устанавливать, а достаточно просто скопировать): пакеры\анпакеры, редакторы ресурсов, hex-редакторы, PE-редакторы, отладчики\трассировщики, целый пак утилит с канувшего в лету сайта sysinternals, декомпиляторы (например DeDe для Delphi, JAD для java, ILspy для дотнета) и т.д.
Ну и финальным штрихом, который переполнил чашу терпения, стало ограничение запуска программ только из «разрешенных мест».

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

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

Они украли, украли её у нас, нашу прелесссть

И я стал готовить план отступления перевода рабочего места на Linux.

Все станет по-другому, когда я стану богом

Ария Рейстлина Маджере (мюзикл «Последнее Испытание»).

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

Какие еще плюсы(жирные) я приобрел:

  • native ssh (я много работаю в консоли с серверами и это прямо ну очень порадовало)
  • native shell (до того я использовал cygwin окружение под виндоус для исполнения башевых скриптов или скрптов на перл)
  • native python и fabric (вытекает из 1 пункта, для массовой обработки списка серверов фреймворк облегчает рутинные задачи значительно). Для работы фабрики внутри cygwin был собран франкенштейн в виде ssh-агента, который берет ключ, общаясь с putty agent(который уже сидит в памяти), и передает его линукс подсистеме как если бы ключ был загружен в родной ssh-агент.
  • native git (работа в гите под windows это боль. хоть в cygwin, хоть внутри его собственного git bash внутри msys окружения)

Как перейти на Linux и перестать ныть начать жить

Установка Linux на рабочую тачку не была чем-то экстра-сложным. Заранее дома была подготовлена загрузочная флешка с Live-образом необходимого дистрибутива, выбран был Linux Mint (последней на момент написания версии 19.2) по совету уже работающих коллег из отдела серверного администрирования.

на пк был включен quick boot и вместо диагностических сообщений (где я надеялся увидеть сочетание для входа в BIOS) начинал сразу грузить винду. На попытку загрузиться с флешки комп никак не отреагировал, т.к. И при входе в BIOS меня поджидал первый сюрприз — окно ввода пароля. Беглое гугление по наименованию модели nettop вывело на клавиши для входа в BIOS и для входа в boot menu. Мда, вот тебе бабушка и Юрьев день. Если отказаться вводить пароль по Esc, то настройки было можно только смотреть. И точно, по F8 можно было выбрать устройство с какого грузиться. Хотя поменять boot sequence мне не удалось, но оставалась призрачная надежда на вход в boot menu. Из совершенных косяков был только 1 — при разбивке диска он мне любезно сообщил, что у меня не создан раздел для UEFI загрузчика и возможно я не смогу загрузиться потом после установки, на что я ему сказал: «да, создавай, ты же лучше меня все знаешь». Грузимся с флешки, запускаем инсталл, далее следуем указаниям мастера установки. Позднее опытным путем я выяснил, что могу загрузиться обратно в винду с помощью моей той самой незаменимой загрузочной флешки, на которой стоит GRUB (там имеется пункт поиска bootmgr на всех разделах и передачи ему управления в случае обнаружения). И этот выбор потом мне стоил кровавых слез и некоторого количества потраченых нервов, потому что при загрузке у меня был теперь только Linux. Но скажу честно, с момента перехода на темную сторону необходимости пока такой не возникало.

Грохочет гром, сверкает молния в ночи

а на холме стоит безумец и кричит
сейчас поймаю тебя в сумку и сверкать ты будешь мне
мне так хочется чтоб стала ты моей

Первым делом после установки системы мне нужно было настроить почту.
Посмотрев на веб-почту, для себя я решил что OWA уныл чуть более чем полностью.

Мой OWA кошмарит вообще адовые сценарии.
Ну такой вот примерно сценарий усредненный, потому что вариаций масса.
Берется почта, она не проверяется, проверять — это не про моего OWA.
Он берет все письма, вываливает их в inbox и начинает фильтровать.
Добавляет огромное количество приглашений на встречи, вложений, пропущенных сообщений Lync.
Полушепотом приговаривая «ух бл..», при этом у него на лбу аж пот выступает.
При попытке добавить новые правила фильтрации любезно предлагает мне отключить что-то из существующих, на что я отказываюсь.
Надо ли говорить какой дичайший бардак потом в почте.

И в качестве почтового клиента было решено использовать Thunderbird. Не буду приводить тут всю настройку, благо примеров полно и тут на Хабре, и вообще в интернете. Отмечу только некоторые моменты.

Чтобы папки стали отображаться, на них нужно подписаться. При подключении почтового ящика по IMAP по умолчанию не отображаются папки. Максимум что получилось сделать — это отображение непосредственных детишек для Inbox. Но у меня не удалось сделать отображение иерархии (у меня в ящике настроена довольно разветвленная структура папок куда письма сортируются фильтрами). Что удручало.

Это шлюз, который является смычкой города с деревней и позволяет работать с серверами Exchange для не-windows машин. Как-то раз, блуждая по корпоративной wiki, я обнаружил статью про то, что у нас поднят шлюз DavMail. С одной задачей было покончено. Попробовал подключить IMAP через него и о чудо, у меня отобразились сразу все папки с иерархией как они были созданы раньше. В громоптице адресная книга настраивается как ldap directory, и я ее подключил тоже сперва через DavMail шлюз, но потом выяснилось что в этом есть и свои минусы(об этом далее). Следующей задачей была настройка адресной книги с подсказками адресов при вводе.

Заводит молния меня, как жаль что я ее не смог

Ну и финальный штрих к настройке почты — это календарь\органайзер для того чтобы управлять приглашениями на встречи и планировать свой день. В последних версиях дополнение Lightning идет сразу предустановленное, но требуется его настройка. DavMail экспортирует календари Exchange в формате CalDav, первым делом я подключил этот вид календаря. И сразу обнаружил минусы в его работе: входящие приглашения в календарь добавляются, но я не могу добавить потом еще в то же мероприятие людей (форварднуть приглашение на митинг), если я не являюсь организатором. Я испробовал много разных вариантов и единственное, что тут удалось сделать, это поставить дополнение SFOA, которое добавляет возможность скачать из письма само приглашение в виде ics файла, который я потом пересылал другим людям. Мда, не очень-то удобно. А потом я нашел в сети дополнение для работы сразу с календарями Exchange напрямую. Оно отсутствует в магазине дополнений и может быть только установлено из файла (ссылка на гитхаб в конце статьи). При установке дополнения календарь стал работать почти как в Outlook, по крайней мере я смог нормально форвардить встречи как это было мне надо, т.е. без лишних телодвижений.

Ну кому нужны книжки без картинок

Говорила Алиса в произведении Льюиса Кэррола.

Особенно, если это адресная книга в вашей почте. И я с ней в некоторой степени согласен. Сразу из коробки в громоптице нет возможности показывать аватары, но в магазине есть дополнение под названием Awsome LdapShowInfo, которое позволяет добавить эти красивости. Пока я пользовался оутлуком, я обычно проверял кому я отправляю почту по изображениям адресата, которые там показывались во всплывающем тултипе при наведении на адрес. В информации к дополнению указано, что изображение берется из пары атрибутов в ldap директории (которая используется как адресная книга в настройках thunderbird), но у меня он упорно выводил сообщение no ldap server available.

Будь проклят тот день когда я сел за баранку этого пылесоса!

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

Сообщение недоступности сервера пропало, но места под аватары оставались в письмах пустыми. Но если вы думаете, что исправление настроек дополнения сразу дало мне аватары адресатов, то вы ошибаетесь. Для работы с ldap в графическом интерфейсе есть Jexplorer (завести LdapAdmin, к которому я привык, через wine мне не удалось, различные статьи на форумах говорили про несовместимость реализации winldap32.dll у вайна с другими windows-приложениями). И тут я решил посмотреть, что мне возвращает сервер с адресной книгой. Пришлось поменять адресную книгу на прямое подключение в контроллер домена, но при этом и подкорректировать запрос, которым клиент делает запрос поиска адресов (и который используется для репликации адресной книги локально в файл). И что же я увидел — в атрибутах адресной книги, выдаваемой шлюзом DavMail, нет атрибутов с картинками, которые я видел, если просто подключиться к контроллеру домена.

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

В хрустальном шаре ты видишь этот мир

После настройки программ на рабочей машине встал вопрос настройки удаленных сеансов.
В силу ограничений офисного файрвола vnc использовать было нельзя т.к. порт 5900 был закрыт, а проверять другие какие доступны было лениво. Коллеги подсказали, что можно использовать xrdp, который работает на стандартом rdp порте и подключаться к нему можно с любого клиента: хоть на windows машинах, хоть на Linux. Но как выяснилось не все так безоблачно. При попытке входа в rdp я видел только черный экран после ввода своих учетных данных в окне авторизации. Каким-то чудом на форуме минта был обнаружен рецепт для исправления этой ситуации, привожу его тут, может кому пригодится тоже (я использую оконный менеджер xfce, поэтому и рецепт соответствующий, можно заменить на любой другой какой вы используете у себя):

echo "env -u SESSION_MANAGER -u DBUS_SESSION_BUS_ADDRESS xfce4-session" > ~/.xsession

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

Всякий раз мне приходилось их настраивать заново, когда я обнаружил вот этот гайд. После настройки самого удаленного входа встал вопрос настройки клавиатурных раскладок в удаленных сеансах. После настройки rdp я до кучи настроил себе еще и sshd и получил возможность пробрасывать иксы прямо с рабочей тачки на домашний пк. Спасибо, 2 чая этому господину. В некоторых случаях это удобнее, чем запускать rdp.

Возможно со временем в «похождениях айтишника» добавится еще глав, а пока спасибо за внимание и до новых встреч.

Ссылки:

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»