Как защитить Linux-серверы от скрытых сетей, связанных с китайскими государственными хакерами
В свете совместного предупреждения CISA, NCSC‑UK и международных партнёров о covert сетях, используемых китайскими государственными хакерами (группы Volt Typhoon и Flax Typhoon), администраторы Linux‑систем получают чёткий набор действий для снижения риска компрометации. В данной статье мы переведём эти рекомендации в конкретные шаги, применимые к серверам на базе Linux, VPS, nginx и связанным сервисам.
1. Инвентаризация и понимание edge‑устройств
Первый пункт рекомендаций — картографировать все устройства, расположенные на периметре сети, и понять, какие из них должны иметь доступ к внутренним ресурсам. Для Linux‑серверов это означает:
- Выявить все сетевые интерфейсы, включая физические, виртуальные (veth, bridge) и туннели Docker) и VPN‑туннели.
- Составить список открытых портов и сервисов, прослушивающих на этих интерфейсах.
- Проверить, какие из этих сервисов действительно необходимы для бизнеса, а какие можно отключить или ограничить.
Для быстрого обзора можно воспользоваться встроенными утилитами:
# Список всех сетевых интерфейсов и их состояния
ip -brief address show
# Открытые TCP‑порты и связанные с ними процессы
ss -tlnp
# Прослушивающие UDP‑порты
ss -ulnp
# Информация о Docker‑сетей и контейнерах
docker network ls
docker inspect --format='{{.Name}} {{range .Containers}}{{.EndpointID}} {{end}}' $(docker network ls -q)
После получения списка следует сравнить его с утверждённым перечнем допустимых устройств и сервисов. Любое несоответствие — повод для дальнейшего расследования.
2. Базовый мониторинг соединений (baseline)
Второй шаг — установить норму (baseline) для легитимного трафика, особенно к корпоративным VPN и аналогичным сервисам. Зная, как выглядит обычный поток, легче заметить аномалии, характерные для ботнетов или скрытых каналов управления.
На Linux‑серверах можно собрать базовые метрики с помощью следующих инструментов:
- vnstat — подсчёт трафика по интерфейсам за час, день, месяц.
- netstat / ss — текущее количество установленных соединений.
- tcpdump или ngrep — захват образцов пакетов для анализа протоколов и размеров.
- auditd — отслеживание вызовов connect(), accept(), bind() для обнаружения неожиданных вызовов.
Пример настройки простого сбора статистики vnstat и сохранения её в файл для последующего сравнения:
# Установка vnstat (Debian/Ubuntu)
sudo apt-get update && sudo apt-get install -y vnstat
# Запуск мониторинга на интерфейсе eth0
sudo vnstat -u -i eth0
# Сохранение текущего состояния в базовый файл
vnstat --dumpdb -i eth0 > /root/vnstat_baseline_$(date +%F).txt
# Ежедневное сравнение (можно добавить в cron)
# Скрипт check_vnstat.sh:
#!/bin/bash
CURRENT=$(vnstat --dumpdb -i eth0 | awk -F';' '/^eth0;/ {print $6}')
BASELINE=$(cat /root/vnstat_baseline_$(date +%F -d "yesterday\)).txt | awk -F';' '/^eth0;/ {print $6}')
if [ "$CURRENT" -gt "$((BASELINE * 2))" ]; then
logger -t vnstat_alert "Необычный рост трафика на eth0: $CURRENT vs $BASELINE"
fi
Подобные проверки позволяют быстро обнаружить резкий рост количества соединений или объёма transferred данных, что часто сопровождает деятельность ботнетов.
3. Сбор и хранение журналов
Третий пункт — обеспечить надёжный сбор и долгосрочное хранение логов, чтобы иметь возможность обнаруживать и расследовать попытки несанкционированного доступа. В Linux‑окружении это достигается комбинацией системного журнала, rsyslog/journald и внешних систем SIEM или простых решений вроде Elasticsearch‑Logstash‑Kibana (ELK) или Graylog.
Ключевые источники информации:
- journalctl — журнал systemd, включающий сообщения ядра, сервисов и аудита.
- /var/log/auth.log (Debian/Ubuntu) или /var/log/secure (RHEL/CentOS) — попытки аутентификации SSH, sudo и т.д.
- /var/log/nginx/access.log и error.log — веб‑трафик к nginx.
- /var/log/audit/audit.log — записи auditd о системных вызовах.
Для централизованного хранения можно настроть пересылку через rsyslog на удалённый сервер логов:
# /etc/rsyslog.d/remote.conf
*.* @logcollector.example.com:514
# После изменения перезапустить rsyslog
systemctl restart rsyslog
Важно также обеспечить защиту самих логов от подделки: включить подпись журналов (systemd-journald с Storage=persistent и ForwardToSyslog=yes) или использовать append‑only файлы с атрибутом chattr +a.
4. Многофакторная аутентификация для удалённого доступа
Четвёртая рекомендация — внедрить MFA для всех удалённых подключений, в частности к VPN и SSH. Это значительно усложняет attackers’ попытки использовать украденные учётные данные.
На Linux‑серверах наиболее распространённый способ — использование PAM‑модуля Google Authenticator или YubiKey.
Пример настройки SSH с Google Authenticator:
# Установка пакета
sudo apt-get install -y libpam-google-authenticator
# Инициализация для каждого пользователя (запускается от имени пользователя)
google-authenticator
# Следуйте инструкциям: ответьте y на вопросы о времени-based токенах, запрете повторного использования и т.д.
# Изменение файла PAM для SSH
sudo nano /etc/pam.d/sshd
# Добавить строку в начало файла:
auth required pam_google_authenticator.so nullok
# Изменение конфигурации SSH daemon
sudo nano /etc/ssh/sshd_config
# Убедиться, что включена аутентификация по паролю и публичному ключу:
PasswordAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes
# Перезапустить SSH
systemctl restart sshd
После этого при входе по SSH пользователь будет запрашивать как пароль/ключ, так и одноразовый код из приложения на смартфоне.
5. Дополнительные меры, усиливающие защиту
Помимо четырёх основных пунктов из рекомендаций, администраторы могут применить следующие проверенные практики, которые напрямую связаны с темой угроз:
- Сегментация сети — разместить критические сервисы (например, базы данных) в отдельных VLAN или сетевых пространствах, доступ к которым возможен только через строго контролируемые шлюзы.
- Ограничение по IP — использовать
iptables илиnftables для разрешения подключений к SSH/VPN только из доверенных диапазонов. - Fail2Ban или аналогичные — автоматически блокировать IP после нескольких неудачных попыток аутентификации.
- Регулярное обновление и управление патчами — обеспечить, чтобы все edge‑устройства (роутеры, IoT‑шлюзы, контроллеры) получали последние прошивки, поскольку именно они часто становятся первоначальной точкой компрометации.
- Мониторинг изменений конфигурации — использовать
auditd илиTripwire для отслеживания несанкционированных правок в файлах/etc/ssh/sshd_config,/etc/nginx/nginx.confи т.д.
Все перечисленные действия основаны на стандартных возможностях Linux и не требуют приобретения коммерческих продуктов, что делает их доступными для небольших команд и одиночных администраторов.
Заключение
Предупреждение CISA и NCSC‑UK подчёркитайские государственные хакеры активно используют скрытые сети, построенные из тысяч скомпрометированных устройств, включая домашние роутеры, IoT‑гаджеты и слабо защищённые серверы. Для администраторов Linux‑систем ключевой вывод — необходимо знать, что находится на периметре вашей сети, установить базовый уровень нормального трафика, вести надёжный журнал событий и обязательно применять многофакторную аутентификацию для удалённого доступа. Выполняя эти шаги, вы значительно снижаете вероятность того, что ваш сервер станет частью ботнета Volt Typhoon, Flax Typhoon или любой другой аналогичной угрозы.