Повышение конфиденциальности в Linux: монтирование логов и временных каталогов в оперативной памяти
Чтобы повысить конфиденциальность пользователей и снизить риск отслеживания активности в системах Linux, вы можете подключить временные каталоги, такие как /tmp
, /var/tmp
и /var/log
в ОЗУ с помощью tmpfs
. Это гарантирует, что эти каталоги будут очищаться при каждой перезагрузке, не оставляя журналов или временных файлов. Файловая система tmpfs
— это файловая система на основе оперативной памяти, которая хранит все данные в энергонезависимой памяти, а не на постоянном запоминающем устройстве, что делает ее идеальной для конфигураций, ориентированных на конфиденциальность.
В этом уроке вы узнаете:
- Как смонтировать
/tmp
,/var/tmp
и/var/log
в оперативной памяти с помощью tmpfs - Как воссоздать необходимую структуру каталогов журнала при загрузке
- Как ограничить постоянные журналы для максимальной конфиденциальности
- Как сбалансировать конфиденциальность с функциональностью системы
Требования к программному обеспечению и соглашения командной строки Linux
Монтирование критических каталогов в ОЗУ с помощью tmpfs
ПРЕДУПРЕЖДЕНИЕ: КОНФИДЕНЦИАЛЬНОСТЬ ПРОТИВ КОМПРОМИСС ПРИ УСТРАНЕНИИ НЕПОЛАДОК
Эта конфигурация гарантирует, что временные файлы и файлы журналов никогда не будут записываться на диск, что повышает конфиденциальность за счет ограниченных возможностей устранения неполадок. Все журналы активности будут существовать только в оперативной памяти и будут полностью удалены при выключении или перезагрузке системы, не оставляя следов для криминалистического анализа. Используйте этот подход только в том случае, если вы понимаете и принимаете, что потеряете возможность доступа к журналам предыдущих сеансов.
Монтируя чувствительные каталоги в tmpfs
, мы избегаем записи на диск и не оставляем журналов после перезагрузки. Такой подход значительно повышает конфиденциальность, предотвращая создание постоянных записей о ваших действиях. Чтобы система оставалась функциональной, мы также автоматически воссоздаем необходимую структуру каталогов журнала при запуске, гарантируя, что приложения, ожидающие эти каталоги, не выйдут из строя, а критически важные системные службы смогут по-прежнему работать нормально.
Мы сосредоточимся на следующих каталогах:
/tmp
— используется приложениями для временных файлов, которые часто содержат конфиденциальную информацию/var/tmp
– Аналогично /tmp, но обычно сохраняется между перезагрузками (мы изменим это поведение)/var/log
— содержит системные журналы и журналы приложений, которые могут выявить шаблоны действий и поведение пользователей
Пошаговая инструкция
Редактирование fstab для использования tmpfs: Добавление записей монтирования tmpfs для /tmp, /var/tmp и /var/log
sudo nano /etc/fstab
Добавьте следующие строки для монтирования этих директорий в оперативную память:
tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=512M 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777,size=512M 0 0 tmpfs /var/log tmpfs defaults,noatime,mode=0755,size=50M 0 0
Эти записи монтируют целевые каталоги в оперативную память при каждой загрузке с ограниченным использованием памяти. Давайте разберемся, что означает каждый вариант:
defaults
— использует параметры монтирования по умолчанию для tmpfs
defaults
— использует параметры монтирования по умолчанию для tmpfsnoatime
– Отключает обновление времени доступа к файлам, уменьшая количество ненужных записей в оперативную памятьmode=1777
– Устанавливает разрешения, позволяющие всем пользователям записывать данные в каталог, но запрещает им удалять файлы, принадлежащие другим (липкий бит)mode=0755
– Для /var/log устанавливает более строгие разрешения, подходящие для файлов журналаsize=512M
илиsize=50M
— ограничивает максимальный объем оперативной памяти, который может использовать каждый каталог, чтобы предотвратить нехватку памяти0 0
– Отключает проверку файловой системы и операции резервного копирования, так как они не нужны для tmpfsСоздание службы systemd для воссоздания структуры журнала: Убедитесь, что основные подкаталоги /var/log существуют после перезагрузки
sudo nano /etc/systemd/system/log-tmpfs-init.service
Вставьте этот файл единиц измерения:
[Unit] Description=Initialize /var/log directory structure DefaultDependencies=no After=local-fs.target Before=multi-user.target [Service] Type=oneshot ExecStart=/usr/local/bin/init-log-tmpfs.sh RemainAfterExit=true [Install] WantedBy=multi-user.target
Создание скрипта структуры журнала: Этот скрипт будет перестраивать критические каталоги
sudo nano /usr/local/bin/init-log-tmpfs.sh
Вставьте следующий скрипт:
#!/bin/bash Create essential log directories used by various system services mkdir -p /var/log/journal /var/log/cups /var/log/lightdm /var/log/apt /var/log/installer /var/log/nginx /var/log/mysql Create essential log files that some applications explicitly check for touch /var/log/wtmp /var/log/btmp /var/log/lastlog Set correct ownership and permissions on authentication log files chown root:utmp /var/log/wtmp /var/log/btmp chmod 664 /var/log/wtmp /var/log/btmp chmod 644 /var/log/lastlog Restart the journal service to ensure it writes to the newly created directories systemctl restart systemd-journald
Этот скрипт создает необходимую структуру каталогов и файлы для функциональности системы. Он настраивает каталоги журналов для критически важных служб (systemd, printing, display, package management и т.д.), создает важные файлы журнала аутентификации (wtmp, btmp, lastlog), применяет соответствующие разрешения безопасности и перезапускает службу журналирования, чтобы убедиться, что она распознает новую структуру.
Не забудьте сделать скрипт исполняемым:
sudo chmod +x /usr/local/bin/init-log-tmpfs.sh
АВТОМАТИЧЕСКОЕ СОЗДАНИЕ КАТАЛОГА ЖУРНАЛА ПРИ ЗАГРУЗКЕ
Включите службу systemd для автоматического пересоздания структуры/var/log
при каждой загрузке, чтобы избежать поломки служб. Это гарантирует, что приложения, зависящие от определенных каталогов журнала, не выйдут из строя при запуске.Enable the service and reload systemd: Применить изменения к systemd
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable log-tmpfs-init.service
Перезагрузите систему: примените все изменения и проверьте функциональность
sudo reboot
Проверьте новую конфигурацию: убедитесь, что все работает правильно
mount | grep tmpfs ls -la /var/log df -h | grep tmpfs
После перезагрузки эти команды помогут вам убедиться, что ваша конфигурация работает правильно. Первая команда подтверждает, что ваши директории действительно смонтированы как файловые системы tmpfs. Вторая команда показывает, что структура каталога журнала была правильно создана нашим сервисом. Третья команда отображает размер и использование монтирований tmpfs, что позволяет отслеживать использование памяти и убедиться, что выделенные размеры подходят для вашей системы.
Этот модуль systemd запускает скрипт при загрузке для воссоздания структуры каталога журнала. Он выполняется на ранних этапах процесса загрузки после монтирования файловых систем, но до запуска большинства служб, запускается один раз для инициализации каталогов и остается помеченным как активный после этого. Служба настроена на автоматический запуск во время обычной загрузки системы.
Эти команды обновляют конфигурацию systemd, применяют наше новое определение службы и позволяют службе автоматически запускаться во время загрузки. Команда daemon-reexec
гарантирует, что systemd будет перезапущена с новой конфигурацией, daemon-reload
информирует systemd о нашем новом файле службы, а enable
настраивает запуск службы при каждом запуске системы.
Перезагрузка системы необходима для полного применения монтирования tmpfs, определенного в fstab. После перезагрузки ваши временные директории будут смонтированы в оперативной памяти, а структура лога будет автоматически воссоздана нашим сервисом systemd. Это обеспечивает чистое состояние системы с активной защитой конфиденциальности.
Понимание преимуществ безопасности и конфиденциальности
Перемещение конфиденциальных каталогов в оперативную память обеспечивает несколько важных преимуществ конфиденциальности:
- Нет постоянных журналов: все записи о действиях полностью исчезают после выключения, не оставляя следов криминалистической экспертизы
- Снижение износа диска: меньшее количество операций записи на SSD или HDD увеличивает срок службы диска, особенно для твердотельных накопителей с ограниченными циклами записи
- Повышение производительности: оперативная память работает значительно быстрее, чем дисковое хранилище, что повышает производительность системы для операций с временными файлами
- Защита от восстановления данных: Даже продвинутые инструменты криминалистической экспертизы не могут восстановить данные, которые никогда не были записаны на диск
Заключение
Монтирование /tmp
, /var/tmp
и /var/log
в качестве tmpfs
- это мощный способ уменьшить отслеживаемую активность в вашей системе Linux Mint. Несмотря на то, что он ограничивает некоторые возможности устранения неполадок, он обеспечивает значительное повышение конфиденциальности. При правильной настройке создания структуры каталогов, ваша система будет оставаться стабильной при каждой загрузке. Этот подход особенно ценен для пользователей, заботящихся о конфиденциальности, журналистов, работающих с конфиденциальной информацией, или всех, кто беспокоится о том, чтобы оставить минимальный цифровой след.
Помните, что такая конфигурация означает, что данные журнала будут потеряны после перезагрузки, поэтому, если вам нужно устранить постоянные проблемы, вам может потребоваться временно изменить настройку или внедрить выборочное сохранение журнала для критически важных компонентов.
Часто задаваемые вопросы (FAQ)
Не сломает ли установка /var/log в RAM мою систему?
Нет, если вы воссоздадите необходимые каталоги журнала при загрузке с помощью службы systemd. Большинство проблем возникает из-за отсутствующих файлов и каталогов, которые мы заранее создаем с помощью нашего скрипта инициализации. Однако вы можете потерять возможность устранять неполадки, возникшие во время предыдущих сеансов загрузки, так как эти журналы не будут сохраняться.
Могу ли я выделить больше оперативной памяти для /var/log, если это необходимо?
Да. Вы можете увеличить
значение size=
в записи fstab для /var/log. Просто убедитесь, что у вас достаточно доступной памяти. Для систем с интенсивным ведением журналов может потребоваться увеличить площадь от 50 млн до 100 млн и более. Отслеживайте использование оперативной памяти с помощьюdf -h /var/log,
чтобы видеть, сколько места используется, и вносить соответствующие изменения.Что происходит с логами после перезагрузки?
Они полностью удаляются, не оставляя следов предыдущей активности, если вы не настроили механизм постоянного ведения журнала в другом месте. Это основное преимущество такого подхода для конфиденциальности, но оно также означает, что вы не можете проверять журналы предыдущих сеансов загрузки при устранении неполадок.
Как я могу устранить проблемы, если все логи очищаются при перезагрузке?
Для устранения конкретных проблем можно временно настроить выборочное сохранение журналов, создав небольшой сценарий, который копирует важные журналы в безопасное место перед завершением работы. В качестве альтернативы, вы можете временно отключить монтирование tmpfs, закомментировав соответствующие строки в /etc/fstab и перезагрузившись.
Повлияет ли это на производительность системы?
Как правило, это повышает производительность операций с временными файлами, так как оперативная память работает намного быстрее, чем дисковое хранилище. Однако, если ваша система имеет ограниченный объем оперативной памяти, выделение слишком большого объема памяти для tmpfs может привести к нехватке памяти. Начните с консервативных размеров и корректируйте их в зависимости от ресурсов и потребностей вашей системы.
Совместима ли эта конфигурация с шифрованием диска?
Да, и на самом деле это еще больше повышает безопасность. В то время как шифрование диска защищает данные при хранении, tmpfs гарантирует, что конфиденциальные журналы и временные файлы никогда не попадут на диск, обеспечивая защиту даже при работе системы с подключенным зашифрованным диском.