Лучшие практики

Подключение к сети с помощью EAP-TLS на АРМ под управлением ОС Astra Linux

Для подключения устройства к сети, управляемой AxelNAC необходимо выпустить сертификат пользователя, в субъекте которого должен быть указан атрибут Common name (CN).

После того как сертификат был выпущен выполните следующие действия:

Шаг 1. Разделите контейнер сертификата с расширением .pfx на отдельные файлы: сертификат с расширением .cer и ключ сертификата с расширением .key, используя следующие команды:

openssl pkcs12 -in *имя_сертификата*.pfx -clcerts -nokeys -out *имя_сертификата*.cer
openssl pkcs12 -in *имя_сертификата*.pfx -nocerts -out *имя_ключа*.key

Шаг 2. Перейдите в веб-интерфейсе AxelNAC в раздел Конфигурация → RADIUS → Основное.

Шаг 3. Активируйте параметр Аутентификация компьютера с RADIUS со вводом имени пользователя.

Шаг 4. В поле Атрибуты имени пользователя установите атрибут User-Name первым в списке.

Шаг 5. Нажмите Сохранить и перезапустите службу radius-auth.

Шаг 6. На машине под управлением ОС Astra Linux запустите утилиту Network Manager и выберите сеть, управляемую AxelNAC.

Шаг 7. При настройке подключения, в поле Подлинность укажите имя пользователя (CN) для подключения и нажмите Подключиться.

 

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


Отказоустойчивость Active Directory

Уровень аутентификации и авторизации AxelNAC использует два различных компонента для подключения к Active Directory при выполнении аутентификации по стандарту 802.1x.

Служба Winbindd используется для NTLM-аутентификации при использовании протокола EAP-PEAP или MSCHAPv2. Для авторизации используются LDAP-соединения для вычисления роли пользователя. 

При использовании Captive-портала или аутентификации по стандарту 802.1x, которая не зависит от NTLM-аутентификации (EAP-TLS, EAP-TTLS и пр.), используется только LDAP.

Если имеется несколько серверов Active Directory, то необходимо применить следующий набор рекомендаций, чтобы AxelNAC мог эффективно обнаруживать отказы одного из AD-серверов и переключаться на следующий. Это еще более важно, если развертывание AxelNAC направлено на серверы Active Directory, расположенные в двух разных зонах доступности (т. е. в двух разных центрах обработки данных).

Уровень аутентификации

Уровень аутентификации должен эффективно обеспечивать отказоустойчивость. Для этого необходимо, чтобы параметр Sticky DC в конфигурации домена имел значение *

Кроме того, в этой конфигурации необходимо указать более одного DNS-сервера. Если имеется более одной зоны доступности, то необходимо чередовать порядок расположения серверов. Например, если в первой зоне доступности находятся следующие DNS-серверы: 10.0.1.100, 10.0.1.101, а во второй зоне доступности — 10.0.2.100, 10.0.2.101, то список DNS-серверов должен быть следующим: 10.0.1.100,10.0.2.100,10.0.1.101,10.0.2.101.

Это обеспечит принадлежность второго запрашиваемого DNS-сервера к другой зоне доступности, отличной от первого сервера, когда winbindd запрашивает DNS, чтобы найти доступный контроллер домена Active Directory.

Обратите внимание, что после изменения указанных выше настроек необходимо заново сгенерировать конфигурацию домена и перезапустить службу winbindd, используя следующие команды:

/usr/local/pf/bin/pfcmd generatedomainconfig
/usr/local/pf/bin/pfcmd service winbindd restart

Дополнительная безопасность при использовании монитора

Некоторые версии samba/winbindd могут работать некорректно при отказе одного из контроллеров домена (DC), даже при соблюдении описанных выше рекомендаций. 

По этой причине рекомендуется включить службу monit на имеющейся установке. Это автоматически активирует дополнительную проверку, которая перезапустит winbindd в случае сбоя аутентификации на контроллере домена. После перезапуска будет найден новый контроллер и аутентификация возобновится.

Чтобы задействовать этот механизм, активируйте службу monit — он будет добавлен автоматически.

Уровень авторизации

Уровень авторизации AxelNAC использует для разрешения имен DNS-серверы, установленные в операционной системе. В связи с этим необходимо убедиться, что серверы в файле /etc/resolv.conf обеспечивают корректное переключение при отказе одного из них.
Аналогично уровню аутентификации, необходимо чередовать порядок расположения серверов в зависимости от наличия различных зон доступности. Также необходимо задать агрессивные настройки для переключения на следующий DNS-сервер. Например, если в первой зоне доступности расположены следующие DNS-серверы: 10.0.1.100, 10.0.1.101, а во второй зоне доступности: 10.0.2.100, 10.0.2.101, то в результате файл /etc/resolv.conf должен иметь следующий вид:

search example.com
options timeout:1
options retries:1

nameserver 10.0.1.100
nameserver 10.0.2.100
nameserver 10.0.1.101
nameserver 10.0.2.101

После того как DNS-серверы ОС настроены на эффективную отказоустойчивость, необходимо просмотреть конфигурацию различных источников Active Directory, имеющихся в AxelNAC (см. раздел Конфигурация → Политика и контроль доступа → Источники аутентификации).

В этих источниках необходимо убедиться, что используется DNS-имя, которое разрешается в несколько серверов домена Active Directory, или что для подключения указано несколько IP-адресов. Если уверенности в надежности уровня DNS нет, используйте несколько IP-адресов.


Использование нескольких SMS-шлюзов в одном профиле подключения
 

Для создания интеграции с SMS-шлюзами пользователь должен иметь роль Администратор или иметь права SMS_GATEWAY_CREATESMS_GATEWAY_READ, SMS_GATEWAY_UPDATE, SMS_GATEWAY_DELETESMS_SEND_METHOD_AVAILABLE, DEFAULT_SEND_METHOD_SMS и System - Create.

В случае, если вы хотите реализовать поддержку безотказности предоставления доступа к сети через отправку SMS-сообщения, функционал AxelNAC позволяет выполнить ассоциацию нескольких SMS-шлюзов с профилем подключения. Для того чтобы это сделать, выполните следующие действия:

Шаг 1. Перейдите в раздел Конфигурация → Политики и контроль доступа → Профили подключения.

Шаг 2. Выберите интересующий вас профиль подключения или создайте новый.

Шаг 3. В открывшемся окне в поле Источники выберите необходимый источник аутентификации с типом SMS.

Шаг 4. Нажмите на значок  и выберите дополнительный источник.

Шаг 5. Нажмите Сохранить, чтобы сохранить изменения.


Оптимизация MariaDB

Настройка MariaDB

Одной из причин медленной работы AxelNAC может быть недостаточная производительность MariaDB. 

Чтобы ее настроить выполните следующие действия:

Шаг 1. Проверьте загрузку системы с помощью команды:

# uptime
11:36:37 up 235 days,  1:21,  1 user, load average: 1.25, 1.05, 0.79

Шаг 2. Установите утилиту iostat.

Шаг 3. Проверьте iostat и процессор с помощью команд:

# iostat 5
avg-cpu:  %user   %nice    %sys %iowait   %idle
           0.60    0.00    3.20   20.20   76.00
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0       32.40         0.00      1560.00          0       7800
avg-cpu:  %user   %nice    %sys %iowait   %idle
           0.60    0.00    2.20    9.20   88.00
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0        7.80         0.00        73.60          0        368
avg-cpu:  %user   %nice    %sys %iowait   %idle
           0.60    0.00    1.80   23.80   73.80
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0       31.40         0.00      1427.20          0       7136
avg-cpu:  %user   %nice    %sys %iowait   %idle
           0.60    0.00    2.40   18.16   78.84
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0       27.94         0.00      1173.65          0       5880

В приведенном примере среднее значение нагрузки составляет 1,25, а пиковое значение iowait достигает 20% — что говорит о высокой загрузке. Если iowait низкий, но MariaDB занимает более 50% процессора — такое значение также говорит о высокой загрузке базы данных. 

Шаг 4. Проверьте установку MariaDB на наличие следующих переменных:

MariaDB> show variables;
| innodb_additional_mem_pool_size | 1048576 |
| innodb_autoextend_increment | 8 | |
| innodb_buffer_pool_awe_mem_mb | 0 | |
| innodb_buffer_pool_size | 8388608 |

AxelNAC в значительной степени зависит от InnoDB, поэтому следует увеличить размер буферного пула buffer_pool относительно значений по умолчанию.

Шаг 5. В веб-интерфейсе AxelNAC перейдите в раздел Конфигурация → Настройки системы → База данных → Расширенные и увеличьте значение параметра Размер буферного пула InnoDB.

Шаг 6. Перезапустите службу packetfence-mariadb с помощью команды:

# systemctl restart packetfence-mariadb

Шаг 7. Подождите 10 минут, затем повторно проверьте iostat и CPU.

# uptime
12:01:58 up 235 days, 1:46, 1 user, load average: 0.15, 0.39, 0.52
# iostat 5
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
cciss/c0d0 8.00 0.00 75.20 0 376
avg-cpu: %user %nice %sys %iowait %idle
  0.60 0.00 2.99 13.37 83.03
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
cciss/c0d0 14.97 0.00 432.73 0 2168
avg-cpu: %user %nice %sys %iowait %idle
  0.20 0.00 2.60 6.60 90.60
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
cciss/c0d0 4.80 0.00 48.00 0 240

Исключение ошибок «Host <hostname> is blocked»

В условиях беспроводной сети, как правило, происходит большое количество соединений с базой данных, которые выполняет модуль freeradius. При загрузке сервера эти попытки соединения могут прерываться по времени. Если соединение прерывается во время подключения, MariaDB расценивает это как ошибку соединения и после 10 таких попыток (по умолчанию) блокирует хост с сообщением:

Host 'host_name' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'

Блокировка приведет к остановке AxelNAC, поэтому ее следует избегать. Один из способов сделать это — увеличить количество максимальных соединений, чтобы периодически очищать хосты или разрешать большее количество ошибок при соединении. Подробное описание решения этой ошибки описано в этой статье.

Использование MariaDB-backup

При работе с крупной базой данных сценарий резервного копирования и обслуживания базы данных /usr/local/pf/addons/backup-and-maintenance.sh, использующий mysqldump, может привести к длительной блокировке базы данных и к зависанию службы.

Это можно исправить с помощью службы MariaDB-backup, которая может выполнить полное резервное копирование базы данных без блокировки таблиц.

Шаг 1. Предоставьте соответствующие права пользователю PF (или тому, который был настроен в файле pf.conf):

# mysql -u root -p
MariaDB> GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO
'pf'@'localhost';
MariaDB> FLUSH PRIVILEGES;

Шаг 2. Запустите сценарий обслуживания /usr/local/pf/addons/backup-and-maintenance.sh и убедитесь, что в его выводе присутствует следующая строка:

innobackupex: completed OK!

Шаг 3. Если резервное копирование закончилось неудачно, проверьте журнал /usr/local/pf/logs/innobackup.log и обратитесь к документации по MariaDB-backup для устранения неполадок.

 

Если нужно прекратить использование MariaDB-backup для резервного копирования MariaDB, просто удалите его, и сценарий базы данных вернется к mysqldump.


Преобразование Nas-Port в ifindex

В контексте системы контроля доступа к сети (например, RADIUS или подобных систем) параметр NasPortToIfindex определяет, как преобразовать Nas-Port (идентификатор порта на сетевом устройстве, полученный в radius-запросе) в ifIndex (индекс интерфейса для использования в SNMP). Данный шаблон нужен для нормализации номера порта перед использованием в системе. Данной функцией можно воспользоваться, если в вашем сетевом оборудовании Nas-Port можно привести к ifIndex, удаляя или модифицируя префикс/суффикс. Преобразование необходимо использовать, когда для механизмов СОА или другого функционала продукта используется SNMP, значение ifIndex в котором содержит лишние значения.

Данный параметр заполняется в формате $nasPort, "500", "101",где:

Пример работы такого шаблона:

Nas-Port Итоговый ifIndex
50010123 23
10150042 42
50056789 56789


Оптимизация аутентификации старых моделей IP-телефонов Avaya

На устаревших платформах IP-телефонов очень часто процесс аутентификации занимает больше времени, чем на современных. Для того, чтобы устаревшие модели IP-телефонов Avaya успешно проходили процесс аутентификации, выполните следующие действия:

Шаг 1. Подключитесь коммутатору по SSH и выберите порт, который используется для подключения IP-телефона.

Шаг 2. Установите таймаут повторной реаутентификации равный 30 секундам с помощью следующей команды:

dot1x timeout reauth-period 30

Шаг 3. Установите период игнорирования EAP-сообщений после неуспешной аутентификации равный 15 секундам с помощью следующей команды:

dot1x timeout quiet-period 15

Шаг 4. Установите таймер повторного запроса аутентификации равный 15 секундам с помощью следующей команды:

dot1x timeout tx-period 15

После этого реаутентификация IP-телефонов будет выполняться корректно.


Конфигурация IPTables

IPTables полностью управляется AxelNAC. Однако если необходимо выполнять какие-либо пользовательские правила, можно соответствующим образом изменить файл /usr/local/pf/conf/iptables.conf. Однако, для большинства пользователей должен подойти шаблон, установленный по умолчанию.


Статус параметра ip_forward

Проверка состояния параметра ip_forward

Для проверки того, включен ли параметр, подключитесь к AxelNAC по протоколу SSH и повысьте свой уровень привилегий. После этого выполните следующую команду на каждом узле:

cat /etc/sysctl.conf | grep "net.ipv4.ip_forward"

В случае возвращения пустого значения параметр не настроен в системе.

Включение параметра ip_forward

Для включения параметра, подключитесь к AxelNAC по протоколу SSH  и повысьте свой уровень привилегий. После этого выполните следующую команду на каждом узле:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

Примените настройки:

sysctl -p


Конфигурация событий безопасности для устройств под управлением нескольких операционных систем

Функционал событий безопасности позволяет сконфигурировать их так, чтобы они корректно срабатывали на АРМ, которые находятся под управлением сразу нескольких операционных систем.

Для того, чтобы сконфигурировать события безопасности, выполните следующие действия:

Шаг 1. Перейдите в раздел Конфигурация → Соответствие → События безопасности и нажмите Новое событие безопасности.

Шаг 2. Заполните основные поля (Идентификатор, Описание, Приоритет и Список разрешенных/игнорируемых ролей) и нажмите Добавить триггер.

Шаг 3. В столбце Профилирование нажмите Добавить условие, выберите тип Устройство и укажите значение для этого параметра. Затем, добавьте все необходимые вам дополнительные условия.

Шаг 4. Нажмите на иконку + справа от таблицы, чтобы добавить еще один набор условий, который проверяться с оператором OR (ИЛИ).

Шаг 5. В столбце Профилирование нажмите Добавить условие, выберите тип Устройство и укажите новое значение для этого параметра. Затем, добавьте все необходимые вам дополнительные условия.

 

Вы можете добавить любое количество строк с условиями.

Шаг 6. Настройте действия, которые необходимо выполнить при срабатывании события безопасности, таймеры срабатывания и нажмите Создать.

После этого события безопасности будут срабатывать для обеих операционных систем на устройстве.


Ротация журналов

В крупных продуктивных сетях AxelNAC может генерировать большое количество записей в журнале. Поэтому рекомендуется использовать службу logrotate для периодической ротации журналов.

Рабочий сценарий службы logrotate поставляется вместе с пакетом AxelNAC. Этот скрипт находится в каталоге /etc/logrotate.d/ и настроен на ежедневную ротацию журналов и сохранение старых журналов со сжатием.


Конвертация названий интерфейсов сетевых портов в уникальные форматы

В данной статье рассматривается процесс конвертации названий интерфейсов сетевых портов в уникальные форматы для удобства идентификации и управления. 

Конвертация интерфейса сетевого порта

Название интерфейса сетевого порта может быть конвертировано в идентификатор порта в формате [Идентификатор типа порта][Номер порта]. Для того, чтобы произвести конвертацию, необходимо выполнить следующие действия:

Шаг 1. Определите тип порта для преобразования его в первую часть идентификатора порта, согласно следующей таблице:

Тип порта Идентификатор
GigabitEthernet 570
FastEthernet 650
TenGigabitEthernet 730
Ethernet 830
Serial 930
Layer2 1030

Шаг 2. Определите номер порта. Например, для порта GigabitEthernet1/0/10, номер порта будет 10.

Примеры конвертации

  1. GigabitEthernet8/0/40:

    • Тип порта: GigabitEthernet
    • Идентификатор: 570
    • Номер порта: 8/0/40
    • Результат57040
  2. FastEthernet1/0/5:

    • Тип порта: FastEthernet
    • Идентификатор: 650
    • Номер порта: 1/0/5
    • Результат6505
  3. TenGigabitEthernet2/1/10:

    • Тип порта: TenGigabitEthernet
    • Идентификатор: 730
    • Номер порта: 2/1/10
    • Результат73010
  4. Ethernet3/2/15:

    • Тип порта: Ethernet
    • Идентификатор: 830
    • Номер порта: 3/2/15
    • Результат83015

Данные примеры актуальны для коммутаторов Cisco и могут отличаться для другого оборудования. Для того, чтобы определить точный идентификатор порта, перейдите в раздел Аудит → Журналы аудита RADIUS Выбранное вами сетевое устройство → Информация о сетевом устройстве. Интересующий вас идентификатор порта будет указан в строке IfIndex.


Работа с большими сетями регистрации

При использовании Inline-режима или режима принудительного назначения VLAN в крупных сетях могут возникать переполнения таблицы ARP. Это происходит, когда много устройств находятся в одном сегменте второго уровня.

Переполнение выражается в том, что служба dhcpd не выдает IP-адреса должным образом или не выполняет ping в VLAN регистрации или карантина. Чтобы определить наличие этой проблемы, откройте журнал dmesg и посмотрите, нет ли в нем сообщений Neighbour table overflow.

Для решения этой проблемы, нужно изменить настройки ядра. Чтобы увеличить таблицу ARP-кэша в работающей системе, измените в файле sysctl.conf следующие значения:

net.ipv4.neigh.default.gc_thresh1 = 2048
net.ipv4.neigh.default.gc_thresh2 = 4096
net.ipv4.neigh.default.gc_thresh3 = 8192

Затем для применения изменений выполните следующую команду от имени anac:

# sysctl -p

Такая конфигурация означает, что легкое удаление L2-записей начнется при 2048 MAC-адресах, записанных на сервере, а наиболее агрессивное — при 8192. Этого должно быть достаточно для большинства, но при необходимости можно увеличить это значение (за счет большего объема потребляемой памяти ядра). Другим подходом к решению этой проблемы является большая сегментация L2-сетей.



База знаний AxelNAC -> Лучшие практики
https://docs.axel.pro/37/