Como posso configurar um serviço de busca de DNS dinâmico no Ubuntu Server?

19

Criei contas e nomes de host na minha conta http://no-ip.org/ , que é de longe o serviço mais usado para o meu tipo de servidor. Alguém pode me orientar no processo de configuração do uso do ddclient com no-ip, como eu sou um noob de linha de comando?

Trevon
fonte

Respostas:

21

Configurando o ddclient para No-IP

ddclienté um cliente de atualização dinâmica (DUC) que pode ser usado para atualizar entradas DNS dinâmicas. Ele verifica o endereço IP atual em intervalos regulares e atualiza as informações de DNS quando uma alteração é detectada. Aqui está como instalar e configurá-lo para o serviço No-IP (noip.com/no-ip.com).

Primeiro, instale o ddclientpacote. Vamos configurá-lo manualmente mais tarde, então pressione enter para todas as perguntas de configuração.

sudo apt-get install ddclient

Pare o ddclientdaemon. O sudo service ddclient stopcomando não funciona no Ubuntu 12.04 devido a um erro, então usamos em seu pkilllugar.

sudo pkill ddclient

Edite os arquivos de configuração. Para desativar os arquivos de backup (por exemplo /etc/ddclient.conf~) que são geditcriados por padrão e que podem, por exemplo, conter senhas depois que você pensou que os havia excluído, desative a configuração Edit -> Preferences -> Editor -> Create a backup copy of files before saving.

sudo gedit /etc/ddclient.conf /etc/default/ddclient

Exclua o conteúdo antigo /etc/ddclient.confe cole no modelo mostrado abaixo.

Leia os comentários do modelo e personalize o arquivo de acordo com suas necessidades.

Pode ser uma boa ideia usar uma subconta noip.com, ou seja, um grupo com senha (esse recurso é um serviço pago). Dessa forma, a senha fornece acesso apenas à atualização dos hosts especificados e não ao acesso total a toda a sua conta No-IP, o que pode incluir registros MX (um invasor que adquire sua senha pode alterar os registros MX para interceptar seus e-mails ) ou outros serviços, como contas IMAP.

Você provavelmente deve definir daemon_interval=3600(consulte os comentários do modelo).

Teste sua configuração com o seguinte comando:

sudo ddclient -daemon=0 -debug -verbose -noquiet -force

Você deve receber uma goodresposta (endereço IP atualizado) ou nochg(endereço IP já definido para esse valor). Não há problema em receber o seguinte aviso neste momento (mas não é bom continuar recebendo o aviso durante a operação normal):

WARNING: updating <hostname>: nochg: No update required; unnecessary attempts to change to the current address are considered abusive

Nota: Parece haver algum cache em andamento no servidor No-IP; portanto, se a resposta que você obtém do servidor não for o que você espera, pode ser útil esperar um pouco.

Quando você terminar de configurar, inicie o ddclientdaemon:

sudo service ddclient start

O daemon também será iniciado automaticamente sempre que você iniciar o computador.

A entrada / entradas DNS agora serão atualizadas sempre que uma alteração de endereço IP for detectada.

Solução de problemas

Execute a configuração do pacote novamente:

sudo dpkg-reconfigure ddclient

Remova os arquivos de pacote e configuração:

sudo apt-get purge ddclient

Controle de daemon:

sudo service ddclient status
sudo service ddclient start
sudo service ddclient stop
# The stop command above does not work on Ubuntu 12.04 due to a bug, but
# it works on 14.04. Here are alternative ways to control the daemon:
ps -A f | grep -i ddclient
sudo pkill ddclient

Exclua o cache para induzir o daemon a atualizar a entrada DNS para fins de depuração (durante a operação normal, a entrada DNS será atualizada apenas se o endereço IP atual for diferente do endereço IP armazenado no cache):

sudo pkill ddclient
sudo rm /var/cache/ddclient/ddclient.cache
sudo service ddclient start
# See the result:
tail /var/log/syslog
# If you have set up mail=..., you should also receive an e-mail.
# The syslog and e-mail should show a "good" or "nochg" response.

Teste se o daemon realmente atualizará a entrada DNS quando o endereço IP for alterado, configurando o endereço IP da entrada DNS para 1.2.3.4 e iniciando o daemon:

sudo pkill ddclient
sudo ddclient -daemon=0 -debug -verbose -noquiet -force -use ip -ip 1.2.3.4
sleep 30   # ddclient will not perform updates less than 30 seconds apart
sudo service ddclient start

Execução de depuração (atualize a entrada DNS nunca / conforme necessário / sempre):

sudo ddclient -daemon=0 -debug -verbose -noquiet -noexec
sudo ddclient -daemon=0 -debug -verbose -noquiet
sudo ddclient -daemon=0 -debug -verbose -noquiet -force

Tente detectar o endereço IP atual usando vários métodos:

sudo ddclient -query

Arquivos de interesse:

/etc/ddclient.conf
/etc/default/ddclient
/var/cache/ddclient/ddclient.cache

As mensagens do daemon aparecerão aqui (e também serão enviadas por e-mail, se configurado para isso):

/var/log/syslog

Documentação:

Modelo para /etc/ddclient.conf

################################################################################
# Configuration file for ddclient
################################################################################


################################################################################
# Misc. configurations

# To choose between ipup mode (for dial-on-demand) and daemon mode, please edit
# /etc/default/ddclient.

#mail=root           # E-mail messages to this address
#mail-failure=root   # E-mail messages about failed updates to this address


################################################################################
# How to obtain current IP address

# Methods:
#   use=ip, ip=ADDRESS                                   # Set the IP address to ADDRESS
#   use=if, if=INTERFACE, if-skip=PATTERN                # Obtain IP address by calling 'ifconfig INTERFACE'
#   use=web, web=PROVIDER|URL, web-skip=PATTERN          # Obtain IP address from IP discovery web page
#   use=cmd, cmd=PROGRAM, cmd-skip=PATTERN               # Obtain IP address by calling PROGRAM
#   use=fw|FWMODEL, fw=ADDRESS|URL, fw-skip=PATTERN      # Obtain IP address from firewall web page
#                   fw-login=LOGIN, fw-password=SECRET
#
# The *-skip options can be used to skip IP addresses found before PATTERN.
#
# NOTE: The ddclient IP detection routines do not respect the HTTPS prefix in
# URLs, and instead fall back to HTTP (this is fixed in version 3.8.1). The
# option ssl=yes does not apply to the IP detection either (this is at least
# how versions 3.8.0 to 3.8.2 behave).
#
# The default time between each IP address change check is daemon_interval=300
# (5 minutes), which may be a bit too frequent when using an external IP
# discovery service. To set the checking interval to e.g. one hour instead,
# please edit /etc/default/ddclient and set daemon_interval=3600.

# Obtain IP address from network interface
#use=if, if=eth0

# Obtain IP address from no-ip.com IP discovery web page (unencrypted connection)
use=web, web='http://ip1.dynupdate.no-ip.com:8245/'

# Obtain IP address from no-ip.com IP discovery web page (encrypted connection)
# Encryption does not offer any real protection since a man-in-the-middle
# attack could route the HTTPS connection through a host belonging to the
# attacker, thus causing an incorrect IP address to be reported.
#use=cmd, cmd='bash -c "set -o pipefail; timeout 120 wget -qO- \
#  --header=Host:ip1.dynupdate.no-ip.com https://dynupdate.no-ip.com/ | head -c 1000"'


################################################################################
# Dynamic DNS service setup

protocol=noip
#server=   # Defaults to dynupdate.no-ip.com for noip protocol
ssl=yes   # NOTE: Does not apply when obtaining IP address, just when updating the DNS entry!
login='[email protected]'   # Username. For No-IP sub-accounts (groups with passwords), use '<groupname>%3A<username>'.
password='1234'


################################################################################
# Hosts to update, with optional per-host options

# Examples:
#   protocol=hammernode1, \
#   login='my-hn-login', password='my-hn-password' \
#   myhost.hn.org,myhost2.hn.org
#
#   login='group2%[email protected]', password='1234'   myhost3.no-ip.biz,myhost4.no-ip.biz
#
#   myhost.no-ip.biz,myhost2.no-ip.biz

my.full.hostname

Atualização: A conexão criptografada ao serviço de detecção de IP é totalmente inútil. Agora isso é explicado no modelo ddclient.conf e o padrão é usar conexão não criptografada para detecção de IP.

Håkon A. Hjortland
fonte
0

No-ip tem seu próprio cliente, que funcionou para mim na primeira vez em que foi instalado.

Existem instruções em seu próprio site para baixar o cliente e, em seguida, é uma make && makeinstalação rápida e pronto. Tenha suas credenciais de login para no-ip em mãos, pois você será solicitado a elas como parte do assistente de configuração. Depois, verifique se você executou noip2e pode verificar sua conta de host no site deles para ver se ela foi atualizada.

Chris
fonte
AVISO: noip2 tem problemas de segurança! Veja esta resposta .
Håkon A. Hjortland
@ HåkonA.Hjortland: Eu não sabia que ele aceita conexões HTTPS. Excluí minha declaração incorreta anterior, obrigado!
MestreLion