Làm cách nào để xác minh DDCLIENT đang sử dụng SSL và nếu không, tôi phải ép buộc bằng cách nào?


9

Tôi đã làm theo hướng dẫn này để thiết lập VPN trên pi của tôi. Một phần của các bước là thiết lập và định cấu hình dịch vụ dns động. Tôi đã tạo một số tài khoản trên nhiều nền tảng. Không có Ip và Dynamicdns là hai tên. Dưới đây là một đầu ra của tệp ddclient.conf của tôi, nó kết nối tốt trên cả các trang web dns động.

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

Vấn đề của tôi là trong này bài viết, họ minh họa làm thế nào để kiểm tra xem pi của bạn đang kết nối qua SSL. Khi tôi chạy

sudo ddclient -verbose -debug -noquiet -query 

nó hiển thị kết nối qua HTTP vs HTTPS hoặc SSL cho mỗi trang web. Tôi đã xác minh rằng ssl đã được cài đặt bằng cách chạy

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

Có ý tưởng nào về việc nó kết nối thông qua ssl hay làm thế nào tôi có thể buộc nó? Tôi đã chạy qua đây bài viết quá. Tôi đã thấy rằng ddclient tuyên bố rằng nó sẽ sử dụng SSL nếu có, tôi tự hỏi liệu đây có phải là một hạn chế trong việc sử dụng một trang web động miễn phí hoặc nếu tôi đang xem xét một cái gì đó. Các bài viết đã xuất hiện như thể các trang web tôi đang sử dụng như không có ip và dnsdynamic hỗ trợ SSL.


1
Tôi thấy sudo ddclient -debug -verbose -noquietkhông phải sudo ddclient -verbose -debug -noquiet -query như bạn có ... như trong liên kết thứ hai
George Udosen

@George đó là sai lầm của tôi, tôi đã bỏ lỡ thêm -query. Tuy nhiên, nhìn lại vấn đề một lần nữa với một tâm trạng tươi mới và bạn nhắc tôi xem xét lại vấn đề một lần nữa thực sự giúp tôi giải quyết nó! Thêm câu trả lời và sẽ chỉnh sửa câu hỏi.
Máy cạo râu

Câu trả lời:


4

Tôi đã tìm thấy câu trả lời và tôi cảm thấy rất ngớ ngẩn khi không tìm ra nó sớm hơn.

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

Ở trên sẽ buộc SSL và sẽ kết nối qua SSL. Có hai thay đổi tôi đã thực hiện.

Các dòng use=web, web=myip.dnsdynamic.comnên được use=web, web=https://myip.dnsdynamic.org. Thay đổi từ .comđể .orgdừng lỗi kết nối. Việc thêm https://trước chuỗi kết nối cho phép nó kết nối qua SSL.

Đầu ra từ use=web, web=myip.dnsdynamic.orgchương trình:

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

Đầu ra từ use=web, web=https://myip.dnsdynamic.orgchương trình:

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

Tôi vẫn không chắc chắn tại sao việc ép buộc ssl=yeskhông khiến nó tự động sử dụng HTTPS nhưng hiện tại nó đang kết nối qua SSL và lệnh mà @George nhìn thấy giúp tôi xác minh đó là:sudo ddclient -verbose -debug -noquiet -query


1

Đây chỉ là phần "lấy IP". Bản cập nhật thực tế cho máy chủ DNS động không được hiển thị trong đầu ra của bạn. Nó vẫn có thể được thực hiện qua 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

Nếu tôi đặt https trước máy chủ, tôi sẽ nhận được:

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

Kể từ khi đăng bài, tôi đã tắt Pi chạy DDClient của mình. Tôi sẽ phải quay lại một ví dụ và đưa ra một thử nghiệm khác để xem những gì gỡ lỗi cho thấy. Cảm ơn bạn!
Shaulinator

0

Vì tôi cũng bối rối bởi thực tế là URL trong dòng đầu ra

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

bắt đầu với HTTP thay vì HTTPS mặc dù tôi có ssl=yestrong cấu hình của mình, tôi quyết định xem xét mã nguồn để xem điều gì đang xảy ra. Nó chỉ ra rằng trong chức năng geturlnơi kết nối đến máy chủ được bắt đầu, http://phần này sẽ bị tước khỏi URL để nó không biểu thị loại kết nối thực tế. Nếu bạn muốn chắc chắn rằng ddclient sử dụng SSL, chỉ cần gọi ddclient từ thiết bị đầu cuối là

sudo ddclient -verbose -force

và tìm kiếm các dòng

CONNECTED:  using HTTP

hoặc là

CONNECTED:  using SSL

Trong trường hợp sau, ddclient thực sự sử dụng SSL và bạn rất tốt để đi. Lưu ý rằng ssl=yescài đặt không áp dụng cho tra cứu IP ban đầu mà ddclient sử dụng để kiểm tra xem địa chỉ IP công cộng của bạn đã thay đổi chưa (địa chỉ IP được định cấu hình bởi use=...), để kết nối ban đầu bạn vẫn thấyCONNECTED: using HTTPnhư được đề cập bởi @Shaulinator trừ khi bạn đặt địa chỉ HTTPS một cách rõ ràng. Tuy nhiên, đây không phải là vấn đề bảo mật vì địa chỉ IP được yêu cầu này trả về có lẽ chỉ được sử dụng để tránh những nỗ lực không cần thiết ở phía máy chủ; nó không được gửi đến máy chủ trong một yêu cầu cập nhật thực tế vì máy chủ biết rõ địa chỉ IP của bạn khi ddclient khởi tạo kết nối SSL. Tôi chỉ kiểm tra rõ ràng điều này cho giao thức freedns, nhưng tôi sẽ ngạc nhiên nếu nó khác với các giao thức khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.