Estamos tentando algumas configurações de NTP no arquivo ntp.conf e queremos ter certeza se o servidor NTP está seguro ou não.
Seguindo a recomendação fornecida aqui: https://support.ntp.org/Support/AccessRestrictions#Section_6.5.1.2.1.
nós adicionamos :
IPV4: restrict -4 default limited kod nomodify notrap nopeer noquery
IPv6: restrict -6 default limited kod nomodify notrap nopeer noquery
Agora a pergunta é: Com base na linha escrita na documentação:
Como você está disposto a permitir que outros obtenham o horário do seu ntpd, você permitirá que eles vejam as informações de status do seu servidor (mesmo que isso possa revelar informações sobre o seu sistema operacional e a versão do ntpd)?
Como podemos ter certeza se o servidor está enviando seu status ou alguma outra informação do sistema operacional ou não?
Além disso, qual é a diferença se não adicionarmos a opção 'noquery' na restrição e como podemos testar com e sem a opção 'noquery', ou seja, se adicionar tal opção tem algum reflexo ou não? (Queremos testar do ponto de vista da segurança)
Podemos usar o wireshark para recuperar o status ou informações do sistema operacional para testar nossas opções de configuração?
Responder1
A implementação de referência do ntpd expõe muitas de suas variáveis de implementação através dos programasntpq(entpdcalgo que só o seu autor aprecia). Estes utilizam um protocolo de controle em pacotes NTP especiais. É possível que o canal de controle possa alterar a configuração do ntpd, embora isso raramente seja usado na era moderna, onde você pode automatizar a implantação de arquivos de configuração em qualquer número de hosts.
Os riscos de manter o NTPD são principalmenteimpedindo a amplificação de IP para endereços falsificadose protegendo sua configuração de sincronização de horário contra alterações de endereços IP não autorizados nas redes.
Como sempre, manter o patch atenua algumas falhas. Um ataque de amplificação através da função "monlist" resultou emCVE-2013-5211. Esta deveria ter sido uma atualização anos atrás, mas verifique setodosdos seus hosts estão em uma distribuição suportada e recebem atenção de um mantenedor.
Toda a atenção ao monlist resultou em algumas ferramentas para digitalizá-lo facilmente. Por exemplo,script nmap ntp-monlist.
A lista completa de funções é acomandos documentados para ntpq. Essas linhas na configuração escolha sua própria configuração do wiki diferem por noquery
, o que nega totalmente todas as consultas ntpq. Manter o serviço de tempo funcionando. Por exemplo, esse script nmap não retornaria nada. O contraste com nomodfy
é uma regra de acesso que controla apenas os comandos que alteram a configuração. Claramente nomodify
deve ser fortemente restrito, possivelmente apenas para localhost.
Compare com configurações de exemplo em outros lugares, como o pacote do seu disto favorito.Ntp.conf do RHEL 7sugere isso como ponto de partida para o controle de acesso:
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Disable the monitoring facility to prevent amplification attacks using ntpdc
# monlist command when default restrict does not include the noquery flag. See
# CVE-2013-5211 for more details.
# Note: Monitoring will not be disabled with the limited restriction flag.
disable monitor
Observe a mitigação do monlist, embora o ntpd já esteja corrigido. Além disso, o padrão para hosts remotos não pode consultar ou modificar. Com pequenas modificações, isso poderia tornar um host NTP pronto para servir a Internet pública.
Naturalmente, quando você souber o que ntp.conf deseja, implante-o. Automatize a configuração dos servidores NTP, obtenha uma configuração razoável nas imagens de modelo de todos os hosts.
Toda essa discussão monlist não cobre sua pergunta original sobre sistema operacional e identificação de plataforma via ntp. De acordo com os documentos ntpq, essas informações de compilação podem aparecer nas variáveis do sistema por meio do readvar
comando de controle. Como em um servidor remoto: ntpq -c readvar time.example.net
. Embora existam alguns detalhes de implementação para decodificar aqui, como qual ID de associação é o host NTP em questão.
Pessoalmente, não estou muito preocupado em expor informações de compilação sobre o ntpd. Alguém descobre que meu ntpd está atualizado e algumas máquinas de estado, não há muito que possam fazer com isso. Um invasor espalharia pacotes NTP forjados em todos os hosts que pudesse, na esperança de amplificação.