ฉันจะตรวจสอบว่า DDCLIENT กำลังใช้ SSL ได้อย่างไรและหากไม่เป็นเช่นนั้นฉันจะบังคับได้อย่างไร


9

ฉันได้ทำตามคู่มือนี้ในการตั้งค่า VPN ใน pi ของฉัน ส่วนหนึ่งของขั้นตอนคือการตั้งค่าและกำหนดค่าบริการ DNS แบบไดนามิก ฉันสร้างบัญชีหลายบัญชีในหลายแพลตฟอร์ม ไม่มี Ip และไดนามิกไดรฟ์สองชื่อ ด้านล่างนี้เป็นผลลัพธ์ของไฟล์ 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


1
ฉันsudo ddclient -debug -verbose -noquietไม่เห็นsudo ddclient -verbose -debug -noquiet -query ว่าคุณมี ... เช่นเดียวกับในลิงค์ที่สอง
จอร์จ Udosen

@ George เป็นความผิดพลาดของฉันฉันพลาดการเพิ่ม -query อย่างไรก็ตามการดูปัญหาอีกครั้งด้วยสภาพจิตใจที่สดใหม่และคุณแจ้งให้ฉันดูปัญหาอีกครั้งจริง ๆ แล้วช่วยฉันแก้ปัญหาได้! การเพิ่มคำตอบและจะแก้ไขคำถาม
Shaulinator

คำตอบ:


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 ของฉัน ฉันจะต้องหมุนตัวอย่างและให้การทดสอบนี้อีกครั้งเพื่อดูว่า debug แสดงอะไร ขอบคุณ!
Shaulinator

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 ฉันตรวจสอบสิ่งนี้อย่างชัดเจนแล้วสำหรับโปรโตคอล freedns แต่ฉันจะแปลกใจถ้ามันจะแตกต่างกันสำหรับโปรโตคอลอื่น ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.