Как настроить SSH для возможности доступа извне сети без повреждения связи между моделью ИИ и ее API?

Вопрос или проблема

Я новичок в области ИИ и в компьютерных науках в целом. У меня есть настольный компьютер, который работает как сервер для размещения модели ИИ. Модель общается со своим API через порт 5000. При этом, когда я настраивал настольный компьютер, я “включил переключатели ssh и удаленного рабочего стола в настройках”. Однако я не могу получить к нему доступ извне его сети, даже если я использую VPN моего офиса. Поэтому я хотел бы спросить, как мне настроить ssh для удаленного доступа к компьютеру из внешней сети, не нарушая связь между моделью и ее API. Честно говоря, я боюсь сделать что-то неправильно и нарушить работу модели или API или их взаимодействие. Моя версия Ubuntu 24.10. Заранее спасибо.

Ответ или решение

Для безопасной настройки SSH-доступа к вашему серверу с возможностью удаленного подключения извне сети необходимо провести несколько шагов и учесть ряд технических аспектов, чтобы не нарушить взаимодействие между вашей AI моделью и ее API, работающим на порте 5000. Следуйте предложенному плану, чтобы обеспечить бесперебойную и безопасную работу вашей системы:

Теория

Использование SSH (Secure Shell) — это надежный способ удаленного управления вашим сервером через защищенный канал связи. При правильной настройке SSH обеспечивает высокий уровень безопасности за счет шифрования данных и аутентификации пользователей. Однако предоставление доступа к серверу извне вашей сети может представлять определенные риски, такие как несанкционированное проникновение. Поэтому крайне важно, чтобы конфигурация SSH была выполнена правильно и с учетом всех возможных уязвимостей.

Пример

Рассмотрим пример настройки SSH для Ubuntu 24.10 с целью безопасного доступа извне сети:

  1. Проверка и установка SSH-сервера: Убедитесь, что OpenSSH Server установлен и запущен на вашем устройстве. Это можно сделать с помощью команд:

    sudo apt update
    sudo apt install openssh-server
    sudo systemctl enable ssh
    sudo systemctl start ssh
  2. Настройка маршрутизации (функция “порт-форвардинг”): Поскольку ваш сервер находится в локальной сети, необходимо настроить маршрутизатор для перенаправления внешних запросов на нужный порт вашего сервера:

    • Войдите в панель управления вашего роутера.
    • Найдите раздел "Переадресация портов" либо "Port Forwarding".
    • Создайте правило для перенаправления: внешний порт (например, 2222) —> внутренний IP вашего Ubuntu-сервера и порт 22 (стандартный порт SSH).
  3. Настройка брандмауэра (Firewall): Убедитесь, что брандмауэр открывает порты для входящих соединений. Например, с ufw (Uncomplicated Firewall):

    sudo ufw allow 2222/tcp
    sudo ufw allow 5000/tcp
    sudo ufw enable
  4. Изменение конфигурации SSH: Для повышения безопасности рекомендуется изменить стандартный порт SSH, увеличить безопасность через использование ключей SSH и ограничить доступ определенными IP-адресами:

    • Откройте конфигурационный файл SSH:

      sudo nano /etc/ssh/sshd_config
    • Внесите изменения:

      Port 2222
      PermitRootLogin no
      PasswordAuthentication no
      AllowUsers имя_пользователя
    • Перезапустите сервис SSH:

      sudo systemctl restart sshd
  5. Настройка аутентификации по ключам: Сгенерируйте пару SSH-ключей на вашем клиентском устройстве и добавьте публичный ключ на сервер для безопасной аутентификации:

    • На клиенте создайте пару ключей:

      ssh-keygen -t rsa -b 4096
    • Скопируйте публичный ключ на сервер:

      ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip

Применение

После настройки убеждайтесь, что маршрут между вашим сервером и клиентом стабильно работает и проверяйте стабильность и работоспособность вашей AI модели. Для тестирования:

  • Попробуйте подключиться к серверу из внешней сети:

    ssh -p 2222 user@external_ip
  • Проверьте работу API:

    Откройте соединение к API, например, с помощью curl или другого HTTP-клиента, для проверки доступности взаимодействия через порт 5000 без перебоев.

Настоящая конфигурация требует регулярного ведения журнала доступа и обновления программ для своевременного устранения уязвимостей. Периодически проверяйте наличие обновлений для Ubuntu и OpenSSH, применяйте патчи безопасности и следите за то, чтобы ключи SSH оставались надежно защищенными. Это обеспечит безопасность и стабильность работы вашего сервера и AI модели.

Оцените материал
Добавить комментарий

Капча загружается...