Мне было поручено настроить и поддержать некоторые компьютеры для некоторых людей, у которых есть социологические проблемы. Проблемные подростки / взрослые и тому подобное. Им нужны компьютеры для выполнения самых простых задач, таких как просмотр веб-страниц, но они мало знают о компьютерах и будут удалять и уничтожать все, что могут, без заботы.
Итак, я создаю несколько дешевых белых ящиков и планирую поставить на них заблокированную версию Ubuntu с некоторыми встроенными параметрами восстановления. Будем признательны за любые предложения по ChromeOS, например Distro.
Моя большая проблема - удаленное администрирование. У них не будет фиксированного IP-адреса, и я не буду ничего контролировать в сети. Так что переадресация портов отсутствует.
Можно купить EC2 и подключить каждого клиента к OpenVPN, когда он будет в сети. Тогда я смогу войти по SSH и исправить проблемы. Но EC2 не бесплатен, и я не буду зарабатывать на этом деньги.
Я предпочитаю стиль BotNet. У меня есть друг, у которого есть частный IRC-сервер. Я мог настроить канал, чтобы все клиенты входили в систему, и я мог отдавать команды. Было бы неплохо использовать удаленную оболочку bash для шлюза IRC.
Я делаю что-то подобное только через XMPP с Nagios с моими серверами. Очень удобно быстро просмотреть список, узнать, кто в сети, у кого проблемы, и отдать команды.
Кто-нибудь знает такого IRC-бота, как BotNet? Или какой-нибудь лучший способ сделать это?
Это не совсем удаленный доступ, но если у вашего друга есть irc-сервер, вы, возможно, сможете убедить его либо настроить activemq для mcollective, или кукловод. Это позволит вам запускать команды в нескольких системах или всегда обеспечивать определенную конфигурацию системы.
Пару вариантов.
1) Как насчет обратного туннеля SSH? http://www.howtoforge.com/reverse-ssh-tunneling Это просто и работает за NAT. Попробуйте и посмотрите, работает ли это.
Не совсем уверен, нужно ли всегда знать исходный IP-адрес. Это могло быть проблемой.
2) Teamviewer для linux. Teamviewer работает так: он запускает службу, которая подключается к хосту teamviewer (о чем вам не нужно заботиться). Вы просто используете автоматически сгенерированный идентификатор для доступа к машине с паролем. Вы можете заблокировать службу teamviewer, чтобы пользователи не могли ее испортить.
Это дает вам полноценный рабочий стол, я не уверен, проблема в этом для вас или нет.
Как насчет установки autossh на этих ящиках, чтобы открывать ssh-туннель к центральному удаленному административному серверу каждый раз, когда ящик запускается. Через это соединение туннелируйте их порт ssh, чтобы иметь полный доступ по ssh в любое время.
Мне не удалось найти программу в стиле BotNET, которая соответствовала бы моим простым потребностям, но на Perl было легко сделать свою собственную, используя найденный мной пример.
Если кто-то этого хочет, наслаждайтесь. http://pastebin.com/S03aZW1f
Спасибо за помощь.
Рассмотрите возможность использования DynDNS и сервера NX с ssh для администрирования удаленного рабочего стола. Идея Оливера - тоже хорошее предложение.