Я следовал этому руководству по установке VPN на моем пи. Часть шагов должна настроить и настроить динамический сервис DNS. Я создал несколько учетных записей через несколько платформ. Никакой IP и dynamicdns не два для именования. Ниже вывод моего ddclient.conf файла, он соединяется прекрасный на обоих динамических сайтах DNS.
daemon=60 # check every 60 seconds
syslog=yes # log update msgs to syslog
mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
pid=/var/run/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with
# ssl-library
use=web, web=myip.dnsdynamic.com # get ip from server.
server=www.dnsdynamic.org # default server
login=YOURUSERNAME # default login
password=YOURPASSWORD # default password
server=www.dnsdynamic.org, \
protocol=dyndns2 \
MYDOMAIN.dnsdynamic.COM
Моя проблема - то, что в этой статье, они иллюстрируют, как проверить, соединяется ли Ваше пи по SSL. Когда я работаю
sudo ddclient -verbose -debug -noquiet -query
это показывает соединение по HTTP по сравнению с HTTPS или SSL для каждого сайта. Я проверил, что ssl был установлен путем выполнения
sudo apt-get install ssh libio-socket-ssl-perl
Какие-либо идеи о том, если это соединяется через ssl или как я могу вызвать его к? Я имею, пробежал эту статью также. Я действительно видел, что ddclient указал, что будет использовать SSL при наличии, я задаюсь вопросом, является ли это ограничением к использованию свободного dynamicdns сайта или если я пропускаю что-то. Статьи заставили его появиться, как будто сайты, которые я не использую как никакой IP и dnsdynamic, поддерживают SSL.
Я нашел ответ, и я чувствую себя очень глупым, не понимая это ранее.
daemon=60 # check every 60 seconds
syslog=yes # log update msgs to syslog
mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
pid=/var/run/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with
# ssl-library
use=web, web=https://myip.dnsdynamic.org # get ip from server.
server=www.dnsdynamic.org # default server
login=USERNAME # default login
password=PASSWORD # default password
server=www.dnsdynamic.org, \
protocol=dyndns2 \
YOUR DOMAIN GOES HERE
Вышеупомянутое вызовет SSL и соединится по SSL. Существует два изменения, которые я внес.
строка use=web, web=myip.dnsdynamic.com
должна быть use=web, web=https://myip.dnsdynamic.org
. Изменение от .com
до .org
сбои соединения остановок. Добавление https://
до строки подключения позволяет этому соединяться по SSL.
Вывод от use=web, web=myip.dnsdynamic.org
шоу:
use=web, web=loopia address is IPADDRESSISHERE
CONNECT: myip.dnsdynamic.org
CONNECTED: using HTTP
SENDING: GET / HTTP/1.0
SENDING: Host: myip.dnsdynamic.org
SENDING: User-Agent: ddclient/3.8.2
SENDING: Connection: close
Вывод от use=web, web=https://myip.dnsdynamic.org
шоу:
use=web, web=loopia address is IPADDRESSISHERE
CONNECT: myip.dnsdynamic.org
The verification of cert '/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA/CN=www.dnsdynamic.org'
failed against the host 'myip.dnsdynamic.org' with the default verification scheme.
THIS MIGHT BE A MAN-IN-THE-MIDDLE ATTACK !!!!
To stop this warning you might need to set SSL_verifycn_name to
the name of the host you expect in the certificate.
CONNECTED: using SSL
SENDING: GET / HTTP/1.0
SENDING: Host: myip.dnsdynamic.org
SENDING: User-Agent: ddclient/3.8.2
SENDING: Connection: close
я все еще не уверен, почему принуждение ssl=yes
не заставляет это использовать HTTPS автоматически, но это соединяется по SSL теперь, и команда, как замечено @George помогает мне проверить, что это: sudo ddclient -verbose -debug -noquiet -query
Это только, "получают IP" часть. Фактическое обновление динамического сервера DNS не показывают в Вашем выводе. Это может все еще быть сделано по HTTP.
root@ad26e03e9704:/bin# ddclient -daemon=0 -noquiet -debug -file /config/ddclient.conf
DEBUG: get_ip: using cmd, /config/get_ip.sh reports 10.0.0.1
DEBUG:
DEBUG: nic_dyndns2_update -------------------
DEBUG: proxy =
DEBUG: url = http://dyndns.strato.com/nic/update?system=dyndns&hostname=bla.mydomain.com&myip=10.0.0.1
DEBUG: server = dyndns.strato.com
SUCCESS: updating bla.mydomain.com: good: IP address set to 10.0.0.1
Если я поместил https перед сервером, я добираюсь:
DEBUG: url = http://https://dyndns.strato.com/nic/update?system=dyndns&hostname=bla.mydomain.com&myip=10.0.0.1
Так как меня также смутил тот факт, что URL-адрес в строке вывода
DEBUG: url = http://(...)
начинается с HTTP, а не с HTTPS, хотя в моей конфигурации ssl = yes
, Я решил заглянуть в исходный код , чтобы узнать, что происходит. Оказывается, что в функции geturl
, где инициируется соединение с сервером, часть http: //
в любом случае удаляется из URL-адреса, так что это не указывает на фактический тип соединения. Если вы хотите убедиться, что ddclient использует SSL, просто вызовите ddclient с терминала как
sudo ddclient -verbose -force
и найдите строки
CONNECTED: using HTTP
или
CONNECTED: using SSL
. В последнем случае ddclient действительно использует SSL, и все готово. Обратите внимание, что параметр ssl = yes
не применяется к начальному поиску IP, который ddclient использует для проверки, изменился ли ваш общедоступный IP-адрес (тот, который настроен с помощью use = ...
), так что для этого начального соединения вы все еще видите CONNECTED: using HTTP
, как указано @Shaulinator, если вы явно не установили адрес HTTPS.Однако это не должно быть проблемой безопасности, поскольку IP-адрес, возвращаемый этим запросом, вероятно, используется только во избежание ненужных усилий на стороне сервера; он не отправляется на сервер в фактическом запросе на обновление, поскольку сервер тривиально знает ваш IP-адрес, когда ddclient инициирует SSL-соединение. Я проверил это только для протокола freedns, но я был бы удивлен, если бы он был другим для других протоколов.