Управление пользователями и аутентификацией в VyOS

Управление пользователями и аутентификацией в VyOS

Управление пользователями и аутентификацией в VyOS обеспечивает безопасный доступ к роутеру через SSH, console, и другие интерфейсы. Правильная конфигурация login management критична для безопасности системы.

Обзор

Типы пользователей

System users:

  • Локальные пользователи на VyOS
  • Хранятся в конфигурации
  • Доступ через SSH, console, API

Root access:

  • Root логин отключен по умолчанию
  • Используйте sudo для административных команд
  • Безопасность через limited privileges

Методы аутентификации

  1. Local authentication - пользователи в конфигурации VyOS
  2. SSH keys - публичные ключи для passwordless login
  3. RADIUS - централизованная аутентификация
  4. TACACS+ - Cisco-compatible authentication
  5. 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
commit

SSH 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

commit

Encrypted 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 подразумевается
commit

Operator (read-only):

# VyOS не имеет встроенного operator level
# Используйте sudo restrictions или TACACS+ для granular control

Sudo конфигурация

# Все пользователи 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

commit

RADIUS с 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!'

commit

RADIUS accounting

# RADIUS accounting port (default 1813)
set system login radius server 192.168.1.10 acct-port 1813

commit

TACACS+ 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

commit

TACACS+ 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 для enforcement

Emergency admin account

# Всегда сохраняйте emergency admin account
set system login user emergency authentication plaintext-password 'VeryStrongEmergencyPass!'
set system login user emergency full-name 'Emergency Admin Account'

commit

SSH 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

commit

SSH client settings

# SSH к другим системам с specific user
ssh alice@remote-server

# SSH с specific key
ssh -i /config/auth/id_rsa alice@remote-server

Console Access

Serial console

# Serial console включен по умолчанию
set system console device ttyS0 speed 9600

commit

Console timeout

# Auto logout после inactivity (секунды)
set system login timeout 300

commit

API Authentication

API keys

# API ключи для HTTPS API
set service https api keys id admin key 'APIKey123456789!'
set service https api keys id readonly key 'ReadOnlyKey987!'

commit

API аутентификация отдельная от system login.

Audit и Logging

Command logging

# Все команды логируются автоматически в syslog
# Просмотр логов
show log authorization

# История команд
show history

Failed 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 -bash

User activity

# What users are doing
w

# Process по пользователю
ps aux | grep alice

Authentication logs

# SSH authentication
show log authentication

# RADIUS authentication
show log | grep radius

# Detailed auth log
cat /var/log/auth.log

Troubleshooting

Не могу войти по SSH

Проблема: SSH connection refused или authentication failed.

Причины:

  1. SSH service не запущен
  2. Firewall блокирует port 22
  3. Неправильный пароль или SSH key
  4. 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!'

commit

SSH key authentication не работает

Проблема: Password prompt появляется несмотря на SSH key.

Причины:

  1. Public key не добавлен правильно
  2. Key type не поддерживается
  3. 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 -l

RADIUS authentication не работает

Проблема: RADIUS users не могут войти.

Причины:

  1. RADIUS сервер недоступен
  2. Shared secret неправильный
  3. 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 image

Password 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 конфигурации

Безопасность

Рекомендации по безопасности

  1. Сильные пароли:
# Минимум 12 символов, complexity
set system login user alice authentication plaintext-password 'Str0ng!C0mplex#P@ss'
  1. 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
  1. Изменить SSH порт:
set service ssh port 2222

# Firewall
set firewall ipv4 input filter rule 20 destination port 2222
  1. Ограничить 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
  1. Console timeout:
set system login timeout 300
  1. Emergency account:
set system login user emergency authentication plaintext-password 'EmergencyPass!'
  1. RADIUS/TACACS+ для enterprise:
set system login radius server 192.168.1.10 key 'Secret'
  1. Regular audit:
show log authentication
show system login users
  1. Disable unused users:
delete system login user old-employee
  1. 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'

commit

LDAP (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-router

Centralized 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

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

  1. SSH keys > passwords:

    • Всегда используйте SSH keys для automation
    • Disable password auth где возможно
  2. Least privilege:

    • Создавайте пользователей с минимальными правами
    • Используйте RADIUS/TACACS+ для granular control
  3. Regular audit:

    • Просматривайте активных пользователей
    • Удаляйте старые accounts
    • Monitor failed logins
  4. Strong passwords:

    • Минимум 12 символов
    • Complexity requirements
    • Regular rotation (90 days)
  5. Multi-factor где возможно:

    • RADIUS с OTP
    • SSH keys + password
  6. Emergency access:

    • Всегда имейте emergency account
    • Храните credentials безопасно
  7. Centralized auth для enterprise:

    • RADIUS/TACACS+ для масштабируемости
    • LDAP/AD integration
  8. Console security:

    • Physical security для console access
    • Timeout для auto logout
  9. Logging:

    • Enable comprehensive logging
    • Centralized log collection
    • Regular review
  10. 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 и должна быть первым шагом при настройке системы.