rkhunter: охота за руткитами и бэкдорами

rkhunter (Rootkit Hunter) ищет то, что обычный антивирус на сервере не ловит: подмену системных бинарников, скрытые процессы, следы известных руткитов. Работает по базе сигнатур плюс сравнение с сохранённым эталоном — эталон нужно снять сразу после чистой установки. apt install rkhunter rkhunter --propupd # снять эталон после установки rkhunter --update # обновить базу сигнатур rkhunter --check --sk # проверка без пауз (--skip-keypress) Результат — в /var/log/rkhunter.log, предупреждения помечены [Warning]. Часть — стандартный шум (изменённые пути после апдейта пакетов, нестандартные права) — разобрать один раз и занести в /etc/rkhunter.conf через ALLOWHIDDENDIR. Для регулярного контроля — --cronjob вместо интерактивного режима. ...

17 июля 2026 г. · llexa

age: простое шифрование файлов вместо gpg

gpg для разового шифрования файла — это ключи, keyring и десяток флагов, о которые легко запнуться. age решает ту же задачу без веба доверия: ключ — одна строка, шифрование — одна команда. age-keygen -o key.txt # Public key: age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p \ -o backup.tar.age backup.tar age -d -i key.txt -o backup.tar backup.tar.age # симметричный вариант с паролем, вообще без ключей age -p -o secret.age secret.txt Формат бинарный и компактный, ключи можно хранить прямо в .ssh/ (age шифрует и на существующий ssh ed25519-ключ через ssh-to-age) — удобно для бэкапов в dotfiles-репозиториях, где полноценный gpg-keyring избыточен. ...

9 июля 2026 г. · llexa

chattr и lsattr: защита файлов на уровне ФС

chattr +i /etc/resolv.conf — файл становится иммутабельным: даже root не может изменить, удалить или переименовать его до снятия атрибута. chattr +i /etc/resolv.conf # иммутабельный chattr +a /var/log/app.log # append-only: нельзя перезаписать или удалить chattr -i /etc/resolv.conf # снять атрибут lsattr /etc/resolv.conf # ----i---------e--- lsattr -R /etc/ # рекурсивно +a (append-only) — для лог-файлов: процесс пишет, но никто не сделает truncate или rm. Работает на ext2/3/4 и btrfs; на tmpfs и vfat атрибуты не поддерживаются. ...

30 июня 2026 г. · llexa

auditd: аудит файлов и событий безопасности

auditd пишет в ядерный кольцевой буфер — ни один rootkit не подменит события до записи на диск. Смотреть за файлом паролей и sudoers: auditctl -w /etc/passwd -p wa -k passwd_changes auditctl -w /etc/sudoers -p wa -k sudo_changes Флаги -p wa — write + attribute change. -k — ключ для поиска. Правила выживают перезагрузку через /etc/audit/rules.d/audit.rules. Найти все события по ключу и посмотреть статистику входов: ausearch -k passwd_changes --interpret aureport --auth --summary aureport --failed покажет только неудачные попытки — удобно для ежедневного отчёта в cron. ...

25 июня 2026 г. · llexa

md5sum, sha256sum, b3sum: контрольные суммы в Linux

md5sum сломан криптографически с 1996 года — коллизии найдены. Для проверки целостности файлов используй sha256sum или быстрее: # классика — медленно, но везде есть md5sum file.iso sha256sum file.iso # проверить по файлу контрольных сумм sha256sum -c SHA256SUMS # сгенерировать для директории find . -type f | sort | xargs sha256sum > checksums.sha256 # BLAKE3 — быстрее SHA-256, современный стандарт b3sum file.iso # apt install b3sum Скорость на большом файле: md5sum ≈ sha256sum < sha512sum < blake2 < blake3 (в 3–5× быстрее sha256 на многоядерных). ...

25 июня 2026 г. · llexa

gpg: шифрование и подписи без облака

Пара ключей создаётся одной командой, дальше gpg сам спрашивает имя, email и пароль: gpg --gen-key gpg --list-keys Зашифровать файл для конкретного получателя — по его публичному ключу: gpg -e -r user@example.com file.txt gpg -e -r user@example.com --armor file.txt # текстовый вывод вместо бинарного Расшифровка — gpg сам найдёт нужный приватный ключ в keyring и спросит пароль: gpg -d file.txt.gpg > file.txt Подпись подтверждает авторство без шифрования содержимого: gpg --sign file.txt gpg --verify file.txt.gpg Публичный ключ для обмена — экспорт и импорт в текстовом виде: ...

23 июня 2026 г. · llexa

Эволюция пароля от root за 10 лет

2016: password 2017: P@ssw0rd1 2018: Company2018! 2020: меняется каждый квартал, в конце дописывается !! 2022: password manager + сложность 32 символа, никто его не знает 2024: SSO + passkey, пароля как такового уже нет 2026: и всё равно кто-то находит .env в публичном репо #юмор #sysadmin #security

21 июня 2026 г. · llexa

WireGuard: VPN за 4 команды

WireGuard — VPN в ядре Linux с версии 5.6: меньше конфига, выше скорость, никакого OpenSSL-оверхеда. # ключи на каждой стороне wg genkey | tee privatekey | wg pubkey > publickey # /etc/wireguard/wg0.conf — сервер [Interface] PrivateKey = <privatekey> Address = 10.0.0.1/24 ListenPort = 51820 [Peer] PublicKey = <publickey-клиента> AllowedIPs = 10.0.0.2/32 # поднять / погасить туннель wg-quick up wg0 wg-quick down wg0 # текущее состояние: handshake, трафик по пирам wg show Автозапуск — systemctl enable wg-quick@wg0. Если сервер должен форвардить трафик дальше в интернет, не забыть net.ipv4.ip_forward=1 в sysctl и MASQUERADE в nftables/iptables. ...

19 июня 2026 г. · llexa

nmap: сканирование сети с нуля

nmap — стандарт для аудита сети и диагностики портов: nmap 192.168.1.0/24 # пинг всей подсети, живые хосты nmap -sS 192.168.1.1 # SYN-scan (stealth, нужен root) nmap -sV -p 22,80,443 host # версии сервисов на конкретных портах nmap -O host # угадать ОС по TCP fingerprint nmap -p- host # все 65535 портов nmap --open 10.0.0.0/8 # только открытые порты в /8 Полезные скрипты NSE: nmap --script=vuln host # базовая проверка на CVE nmap --script=http-title -p 80 subnet/24 # заголовки всех веб-серверов nmap -sV --script=ssl-cert host # цепочка TLS-сертификата По умолчанию nmap сканирует 1000 самых популярных портов. -p- нужен, если хотите не пропустить нестандартные. ...

17 июня 2026 г. · llexa

nftables: замена iptables

nftables — современная замена iptables: одна утилита nft вместо iptables/ip6tables/arptables, атомарная загрузка правил, читаемый синтаксис. # просмотр всех правил nft list ruleset # создать таблицу и базовый stateful файрвол nft add table inet filter nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; } nft add rule inet filter input ct state established,related accept nft add rule inet filter input iif lo accept nft add rule inet filter input tcp dport { 22, 80, 443 } accept # сохранить и загрузить при старте nft list ruleset > /etc/nftables.conf systemctl enable nftables Миграция с iptables — утилита iptables-restore-translate: ...

15 июня 2026 г. · llexa