Для подключения устройства к сети, управляемой 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. Если вы хотите, чтобы пользователь определялся в конкретную область, в поле Подлинность укажите имя пользователя в формате имя@область.
Уровень аутентификации и авторизации 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_GATEWAY_CREATE, SMS_GATEWAY_READ, SMS_GATEWAY_UPDATE, SMS_GATEWAY_DELETE, SMS_SEND_METHOD_AVAILABLE, DEFAULT_SEND_METHOD_SMS и System - Create.
В случае, если вы хотите реализовать поддержку безотказности предоставления доступа к сети через отправку SMS-сообщения, функционал AxelNAC позволяет выполнить ассоциацию нескольких SMS-шлюзов с профилем подключения. Для того чтобы это сделать, выполните следующие действия:
Шаг 1. Перейдите в раздел Конфигурация → Политики и контроль доступа → Профили подключения.
Шаг 2. Выберите интересующий вас профиль подключения или создайте новый.
Шаг 3. В открывшемся окне в поле Источники выберите необходимый источник аутентификации с типом SMS.
Шаг 4. Нажмите на значок
и выберите дополнительный источник.
Шаг 5. Нажмите Сохранить, чтобы сохранить изменения.
Одной из причин медленной работы 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
В условиях беспроводной сети, как правило, происходит большое количество соединений с базой данных, которые выполняет модуль freeradius. При загрузке сервера эти попытки соединения могут прерываться по времени. Если соединение прерывается во время подключения, MariaDB расценивает это как ошибку соединения и после 10 таких попыток (по умолчанию) блокирует хост с сообщением:
Host 'host_name' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'
Блокировка приведет к остановке AxelNAC, поэтому ее следует избегать. Один из способов сделать это — увеличить количество максимальных соединений, чтобы периодически очищать хосты или разрешать большее количество ошибок при соединении. Подробное описание решения этой ошибки описано в этой статье.
При работе с крупной базой данных сценарий резервного копирования и обслуживания базы данных /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.
В контексте системы контроля доступа к сети (например, RADIUS или подобных систем) параметр NasPortToIfindex определяет, как преобразовать Nas-Port (идентификатор порта на сетевом устройстве, полученный в radius-запросе) в ifIndex (индекс интерфейса для использования в SNMP). Данный шаблон нужен для нормализации номера порта перед использованием в системе. Данной функцией можно воспользоваться, если в вашем сетевом оборудовании Nas-Port можно привести к ifIndex, удаляя или модифицируя префикс/суффикс. Преобразование необходимо использовать, когда для механизмов СОА или другого функционала продукта используется SNMP, значение ifIndex в котором содержит лишние значения.
Данный параметр заполняется в формате $nasPort, "500", "101",где:
$nasPort — исходное значение порта, полученное от NAS (Network Access Server);"500" и "101" — значения, которые необходимо игнорировать при формировании ifindex.Пример работы такого шаблона:
| Nas-Port | Итоговый ifIndex |
|---|---|
| 50010123 | 23 |
| 10150042 | 42 |
| 50056789 | 56789 |
На устаревших платформах 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 полностью управляется AxelNAC. Однако если необходимо выполнять какие-либо пользовательские правила, можно соответствующим образом изменить файл /usr/local/pf/conf/iptables.conf. Однако, для большинства пользователей должен подойти шаблон, установленный по умолчанию.
Для проверки того, включен ли параметр, подключитесь к AxelNAC по протоколу SSH и повысьте свой уровень привилегий. После этого выполните следующую команду на каждом узле:
cat /etc/sysctl.conf | grep "net.ipv4.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.
GigabitEthernet8/0/40:
GigabitEthernet5708/0/4057040FastEthernet1/0/5:
FastEthernet6501/0/56505TenGigabitEthernet2/1/10:
TenGigabitEthernet7302/1/1073010Ethernet3/2/15:
Ethernet8303/2/1583015Данные примеры актуальны для коммутаторов 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-сетей.