Безопасность в моде, как это и должно быть. Мы живем в мире, где данные — невероятно ценная валюта, которую вы всегда рискуете потерять. Поэтому вы должны сделать все, чтобы убедиться, что то, что вы держите на серверах и десктопах — в безопасности. Для этого администраторы и пользователи создают невероятно сложные пароли, используют менеджеры паролей и т.д. Но что, если я вам скажу, что вы можете логиниться на ваши серверы и десктопы Linux за два шага, вместо одного? Вы можете это делать благодаря Google Authenticator. Более того, это невероятно легко настроить.

Я собираюсь провести вас через процесс настройки двухфакторной аутентификации для использования ее на логине и sudo. Я продемонстрирую это на десктопной Ubuntu 16.04, но процесс также работает и для сервера. Чтобы справиться с двухфакторной стороной вещей, я буду использовать Google Authenticator.

Есть одно очень важное предостережение: однажды настроив это, вы не сможете зайти в аккаунт (или использовать команду sudo) без шестизначного кода из аутентификатора. Для вас добавляется еще один шаг, поэтому, если доставать смартфон каждый раз, когда вам необходимо залогиниться на вашу Linux-машину (или использовать sudo), является для вас проблемой, возможно, этот способ не для вас. Но помните, как бы там ни было, этот дополнительный шаг приносит вам дополнительный слой защиты, которого бы иначе не было.

После сказанного, давайте займемся настройкой.

Установка необходимых компонентов


Есть два кусочка этого пазла, которые должны быть установлены вместе в виде Google Authenticator. Первый — это приложение для смартфона. Вот как можно установить его из Google Play Store:

  1. Откройте Google Play Store на вашем Android-устройстве
  2. Найдите через поиск "google authenticator"
  3. Тапните по наименованию от компании Google Inc.
  4. Тапните «Установить»
  5. Тапните «Принять»
  6. Дождитесь завершения установки

Теперь давайте переместимся к установке аутентификатора на вашей linux-машине. Вот так:

  1. Открыть окно терминала
  2. Выполнить команду sudo apt-get install libpam-google-authenticator
  3. Введите свой sudo-пароль и нажмите Enter
  4. Если будет предложено, введите y и нажмите Enter
  5. Дождитесь завершения установки

Теперь пришло время конфигурирования процесса аутентификации для работы с google-authenticator.

Конфигурация


Нужно отредактировать всего лишь один файл, чтобы добавить двухфакторную аутентификацию сразу для логина и sudo. Это файл /etc/pam.d/common-auth. Откройте его и найдите строку:

auth [success=1 default=ignore] pam_unix.so nullok_secure

Над этой строкой добавьте следующее:

auth required pam_google_authenticator.so

Сохраните и закройте файл.

Следующий шаг — настроить google-authenticator для каждого пользователя в системе (иначе они не смогут залогиниться). Для примера, предположим, что в вашей системе есть два пользователя: jack и olivia. Сперва настроим его для jack (предположим, что это аккаунт, с которым мы работали все это время).

Откройте окно терминала и выполните команду google-authenticator. Вам зададут ряд вопросов (на каждый из которых следует ответить y). Вопросы такие:

  • Хотите ли вы, чтобы я обновил ваш файл "/home/jack/.google_authenticator"? (y/n) y
  • Хотите ли вы запретить множественное использование одного и того же токена? Это ограничивает вас до одной попытки входа примерно раз в 30 секунд, но увеличивает шансы заметить или даже предотвратить атаку человек-посередине. (y/n) y
  • По умолчанию, токены хороши для 30 секунд, а чтобы компенсировать возможные перекосы времени между клиентом и сервером, мы предоставляем дополнительный токен до и после текущего времени. Если вы испытываете проблемы с некачественной синхронизацией времени, вы можете увеличить окно с его дефолтного значения 1:30 мин., до примерно 4 мин. Хотите это сделать? (y/n) y
  • Если ваш компьютер, на который вы логинитесь, не защищен от брутфорс-попыток залогиниться, вы можете включить частотное ограничение для модуля аутентификации. По умолчанию, это ограничивает атакующих на не более чем 3 попытки залогиниться каждые 30 секунд. Хотите включить частотное ограничение? (y/n) y

Ответив на эти вопросы, вам будет предоставлен секретный ключ, код верификации и пять аварийных скрэтч-кодов. Распечатайте скрэтч-коды и храните их при себе. Эти коды могут быть использованы, если у вас нет при себе вашего смартфона (каждый код может быть использован только один раз). Секретный ключ — это то, что вы используете для настройки аккаунта в приложении Google Authenticator, а код верификации — это одноразовый код, который вы можете использовать немедленно (если необходимо).

Настройка приложения


Теперь у вас есть настроенный пользователь jack. Перед тем, как вы сможете настроить пользователя olivia, вам необходимо добавить аккаунт для jack в приложение Google Authenticator. Откройте приложение и тапните кнопку меню из главного окна (три вертикальные точки в верхнем правом углу). Тапните «Настроить аккаунт», а затем тапните «Введите ключ». В следующем окне (Изображение 1) вы введете 16-значный секретный ключ, предоставленный во время выполнения приложения google-authenticator. Дайте аккаунту имя (так вы запомните на каком аккаунте он будет использоваться) и тапните «ДОБАВИТЬ».


Изображение 1: Добавление нового аккаунта в приложение Google Authenticator.

Теперь, после добавления аккаунта, вам будут представлены шестизначные ключи, которые будут требоваться каждый раз при логине или попытке использовать sudo.

Наконец, вы должны настроить другие аккаунты в системе. Как я и говорил, мы собираемся настроить аккаунт под названием olivia. Вот так:

  1. Откройте окно терминала
  2. Выполните команду sudo su olivia
  3. Откройте Google Authenticator на вашем смартфоне
  4. Введите шестизначный код аутентификации (предоставленный приложением) в окне терминала (Изображение 2) и нажмите Enter
  5. Введите свой sudo-пароль и нажмите Enter
  6. Как новый пользователь, выполните команду google-authenticator, ответьте на вопросы и запишите предоставленные ключи и коды

После того как вы успешно настроили пользователя olivia с помощью команды google-authenticator, добавьте новый аккаунт в приложении Google Authenticator с соответствующей пользовательской информацией (так же, как вы делали для начального пользователя). Теперь у вас должны быть аккаунты для обоих пользователей jack и olivia в приложении Google Authenticator.


Изображение 2: Ввод шестизначного кода аутентификации для sudo.

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

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


  1. dmitry_dvm
    03.06.2016 19:37
    +33

    >Откройте Google Play Store на вашем Android-устройстве
    2.Найдите через поиск «google authenticator»
    3.Тапните по наименованию от компании Google Inc.
    4.Тапните «Установить»
    5.Тапните «Принять»
    6.Дождитесь завершения установки

    Это хабр или одноклассники?


    1. Evgeny42
      03.06.2016 19:57
      +19

      В одноклассниках написали бы «трогните» вместо «тапните» :)


    1. ComodoHacker
      04.06.2016 22:52
      -1

      Это перевод.


      1. grossws
        04.06.2016 22:56

        Это не повод переводить шлак.


  1. NeoCode
    03.06.2016 20:52
    -8

    Без ынтернета работать не будет.
    Для защиты от просто случайных любопытных достаточно обычного пароля.
    А для чувствительных данных есть truecrypt, veracrypt и т.д.


    1. mr_dein0s
      03.06.2016 21:04
      +9

      Вообще-то будет прекрасно работать и без интернета. Почитайте про TOTP алгоритм.


      1. NeoCode
        03.06.2016 21:19
        +2

        Почитал, идея очень понравилась. В предлагаемом решении используется именно TOTP?


        1. mr_dein0s
          03.06.2016 21:27
          +2

          Да, google authenticator, как и многие TFA решения используют данный алгоритм.
          Можно глянуть вики.



  1. Ivan_83
    04.06.2016 00:12
    +3

    Если кого то реально колышет безопасность лучше использовать смарткарты, i-button с не извлекаемыми ключами или прочие аппаратные плюшки которые задуманы именно для этого.
    Доверять девайсу с андройдом или яблоку — это моветон: или утечёт через очередную из 100500 дырок или батарейка сядет в самый ответственный момент. Про не извлекаемость я вообще молчу.
    Удобство работы тоже на нуле, даже в сравнении с девайсами которым нужен отдельный считыватель.


    1. yarlson
      04.06.2016 15:28
      +3

      Моветон — писать андроид через «й».


    1. Frankenstine
      04.06.2016 16:08

      или утечёт через очередную из 100500 дырок

      Что утечёт?
      или батарейка сядет в самый ответственный момент

      Вы логинитесь на компьютере. Подключите USB шнур к нему и подзарядитесь. Шнурок-то не сложно с собой таскать.


      1. Wesha
        04.06.2016 18:40

        Подключите USB шнур к нему и подзарядитесь.

        А у меня на телефоне сломан USB разъём. (Я вторую батарейку зарядником заряжаю и меняю. Без шуток.)


        1. artyums
          04.06.2016 20:31
          +4

          Починить разъем не дешевле, чем покупать батарейку и каждый раз такое неудобство терпеть?


          1. Wesha
            05.06.2016 02:59

            Смотрел — разъём напаян планарной пайкой (естественно), а я привык паять по-старинке — "в дырочки". "Неудобства" на 10 секунд — открыл крышку, сменил батарейку, закрыл крышку; заодно почти всегда есть запасная батарейка, что скорее преимущество.


      1. Ivan_83
        04.06.2016 23:32
        -9

        Секретный общий ключ, на основе которого оно генерит одноразовый пароль
        Либо будет слать по запросу по сети, но упереть проще.

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

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

        Я лично не люблю андройд: ситуация с ним сейчас много хуже чем с виндой, даже десяткой: винду хотя бы можно купить и поставить лицензионную, там хотя бы МС что то обещает, а андройд только «пирацкие зверь ЦД» от вендора, с кучей невесть чего из коробки. Плюс куча невменяемых приложений в маркете которым нужен полный доступ ко всему, даже фонарику нужен и вайфай и блютус и платные смс, при этом у пользователя нет ни антивируса толкового ни каких то средств посмотреть что вообще происходит. (про что чтобы вытащить винт и проверить на чистой системе, полечить я молчу)
        При этом девайс носимый и имеет кучу незащищённых контактов, как беспроводных так и проводных…
        А без привязки к гуглу этот карманный трекер людишек вообще бесполезен.
        С яблоком ситуация в целом не лучше: оно хоть и всё без закладок от кучи вендоров, зато само сливает и полностью рулится из центра, а поскольку этот центр я лично не контролирую то и доверять не могу.


        1. avost
          05.06.2016 17:06
          +4

          >В итоге: зачем с этим связываться?

          Так не связывайтесь. Вас ведь не заставляют

          >Плюс куча невменяемых приложений в маркете которым нужен полный доступ ко всему, даже фонарику нужен и вайфай и блютус и платные смс,

          По-моему, вы слишком много читали журнал хацкер.
          И,… это,… а зачем вы их таких невменяемых ставите?


          1. Ivan_83
            05.06.2016 18:33
            -3

            Я и не связываюсь, мне неудобства в обмен на видимость безопасности не нужны.

            А других почти нет.
            Кроме того, у меня гандройд обычно (99% времени) вообще спит в режиме «полёт», остальное время обычно без вафли и с отключённым инетом/звонками на симке, в аппарате практически ничего ценного нет, так что я могу себе позволить ставить что угодно ничем не рискуя.


            1. avost
              05.06.2016 19:23
              +4

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


              1. Ivan_83
                06.06.2016 00:37
                -6

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

                Про атаки.
                В первую очередь андройд/яблоко, но особенно андройд это атака на семейный бюджет: нужно либо брать мегабренда типа самсунга, либо каждый год покупать новый аппарат, потому что какой нибудь хайскрин вообще апдейты не выпускает, из принципа. Разбираться и возится с альтернативными прошивками или самому делать свою — я не хочу, мне оно настолько не нужно.
                Про бьющееся стекло с первого падения (как повезёт) разговор отдельный.
                Но в среднем 2-3 года и девайс даже если физически ещё годен то программно уже больше похож на зомби, в том смысле что софт современный или не ставится или не тянет. Хотя если брать какую то модель на 2-4 ядра и гиг+ оперативы, даже относительно старые (год+) то они ещё вполне, но это говорит о резком замедлении темпов развития железа в этом сегменте, так же как в х86 настольном.

                Второе это лишение приватности: тело само постоянно непонятно что и куда (кроме гугла) сливает инфу.

                Третье: мне телефон нужен, как ни странно, чтобы мне могли позвонить и я мог позвонить.
                Концепция андройда, который мало того что нужно заряжать каждый день, но если у аппарату вздумается то он может и сожрать батарею раньше, чем до вечера (ибо хз что там приложения в фоне делают, может им вздумалось голос и видео постримить хозяевам) меня совершенно не устраивает.
                Более того, мне совершенно лень, не интересно и дискомфортно следить за зарядом аппарата, а каждый день его заряжать.
                Свою звонилку я заряжаю раз в месяц (15-25 суток), всё что чаще уже не телефон а тамагочи.
                Андройд, в режиме «полёт» и с погашенным экраном, те совсем без связи, у меня тоже вполне себе живёт недели 2+, и для меня большая загадка почему когда ему включаешь радиомодуль он всё сжирает за 2-4 суток, когда звонилка с АКБ меньше такой ерундой не страдает.

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

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

                Всё что написал автор это: «Но что, если я вам скажу, что вы можете логиниться на ваши серверы и десктопы Linux за два шага, вместо одного?» — давайте сразу за 100 шагов, но кроме юзабилити ничего не меняется.

                Двух факторная аутентификация имеет какой то смысл только если оба фактора достаточно надёжны.
                Платформа для развлечений — очевидно же что фуфел в таком деле, что с ней не делай.


                1. avost
                  06.06.2016 03:29
                  +5

                  Мда. А ещё он грабит корованы…


    1. PlatinumThinker
      05.06.2016 09:49

      есть менее безопасный и более дешёвый способ — использовать в качестве этого обычную флешку и настроить pam_usb


      1. datacompboy
        05.06.2016 11:30

        и как это поможет over ssh?


    1. GOleg
      05.06.2016 18:31
      +2

      >батарейка сядет в самый ответственный момент
      Для этого есть резервные коды.


  1. madhead
    04.06.2016 01:37

    Как отнесутся к такому Chef / Ansible? Если Chef ещё может и ничего — всё-таки там не требуется логин, ноды сами вытягивают данные, то Ansible требует установки SSH соединений с управляющей машины.


    1. snp
      04.06.2016 11:51
      +2

      Я когда-то писал статью о 2FA для SSH на основе google authenticator, более подробную: https://habrahabr.ru/post/186376/ — упоминал в примере конфигурации плагин pam_access.so, он может определённым IP адресам отключать 2FA.


      1. S-ed
        05.06.2016 10:27

        То есть, в таком случае работает старый добрый, IP-спуфинг с перебором паролей...(Хотя тут стоит вспомнить про преимущество SSH без пароля).


      1. navion
        06.06.2016 13:26

        Нельзя просто вклбючить 2FA для избранных учёток, а служебным оставить аутентификацию по ключу?


  1. AlexGluck
    04.06.2016 01:50

    А как это всё выглядит в гуй через k/gdm?


    1. romeo_ordos
      04.06.2016 11:28

      Я для локального входа настраивал PAM исключительно по LastPass Authenticator. GDM3 выглядит ровно так же. Сначала выбираешь пользователя или вводишь его логин если отключен список, после вводишь «Verification Code» в поле, куда раньше пароль вводился.

      Думаю с KDM/SDDM ситуация аналогична.


      1. AlexGluck
        04.06.2016 12:24

        Ужасная реализация. Лучше в сейф комп спрятать.


  1. nikitasius
    04.06.2016 08:46
    -6

    Поставил +1 за перевод/труд. И надо бы -1 за идею, реализацию и вообще выбор гугла и андроида как секьюрной части системы. Но это уже к автору, а не к переводчику.

    Сама идея хорошая (когда требуется подтверждение доступа «штукой из вне»), но как заметили выше, есть смарткарты, ест токены, есть дофига чего «железного», вместо того, чтобы сливать свои данные в гугл или давать гуглу управлять доступом к машине. Или использовать гребаную звонилку!

    И не вопрос о том, что какой-нибудь хрен мне сейчас ответит "Я лучше доверю свои данные гуглу чем @#$%", а в том, что год от года люди, которые отвечают или хотят отвечать за безопасность тупеют, и вся надежда на старых параноиках.

    На компьютере Джека, Оливии или Васи — пофигу, особенно если они используют линукс вида ради, и работают с виндузятным софтом. Так что и теги неправильные: сервер и безопасность.


    1. rPman
      04.06.2016 10:20
      +2

      А теперь давайте рассмотрим итоговую стоимость системы, на смарткартах, токенах и т.п. или купить дешевый android-телефон, выключить в нем радиомодуль и установить на него FreeOTP и пользоваться сканером в виде камеры и qr-кодов.


      1. nikitasius
        04.06.2016 11:04
        +1

        Токены и смарткарты стоят от 20 баксов.


        1. snp
          04.06.2016 12:00
          +2

          Ок, умножаем на количество серверов, куда нужно ходить. И для каждого отдельный токен. Недёшево выходит. Для смарткарты — ещё ридер таскать.


          1. a1ien_n3t
            04.06.2016 15:54

            На один токен можно несколько ключей записать. Посмотрите в сторону yubico


            1. EminH
              06.06.2016 15:02

              или наоборот, один ключ на всех серверах (это не тоже что и один пароль на всех)


        1. rPman
          04.06.2016 18:04
          -1

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


          1. nikitasius
            04.06.2016 19:40

            Для лаптопа можно найти на 8 баксов с Амазона.


    1. farcaller
      04.06.2016 10:23
      +5

      сливать свои данные в гугл или давать гуглу управлять доступом к машине

      Простите, что? https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm


      1. rPman
        04.06.2016 10:32
        +3

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


        1. farcaller
          04.06.2016 10:57
          +1

          ну купите аппаратный TOTP, как это относится к теме статьи? Она — про двухфакторную авторизацию, а не про производителей смартфонов.


          1. nikitasius
            04.06.2016 10:59
            +1

            Тем самым и относится, что Анроид, что Гугл, что приложение от гугла.


            1. farcaller
              04.06.2016 11:03
              +1

              Скачайте исходникки и проведите аудит?


              Статья решает конкретную проблему — двухфакторную авторизацию. И да, это безопаснее, чем просто ssh ключи.


              1. nikitasius
                04.06.2016 11:15
                -1

                Во-первых:

                Open source version of Google Authenticator (except the Android app)


                Во-вторых:
                На кой черт мне проводить аудит их софта с гитхаба и расковыривать приложение под Андроид и проводить и его аудит, если мне нужна авторизация через звонилку как козе баян?

                Ну и, в третьих:
                кража — ssh и мобилка (но пароли и там и там, мобилка равна по защите если юзер шифровал данные на устройстве)
                вирусы — мобилка
                Android app — мобилка
                Ведро говнософта-из-коробки — мобилка

                Как минимум 4 потенциальных уязвимости к мобилке и 1 к ssh.


                1. Frankenstine
                  04.06.2016 16:19
                  +1

                  Хорошо, вы умудрились заразить свою андроид-мобилку трояном (вирусов на эту платформу всё ещё нет). Что сможет троян? Особенно если у вас не рутованное устройство…


                  1. soniq
                    04.06.2016 18:09

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


                    1. alsii
                      08.06.2016 14:24
                      +3

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


                1. antoo
                  04.06.2016 19:26

                  Open source version of Google Authenticator (except the Android app)

                  Всё так, потому что приложение под Android вынесено в отдельный репозиторий.


                  1. grossws
                    04.06.2016 19:36
                    +1

                    This project is an older fork of the one on the Play store. It's an older version that doesn't get changes synced to it from the Play store version.

                    Та версия, что в play market — закрытая. Причём версия с гитхаба ещё и ходит на google.com для обхода проблемы с кривым временем на устройстве. Никакого криминала, просто использует заголовок Date.


                1. Mixaill
                  04.06.2016 20:38

                  >Open source version of Google Authenticator (except the Android app)

                  Чуть ниже

                  >The Android app is in a separate project.

                  github.com/google/google-authenticator-android


    1. Frankenstine
      04.06.2016 16:13

      Если вы не доверяете гуглу, то используйте вместо Google Authenticator любую другую TOTP программу. Например, Authy.


      1. nibogd
        04.06.2016 17:31
        +3

        Authy хранит на своих серверах шифрованный, по их словам, бэкап. Лучше FreeOTP, она разработана Red Hat и исходники открыты.


      1. EminH
        05.06.2016 09:00
        +2

        Можете ещё свое приложение сваять: https://habrahabr.ru/company/token2/blog/249921


    1. nibogd
      04.06.2016 17:24
      +3

      Вы считаете, что это менее безопасно, чем без 2fa? Всяко лучше просто пароля, телефон надо ещё сначала украсть, а украсть телефон и подобрать пароль одновременно — куда сложнее, чем просто подобрать пароль. Если нет средств на аппаратные ключи, почему не использовать это решение?


    1. ctacka
      05.06.2016 01:09
      +1

      Предложенное решение — очень хороший компромисс между безопасностью с одной стороны и стоимостью и масштабируемостью с другой. Оно явно более надежное, чем просто пароль. Гораздо лучше работает с виртуалками и по vpn, чем смарткарты (можно перезапустить парочку серверов из электрички через планшет, со смарткартами не пройдет такой номер). И масштабируется в разы лучше (развернуть на десять серверов так же легко, как и на два).


    1. vitalybaev
      05.06.2016 19:23
      +1

      Никто вас не заставляет пользоваться Гугловскими продуктами, вы можете скачать Google Authentificator на iOS устройство, или использовать аналоги Google Authentificator, работающие по этому же алгоритму


  1. ZogG
    04.06.2016 11:10
    +1

    Использую для ssh.


  1. tmnhy
    04.06.2016 12:39

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

    С чего бы это?

    Если есть физический доступ к десктопу.


    1. romeo_ordos
      04.06.2016 14:28

      Если диск шифрован, то без разницы есть физический доступ или нет.


      1. tmnhy
        04.06.2016 16:44

        Где, в этом переводном туторе про шифрование?


        1. avost
          05.06.2016 17:12
          +3

          Ну, в этом туториале ещё не написано, что не стоит в качестве пароля использовать qwertyuiop. Возможно, это потому, что статья про другое. Не?


          1. tmnhy
            05.06.2016 20:35

            Мой первый комментарий к конкретной цитате из перевода. Давайте, если и вести диалог, то применительно к нему?

            Если смысл его для вас непонятен, сформулирую еще раз подробнее, при наличии физического доступа к десктопу, что двухфакторная авторизация, что однофакторная, что запуск DE без логина, что загрузка в single — в плане защиты одно и тоже.

            И очень плохо, что про это в статье нет ни слова. Видимость защищенности — много хуже, чем отсутствие этой самой защищенности.


            1. avost
              06.06.2016 03:41

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


    1. Frankenstine
      04.06.2016 16:16
      +2

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


      1. tmnhy
        04.06.2016 16:46
        -10

        image


        1. Noiwex
          04.06.2016 20:42

          Найс ответ, сразу видно: аргументированно и четко.


  1. schweren
    04.06.2016 17:23
    -1

    Есть одно но — у Google Authenticator нет бэкапа, и в случае утери\поломки\форматирования телефона, есть риск нарваться на проблемы.
    Использую аналог Authy. Он и в Хроме, и на андроиде активен, + синхронизация.


  1. djalin
    04.06.2016 17:23
    -1

    Работает только на ubuntu 16.x и выше?


    1. romeo_ordos
      04.06.2016 17:55
      +2

      Работать будет везде, где используется PAM.


  1. nikkbelov
    04.06.2016 17:24

    У меня украли (сломался, утопил, потерял) смартфон. Что делать?


    1. JackXB
      04.06.2016 17:27
      +3

      после выполнения команды google-authenticator будут сформированны запасные пин коды для таких случаев


    1. Vilgelm
      05.06.2016 09:19
      +1

      Еще можно сделать бэкап папки /data/data/com.google.android.apps.authenticator2/databases (потребуется рут) и потом подсунуть ее в новое устройство с установленным Google Authenticator (работает, скорее всего, не только для него, для Yandex Authenticator тоже работает).


    1. Shished
      05.06.2016 10:31
      +1

      Покупать новый телефон, восстановить данные с бекапа, продолжать пользоваться.


  1. JackXB
    04.06.2016 17:24
    -1

    У меня в Ubuntu 14.04 метод с файлом /etc/pam.d/common-auth не сработал, при попытке залогинится через любую учетную запись система отказывалась принимать пароли.

    Решилось так, добавил строку auth required pam_google_authenticator.so в конец файла /etc/pam.d/sshd, в файле /etc/ssh/sshd_config в строчке ChallengeResponseAuthentication поменял no на yes. После перезапуска сервиса ssh все заработало.


  1. BcTpe4HbIu
    04.06.2016 20:44

    А как заводить нового пользователя? Вот пришел новый админ и ему нужно дать доступ на сервер. Как я понимаю эта авторизация должна настраиваться лично пользователем, но он не сможет попасть на сервер, пока не настроит эту авторизацию…


  1. l0rda
    04.06.2016 21:04

    Что чаще? У вас воруют SSH-ключ и пароль или ломают вебсайтик и запускают локалрут сплоет на сервере, который год не перезагружался? От чего эта защита?)


    1. Barafu
      04.06.2016 23:08

      Чаще у вас дохнет телефон, на который настроена эта штука. Проблема на ровном месте. На SSH необходимо и достаточно иметь ключи. Можно быстро сбацать скрипт, чтобы хранить половину ключа на телефоне.


  1. immaculate
    05.06.2016 09:59
    +3

    Меня одного смущает команда «sudo su username» вместо «sudo -u username -i»?


    1. danzealzer
      06.06.2016 07:35

      Не Вас одного, видимо.


      1. AlexPsekha
        06.06.2016 11:25

        это нормальная тема, просто перевод...)


  1. kzooz
    05.06.2016 10:31

    Вероятно полезная штука, но у меня на ноуте в /etc/sudoers стоит NOPASSWD для %root :)


  1. jakshi
    06.06.2016 07:35

    Пользовался 2FA для SSH от DuoSecurity на большом количестве серверов.

    Платно, централизованное управление.

    Chef работает, так как использует pull модель для получения данных.
    У Ansible возникли бы проблемы.

    Если не нравится Android/iPhone как устройство для аунтификации:
    — можно получать 2FA код через SMS
    — можно купить аппаратные tokens


    1. amarao
      06.06.2016 11:52

      pull для ансибла реализуется тривиальным хаком с git pull && ansible-playbook -i hosts site.yml --limit `hostname`


      1. grossws
        06.06.2016 12:21

        Или использованием готового скрипта ansible-pull, который фактически делает тоже самое.