Системный журнал — практичная база знаний по VPS и Linux
security • 12 минут

Как защитить 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 или любой другой аналогичной угрозы.