DDCLIENTがSSLを使用していることを確認するにはどうすればよいですか?使用していない場合、どのように強制するのですか?


9

私のpiでのVPNの設定については、このガイドに従っています。手順の一部は、動的DNSサービスのセットアップと構成です。複数のプラットフォームにわたって複数のアカウントを作成しました。Ipとdynamicdnsは2つ挙げる必要はありません。以下は、私の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を使用すると述べていることを確認しました。これが無料のdynamicdnsサイトの使用に対する制限なのか、それとも私が見落としているのかと思います。記事により、私が使用しているサイトがno ipやdnsdynamicがSSLをサポートしているように見えます。


1
私はあなたが持っているようには見えsudo ddclient -debug -verbose -noquietませんsudo ddclient -verbose -debug -noquiet -query ... 2番目のリンクのように
ジョージ・ウドセン

@Georgeは私の間違いです。-queryを追加できませんでした。しかし、問題を新鮮な心でもう一度見ていて、もう一度問題を見直すように促してくれたのは、実際に解決するのに役立ちました!回答を追加すると、質問が編集されます。
Shaulinator 2017

回答:


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経由で接続します。私が行った変更は2つあります。

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

これは「get 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

投稿してから、DDClientを実行するPiをオフにしました。インスタンスを起動して、デバッグで何が表示されるかを確認する別のテストを実行する必要があります。ありがとうございました!
Shaulinator

0

また、出力行のURLが

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

ssl=yes私の設定には含まれていますが、HTTPSではなくHTTPで始まります。何が起こっているのかを確認するために、ソースコードを調べることにしました。geturlサーバーへの接続が開始される関数では、http://パーツがとにかくURLから削除されているため、実際の接続タイプを示していないことがわかります。ddclientがSSLを使用していることを確認するには、次のように端末からddclientを呼び出します。

sudo ddclient -verbose -force

そしてラインを探します

CONNECTED:  using HTTP

または

CONNECTED:  using SSL

後者の場合、ddclientは実際にはSSLを使用しており、問題ありません。このssl=yes設定は、ddclientがパブリックIPアドレス(によって設定されたものuse=...)が変更されたかどうかを確認するために使用する初期IPルックアップには適用されないことに注意してください。CONNECTED: using HTTPHTTPSアドレスを明示的に設定しない限り、@ Shaulinatorによって言及されます。ただし、このリクエストによって返されるIPアドレスはサーバー側での不要な作業を回避するためにのみ使用されるため、これはセキュリティ上の問題にはなりません。ddclientがSSL接続を開始したときにサーバーがIPアドレスを自明に知っているため、実際の更新要求ではサーバーに送信されません。私はこれをfreednsプロトコルに対して明示的にチェックしただけですが、他のプロトコルとは異なる場合は驚かれるでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.