У меня еще вот какой вопрос.
Может ли быть полезным модуль для MD ?
Цель - чтобы пользователь получил доступ к своему МД из интернета с минимумом действий с Публикацией URL и подключением MD по двум протоколам - PPTP и OpenVPN
Делает следующее:
- предлагает зарегистрироваться в vpnki и скопировать ключ
- дергает новое API с ключом по созданию туннеля (в ответ приходит имя, пароль и профиль OpenVPN (в случае выбора OpenVPN)
- подключает туннель PPTP (или OpenVPN)
- проверяет доступность 172.16.0.1
- дергает новое API vpnki по автоматическому созданию записи в "Публикации URL" (нужны ключ vpnki, IP адрес МD, порт MD и имя поддомена), ждет 5 минут
- проверяет доступность MD из интернета по созданному имени
- периодически проверяет доступность 172.16.0.1, а также MD из интернет по доменному имени
Добрый вечер. Давайте по пороядку.
1. - предлагает зарегистрироваться в vpnki и скопировать ключ
Обязательное действие, никуда от него не денешься.
2. - дергает новое API с ключом по созданию туннеля (в ответ приходит имя, пароль и профиль OpenVPN (в случае выбора OpenVPN), далее все ручками.
Обязателное действие, Обязательное действие, никуда от него не денешься.
3. - проверяет доступность 172.16.0.1 как правило пользуются если что то не завелось.
4. - дергает новое API vpnki по автоматическому созданию записи в "Публикации URL" (нужны ключ vpnki, IP адрес МD, порт MD и имя поддомена), ждет 5 минут . - Обязательное действие, никуда от него не денешься.
5. - проверяет доступность MD из интернета по созданному имени. - Обязательное действие, никуда от него не денешься. Ассоциацию Вам никто не даст, ключом подменяться вряд ли кто захочет, даже если 172 открыта.
6. - периодически проверяет доступность 172.16.0.1, а также MD из интернет по доменному имени, Теперь уже нет смысла. Связь максимально стабильна а если и будет какой обрыв то он может быть устранен внутренними средствами, статья у меня уже практически готова думаю выложить завтра.
Алгоритм.
1. Поднимаем канал.
2. Закрываем Мажор.
3. Публикуем и ассоциируем адрес для локалки.
4. Делаем автопроверку, индикацию и авто переподъем.
Уверяю Вас Вы сделали огромную работу. Далее уже слишком много разрозненных частей чтобы решать их в одиночку, т.е. без разработчиков MJD. К коим я не отношусь. Чтобы то что Вы прописали заработало в полном объеме, Вам как минимум должен довериться Сергей и внести изменение в код, которое бы, предусматривало стандартную авторизацию по логину и паролю, и как альтернативу ей авторизацию по Вашему токену. Тогда все можно сделать одним махом. Т.е. сгенерить конфиг, файл логина и пароля, и кей, С дальнейшей выдачей пользователю и предписанием куда это все рассовать. Т.е. если все задачи юзера будут сводиться к постановке чека на радио-баттон, прописыванию в одном единственном месте кея и переброске пары файлов в папку /etc/openvpn, то может быть народ на это и ключнет. У Вас же на данном этапе слишком много обязательных действий. Да и вряд ли большинству захочется подменять свои учетки на KEY, для этого у Вас должен быть непререкаемый авторитет.
Думаю на данном этапе здесь пока нужно остановиться, пусть переварят и поймут что Вы не просто так.
Целый день сегодня играюсь с вашим API, перепробовал кучу вариантов, а оно блин все работает и работает Урезал сценарий почти до минимума, завтра планирую выложить статью. Пока набросок такой:
Проверяем статусы раз в пять минут, чаще и не надо, не фиг лишний раз грузить серваки. Сценарий запускаем раз в 10 минут(проверка должна быть как минимум в два раза чаще, чтобы лишний раз не дергать рестарт). Сценарий:
Сценарий смотрит ноль или единица, если попал в границу ()что крайне мало вероятно) то пауза 10 секунд и команда на рестарт.
Результат. Падает тоннель, Алиса об этом оповещает, далее пауза в 10 секунд на прогрузку статуса в свойство, далее опять проверка если статус 1, то Алиса говорит Тоннель восстановлен и на этом все. Если статус 0 то Алиса посылает в консоль рестарт. Далее цикл повторяется, если коннект преподнят то она затыкается, если статус по прежнему ноль то она об этом сообщает через 10 минут и повторяет реконнект, как я писал выше и так до бесконечности. Раз в 10 минут не сильно напряжет юзера, а Вам профит меньше нагрузка на сервер.
Код самый простой:
if (gg('Communication.vpnki_majordomo')=='0') {
say("ВНИМАНИЕ!!! У вас упал тоннель МажорДоМо. Пробую восстановить соединение...",5);
sleep(10);
if (gg('Communication.vpnki_majordomo')=='1') {
say("ВПН тоннель МажорДоМо восстановлен.",5);
} else {
exec("/bin/bash /var/www/vpn_restart_majordomo.sh");
say("Выполнено принудительное восстановление тоннеля МажорДоМо",5);
}
}
Баш сценарий у меня для интересности, можно и напрямую.
Во второй статье (а может объединю и в одну, посмотрим объем), я планирую написать как сделать чтобы таким же образом можно было передергивать не только VPN на сервере Мажора но и ВПН любого другого удаленного никс компа на котором стоит OpenVPN и SSH. Тем самым заодно научу пользователей как управлять отдельной никс машиной из Мажора. Ну и заодно автоматизирую блог. Вернее если честно я уже это сделал , но они узнают об этом только завтра.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.