Come posso verificare che DDCLIENT stia utilizzando SSL e, in caso contrario, come posso forzarlo?


9

Ho seguito questa guida sull'impostazione della VPN sul mio pi. Parte dei passaggi consiste nell'impostare e configurare un servizio DNS dinamico. Ho creato diversi account su più piattaforme. No Ip e dynamicdns sono due per nominare. Di seguito è riportato un output del mio file ddclient.conf, che si collega bene su entrambi i siti dinamici 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

Il mio problema è che in questo articolo, illustrano come verificare se il tuo pi si sta connettendo su SSL. Quando corro

sudo ddclient -verbose -debug -noquiet -query 

mostra la connessione tramite HTTP vs HTTPS o SSL per ciascun sito. Ho verificato che ssl fosse installato eseguendo

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

Qualche idea su se si sta connettendo via SSL o come posso forzarlo? Ho esaminato anche questo articolo. Ho visto che ddclient ha dichiarato che avrebbe usato SSL se disponibile, mi chiedo se questa è una limitazione all'utilizzo di un sito dinamico Dynamic o se sto trascurando qualcosa. Gli articoli hanno fatto sembrare che i siti che sto usando come nessun ip e dnsdynamic supportino SSL.


1
Vedo sudo ddclient -debug -verbose -noquiet, non sudo ddclient -verbose -debug -noquiet -query come si deve ... come nel secondo collegamento
George Udosen

@George questo è il mio errore, ho perso l'aggiunta di -query. Tuttavia, guardare di nuovo il problema con un nuovo stato d'animo e mi hai spinto a esaminare di nuovo il problema mi ha davvero aiutato a risolverlo! Aggiungendo la risposta e modificherà la domanda.
Shaulinator

Risposte:


4

Ho trovato la risposta e mi sento molto sciocco a non capirlo prima.

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

Quanto sopra imporrà SSL e si connetterà tramite SSL. Sono state apportate due modifiche.

La linea use=web, web=myip.dnsdynamic.comdovrebbe essere use=web, web=https://myip.dnsdynamic.org. Il passaggio da .coma .orginterrompe gli errori di connessione. L'aggiunta https://prima della stringa di connessione consente di connettersi tramite SSL.

Uscita dagli use=web, web=myip.dnsdynamic.orgspettacoli:

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

Uscita dagli use=web, web=https://myip.dnsdynamic.orgspettacoli:

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

Non sono ancora sicuro del perché la forzatura ssl=yesnon gli faccia utilizzare automaticamente HTTPS ma ora si sta connettendo tramite SSL e il comando visto da @George mi aiuta a verificare che sia:sudo ddclient -verbose -debug -noquiet -query


1

Questa è solo la parte "get IP". L'aggiornamento effettivo al server DNS dinamico non viene visualizzato nell'output. Potrebbe ancora essere fatto tramite 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

Se metto https davanti al server, ottengo:

DEBUG:    url    = http://https://dyndns.strato.com/nic/update?system=dyndns&hostname=bla.mydomain.com&myip=10.0.0.1

Da quando ho pubblicato, ho disattivato il mio Pi che esegue il mio DDClient. Dovrò girare un'istanza e dare a questo un altro test per vedere cosa mostra il debug. Grazie!
Shaulinator

0

Dal momento che ero anche confuso dal fatto che l'URL nella riga di output

DEBUG:    url    = http://(...)

inizia con HTTP anziché HTTPS anche se ssl=yesnella mia configurazione, ho deciso di esaminare il codice sorgente per vedere cosa sta succedendo. Si scopre che nella funzione in geturlcui viene avviata la connessione al server, la http://parte viene comunque rimossa dall'URL in modo che non sia indicativo del tipo di connessione effettivo. Se vuoi assicurarti che ddclient usi SSL, chiama ddclient dal terminale come

sudo ddclient -verbose -force

e cerca le linee

CONNECTED:  using HTTP

o

CONNECTED:  using SSL

In quest'ultimo caso, ddclient utilizza davvero SSL e sei a posto. Si noti che l' ssl=yesimpostazione non si applica alla ricerca IP iniziale utilizzata da ddclient per verificare se il proprio indirizzo IP pubblico è stato modificato (quello configurato da use=...), in modo che per quella connessione iniziale sia ancora visibileCONNECTED: using HTTPcome indicato da @Shaulinator, a meno che non si imposti esplicitamente un indirizzo HTTPS. Tuttavia, questo non dovrebbe essere un problema di sicurezza poiché l'indirizzo IP restituito da questa richiesta viene probabilmente utilizzato solo per evitare sforzi inutili sul lato server; non viene inviato al server in una vera richiesta di aggiornamento poiché il server conosce banalmente il tuo indirizzo IP quando ddclient avvia la connessione SSL. Ho controllato questo esplicitamente solo per il protocollo freedns, ma sarei sorpreso se sarebbe diverso per gli altri protocolli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.