Защита ноутбука с Linux

Защита ноутбука Linux

Уверен, что многие посетители сайта www.spy-soft.net уже давно избавились от стационарных компьютеров и используют ноутбук как основной инструмент для работы, учебы и всего остального. Мир стал более мобильным. Но увы там, где есть мобильные устройств, всегда есть риск их потерять, забыть или, что еще хуже быть обокраденным. В этой статье я расскажу как защитить ноутбук с Linux, уберечь его от посторонних глаз и в случае кражи отыскать украденное устройство.

Еще по теме: Лучшие инструменты аудита безопасности Linux

Физический доступ к ноутбуку

Начнем, как обычно, с азов, а именно с пароля на вход. Казалось бы, здесь все просто: любая графическая среда имеет встроенную блокировку компьютера, которая требует ввести пароль после нескольких минут простоя машины. Но что делать, если вы не используете графическую среду и ваш выбор — легковесный оконный менеджер вроде Fluxbox или i3?

Существует масса самых разнообразных блокировщиков экрана, но я бы рекомендовал остановиться на slock. Это крайне простой блокировщик, не имеющий никаких графических элементов управления, окон ввода и переключателей сессий. Все, что он делает, — это заливает экран черным цветом. При вводе пароля экран становится синим, а при нажатии Enter в случае неправильного пароля — красным. Увидев такое, большинство «взломщиков» впадут в ступор и решат, что компьютер просто завис или полетел.

Запускать slock можно как напрямую (тогда экран заблокируется сразу), так и автоматически после пробуждения ноутбука. Во втором случае вам потребуется systemd-юнит следующего содержания:

[Unit]
Description=Lock X session using slock for user %i
Before=sleep.target

[Service]
User=%i
Environment=DISPLAY=:0
ExecStartPre=/usr/bin/xset dpms force suspend
ExecStart=/usr/bin/slock

[Install]
WantedBy=sleep.target

Сохраните его в файл

 /etc/systemd/system/slock@.service

и активируйте юнит (USER — ваше имя в системе):

$ sudo systemctl enable slock@USER.service

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

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

Защита ноутбука с помощью шифрования диска

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

Минимизировать проседание производительности можно, если зашифровать только раздел /home (на котором и находятся ваши данные), а саму систему оставить незашифрованной. По факту многие дистрибутивы предлагают такой вариант по умолчанию, но он тоже не идеален: ноутбук будет съедать дополнительные ресурсы просто при просмотре сохраненного на диск фильма, а если вы занимаетесь разработкой ПО или просто часто собираете софт из исходников — готовтесь к существенному замедлению.

Но и из этой ситуации есть выход. Системы EncFS и CryFS используют механизм FUSE, чтобы создать зашифрованную виртуальную ФС поверх основной. С их помощью вы сможете зашифровать любой отдельно взятый каталог, без необходимости выделять специальный контейнер заранее определенного размера и с возможностью синхронизации каталога с облачным сервисами типа Dropbox.

Обе файловые системы используют алгоритм AES-256 в режиме GCM, но отличаются в реализации. EncFS шифрует каждый файл по отдельности и поэтому скрывает лишь содержимое файлов и их названия, но никак не препятствует получению информации о структуре каталогов и размере файлов. Другими словами: если кому-то потребуется доказать, что вы храните какой-нибудь нелегальный контент, скачанный из даркнета, — он сможет это сделать.

CryFS защищает от подобных рисков. Зашифрованный с ее помощью каталог выглядит как плоское файловое дерево с кучей каталогов и файлов одинакового размера. Однако CryFS никогда не подвергалась независимому аудиту, который был произведен в отношении EncFS. Если вас это останавливает — используйте EncFS, если же вы не верите ни тому, ни другому — можете вооружиться VeraCrypt или другим «классическим» инструментом шифрования, использующим контейнер заранее заданного размера, который нельзя выложить в Dropbox без синхронизации всех зашифрованных данных при малейшем изменении.

Использовать EncFS и CryFS крайне просто. Достаточно установить пакет, а затем выполнить операцию монтирования:

$ cryfs ~/Dropbox/box ~/crypto

В данном случае мы подключаем зашифрованный каталог ~/Dropbox/box как ~/crypto. Все файлы, записанные в последний, появятся в первом в зашифрованном виде.

В этот каталог можно сложить все ценные данные: сканы паспорта, ключи GPG, рабочие каталоги криптокошельков, базы паролей и так далее. Подключать его придется вручную после каждой загрузки, а после использования лучше сразу отключать:

$ fusermount -u ~/crypto
Защита ноутбука Linux
Содержимое каталога, зашифрованного с помощью CryFS

Более подробную информацию о шифровании в Linux, можете прочитать в статье «Лучшие средства шифрования для Linux».

Защита ноутбука с помощью аутентификация без пароля

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

Флешка для защиты ноутбука с Linux

Думаю, все слышали про штуку под названием YubiKey. Это USB-ключ, выступающий в роли второго фактора при аутентификации на сайтах и в системе. Стоит такой ключ 50 долларов, но на самом деле вместо него можно использовать обычную флешку.

Модуль pam_usb позволяет настроить аутентификацию с помощью любой USB-флешки. Принцип работы здесь следующий: утилита записывает на флешку 2 Кбайт случайных данных, которые выступают в роли уникального ключа. Во время аутентификации pam_usb прочитает блок данных с флешки, сравнит их с сохраненными в компе и пустит вас в систему, если они совпадают.

Чтобы все это заработало, необходимо выполнить следующие шаги. Установить pam_usb:

$ git clone https://github.com/aluzzardi/pam_usb.git
$ cd pam_usb
$ make
$ sudo make install

В Arch Linux pam_usb доступен в AUR:

$ yaourt -S pam_usb

Добавить те самые случайные данные на флешку (здесь AuthKey — произвольное имя):

$ sudo pamusb-conf --add-device AuthKey

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

$ sudo pamusb-conf --add-user username

Проверить, что все настроено так, как надо:

$ sudo pamusb-check username

Наконец, добавить pam_usb в список PAM-модулей. Для этого открываем файл /etc/pam.d/common-auth (или /etc/pam.d/system-auth в Arch Linux и Fedora) и добавляем в начало файла такую строку:

auth sufficient pam_usb.so

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

auth required pam_usb.so

Имейте в виду, что автор pam_usb не позиционирует свою разработку как нечто, чему можно доверить защиту государственной тайны и уж тем более семейного рецепта лукового супа. С флешки можно снять дамп, записать его на другой USB-накопитель и использовать его для аутентификации.

Защита ноутбука Linux
Настраиваем pam_usb

Смартфон для защиты ноутбука с Linux

Вместо флешки (или в дополнение к ней) можно взять смартфон. Уверен, что хотя бы раз в жизни вы пользовались приложением Google Authenticator. Оно реализует алгоритм TOTP (Time-based One-Time Password, RFC 6238), позволяющий выполнять аутентификацию в одном приложении с помощью одноразового пароля, сгенерированного другим приложением.

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

Для этого необходимо установить PAM-модуль pam-google-authenticator:

$ ./bootstrap.sh
$ ./configure
$ make
$ sudo make install

В Arch Linux установка делается так:

$ yaourt -S google-authenticator-libpam-git

Далее запускаем приложение google-authenticator:

$ google-authenticator

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

Далее, как и в случае с флешкой, добавляем в

/etc/pam.d/common-auth

следующую строку:

auth required pam_google_authenticator.so no_increment_hotp

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

защита linux компьютера
QR-код pam-google-authenticator

Защита ноутбука с Linux с помощью противоугонки

С помощью паролей, одноразовых кодов и шифрования мы можем защитить лишь информацию на ноутбуке. Чтобы защитить сам ноутбук, нужны совсем другие средства, а именно некая система отслеживания, подобная функции Find my iPhone. То есть система, которая позволила бы нам удаленно связаться с ноутбуком, определить его координаты, сделать снимок экрана и снимок фронтальной камерой.

Одно из лучших решений в этой сфере называется Prey. Он доступен для телефонов и компов на базе Windows, macOS и Linux. Нас интересует последний вариант, поэтому идем на страницу загрузок, качаем deb-пакет и устанавливаем его:

$ sudo dpkg -i prey_1.7.3_amd64.deb

В Arch Linux Prey есть в AUR:

$ yaourt -S prey-node-client

Только следует иметь в виду, что установится в систему он под именем prey_project.

Когда установка будет завершена, запускаем конфигуратор:

$ sudo prey config account setup

Он спросит вас о email-адресе, попросит ввести пароль, и на этом установка будет завершена. Чтобы проверить, что все работает, переходим в веб-панель управления и наслаждаемся возможностью отслеживать устройство в режиме реального времени.

Бесплатная версия Prey позволяет узнать местоположение устройства, информацию об ОС и железе, включить сигнализацию, заблокировать устройство, сделать снимки камерой или скриншоты. Чтобы получить возможность удалять данные и скачивать файлы, придется платить пять долларов в месяц.

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

защита linux
Информация о ноутбуке в панели управления Prey

Подробнее о программе Prey в статье «Как отследить Linux компьютер«.

Защита ноутбука с помощью фото злоумышленника

Еще один метод борьбы с непрошеными гостями — фоткать их. Допустим, вы оставили ноутбук в номере, заходит незнакомый человек, пробуждает ноутбук ото сна и пытается залогиниться (точнее, пытается понять, что происходит, ведь мы используем slock). Самое время его сфотографировать.

Для начала напишем скрипт, который будет делать фотку с помощью камеры ноутбука. Он будет крайне простым:

#!/bin/sh
ffmpeg -y -t 1 -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -f image2 $HOME/webcam.png

Назовите его take_photo, положите в каталог ~/bin и дайте права на исполнение:

$ chmod +x ~/bin/take_photo

Теперь нам надо написать скрипт, который будет запускать наш скрипт после пробуждения компа. Вот он:

#!/bin/sh
if [ $1 = post ] && [ $2 = suspend ]; then
    sudo -u ТВОЕ_ИМЯ_В_СИСТЕМЕ /home/ТВОЕ_ИМЯ_В_СИСТЕМЕ/bin/take_photo
fi

Назовите его 00take_photo, положите в каталог /lib/systemd/system-sleep/ и точно так же дайте права на исполнение:

$ chmod +x /lib/systemd/system-sleep/00take_photo

Теперь при каждом пробуждении ноутбук будет делать фото и сохранять его в файл ~/webcam.png. Но мы можем пойти еще дальше и отправить фотография злоумышленника себе в телеграм. Для этого устанавливаем telegram-cli. Проще всего это сделать в Arch Linux:

$ yaourt -S telegram-cli-git

Запускаем утилиту командой telegram-cli, она запросит номер телефона (phone number:) в формате +71234567890, а затем код безопасности из СМС и пароль, если он используется.

Затем немного поправим наш скрипт ~/bin/take_photo:

#!/bin/bash
ffmpeg -y -t 1 -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -f image2 $HOME/webcam-`date`.png 
sleep 60
telegram-cli -W -D -e "send_photo @ВАШЕ_ИМЯ_В_ТЕЛЕГРАМЕ $HOME/webcam.png `date`"

Теперь он не только сделает фотография непрошеного гостя, но и отправит его фейс в наш телеграм. Команда sleep 60 нужна для минутной задержки перед отправкой, чтобы ноутбук успел подключиться к Wi-Fi.

Выводы

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

Еще по теме: Обзор лучших менеджеров паролей для Linux

ВКонтакте
OK
Telegram
WhatsApp
Viber

5 комментариев

  1. Аватар
    solid

    Администрация, вы ведь понимаете что ваш сайт в ввиду его специфики часто посещают используя Tor или VPN? Так какого хрена вы блокируете комментарии большОй доли ваших посетителей? Почему нельзя просто подключить капчу для комментариев, если проблема именно в спаме?

    • Falcon
      Falcon

      Мы не пропускаем комментарии, в которых присутствует: мат, оскорбления авторов или других пользователей, политику и рекламу. Также в некоторых случаях можем заблокировать комментарии не несущие ценности для наших посетителей, например: круто!, молодца! фигня и т.д.

      Если ваш комментарий не попадает ни под одну из этих категорий, значит произошла ошибка. Мы сожалеем. Попробуйте еще раз.
      Спасибо за понимание!

  2. Аватар
    Антон

    Можете написать о выборе ноутбука под линукс?

  3. Аватар
    Ярослав

    Дорогие авторы. Зачем Вы городите огород.

    В Линукс уже всё есть, что нужно. Полнодисковое шифрование так и не упомянули. Чем не устраивает шифрование домашней папки? Какая производительность падает? Сколько процентов? 1 или 2?

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

  4. Аватар
    GOha

    Доброго времени суток!Можно по подробней по теме защита ноутбука с помощью фото злоумышленника?Как прописывать скрипты?

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

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