Назад | Перейти на главную страницу

Управление удаленными машинами linux

Мой стартап собирает компьютер, на котором работает debian linux и некоторые специальные программы. Каков наилучший способ удаленного доступа к машинам, при этом пользователю ничего не нужно делать?

В настоящее время наш продукт находится на ранней стадии, когда процесс обновления плохо протестирован и может сломаться сам. Я ищу простой способ удаленного доступа к машинам через SSH. Машины находятся за стандартными домашними межсетевыми экранами и не имеют статического IP-адреса или чего-либо подобного.

Я думал, что использовал что-то вроде сценария инициализации, который запускает обратный SSH, например: ssh -N -R 2222:localhost:22 root@supportserver.tld

Что мне не нравится в этом, так это то, что на каждой машине должен быть свой порт и пользователь. Кроме того, даже если мне не нужно соединение SSH, оно открыто и используется трафик.

Я думаю о написании приложения на сервере, которое предоставляет простую веб-страницу, которую клиенты проверяют каждые x минут с помощью HTTP-запроса, нужно ли ему подключаться через SSH. Если это так, серверный сценарий создает учетную запись и сообщает клиенту, какой порт и пользователя использовать.

Настройте сервер OpenVPN. Все удаленные машины будут клиентами OpenVPN для сервера и получат IP-адрес VPN (например, 10.8.0.x). Поскольку они являются клиентами, вам не важен публичный IP-адрес. Кроме того, клиентам не нужно будет открывать порты на своих маршрутизаторах, чтобы пропускать трафик, поскольку они будут выполнять исходящие подключения к серверу VPN.

Чтобы получить доступ к любой из этих машин, вы должны просто использовать ssh на IP-адрес VPN. Демон ssh не является общедоступным, так как он может прослушивать только сеть VPN.

Вам не нужно запускать сервер OpenVPN в вашем регионе; вы можете настроить что-то вроде инстанса Amazon EC2, скажем, на уровне бесплатного пользования, чтобы опробовать его и посмотреть, работает ли он в вашей ситуации. Вероятно, вам понадобится статический IP-адрес для сервера; вы можете избежать неприятностей с помощью каких-то махинаций dyndns, но не для реальной установки.