Рекомендации по безопасной настройке Space Gateway
Для обеспечения безопасности подключения к Space Gateway возможно запретить удаленные подключения с использованием парольной аутентификации и использовать ssh-ключи вместо паролей.
Блокировка подключения с помощью пароля
-
Получить значение публичного ключа на машине, с которой выполняется удаленное подключение и управление Space Gateway.
Пример для ОС Linux
Вывод значения публичного ключа можно получить с помощью команды:
Пример значения:cat ~/.ssh/id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQClnWcT/Hz9UqmtJuRtx6vwOWbz3WRAe6wZxIPVidoE7KSSouVQpnvgvgyWMUDq9iEOZkqbij2bWILM8B0JJ6RR0jQ== some_user@spacevm.org -
Подключиться к Space Gateway.
- Выполнить выход из интерактивного клиента:
bash -
Добавить полученный ранее публичный ключ в файл с доверенными ключами (в команде ниже в кавычках указывается значение публичного ключа):
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQClnWcT/Hz9UqmtJuRtx6vwOWbz3WRAe6wZxIPVidoE7KSSouVQpnvgvgyWMUDq9iEOZkqbij2bWILM8B0JJ6RR0jQ== some_user@spacevm.org" >> ~/.ssh/authorized_keys -
Убедиться, что в файле с доверенными ключами появилось добавленное значение:
cat ~/.ssh/authorized_keys -
Не прерывая текущее подключение, проверить подключение по ssh в новом окне терминала. При подключении не должен происходить запрос пароля.
-
Заблокировать возможность подключения к Space Gateway с помощью пароля в настройках ssh-сервера (убедиться, что команда выполняется в bash, а не в интерактивном клиенте). Для этого перейти в файл настроек с помощью команды:
sudo vim /etc/ssh/sshd_config -
Найти в файле опцию
PasswordAuthenticationи заменить значение наno:PasswordAuthentication no -
Убедиться, что
PermitEmptyPasswordsзадан какnoи не закомментирован:PermitEmptyPasswords no -
Сохранить изменения.
-
Выполнить перезапуск ssh-сервера:
sudo systemctl restart sshd -
Не закрывая текущую вкладку, проверить подключение к Space Gateway, также проверить подключение с клиента, чей публичный ключ не разрешен для входа.
Настройка подключения к интерфейсу Space Disp для доверенной подсети
Пример использования утилиты nftables для ограничения всех сетевых подключений, кроме подключений из доверенной сети 10.244.0.0/16 (сеть указана для примера):
-
Выполнить выход из интерактивного клиента:
bash -
Повысить права пользователя:
sudo su -
Повторно выполнить выход из интерактивного клиента:
bash -
Создать конфигурационный файл:
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 -
Применить правила:
nft -f /etc/nftables.conf -
Включить автозагрузку:
systemctl enable nftables systemctl start nftables
Подсети, которые необходимо добавить в разрешенные
Разрешенными должны быть подсети, из которых идут подключения к Space Gateway, например:
- Адреса Space Gateway (для всех доступных адресов).
- Виртуальный адрес Space Gateway (если для него выделена отдельная подсеть).
- Адрес Space Disp (leader, manager).
- Адрес клиентских устройств (на которых установлен Space Client).
- Адреса, к которым идет подключение клиента через Space Gateway (ВМ, ФМ).