Перейти к содержанию

Рекомендации по безопасной настройке Space Gateway

Для обеспечения безопасности подключения к Space Gateway возможно запретить удаленные подключения с использованием парольной аутентификации и использовать ssh-ключи вместо паролей.

Блокировка подключения с помощью пароля

  1. Получить значение публичного ключа на машине, с которой выполняется удаленное подключение и управление Space Gateway.

    Пример для ОС Linux

    Вывод значения публичного ключа можно получить с помощью команды:

    cat ~/.ssh/id_rsa.pub 
    
    Пример значения:
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQClnWcT/Hz9UqmtJuRtx6vwOWbz3WRAe6wZxIPVidoE7KSSouVQpnvgvgyWMUDq9iEOZkqbij2bWILM8B0JJ6RR0jQ== some_user@spacevm.org 
    

  2. Подключиться к Space Gateway.

  3. Выполнить выход из интерактивного клиента:
    bash
    
  4. Добавить полученный ранее публичный ключ в файл с доверенными ключами (в команде ниже в кавычках указывается значение публичного ключа):

    echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQClnWcT/Hz9UqmtJuRtx6vwOWbz3WRAe6wZxIPVidoE7KSSouVQpnvgvgyWMUDq9iEOZkqbij2bWILM8B0JJ6RR0jQ== some_user@spacevm.org" >> ~/.ssh/authorized_keys
    

  5. Убедиться, что в файле с доверенными ключами появилось добавленное значение:

    cat ~/.ssh/authorized_keys
    

  6. Не прерывая текущее подключение, проверить подключение по ssh в новом окне терминала. При подключении не должен происходить запрос пароля.

  7. Заблокировать возможность подключения к Space Gateway с помощью пароля в настройках ssh-сервера (убедиться, что команда выполняется в bash, а не в интерактивном клиенте). Для этого перейти в файл настроек с помощью команды:

    sudo vim /etc/ssh/sshd_config
    

  8. Найти в файле опцию PasswordAuthentication и заменить значение на no:

    PasswordAuthentication no
    

  9. Убедиться, что PermitEmptyPasswords задан как no и не закомментирован:

    PermitEmptyPasswords no
    

  10. Сохранить изменения.

  11. Выполнить перезапуск ssh-сервера:

    sudo systemctl restart sshd
    

  12. Не закрывая текущую вкладку, проверить подключение к Space Gateway, также проверить подключение с клиента, чей публичный ключ не разрешен для входа.


Настройка подключения к интерфейсу Space Disp для доверенной подсети

Пример использования утилиты nftables для ограничения всех сетевых подключений, кроме подключений из доверенной сети 10.244.0.0/16 (сеть указана для примера):

  1. Выполнить выход из интерактивного клиента:

    bash
    

  2. Повысить права пользователя:

    sudo su
    

  3. Повторно выполнить выход из интерактивного клиента:

    bash
    

  4. Создать конфигурационный файл:

    cat > /etc/nftables.conf << 'EOF'
    #!/usr/sbin/nft -f
    
    flush ruleset
    
    table inet filter {
        chain input {
            type filter hook input priority 0; policy drop;
    
            # Loopback
            iif lo accept
    
            # Установленные соединения
            ct state established,related accept
    
            # Доверенная сеть
            ip saddr 10.244.0.0/16 accept
    
            # ICMP из доверенной сети
            ip saddr 10.244.0.0/16 ip protocol icmp accept
        }
    
        chain forward {
            type filter hook forward priority 0; policy drop;
        }
    
        chain output {
            type filter hook output priority 0; policy accept;
        }
    }
    EOF
    

  5. Применить правила:

    nft -f /etc/nftables.conf
    

  6. Включить автозагрузку:

    systemctl enable nftables
    systemctl start nftables
    

Подсети, которые необходимо добавить в разрешенные

Разрешенными должны быть подсети, из которых идут подключения к Space Gateway, например:

  • Адреса Space Gateway (для всех доступных адресов).
  • Виртуальный адрес Space Gateway (если для него выделена отдельная подсеть).
  • Адрес Space Disp (leader, manager).
  • Адрес клиентских устройств (на которых установлен Space Client).
  • Адреса, к которым идет подключение клиента через Space Gateway (ВМ, ФМ).