Управление пользователями и аутентификацией в VyOS
Управление пользователями и аутентификацией в VyOS обеспечивает безопасный доступ к роутеру через SSH, console, и другие интерфейсы. Правильная конфигурация login management критична для безопасности системы.
Обзор
Типы пользователей
System users:
- Локальные пользователи на VyOS
- Хранятся в конфигурации
- Доступ через SSH, console, API
Root access:
- Root логин отключен по умолчанию
- Используйте sudo для административных команд
- Безопасность через limited privileges
Методы аутентификации
- Local authentication - пользователи в конфигурации VyOS
- SSH keys - публичные ключи для passwordless login
- RADIUS - централизованная аутентификация
- TACACS+ - Cisco-compatible authentication
- LDAP - интеграция с Active Directory
Уровни доступа
Admin level:
- Полный доступ к конфигурации
- Может выполнять все команды
- sudo доступ
Operator level:
- Read-only доступ
- Может просматривать конфигурацию
- Не может изменять настройки
Базовая конфигурация
Создание локального пользователя
# Создать пользователя с паролем
set system login user alice authentication plaintext-password 'SecurePass123!'
# Full name (опционально)
set system login user alice full-name 'Alice Admin'
# Home directory
set system login user alice home-directory '/home/alice'
commit
saveПримечание: Plaintext password шифруется автоматически при commit.
Проверка пользователей
# Список пользователей
show system login
# Текущий пользователь
whoami
# Активные сессии
show system login usersУдаление пользователя
delete system login user alice
commitSSH Keys Authentication
Добавление SSH публичного ключа
# Добавить SSH ключ для пользователя
set system login user alice authentication public-keys workstation key 'AAAAB3NzaC1yc2EAAAADAQABAAABAQC...'
set system login user alice authentication public-keys workstation type 'ssh-rsa'
commitГенерация SSH ключа на клиенте:
# На рабочей станции
ssh-keygen -t rsa -b 4096 -C "alice@company.com"
# Публичный ключ
cat ~/.ssh/id_rsa.pubМножественные SSH ключи
# Workstation key
set system login user alice authentication public-keys workstation key 'AAAAB3...'
set system login user alice authentication public-keys workstation type 'ssh-rsa'
# Laptop key
set system login user alice authentication public-keys laptop key 'AAAAB3...'
set system login user alice authentication public-keys laptop type 'ssh-rsa'
# Server key (for automation)
set system login user alice authentication public-keys automation key 'AAAAB3...'
set system login user alice authentication public-keys automation type 'ssh-ed25519'
commitОтключение password authentication
# Только SSH keys
delete system login user alice authentication plaintext-password
delete system login user alice authentication encrypted-password
commitEncrypted Passwords
Использование encrypted passwords
# Генерация encrypted password
mkpasswd -m sha-512
# Или на VyOS
openssl passwd -6 'PlainPassword'
# Использование encrypted password
set system login user bob authentication encrypted-password '$6$rounds=656000$...'
commitПреимущества:
- Пароль не виден в plaintext
- Безопаснее для backup конфигураций
- SHA-512 hashing
User Groups и Privileges
Admin vs Operator
Admin (по умолчанию):
# Полный доступ
set system login user alice authentication plaintext-password 'Pass123!'
# Admin level подразумевается
commitOperator (read-only):
# VyOS не имеет встроенного operator level
# Используйте sudo restrictions или TACACS+ для granular controlSudo конфигурация
# Все пользователи VyOS имеют sudo доступ по умолчанию
# Для ограничения используйте sudoers файл (advanced)RADIUS Authentication
Базовая RADIUS конфигурация
# RADIUS серверы
set system login radius server 192.168.1.10 key 'RadiusSecret123!'
set system login radius server 192.168.1.11 key 'RadiusSecret123!'
# Timeout
set system login radius server 192.168.1.10 timeout 5
# Port (default 1812)
set system login radius server 192.168.1.10 port 1812
# Source address для RADIUS запросов
set system login radius source-address 192.168.1.1
commitRADIUS с fallback
# RADIUS primary
set system login radius server 192.168.1.10 key 'Secret'
# Local fallback если RADIUS не доступен
# Локальные пользователи проверяются если RADIUS fails
set system login user admin authentication plaintext-password 'EmergencyPass!'
commitRADIUS accounting
# RADIUS accounting port (default 1813)
set system login radius server 192.168.1.10 acct-port 1813
commitTACACS+ Authentication
TACACS+ конфигурация
# TACACS+ серверы
set system login tacacs server 192.168.1.20 key 'TacacsSecret123!'
# Port (default 49)
set system login tacacs server 192.168.1.20 port 49
# Timeout
set system login tacacs server 192.168.1.20 timeout 10
# Source address
set system login tacacs source-address 192.168.1.1
commitTACACS+ privilege levels
TACACS+ поддерживает 15 privilege levels (1-15):
- Level 15: Full admin access
- Level 1: Read-only
VyOS маппит TACACS+ levels:
- Level 15 → admin (configure mode)
- Level 1-14 → operator (operational mode only)
Password Policies
Минимальные требования
VyOS не имеет встроенной password policy engine, но можно использовать:
# Длина пароля
# Минимум 8 символов (рекомендуется 12+)
# Complexity
# Используйте буквы, цифры, специальные символы
# Примеры сильных паролей
set system login user alice authentication plaintext-password 'Tr0ng!P@ssw0rd#2024'Password rotation
# Регулярно меняйте пароли (каждые 90 дней)
# VyOS не имеет автоматической expiration
# Используйте external tools для enforcementEmergency admin account
# Всегда сохраняйте emergency admin account
set system login user emergency authentication plaintext-password 'VeryStrongEmergencyPass!'
set system login user emergency full-name 'Emergency Admin Account'
commitSSH Configuration
SSH server settings
# SSH порт
set service ssh port 22
# Listen адреса
set service ssh listen-address 192.168.1.1
set service ssh listen-address 10.0.0.1
# Disable password authentication (только keys)
set service ssh disable-password-authentication
# Disable root login (already disabled by default)
# VyOS не позволяет root SSH login
commitSSH client settings
# SSH к другим системам с specific user
ssh alice@remote-server
# SSH с specific key
ssh -i /config/auth/id_rsa alice@remote-serverConsole Access
Serial console
# Serial console включен по умолчанию
set system console device ttyS0 speed 9600
commitConsole timeout
# Auto logout после inactivity (секунды)
set system login timeout 300
commitAPI Authentication
API keys
# API ключи для HTTPS API
set service https api keys id admin key 'APIKey123456789!'
set service https api keys id readonly key 'ReadOnlyKey987!'
commitAPI аутентификация отдельная от system login.
Audit и Logging
Command logging
# Все команды логируются автоматически в syslog
# Просмотр логов
show log authorization
# История команд
show historyFailed login attempts
# Просмотр failed logins
show log authentication
# System log
cat /var/log/auth.log | grep 'Failed'Syslog для audit
# Отправка audit logs на remote syslog
set system syslog host 192.168.1.100 facility authpriv level info
commitМониторинг и диагностика
Активные пользователи
# Текущие login сессии
show system login users
# Who is logged in
who
# Last logins
lastПример вывода:
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
alice pts/0 192.168.1.50 09:15 0.00s 0.04s 0.00s w
bob pts/1 192.168.1.51 10:23 5:00 0.01s 0.01s -bashUser activity
# What users are doing
w
# Process по пользователю
ps aux | grep aliceAuthentication logs
# SSH authentication
show log authentication
# RADIUS authentication
show log | grep radius
# Detailed auth log
cat /var/log/auth.logTroubleshooting
Не могу войти по SSH
Проблема: SSH connection refused или authentication failed.
Причины:
- SSH service не запущен
- Firewall блокирует port 22
- Неправильный пароль или SSH key
- User не существует
Диагностика:
# На VyOS (через console):
# Проверить SSH service
show service ssh
# Проверить firewall
show firewall ipv4 input filter
# Проверить пользователей
show system login
# SSH daemon status
systemctl status sshРешение:
# Запустить SSH
set service ssh port 22
set service ssh listen-address 0.0.0.0
# Firewall
set firewall ipv4 input filter rule 20 action accept
set firewall ipv4 input filter rule 20 destination port 22
set firewall ipv4 input filter rule 20 protocol tcp
# Проверить пользователя
set system login user alice authentication plaintext-password 'NewPass!'
commitSSH key authentication не работает
Проблема: Password prompt появляется несмотря на SSH key.
Причины:
- Public key не добавлен правильно
- Key type не поддерживается
- Permissions на .ssh directory
Решение:
# Проверить SSH key
show system login user alice authentication public-keys
# Добавить заново
set system login user alice authentication public-keys workstation key 'AAAAB3NzaC1...'
set system login user alice authentication public-keys workstation type 'ssh-rsa'
# Удалить пароль если только keys
delete system login user alice authentication plaintext-password
commitНа клиенте:
# Verbose SSH для debugging
ssh -v alice@router
# Проверить что ключ загружается
ssh-add -lRADIUS authentication не работает
Проблема: RADIUS users не могут войти.
Причины:
- RADIUS сервер недоступен
- Shared secret неправильный
- Firewall блокирует RADIUS порты
Диагностика:
# Ping RADIUS server
ping 192.168.1.10
# Test RADIUS connectivity
# На RADIUS сервере проверить logs
# VyOS auth log
show log authentication | grep radiusРешение:
# Проверить RADIUS конфигурацию
show system login radius
# Firewall для RADIUS
set firewall ipv4 output filter rule 50 action accept
set firewall ipv4 output filter rule 50 destination address 192.168.1.10
set firewall ipv4 output filter rule 50 destination port 1812,1813
set firewall ipv4 output filter rule 50 protocol udp
# Проверить secret
set system login radius server 192.168.1.10 key 'CorrectSecret'
commitЗаблокирован из системы
Проблема: Изменили конфигурацию и больше не можете войти.
Решение через console:
# Console access всегда работает
# Войти через console (ttyS0)
# Сбросить пароль emergency user
configure
set system login user emergency authentication plaintext-password 'NewEmergencyPass!'
commit
# Проверить SSH service
set service ssh port 22
commitРешение через ISO/USB:
# Boot с VyOS ISO
# Mount конфигурацию
mount /dev/sda1 /mnt
vi /mnt/config/config.boot
# Или переустановить image
install imagePassword forgotten
Проблема: Забыли пароль всех пользователей.
Решение через console:
# Boot в single user mode
# На GRUB: добавить 'init=/bin/bash'
# Mount filesystem
mount -o remount,rw /
# Создать нового пользователя через config
vi /opt/vyatta/etc/config/config.boot
# Или reset к default конфигурацииБезопасность
Рекомендации по безопасности
- Сильные пароли:
# Минимум 12 символов, complexity
set system login user alice authentication plaintext-password 'Str0ng!C0mplex#P@ss'- SSH keys вместо паролей:
set system login user alice authentication public-keys workstation key 'AAAAB3...'
delete system login user alice authentication plaintext-password
set service ssh disable-password-authentication- Изменить SSH порт:
set service ssh port 2222
# Firewall
set firewall ipv4 input filter rule 20 destination port 2222- Ограничить SSH access:
# Только с management network
set service ssh listen-address 192.168.1.1
# Firewall
set firewall ipv4 input filter rule 20 source address 192.168.1.0/24- Console timeout:
set system login timeout 300- Emergency account:
set system login user emergency authentication plaintext-password 'EmergencyPass!'- RADIUS/TACACS+ для enterprise:
set system login radius server 192.168.1.10 key 'Secret'- Regular audit:
show log authentication
show system login users- Disable unused users:
delete system login user old-employee- Two-factor где возможно:
- RADIUS с OTP
- SSH + hardware token
Интеграция
Active Directory через RADIUS
# Windows NPS как RADIUS server
# NPS настроен для AD authentication
# VyOS RADIUS config
set system login radius server 192.168.1.10 key 'NPSSecret'
commitLDAP (indirect через RADIUS)
VyOS не имеет прямой LDAP интеграции. Используйте:
- FreeRADIUS с LDAP backend
- Windows NPS с AD
- Другой RADIUS proxy для LDAP
SSH jump host
# VyOS как SSH jump host
# На client:
ssh -J alice@vyos-router bob@internal-server
# Или SSH config (~/.ssh/config):
Host internal-server
ProxyJump alice@vyos-routerCentralized logging
# Отправка auth logs на SIEM
set system syslog host 192.168.1.100 facility authpriv level info
set system syslog host 192.168.1.100 facility local0 level info
commitПримеры конфигураций
Пример 1: Small office (local users)
# Admin user с SSH key
set system login user admin authentication public-keys workstation key 'AAAAB3NzaC1...'
set system login user admin authentication public-keys workstation type 'ssh-rsa'
set system login user admin full-name 'Administrator'
# Regular users с паролями
set system login user alice authentication plaintext-password 'AlicePass123!'
set system login user alice full-name 'Alice Smith'
set system login user bob authentication plaintext-password 'BobPass456!'
set system login user bob full-name 'Bob Johnson'
# Emergency account
set system login user emergency authentication plaintext-password 'Emergency2024!'
# SSH configuration
set service ssh port 22
set service ssh listen-address 192.168.1.1
# Console timeout
set system login timeout 600
commit
saveПример 2: Enterprise (RADIUS)
# RADIUS authentication
set system login radius server 192.168.1.10 key 'PrimaryRadius2024!'
set system login radius server 192.168.1.11 key 'BackupRadius2024!'
set system login radius server 192.168.1.10 timeout 5
set system login radius source-address 192.168.1.1
# Local admin fallback
set system login user localadmin authentication plaintext-password 'LocalAdminFallback!'
set system login user localadmin full-name 'Local Admin (Emergency)'
# Emergency account
set system login user emergency authentication encrypted-password '$6$rounds=656000$...'
# SSH keys only
set service ssh disable-password-authentication
set service ssh port 2222
set service ssh listen-address 192.168.1.1
# Firewall
set firewall ipv4 input filter rule 20 action accept
set firewall ipv4 input filter rule 20 source address 192.168.1.0/24
set firewall ipv4 input filter rule 20 destination port 2222
set firewall ipv4 input filter rule 20 protocol tcp
# Audit logging
set system syslog host 192.168.1.100 facility authpriv level info
commit
saveПример 3: DevOps (automation)
# Human users
set system login user alice authentication public-keys laptop key 'AAAAB3...'
set system login user alice authentication public-keys laptop type 'ssh-ed25519'
# Automation user
set system login user ansible authentication public-keys automation key 'AAAAB3...'
set system login user ansible authentication public-keys automation type 'ssh-ed25519'
set system login user ansible full-name 'Ansible Automation'
# API keys
set service https api keys id ansible key 'AnsibleAPIKey123456!'
# SSH configuration
set service ssh port 22
set service ssh listen-address 0.0.0.0
# Disable password auth (keys only)
set service ssh disable-password-authentication
commit
saveЛучшие практики
SSH keys > passwords:
- Всегда используйте SSH keys для automation
- Disable password auth где возможно
Least privilege:
- Создавайте пользователей с минимальными правами
- Используйте RADIUS/TACACS+ для granular control
Regular audit:
- Просматривайте активных пользователей
- Удаляйте старые accounts
- Monitor failed logins
Strong passwords:
- Минимум 12 символов
- Complexity requirements
- Regular rotation (90 days)
Multi-factor где возможно:
- RADIUS с OTP
- SSH keys + password
Emergency access:
- Всегда имейте emergency account
- Храните credentials безопасно
Centralized auth для enterprise:
- RADIUS/TACACS+ для масштабируемости
- LDAP/AD integration
Console security:
- Physical security для console access
- Timeout для auto logout
Logging:
- Enable comprehensive logging
- Centralized log collection
- Regular review
Documentation:
- Документируйте user accounts
- Access procedures
- Emergency recovery steps
Заключение
Login management в VyOS обеспечивает безопасный и гибкий доступ к системе. Ключевые возможности:
- Local users - простая конфигурация для малых сред
- SSH keys - passwordless и безопасная аутентификация
- RADIUS/TACACS+ - централизованная аутентификация для enterprise
- Audit logging - отслеживание доступа и действий
Используйте appropriate authentication method для вашей среды:
- Small office → Local users с SSH keys
- Enterprise → RADIUS/TACACS+ с AD integration
- DevOps → SSH keys для automation
Правильная конфигурация login management критична для безопасности VyOS и должна быть первым шагом при настройке системы.