DDCLIENT가 SSL을 사용하고 있는지 확인하고 사용하지 않는 경우 어떻게 강제 실행합니까?


9

내 pi에서 VPN을 설정하는 방법에 대한 안내서를 따르고 있습니다. 단계 중 일부는 동적 DNS 서비스를 설정하고 구성하는 것입니다. 여러 플랫폼에서 여러 계정을 만들었습니다. Ip와 dynamicdns는 두 가지입니다. 아래는 내 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 사이트 사용에 대한 제한인지 또는 무언가를 간과하고 있는지 궁금합니다. 기사는 내가 사용하는 사이트가 ip 및 dnsdynamic이 SSL을 지원하지 않는 것처럼 보이도록 만들었습니다.


1
나는 두 번째 링크에서와 같이 보이지 sudo ddclient -debug -verbose -noquiet않습니다.sudo ddclient -verbose -debug -noquiet -query
George 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

이것은 "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 2009 년

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 주소가 변경되었는지 여부를 확인하기 위해 사용하는 초기 IP 조회 (으로 구성됨 use=...)에 적용되지 않으므로 해당 초기 연결에 대해서는 여전히 표시됩니다.CONNECTED: using HTTPHTTPS 주소를 명시 적으로 설정하지 않으면 @Shaulinator에서 언급 한대로. 그러나이 요청에 의해 리턴 된 IP 주소는 서버 측에서 불필요한 노력을 피하기 위해 사용되기 때문에 보안 문제가되지 않아야합니다. ddclient가 SSL 연결을 시작할 때 서버가 사소한 IP 주소를 알기 때문에 실제 업데이트 요청에서 서버로 전송되지 않습니다. 나는 이것을 freedns 프로토콜에 대해 명시 적으로 검사했지만 다른 프로토콜과 다른 경우 놀랄 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.