Подробный гайд: Решение проблем с защитой от сетевых угроз в ALT Linux 10.2

Гайд по настройке защиты от сетевых угроз в ALT Linux 10.2: firewall, AppArmor, SELinux, диагностика и решение частых проблем

2026.04.20                  


Подробный гайд: Решение проблем с защитой от сетевых угроз в ALT Linux 10.2Подробный гайд: Решение проблем с защитой от сетевых угроз в ALT Linux 10.2

Важно:

  • Перед внесением изменений создайте резервную копию конфигурационных файлов и, по возможности, точку восстановления системы.

Содержание

  1. Диагностика проблемы
  2. Проверка и настройка firewall (etcnet/iptables)
  3. Настройка и отладка AppArmor
  4. Проверка SELinux (если используется)
  5. Анализ сетевых сервисов и портов
  6. Частые проблемы и решения
  7. Полезные команды и утилиты

1. Диагностика проблемы

Быстрая проверка состояния защиты:

# Проверка статуса firewall
sudo systemctl status network
efw default show 2>/dev/null || echo "etcnet firewall не активен"

# Проверка AppArmor
sudo aa-status

# Проверка активных правил iptables
sudo iptables -L -n -v

# Проверка открытых портов
sudo netstat -tulpn
# или
sudo ss -tulpn

Логи для анализа:

# Логи ядра и безопасности
sudo journalctl -k | grep -iE "apparmor|iptables|firewall|denied"
sudo tail -f /var/log/messages | grep -iE "firewall|apparmor|security"

# Логи AppArmor
sudo aa-logprof

2. Проверка и настройка firewall (etcnet/iptables)

ALT Linux 10.2 использует систему etcnet для управления сетью и фаерволом.

Проверка конфигурации etcnet

1. Убедитесь, что фаервол включён в настройках:

# Проверьте файл настроек интерфейса
cat /etc/net/ifaces/default/options | grep CONFIG_FW
# Должно быть: CONFIG_FW=yes

2. Проверьте параметры firewall:

cat /etc/net/ifaces/default/fw/options

Ключевые параметры:

  • FW_TYPE=iptables — тип фаервола
  • IPTABLES_INPUT_POLICY=DROP — политика по умолчанию для входящих
  • IPTABLES_OUTPUT_POLICY=ACCEPT — политика для исходящих

Перезапуск и применение правил

# Полная перезагрузка правил фаервола
sudo efw default stop
sudo efw all start

# Или для конкретного интерфейса
sudo efw eth0 reload

# Проверка применённых правил
sudo iptables -L -n --line-numbers
sudo iptables -t nat -L -n

Пример базовой конфигурации /etc/net/ifaces/default/fw/iptables/filter/INPUT:

# Разрешить локальный трафик
accept all from any to 127.0.0.1

# Разрешить установленные соединения
accept all from any if state established,related

# Разрешить SSH (с ограничением попыток)
accept tcp from any to any dport 22 if state new

# Разрешить веб-сервер
accept tcp from any to any dport 80
accept tcp from any to any dport 443

# Запретить всё остальное (по умолчанию)
policy DROP

Правила можно писать в «читабельном» синтаксисе, если включена опция IPTABLES_HUMAN_SYNTAX=yes.

Если правила не применяются:

1. Проверьте, загружены ли необходимые модули ядра:

lsmod | grep -E "iptable|nf_|ip_set"

2. При необходимости добавьте в /etc/net/ifaces/default/fw/iptables/modules:

iptable_filter
iptable_nat
nf_conntrack
nf_conntrack_ipv4

3. Перезапустите сетевую службу:

sudo systemctl restart network

3. Настройка и отладка AppArmor

AppArmor — система мандатного контроля доступа, ограничивающая возможности приложений.

Установка и активация

# Установка пакетов
sudo apt-get update
sudo apt-get install apparmor apparmor-utils apparmor-profiles

# Активация сервиса
sudo systemctl enable --now apparmor

# Проверка статуса
sudo aa-status

Создание профиля для приложения

# Автогенерация базового профиля
sudo aa-autodep /usr/bin/ваше_приложение

# Интерактивная настройка
sudo aa-genprof /usr/bin/ваше_приложение

Тестирование в режиме «жалоб» (complain)

# Перевод профиля в режим мониторинга
sudo aa-complain /usr/bin/ваше_приложение

# Запустите приложение и выполните типичные операции

# Анализ логов и обновление профиля
sudo aa-logprof

# После успешного теста — включите строгий режим
sudo aa-enforce /usr/bin/ваше_приложение

Если приложение не работает в режиме enforce:

1. Проверьте логи нарушений:

sudo journalctl -k | grep apparmor
# или
sudo dmesg | grep -i apparmor

2. Временно переключите профиль в режим complain:

sudo aa-complain /path/to/profile
  1. Добавьте недостающие разрешения через aa-logprof или вручную отредактируйте профиль.

4. Пример разрешения сетевого доступа в профиле:

network inet tcp,
network inet udp,

4. Проверка SELinux (если используется)

Если в системе активирован SELinux, он может конфликтовать с AppArmor или блокировать сетевой трафик.

Проверка статуса:

getenforce
sestatus

Временное отключение (для диагностики):

sudo setenforce 0

Постоянное отключение (если не используется):

# Отредактируйте конфиг
sudo nano /etc/selinux/config
# Измените строку:
SELINUX=disabled
# Перезагрузите систему

В ALT Linux по умолчанию рекомендуется использовать AppArmor, а не SELinux.

5. Анализ сетевых сервисов и портов

Поиск «лишних» открытых портов:

# Прослушивающие сервисы
sudo netstat -tulpn
# или современный аналог
sudo ss -tulpn

# Проверка, какие сервисы слушают все интерфейсы (0.0.0.0)
sudo netstat -tulpn | grep "0.0.0.0:"

Отключение ненужных сервисов:

# Просмотр активных сервисов
sudo systemctl list-units --type=service --state=running

# Отключение и остановка ненужного сервиса
sudo systemctl disable --now имя_сервиса

Настройка сервиса на прослушивание только localhost:

Пример для SSH (/etc/openssh/sshd_config):

ListenAddress 127.0.0.1

После изменения: sudo systemctl restart sshd


6. Частые проблемы и решения

Проблема Возможная причина Решение
Правила iptables не применяются Не загружены модули ядра Добавьте модули в /etc/net/ifaces/default/fw/iptables/modules и выполните efw default restart
AppArmor блокирует приложение Профиль слишком строгий или отсутствует Переведите профиль в режим complain, проанализируйте логи через aa-logprof, добавьте разрешения
Сеть работает, но фаервол «молчит» CONFIG_FW не установлен в yes Отредактируйте /etc/net/ifaces/default/options, добавьте CONFIG_FW=yes
После обновления перестал работать доступ Изменились политики по умолчанию Проверьте IPTABLES_*_POLICY в fw/options, при необходимости временно установите ACCEPT для диагностики
Конфликт AppArmor и SELinux Одновременно активны две системы мандатного контроля Отключите SELinux (SELINUX=disabled в /etc/selinux/config), оставьте AppArmor
Правила «исчезают» после перезагрузки Изменения внесены напрямую в iptables, а не в конфиг etcnet Все правила редактируйте только в файлах /etc/net/ifaces/*/fw/iptables/...

7. Полезные команды и утилиты

Для управления firewall (etcnet):

efw default show          # Показать правила для default-интерфейса
efw eth0 reload           # Перезагрузить правила для eth0
efw all stop              # Остановить фаервол на всех интерфейсах
efw default flush         # Очистить все правила (без удаления цепочек)

Для AppArmor:

aa-status                 # Статус модуля и профилей
aa-genprof /path/to/app   # Создание профиля
aa-logprof                # Обновление профиля по логам
aa-enforce /path/to/profile  # Включить строгий режим
aa-complain /path/to/profile # Режим мониторинга
aa-disable /path/to/profile  # Отключить профиль

Для диагностики сети:

iptables -L -n -v         # Показать правила с пакетами/байтами
iptables-save > backup.txt # Экспорт правил
tcpdump -i any port 22    # Перехват трафика (для отладки)
nmap -sS 127.0.0.1        # Сканирование локальных портов (требует установки)

Для работы с логами:

journalctl -u apparmor -f     # Логи AppArmor в реальном времени
journalctl -u network -f      # Логи сетевой службы
dmesg | grep -iE "drop|deny|apparmor"  # Ядерные сообщения

Полный цикл восстановления защиты

Если защита «сломалась» после обновления или изменения конфигурации:

# 1. Резервное копирование
sudo cp -r /etc/net/ifaces /root/net_backup_$(date +%F)
sudo cp -r /etc/apparmor.d /root/apparmor_backup_$(date +%F)

# 2. Перезагрузка сетевой службы с применением правил
sudo systemctl restart network
sudo efw default restart

# 3. Проверка AppArmor
sudo systemctl restart apparmor
sudo aa-status

# 4. Тестовая проверка доступа
sudo iptables -L INPUT -n | head -20
curl -I http://localhost  # для веб-сервера
ssh -o ConnectTimeout=5 localhost  # для SSH

# 5. Анализ логов при проблемах
sudo journalctl -xe | tail -50

Совет:

  • Для тестирования изменений в фаерволе используйте отдельный терминал с активной сессией root или sudo, чтобы не потерять доступ к системе при ошибке в правилах.

Если проблема сохраняется — предоставьте вывод команд aa-status, efw default show и iptables -L -n -v для более точной диагностики.