Учётные записи сетевого оборудования централизованно: TACACS+, RADIUS и аварийный доступ

На коммутаторах и маршрутизаторах обычно живёт один общий пароль администратора: его знают все, кто когда-либо настраивал сеть, включая уволенных и подрядчиков, а менять его слишком хлопотно, потому что придётся обходить каждое устройство. Централизованная аутентификация устраняет проблему: администратор входит под своей именной учётной записью, устройство спрашивает сервер, права определяются группой, а при увольнении достаточно отключить одну запись. Ниже когда подходит RADIUS и когда TACACS+, настройка сервера и устройств, обязательная аварийная локальная учётка, журнал и проверка охвата.
Конфигурации самих устройств надо хранить и проверять: Oxidized. Базовая настройка защиты оборудования: hardening коммутатора. RADIUS для контроля доступа к сети: 802.1X.
Как это устроено
AAA означает аутентификацию (кто входит), авторизацию (что ему можно) и учёт (что он делал). Именно третья часть делает схему полезной при расследовании: видно, кто и какие команды выполнил на устройстве.
RADIUS или TACACS+
| RADIUS | TACACS+ | |
|---|---|---|
| Для чего задуман | Доступ в сеть (802.1X, VPN, Wi-Fi), годится и для входа администратора | Администрирование устройств |
| Авторизация команд | Ограничена: уровень привилегий при входе | Каждая команда проверяется на сервере |
| Учёт | Начало и конец сессии | Каждая выполненная команда |
| Шифрование | Только пароль | Весь пакет |
| Когда выбрать | Небольшая сеть, уже есть FreeRADIUS, оборудование разных производителей | Нужны запись команд и ограничение команд по ролям, оборудование поддерживает |
Для небольшой компании разумный путь: начать с RADIUS (он уже понадобился для 802.1X), добавив TACACS+ там, где нужен журнал команд. Оба протокола поддерживает большинство серьёзного сетевого оборудования; у дешёвых устройств поддержки может не быть, и это стоит учитывать при закупке.
Шаг 1. Сервер: FreeRADIUS для входа администраторов
Установка и базовая проверка описаны в статье про 802.1X. Для входа на оборудование добавьте устройства как клиентов (с собственным секретом для каждого) и опишите пользователей с уровнем привилегий. Файл /etc/freeradius/3.0/mods-config/files/authorize:
ivanov Cleartext-Password := "ВРЕМЕННЫЙ_ПАРОЛЬ"
Service-Type = Administrative-User,
Cisco-AVPair = "shell:priv-lvl=15"
petrov Cleartext-Password := "ВРЕМЕННЫЙ_ПАРОЛЬ"
Service-Type = NAS-Prompt-User,
Cisco-AVPair = "shell:priv-lvl=1"
sudo freeradius -CX | tail -n 2
sudo systemctl restart freeradius
radtest ivanov ВРЕМЕННЫЙ_ПАРОЛЬ 127.0.0.1 0 ЛОКАЛЬНЫЙ_СЕКРЕТ
Ожидаемо: Access-Accept с атрибутами привилегий. Пароли в файле годятся для проверки; в рабочей схеме пользователей берут из каталога (LDAP или AD через ntlm_auth), группы каталога сопоставляются с уровнями привилегий, а второй фактор проверяется сервером. Так отзыв доступа сводится к отключению учётной записи в каталоге.
Шаг 2. Настройка устройств
Синтаксис зависит от производителя; ниже два примера. Сначала переведите вход на RADIUS, оставив локальную учётную запись как запасной вариант: если сервер недоступен, устройство должно впустить вас по ней.
# коммутатор в синтаксисе Cisco IOS
aaa new-model
radius server RAD1
address ipv4 192.0.2.60 auth-port 1812 acct-port 1813
key ОБЩИЙ_СЕКРЕТ_ДЛЯ_ЭТОГО_УСТРОЙСТВА
aaa authentication login default group radius local
aaa authorization exec default group radius local
aaa accounting exec default start-stop group radius
ip ssh version 2
line vty 0 15
transport input ssh
# MikroTik RouterOS
/radius add address=192.0.2.60 secret=ОБЩИЙ_СЕКРЕТ_ДЛЯ_ЭТОГО_УСТРОЙСТВА service=login
/user aaa set use-radius=yes accounting=yes default-group=read
Ожидаемо: вход по SSH под именной учётной записью проходит, права соответствуют группе, в журнале RADIUS появляются записи об аутентификации и об учёте сессии. Для TACACS+ на Cisco-подобных устройствах схема та же, но с командами tacacs server, aaa authorization commands 15 default group TACGROUP local и aaa accounting commands 15 default start-stop group TACGROUP: последние две строки включают проверку и учёт каждой команды. Сервер для TACACS+ выбирайте по поддержке вашей средой: открытых вариантов несколько, и их конфигурации сильно отличаются, поэтому сверяйтесь с документацией выбранного.
Риск: перевод устройства на внешнюю аутентификацию без запасного входа превращает любой сбой сервера в потерю управления. Меняйте по одному устройству, держите вторую открытую сессию и проверяйте, что вход по local работает, когда сервер выключен.
Шаг 3. Аварийная учётная запись
На каждом устройстве остаётся одна локальная учётная запись для случая, когда сервер недоступен. Правила обращения с ней:
- Пароль длинный, уникальный для устройства, хранится в сейфе паролей или в запечатанном конверте, доступ к которому журналируется.
- Входом пользуются только при сбое сервера. Любое использование аварийной записи — повод для записи в журнале и смены пароля после.
- Раз в квартал проверяйте, что запись работает и пароль соответствует хранилищу: на каждом устройстве по очереди, в согласованное окно.
- Остальные локальные учётные записи (старые пароли «admin» и имена сотрудников) удалите.
Шаг 4. Журнал и оповещения
Каждый вход и каждая выполненная команда должны оставлять след. Для RADIUS журнал учёта лежит в каталоге /var/log/freeradius/radacct/ по узлам, а неудачные входы в radius.log:
sudo grep -E "Login incorrect" /var/log/freeradius/radius.log | tail -n 10
sudo ls /var/log/freeradius/radacct/192.0.2.21/ | tail -n 3
Ожидаемо: список неудачных попыток с именем пользователя и адресом устройства и файлы учёта по каждому. Отправляйте эти журналы в SIEM и настройте оповещения на серию отказов и на использование аварийной учётной записи: журналы сетевых средств в Wazuh.
Шаг 5. Охват: все ли устройства на централизованной схеме
Если часть устройств остаётся на локальных паролях, схема не выполняется. Проверяйте по сохранённым конфигурациям (Oxidized держит их в Git): файл правил проверки из статьи про сканирование конфигураций:
{
"must": ["aaa new-model", "aaa authentication login default group", "transport input ssh"],
"forbid": ["username admin password", "transport input telnet", "enable password"]
}
Ожидаемо: скрипт проверки показывает устройства без нужных строк. Охват — доля устройств с централизованной аутентификацией от всего списка из реестра активов; цель — все критичные и не меньше девяти из десяти остальных. Ссылка на реестр: реестр ИТ-активов.
Какие артефакты хранить
| Что хранить | Что показывает |
|---|---|
| Документация системы: схема, список серверов, порядок восстановления | Централизованное управление учётными записями сетевого оборудования внедрено |
| Выгрузка списка устройств на централизованной схеме и результат проверки конфигураций | Охват и его регулярная проверка |
| Журналы входов и учёта команд за месяц | Действия администраторов прослеживаются |
| Запись о проверке аварийных учётных записей за квартал | Запасной вход не потерян и не стал лазейкой |
Диагностика
| Симптом | Причина и что делать |
|---|---|
| Устройство не принимает именную учётную запись | Не совпадает секрет или адрес устройства не внесён как клиент. Проверьте radius.log и freeradius -X |
| Вход проходит, но права минимальные | Устройство не получило атрибут привилегий. Проверьте Cisco-AVPair и команды aaa authorization exec |
| Вход зависает на 30 секунд | Сервер недоступен, устройство ждёт тайм-аут и идёт по локальной учётной записи. Проверьте связь и сократите тайм-аут |
| Остался общий пароль «admin» | Устройство не вычищено. Удалите локальные записи, оставьте одну аварийную |
| Администраторы жалуются на неудобство | Нет единого имени и пароля. Это и есть смысл: объясните, что входят под личной учётной записью |
Где это в модели зрелости
Материал относится к направлению «Управление доступом» (хаб: управление доступом, карта: карта зрелости). На третьем уровне используются централизованные системы для управления учётными записями сетевого оборудования, включая хранение и контроль изменений. Демонстрация системы и её покрытия, техническая документация и журналы — подтверждения.
Как проверить
- Вход на тестовый коммутатор под именной учётной записью проходит, права соответствуют группе.
- При остановленном сервере вход по аварийной учётной записи работает.
- В журнале сервера видны вход и выполненные действия (для TACACS+ команды).
- На выборке устройств нет локальных учётных записей, кроме аварийной.
- Проверка конфигураций показывает охват не ниже заданного.
Источники
- FreeRADIUS, документация: freeradius.org/documentation.
- RFC 8907, протокол TACACS+: rfc-editor.org.
- CIS Control 12, управление сетевой инфраструктурой: cisecurity.org/controls.


















