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

Добро пожаловать на наш форум!

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


XoceMyxika

Старший Модератор

Регистрация
Сообщений
149
Репутация
54
Сделок
Защита ноутбука Linux


Содержание
Уверен, что многие посетители сайта 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/[email protected]
и активируйте юнит (USER — ваше имя в системе):


1$ sudo systemctl enable [email protected]
Еще одна крайне простая, но оттого не менее ценная рекомендация — поставьте пароль на 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
Содержимое каталога, зашифрованного с помощью CryFS
Более подробную информацию о шифровании в 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) и добавляем в начало файла такую строку:


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


1auth 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:


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
следующую строку:


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

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

Защита ноутбука с 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-сетям только после разрешения пользователя. Другими словами, шансы найти ноутбук куда меньше, чем шансы найти телефон.

защита linuxИнформация о ноутбуке в панели управления Prey
Подробнее о программе 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-модуля, защиту по отпечатку пальца и имеют возможность отслеживания по всем типам сетей. Но, применив нехитрые приемы, описанные в статье, вы хотя бы сможете сказать, что сделали все, что могли.

Источник
 
Сверху