Уверен, что многие посетители сайта www.spy-soft.net уже давно избавились от стационарных компьютеров и используют ноутбук как основной инструмент для работы, учебы и всего остального. Мир стал более мобильным. Но увы там, где есть мобильные устройств, всегда есть риск их потерять, забыть или, что еще хуже быть обокраденным. В этой статье я расскажу как защитить ноутбук с Linux, уберечь его от посторонних глаз и в случае кражи отыскать украденное устройство.
Еще по теме: Лучшие инструменты аудита безопасности Linux
Физический доступ к ноутбуку
Начнем, как обычно, с азов, а именно с пароля на вход. Казалось бы, здесь все просто: любая графическая среда имеет встроенную блокировку компьютера, которая требует ввести пароль после нескольких минут простоя машины. Но что делать, если вы не используете графическую среду и ваш выбор — легковесный оконный менеджер вроде Fluxbox или i3?
Существует масса самых разнообразных блокировщиков экрана, но я бы рекомендовал остановиться на slock. Это крайне простой блокировщик, не имеющий никаких графических элементов управления, окон ввода и переключателей сессий. Все, что он делает, — это заливает экран черным цветом. При вводе пароля экран становится синим, а при нажатии Enter в случае неправильного пароля — красным. Увидев такое, большинство «взломщиков» впадут в ступор и решат, что компьютер просто завис или полетел.
Запускать slock можно как напрямую (тогда экран заблокируется сразу), так и автоматически после пробуждения ноутбука. Во втором случае вам потребуется systemd-юнит следующего содержания:
1 2 3 4 5 6 7 8 9 10 11 12 |
[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 |
Сохраните его в файл
1 |
/etc/systemd/system/slock@.service |
и активируйте юнит (USER — ваше имя в системе):
1 |
$ 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 крайне просто. Достаточно установить пакет, а затем выполнить операцию монтирования:
1 |
$ cryfs ~/Dropbox/box ~/crypto |
В данном случае мы подключаем зашифрованный каталог ~/Dropbox/box как ~/crypto. Все файлы, записанные в последний, появятся в первом в зашифрованном виде.
В этот каталог можно сложить все ценные данные: сканы паспорта, ключи GPG, рабочие каталоги криптокошельков, базы паролей и так далее. Подключать его придется вручную после каждой загрузки, а после использования лучше сразу отключать:
1 |
$ fusermount -u ~/crypto |
Более подробную информацию о шифровании в Linux, можете прочитать в статье «Лучшие средства шифрования для Linux».
Защита ноутбука с помощью аутентификация без пароля
Итак, диск защищен, пароль установлен, но удобно ли это? Ввести пароль при загрузке, которая в современных ноутбуках происходит не так уж и часто, нетрудно, ввести пароль для расшифровки данных при загрузке тоже, но вводить его каждый раз при разблокировке экрана не особо интересно. Тем более пароль могут подсмотреть ваши соседи в самолете. Нужен другой метод, а еще лучше комбинация методов.
Флешка для защиты ноутбука с Linux
Думаю, все слышали про штуку под названием YubiKey. Это USB-ключ, выступающий в роли второго фактора при аутентификации на сайтах и в системе. Стоит такой ключ 50 долларов, но на самом деле вместо него можно использовать обычную флешку.
Модуль pam_usb позволяет настроить аутентификацию с помощью любой USB-флешки. Принцип работы здесь следующий: утилита записывает на флешку 2 Кбайт случайных данных, которые выступают в роли уникального ключа. Во время аутентификации pam_usb прочитает блок данных с флешки, сравнит их с сохраненными в компе и пустит вас в систему, если они совпадают.
Чтобы все это заработало, необходимо выполнить следующие шаги. Установить pam_usb:
1 2 3 4 |
$ git clone https://github.com/aluzzardi/pam_usb.git $ cd pam_usb $ make $ sudo make install |
В Arch Linux pam_usb доступен в AUR:
1 |
$ yaourt -S pam_usb |
Добавить те самые случайные данные на флешку (здесь AuthKey — произвольное имя):
1 |
$ sudo pamusb-conf --add-device AuthKey |
Указать пользователя, который будет проходить аутентификацию с помощью флешки:
1 |
$ sudo pamusb-conf --add-user username |
Проверить, что все настроено так, как надо:
1 |
$ sudo pamusb-check username |
Наконец, добавить pam_usb в список PAM-модулей. Для этого открываем файл /etc/pam.d/common-auth (или /etc/pam.d/system-auth в Arch Linux и Fedora) и добавляем в начало файла такую строку:
1 |
auth sufficient pam_usb.so |
В этом случае флешки будет достаточно для аутентификации. Если же вы хотите получить двухфакторную аутентификацию, когда требуется и флешка, и пароль, измените строчку на такую:
1 |
auth required pam_usb.so |
Имейте в виду, что автор pam_usb не позиционирует свою разработку как нечто, чему можно доверить защиту государственной тайны и уж тем более семейного рецепта лукового супа. С флешки можно снять дамп, записать его на другой USB-накопитель и использовать его для аутентификации.
Смартфон для защиты ноутбука с Linux
Вместо флешки (или в дополнение к ней) можно взять смартфон. Уверен, что хотя бы раз в жизни вы пользовались приложением Google Authenticator. Оно реализует алгоритм TOTP (Time-based One-Time Password, RFC 6238), позволяющий выполнять аутентификацию в одном приложении с помощью одноразового пароля, сгенерированного другим приложением.
Google позволяет приспособить Authenticator в том числе для аутентификации в своих сервисах. Однако в реальности оно никак не завязано на Google и не использует его серверы (передача ключа, нужного для генерации одноразовых паролей, происходит напрямую, с помощью QR-кода, после чего приложение действует независимо), что позволяет нам пользоваться им для аутентификации в системе без страха утечек паролей.
Для этого необходимо установить PAM-модуль pam-google-authenticator:
1 2 3 4 |
$ ./bootstrap.sh $ ./configure $ make $ sudo make install |
В Arch Linux установка делается так:
1 |
$ yaourt -S google-authenticator-libpam-git |
Далее запускаем приложение google-authenticator:
1 |
$ google-authenticator |
Оно сгенерирует QR-код (или покажет ссылку на него), который необходимо отсканировать с помощью приложения Google Authenticator на смартфоне, а также задаст несколько вопросов. На все вопросы, кроме четвертого (увеличение временного расхождения между клиентом и сервером), отвечайте отрицательно.
Далее, как и в случае с флешкой, добавляем в
1 |
/etc/pam.d/common-auth |
следующую строку:
1 |
auth required pam_google_authenticator.so no_increment_hotp |
Одноразовые пароли можно без проблем комбинировать с необходимостью вставить флешку в разных вариациях. Для этого просто выставите вторую опцию в нужное значение.
Защита ноутбука с Linux с помощью противоугонки
С помощью паролей, одноразовых кодов и шифрования мы можем защитить лишь информацию на ноутбуке. Чтобы защитить сам ноутбук, нужны совсем другие средства, а именно некая система отслеживания, подобная функции Find my iPhone. То есть система, которая позволила бы нам удаленно связаться с ноутбуком, определить его координаты, сделать снимок экрана и снимок фронтальной камерой.
Одно из лучших решений в этой сфере называется Prey. Он доступен для телефонов и компов на базе Windows, macOS и Linux. Нас интересует последний вариант, поэтому идем на страницу загрузок, качаем deb-пакет и устанавливаем его:
1 |
$ sudo dpkg -i prey_1.7.3_amd64.deb |
В Arch Linux Prey есть в AUR:
1 |
$ yaourt -S prey-node-client |
Только следует иметь в виду, что установится в систему он под именем prey_project.
Когда установка будет завершена, запускаем конфигуратор:
1 |
$ sudo prey config account setup |
Он спросит вас о email-адресе, попросит ввести пароль, и на этом установка будет завершена. Чтобы проверить, что все работает, переходим в веб-панель управления и наслаждаемся возможностью отслеживать устройство в режиме реального времени.
Бесплатная версия Prey позволяет узнать местоположение устройства, информацию об ОС и железе, включить сигнализацию, заблокировать устройство, сделать снимки камерой или скриншоты. Чтобы получить возможность удалять данные и скачивать файлы, придется платить пять долларов в месяц.
Также имейте в виду, что в отличие от отслеживания телефонов, которые по дефолту всегда подключены к мобильной сети и таким образом всегда доступны онлайн, ноутбук чаще находится в офлайне и обычно подключается к открытым Wi-Fi-сетям только после разрешения пользователя. Другими словами, шансы найти ноутбук куда меньше, чем шансы найти телефон.
Подробнее о программе Prey в статье «Как отследить Linux компьютер«.
Защита ноутбука с помощью фото злоумышленника
Еще один метод борьбы с непрошеными гостями — фоткать их. Допустим, вы оставили ноутбук в номере, заходит незнакомый человек, пробуждает ноутбук ото сна и пытается залогиниться (точнее, пытается понять, что происходит, ведь мы используем slock). Самое время его сфотографировать.
Для начала напишем скрипт, который будет делать фотку с помощью камеры ноутбука. Он будет крайне простым:
1 2 |
#!/bin/sh ffmpeg -y -t 1 -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -f image2 $HOME/webcam.png |
Назовите его take_photo, положите в каталог ~/bin и дайте права на исполнение:
1 |
$ chmod +x ~/bin/take_photo |
Теперь нам надо написать скрипт, который будет запускать наш скрипт после пробуждения компа. Вот он:
1 2 3 4 |
#!/bin/sh if [ $1 = post ] && [ $2 = suspend ]; then sudo -u ТВОЕ_ИМЯ_В_СИСТЕМЕ /home/ТВОЕ_ИМЯ_В_СИСТЕМЕ/bin/take_photo fi |
Назовите его 00take_photo, положите в каталог /lib/systemd/system-sleep/ и точно так же дайте права на исполнение:
1 |
$ chmod +x /lib/systemd/system-sleep/00take_photo |
Теперь при каждом пробуждении ноутбук будет делать фото и сохранять его в файл ~/webcam.png. Но мы можем пойти еще дальше и отправить фотография злоумышленника себе в телеграм. Для этого устанавливаем telegram-cli. Проще всего это сделать в Arch Linux:
1 |
$ yaourt -S telegram-cli-git |
Запускаем утилиту командой telegram-cli, она запросит номер телефона (phone number:) в формате +71234567890, а затем код безопасности из СМС и пароль, если он используется.
Затем немного поправим наш скрипт ~/bin/take_photo:
1 2 3 4 |
#!/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
Администрация, вы ведь понимаете что ваш сайт в ввиду его специфики часто посещают используя Tor или VPN? Так какого хрена вы блокируете комментарии большОй доли ваших посетителей? Почему нельзя просто подключить капчу для комментариев, если проблема именно в спаме?
Мы не пропускаем комментарии, в которых присутствует: мат, оскорбления авторов или других пользователей, политику и рекламу. Также в некоторых случаях можем заблокировать комментарии не несущие ценности для наших посетителей, например: круто!, молодца! фигня и т.д.
Если ваш комментарий не попадает ни под одну из этих категорий, значит произошла ошибка. Мы сожалеем. Попробуйте еще раз.
Спасибо за понимание!
Можете написать о выборе ноутбука под линукс?
Дорогие авторы. Зачем Вы городите огород.
В Линукс уже всё есть, что нужно. Полнодисковое шифрование так и не упомянули. Чем не устраивает шифрование домашней папки? Какая производительность падает? Сколько процентов? 1 или 2?
Тем более неправильно советовать людям привязывать свою безопасность к каким-то онлайн сервисам. Люди на Линукс и уходят, чтобы не зависеть от третьих лиц.
Доброго времени суток!Можно по подробней по теме защита ноутбука с помощью фото злоумышленника?Как прописывать скрипты?