Как я проверяю, что DDCLIENT использует SSL и если это не, как я вызываю его?

Я следовал этому руководству по установке 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.

9
задан 12 April 2017 в 13:12

3 ответа

Я нашел ответ, и я чувствую себя очень глупым, не понимая это ранее.

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

4
ответ дан 23 November 2019 в 05:10

Это только, "получают 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
1
ответ дан 23 November 2019 в 05:10

Так как меня также смутил тот факт, что 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, но я был бы удивлен, если бы он был другим для других протоколов.

0
ответ дан 23 November 2019 в 15:40

Другие вопросы по тегам:

Похожие вопросы: