Як я можу перевірити, чи DDCLIENT використовує SSL, і якщо це не так, як це зробити?


9

Я дотримувався цього керівництва щодо налаштування VPN на моєму пі. Частина кроків - налаштування та налаштування динамічної служби dns. Я створив кілька облікових записів на різних платформах. Немає Ip та dinamidns - два. Нижче наведено висновок мого файлу 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

Моє питання полягає в тому, що в цій статті вони проілюструють, як перевірити, чи ваш pi підключається через SSL. Коли я біжу

sudo ddclient -verbose -debug -noquiet -query 

він показує підключення через HTTP та HTTPS або SSL для кожного сайту. Я перевірив, що ssl був встановлений запуском

sudo apt-get install ssh libio-socket-ssl-perl

Будь-які ідеї щодо того, чи підключається він через ssl чи як я можу його змусити? Я також пережив цю статтю. Я бачив, що ddclient заявив, що він буде використовувати SSL, якщо він є, мені цікаво, чи це обмеження для використання безкоштовного сайту динамичного розширення, чи я щось переглядаю. У статтях виглядало так, ніби сайти, які я використовую, не мають ip та dnsdynamic підтримки SSL.


1
Я бачу sudo ddclient -debug -verbose -noquietне так, sudo ddclient -verbose -debug -noquiet -query як у вас ... як у другому посиланні
Джордж Удосен

@George, це моя помилка, я пропустив додавання -query. Однак, переглядаючи проблему ще раз із свіжим станом душі, і ти спонукаєш мене знову переглянути проблему, насправді допоміг мені вирішити її! Додавши відповідь і відредагуйте питання.
Шаулінатор

Відповіді:


4

Я знайшов відповідь, і мені дуже глупо, не з'ясовуючи її раніше.

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


1

Це лише частина "отримати 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

Після публікації я вимкнув Pi, який запускає мій DDClient. Мені доведеться розгорнути екземпляр і пройти ще один тест, щоб побачити, що показує налагодження. Дякую!
Шаулінатор

0

Оскільки мене також бентежив той факт, що 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. Я перевірив це лише явно на звільнений протокол, але був би здивований, якщо це було б інакше для інших протоколів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.