Как безопасно очистить разрешения для поддерева

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

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

Поскольку вы новичок в Linux, я рекомендую вам переустановить ваш дистрибутив и выбрать «шифрование всего диска» (или какое-то подобное имя) во время установки. Большинство дистрибутивов, включая elementary OS, предлагают такую ​​возможность. Хотя можно преобразовать установку в зашифрованную, это довольно продвинуто с высоким риском удаления данных по ошибке.Поэтому убедитесь, что ваши резервные копии актуальны, и переустановите.

Самый простой способ настроить шифрование - использовать пароль. Обратной стороной пароля является то, что для обеспечения безопасности он должен быть достаточно случайным, а достаточно случайный пароль трудно запомнить. Можно было угадать пароль, который не был достаточно случайным. Хороший компромисс состоит в том, чтобы случайным образом сгенерировать парольную фразу, состоящую из нескольких слов (это намного лучше, чем обычный плохой совет l33tspe4k + пунктуация ).

Система шифрования диска Linux ( dm-crypt ) также поддерживает использование «ключевого файла». Ключевой файл - это, по сути, пароль, но он читается из файла, а не вводится на клавиатуре. Преимущество ключевого файла заключается в том, что это может быть длинный случайный мусор, который невозможно угадать (но невозможно запомнить, поэтому вы должны хранить его на смарт-карте или USB-носителе). Насколько мне известно, распространенные дистрибутивы не предлагают готового способа настройки, поэтому вам придется запускать настройку вручную. См. Инструкции в Как настроить LVM & LUKS для автоматического дешифрования раздела? или Как загрузить парольную фразу LUKS с USB-накопителя, возвращаясь к клавиатуре? .

Если вы не хотите, чтобы запоминающийся пароль, который вы создали в начале, разблокировал диск, добавьте длинный, случайный, незабываемый, но вводимый пароль в качестве другого ключа дешифрования ( cryptsetup luksAddKey / dev / sda2 'длинный случайный незабываемый, но вводимый пароль' ). Распечатайте длинный случайный незабываемый, но вводимый пароль и храните бумагу в сейфе.Проверьте, работает ли он, затем удалите запоминающийся пароль, который вы создали в начале ( cryptsetup luksRemoveKey ).

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

Если вы все же хотите использовать USB-ключ для разблокировки компьютера, публикация в блоге, на которую вы ссылаетесь, выглядит разумным способом сделать это (я не проверил все команды подробно). Если у вас не получилось заставить его работать, я предлагаю задать более точный вопрос на этом сайте: что вы сделали (скопируйте и вставьте команды)? Каково было точное поведение (копировать-вставить все сообщения)?

Ваша система по-прежнему будет уязвима для более сложных атак. Шифрование не защищает от атак злой горничной . Для этого вам необходимо настроить безопасную загрузку. Базовое использование программного обеспечения для шифрования также не защищает от атак холодной загрузки , когда злоумышленник захватывает RAM-накопители из действующей системы и надеется прочитать ключ шифрования, который все еще где-то в ней.Существуют исправления ядра Linux , позволяющие избежать хранения ключа в ОЗУ (он хранится только в регистрах процессора, которые практически невозможно извлечь физическими средствами).

1
13.08.2017, 19:39
4 ответа

Напишите сценарий оболочки и дайте соответствующим пользователям разрешения на вызов это с судо. Используйте директиву NOPASSWD, если вы не хотите, чтобы пользователи вводили свой пароль (обратите внимание, что порядок имеет значение, см. Как запустить определенную программу от имени пользователя root без запроса пароля?).

Убедитесь, что sudo настроен на удаление всех переменных из среды, кроме нескольких безопасных (например, LC_*и LANG). В любом случае, в Ubuntu это происходит по умолчанию, поэтому в Ubuntu вам не нужна строка Defaults, если вы не изменили настройку env_reset.

Defaults!/usr/local/bin/fix-our-permissions env_reset
%our-app-maintainers ALL = NOPASSWD: /usr/local/bin/fix-our-permissions

В качестве альтернативы, пусть люди получают доступ к области развертывания через файловую систему, которая налагает фиксированные права собственности и разрешения, такие как bindfs. См. Автоматическое изменение прав доступа к файлам при записи в папку и Все файлы, созданные в каталоге, должны принадлежать bob


Но на самом деле никто не должен выполнять развертывание вручную. Развертывание должно инициироватьсявручную, но оно должно выполнятьсяавтоматизированной службой, которая запускается под системной учетной записью пользователя, получает версию из CI, загружает ее и перезапускает демон.

2
27.01.2020, 23:24

Я думаю, что вы можете сделать программу, которая следит за вашей папкой, и если он обнаружит какие-то проблемы, он изменит права доступа к папке или содержимому, вы делаете это в Crontab (корень) или запускаете ее как службу (корень). это альтернатива.

1
27.01.2020, 23:24

Вы можете изменить umask для этих пользователей, чтобы они использовали именно тот chmod, который вам нужен, таким образом, каждый архив, который они вводят в систему, будет начинаться с этого определенного набора разрешений

оставьте ссылку здесь

0
27.01.2020, 23:24

Вы можете использовать ACL(setfacl); что может предотвратить проблемы премиссии.

В качестве альтернативы можно загрузить файлы в новую пустую папку, а затем заменить старую папку. Это можно сделать атомарно, перезаписав символическую ссылку на эту папку (ln -sf).

0
27.01.2020, 23:24

Теги

Похожие вопросы