Пароль openconnect и ввод cookie
После 2-3 дней поиска и работы, я надеюсь, вы сможете помочь...
Я хочу использовать от openconnect в моей программе и для аутентификации есть 2 решения
1 - использовать от пользователя и pass (но pass не имеет никакой опции для командной строки и только при стандартном вводе может вводить pass)
2 - используется из cookie (но openconnect не работает с cookie для меня!)
Для Cookie я делаю это
- отправить пользователя методом post на сервер
-сервера спросить пароль
-отправить пароль методом post на сервер
-Если все в порядке и auth id = success
-читайте заголовок и получите cookie
откройте командную строку и отправьте ip и cookie в openconenct
и ошибка!
Не удалось создать SSL-соединение
код командной строки
openconnect.exe vpn.server.ip --no-cert-check -C "webvpn=BPlUDg9oaTN2uQQ0DQvH7QopD3x5NahiCHQgTqKQ7KPJg38dSuvqLmYIo9Jskig; Secure,webvpnc=; expires=Thu, 01 Jan 1970 22:00:00 GMT; path=/; Secure,webvpnc=bu:/&p:t&iu:1/&sh:7350D46A8EE85D06&lu:/+CSCOT+/translation-table?textdomain%3DAnyConnect%26type%3Dmanifest&fu:profiles%2F/etc/ocserv/profile.xml&fh:6B5181182D2B5483FBB8D2AA1BCBACC9A70E2BA3; path=/; Secure"
для отправки пользователя и передачи с помощью метода post я использую из C#
2 - для пользователя и передать я делаю эту работу
использовать из командной строки для автозаполнения ввода с этим кодом
type password | openconnect.exe vpn.server.ip -u username --no-cert-check
а также
password | openconnect.exe vpn.server.ip -u username --no-cert-check
а также
openconnect.exe vpn.server.ip -u username --no-cert-check < pas.txt
и снова ошибка!!!
Пароль: ReadConsole() не удалось: дескриптор недействителен.
теперь я хочу знать, что не так в моем коде??
или есть какое-либо лучшее решение для принятия cookie или автозаполнения ввода?
если у вас есть идеи, пожалуйста, скажите мне.
Спасибо и добрые пожелания.
2 ответа
В Ubuntu вы можете использовать это:
openconnect --script ./vpnc.sh target-domain --no-cert-check -u username --passwd-on-stdin < pass.txt
Надеюсь это поможет.
Openconnect Автозаполнение имени пользователя и пароля
Существует компромисс между удобством и безопасностью. Автозаполнение пользователя и пароля не рекомендуется с точки зрения безопасности.
В случае, если вам нужно удобство для автоматического подключения с помощью openconnect, вот простой пример шагов:
Пример простых шагов
Создать незашифрованный пароль
mypass.txt
содержит только пароль:
mysupersecretpassword
Создать скрипт для вызова openconnect
myscript.sh
содержит две строки команды:
openconnect --protocol=gp vpn.mycompany.com --user=abc123 --passwd-on-stdin < mypass.txt
./myscript.sh
вторая строка
./myscript.sh
намеренно добавлен, чтобы сделать цикл сценария навсегда, таким образом, создать постоянное соединение VPN.Сделать скрипт исполняемым
В терминальной линии:
chmod +x myscript.sh
Запустите ваш скрипт
запустите ваш скрипт с sudo
привилегия
sudo ./myscript.sh
чтобы выйти из цикла просто нажмите CTRL + C
Для большей безопасности
Для дополнительной безопасности вы можете сделать процесс не таким простым:
поместите ваш скрипт и файл паролей в защищенный / скрытый каталог, который только
root
пользователь уровня может получить доступ;Зашифруйте незашифрованный пароль и создайте другой скрипт для расшифровки и чтения пароля, например, с помощью Linux.
gpg
, но вам все равно придется ввести кодовую фразу шифрования / дешифрования.