Как защитить Linux-ноутбук от утечек MAC и fingerprinting

Zero-Trust Security · апрель 2026 г.

Защита Linux от утечек MAC и fingerprinting

Защитите любой Linux-ноутбук от утечек MAC и fingerprinting: рандомизируйте WiFi MAC при каждом подключении, отключите IPv6, используйте DNS-over-TLS, ужесточите Firefox с resistFingerprinting, зашифруйте диск LUKS, ротируйте /etc/machine-id и замените plaintext NTP на NTS-синхронизацию времени. Шаги ниже не привязаны к дистрибутиву и подходят для Arch, Manjaro, Fedora, Debian, Ubuntu и большинства systemd-based дистрибутивов.

11 Слоёв hardening
DoT Шифрованный DNS
LUKS Полное шифрование диска
Linux NetworkManager systemd-resolved Firefox RFP LUKS chrony NTS

Зачем Linux-ноутбуку защита от fingerprinting?

Ноутбук, подключающийся к сетям вне дома — кофейни, отели, коворкинги, аэропорты, конференционный WiFi — постоянно представляется этим сетям. Стандартная конфигурация большинства дистрибутивов утекает реальный hardware MAC, hostname системы, каждый домен из DNS-запросов, системные часы с NTP-трафиком бренда дистрибутива и достаточно browser-quirks для re-identification устройства между сессиями. Для работы через public WiFi с чувствительными аккаунтами это существенная поверхность риска. Каждая точка доступа становится потенциальной точкой корреляции.

Как рандомизировать MAC-адрес на Linux?

Настройте NetworkManager на клонирование нового locally-administered MAC при каждом подключении. Создайте /etc/NetworkManager/conf.d/wifi.conf с содержимым ниже и перезапустите NetworkManager. Hardware MAC больше не попадёт в эфир.

[device]
wifi.scan-rand-mac-address=yes

[connection]
wifi.cloned-mac-address=random
ethernet.cloned-mac-address=random
connection.stable-id=${CONNECTION}/${BOOT}
ipv4.dhcp-send-hostname=no
ipv4.dhcp-client-id=perconnection
systemctl restart NetworkManager

Удалите все сохранённые сети

Каждый SSID, к которому ноутбук когда-либо подключался, хранится в профилях NetworkManager в /etc/NetworkManager/system-connections/. Любой с физическим доступом — или локальный exploit с read access — может перечислить список и восстановить историю перемещений за месяцы. Удалите неиспользуемые профили и пусть новые подключения наследуют hardened defaults. Для путешествующего ноутбука это ближе к обязательному, чем к опциональному.

Зачем отключать IPv6 для privacy?

IPv6-адреса проще fingerprint-ить, чем IPv4: SLAAC может встроить MAC в адрес. Privacy extensions (RFC 4941) смягчают это, но добавляют moving parts. Если IPv6 не используется активно — отключите на уровне ядра и в NetworkManager. Минус один protocol surface, минус один fingerprint vector, нулевая потеря функций для большинства сценариев.

# /etc/sysctl.d/40-ipv6-disable.conf
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
nmcli connection modify <connection-name> ipv6.method disabled

Как остановить DNS leaks на Linux?

Направьте каждый DNS-запрос через systemd-resolved с DNS-over-TLS и запретите NetworkManager использовать DNS от DHCP. Симлинк /etc/resolv.conf → /run/systemd/resolve/stub-resolv.conf, затем добавьте ipv4.ignore-auto-dns=true в defaults NetworkManager, чтобы resolver роутера не использовался. Проверка: resolvectl query example.com — ответ должен содержать "acquired via local or encrypted transport: yes".

# /etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.2#security.cloudflare-dns.com
FallbackDNS=9.9.9.9#dns.quad9.net
DNSOverTLS=yes
DNSSEC=allow-downgrade
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
systemctl enable --now systemd-resolved

Какие настройки Firefox блокируют fingerprinting?

Включите privacy.resistFingerprinting=true в about:config. Одна настройка унифицирует canvas hash, timezone, screen dimensions, user-agent и font list с каждым другим RFP-пользователем — вы в большой толпе, а не выделяетесь. Не ставьте лишние расширения — каждое добавляет uniqueness. Только uBlock Origin.

privacy.resistFingerprinting                    = true
privacy.trackingprotection.fingerprinting.enabled = true
privacy.partition.network_state                 = true
network.cookie.cookieBehavior                   = 5
webgl.disabled                                  = true
media.peerconnection.enabled                    = false
network.trr.mode                                = 3
network.trr.uri                                 = https://cloudflare-dns.com/dns-query
network.http.http3.enable                       = false

Зачем менять hostname?

Hostname всё ещё утекает через mDNS, NetBIOS, SMB broadcasts и DHCP, если не отключено. Уникальный hostname вроде "user-laptop" или "founder-thinkpad" — persistent identifier на каждой сети. Используйте Windows-style default — самая большая population hostname на планете. Сливайтесь с толпой.

hostnamectl set-hostname DESKTOP-A3KF9Z2X

Что с NTP leaks?

Стандартный systemd-timesyncd шлёт plaintext NTP на pool-серверы с брендом дистрибутива каждые 60–1024 секунды. Это liveness beacon, идентификатор дистрибутива и MITM vector — атакующий может сдвинуть часы и инвалидировать TLS certs или сломать 2FA. Замените на chrony over NTS (NTP в TLS authentication).

systemctl disable --now systemd-timesyncd
# install chrony via your package manager, then configure:
# /etc/chrony.conf
server time.cloudflare.com iburst nts
server nts.netnod.se       iburst nts
server ptbtime1.ptb.de     iburst nts
minsources 2
rtcsync
systemctl enable --now chronyd

Как сократить attack surface на уровне ядра?

Положите файл в /etc/sysctl.d/50-kernel-harden.conf с настройками ниже. Блокирует типичные local privilege escalation primitives — kernel pointer leaks, ptrace snooping, unprivileged eBPF abuse, kexec rootkits, userfaultfd exploits — без поломки daily use. Не ставьте kernel.unprivileged_userns_clone=0: ломает sandbox Firefox, Flatpak и приложения, которым нужны user namespaces.

# /etc/sysctl.d/50-kernel-harden.conf
kernel.kptr_restrict=2
kernel.dmesg_restrict=1
kernel.unprivileged_bpf_disabled=1
kernel.yama.ptrace_scope=2
kernel.kexec_load_disabled=1
kernel.perf_event_paranoid=3
vm.unprivileged_userfaultfd=0
sysctl --system

Что шифровать?

Каждый раздел, который касается диска. Проверьте lsblk — если / и /home не на crypto_LUKS, диск plaintext для любого, кто украдёт ноутбук. Swap шифруйте отдельно через /etc/crypttab со случайным ключом при каждой загрузке или как LUKS volume. Отключите core dumps — иначе keys и session cookies попадут на диск при crash.

lsblk -o NAME,TYPE,FSTYPE,MOUNTPOINT
# Disable core dumps
systemctl mask systemd-coredump
# /etc/sysctl.d/50-kernel-harden.conf (append)
kernel.core_pattern=|/bin/false

Зачем ротировать /etc/machine-id?

Systemd генерирует /etc/machine-id при установке, и любой unprivileged process может его прочитать. Стабильный 32-символьный ID, идентифицирующий конкретную установку навсегда — persistentнее любой cookie. Регенерируйте, держите /var/lib/dbus/machine-id симлинком на него, reboot. Всё, что key-илось off machine-id, увидит brand new install.

dd if=/dev/urandom bs=16 count=1 | od -An -tx1 | tr -d ' \n' > /etc/machine-id
ln -sf /etc/machine-id /var/lib/dbus/machine-id
reboot

Как эти слои сравниваются по приоритету?

Слой hardening Закрытый риск Усилия Приоритет
MAC randomizationУтечка hardware ID при каждом WiFi joinНизкиеКритический
DHCP hostname suppressionBroadcast hostname в router/DHCP logsНизкиеКритический
DNS-over-TLSPlaintext DNS виден ISP и роутеруНизкиеКритический
LUKS full-disk encryptionPlaintext data на украденном устройствеСредние (reinstall)Критический
Firefox resistFingerprintingBrowser-level cross-site identificationНизкиеВысокий
IPv6 disableSLAAC MAC embedding, лишняя fingerprint surfaceНизкиеВысокий
machine-id rotationPersistent local install identifierНизкиеСредний
Kernel sysctlsLocal privilege escalation primitivesНизкиеСредний
chrony NTSPlaintext NTP, distro fingerprinting, clock MITMСредниеСредний
Coredump maskingKeys и secrets на диск при crashНизкиеСредний

Вердикт

MAC randomization, suppression DHCP-hostname, DoT, LUKS и Firefox resistFingerprinting — baseline, день работы, закрывающий самые громкие утечки на любом Linux-ноутбуке. Добавьте machine-id rotation, kernel sysctls, chrony NTS и coredump masking, если устройство путешествует или видит untrusted networks. VPN — самый большой оставшийся win поверх всего этого: local hardening не скрывает real public IP от интернета. Для threat model вокруг public WiFi в кофейнях, отелях и аэропортах — это setup.

Часто задаваемые вопросы

Ломает ли MAC randomization WiFi captive portals?

Иногда. Captive portals часто привязывают session к MAC, и новый random MAC при reconnect требует fresh login. Если это мешает в конкретной точке — переключите это подключение с "random" на "stable" в NetworkManager: stable даёт consistent MAC per SSID без раскрытия hardware MAC.

Достаточно ли Firefox resistFingerprinting сам по себе?

В основном да. Унифицирует canvas, fonts, screen size, timezone и user-agent с каждым RFP-пользователем. Не блокирует tracker domains и third-party requests на network level — для этого uBlock Origin с Privacy and Annoyances lists. Без лишних расширений — каждое добавляет uniqueness.

Нужно ли отключать IPv6 при включённых privacy extensions?

Только если IPv6-сервисы активно используются. Privacy extensions (RFC 4941) ротируют IPv6 interface identifier по расписанию — решают MAC-embedding problem. Если IPv6 не нужен — полное отключение убирает целый protocol stack с attack surface без потери функций.

Почему не просто VPN или Tor?

VPN и Tor защищают public IP и шифруют transport, но не скрывают real MAC от local WiFi, hostname от mDNS broadcasts, DNS queries от hostile router или browser fingerprint от сайтов. Network-level privacy и host-level privacy — stacked layers, нужны оба.

Сломают ли kernel hardening sysctls обычные приложения?

Указанный набор — нет. kernel.yama.ptrace_scope=2 требует sudo для attach debugger — нормально на personal laptop, слегка annoying на dev machine. Избегайте kernel.unprivileged_userns_clone=0 — ломает sandbox Firefox, Flatpak и apps с unprivileged user namespaces.

Руководство описывает generic Linux hardening. Команды и пути конфигурации предполагают systemd-based дистрибутив с NetworkManager — адаптируйте под свой distro и threat model.

Frequently Asked Questions

Ломает ли MAC randomization WiFi captive portals?

Иногда. Captive portals часто привязывают session к MAC, и новый random MAC при reconnect требует fresh login. Если это мешает в конкретной точке — переключите это подключение с "random" на "stable" в NetworkManager: stable даёт consistent MAC per SSID без раскрытия hardware MAC.

Достаточно ли Firefox resistFingerprinting сам по себе?

В основном да. Унифицирует canvas, fonts, screen size, timezone и user-agent с каждым RFP-пользователем. Не блокирует tracker domains и third-party requests на network level — для этого uBlock Origin с Privacy and Annoyances lists. Без лишних расширений — каждое добавляет uniqueness.

Нужно ли отключать IPv6 при включённых privacy extensions?

Только если IPv6-сервисы активно используются. Privacy extensions (RFC 4941) ротируют IPv6 interface identifier по расписанию — решают MAC-embedding problem. Если IPv6 не нужен — полное отключение убирает целый protocol stack с attack surface без потери функций.

Почему не просто VPN или Tor?

VPN и Tor защищают public IP и шифруют transport, но не скрывают real MAC от local WiFi, hostname от mDNS broadcasts, DNS queries от hostile router или browser fingerprint от сайтов. Network-level privacy и host-level privacy — stacked layers, нужны оба.

Сломают ли kernel hardening sysctls обычные приложения?

Указанный набор — нет. kernel.yama.ptrace_scope=2 требует sudo для attach debugger — нормально на personal laptop, слегка annoying на dev machine. Избегайте kernel.unprivileged_userns_clone=0 — ломает sandbox Firefox, Flatpak и apps с unprivileged user namespaces.

Shadow Software product

TERRA AI, jurisdiction intelligence for founders.

Compare where to live, incorporate, and operate with cited evidence.

Explore TERRA AI

TERRA stack

Selected operator tools

Tools Ray and Shadow Software use to build and operate serious systems.

Some links are referral links. Shadow Software may earn a commission if you sign up.

Download Shadow Software’s services catalog