Como fazer com que o ntpd atenda somente a minha sub-rede local

3

Eu tenho alguns servidores com endereços IP da Internet públicos, como A.B.C.x . Um dos meus hosts ( A.B.C.10 ) executa o ntpd e sincronizo a hora de europe.pool.ntp.org.

Agora, só quero permitir que os hosts da minha sub-rede ( A.B.C.x ) sejam capazes de sincronizar com A.B.C.10 . Por padrão, o mundo inteiro pode sincronizar com o meu servidor NTP. Como faço isso?

Todos os exemplos que posso encontrar assumem que estou sincronizando com endereços IP específicos, mas eu sincronizo com nomes DNS e, até onde posso dizer, os endereços IP que os nomes DNS x .europe.pool.ntp.org apontam são variáveis. Portanto, não posso configurar exceções em meu firewall e não posso usar a opção restrict no ntp.conf porque ele também aceita apenas endereços IP e não nomes DNS (Ah! E restrict aplica-se tanto aos clientes como aos servidores, como fazem as regras de firewall!)

    
por ndemou 27.12.2014 / 23:20

3 respostas

2

Você tem várias opções e depende de onde os firewalls são colocados e / ou com quais você prefere trabalhar. Idealmente, você teria um firewall que você pode controlar na sub-rede. Menos idealmente, você estará lidando apenas com um firewall em nível de host no servidor NTP. De qualquer forma, o conceito é o mesmo.

Para um firewall de sub-rede:

  • Permitir a porta UDP 123 fora da sub-rede somente a partir de A.B.C.10
  • Negue a porta UDP 123 de todo o resto.

Para um firewall de host no servidor NTP:

  • Permitir a porta UDP 123 de sua sub-rede (e do host local)
  • Negar a porta UDP 123 de em qualquer outro lugar (negar todas as regras mais adiante na cadeia).

por exemplo. para permitir 10.0.0.0/8:

# allow 10.0.0.0/8
iptables -A INPUT -s 10.0.0.0/8 -p udp -m udp --dport 123 -j ACCEPT
# allow localhost
iptables -A INPUT -s 127.0.0.0/8 -p udp -m udp --dport 123 -j ACCEPT
# allow NTP packets _from_ your host to everyone else
iptables -A OUTPUT -p udp --sport 123 --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
# allow replies from hosts you've sent NTP packets to
iptables -A INPUT  -p udp --sport 123 --dport 123 -m state --state ESTABLISHED -j ACCEPT
# the following is only useful if you have a policy ACCEPT for INPUT
iptables -A INPUT  -p udp -m udp --dport 123 -j DROP
    
por 27.12.2014 / 23:35
5

Básico ntp.conf para a veiculação de localnet se parece com isso

####
driftfile       /etc/ntp.drift
disable         monitor
restrict -4     default kod nomodify nopeer noquery notrap
restrict -6     default kod nomodify nopeer noquery notrap
restrict        127.0.0.1
restrict        127.127.1.0
restrict -6     ::1

restrict        10.0.0.0    mask 255.0.0.0
restrict        172.16.0.0  mask 255.240.0.0
restrict        192.168.0.0 mask 255.255.0.0

server          0.pool.ntp.org       iburst
server          1.pool.ntp.org       iburst
server          2.pool.ntp.org       iburst
####

Duas linhas mais longas negam qualquer acesso ao servidor por padrão e, em seguida, outras diretivas restric permitem somente hosts e sub-redes específicas.

    
por 28.12.2014 / 00:00
0

Eu não achei essas respostas muito úteis, então aqui está o que funcionou para mim. Esta é uma máquina rodando o NTP 4.2.6p5

driftfile        /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/

restrict    default ignore

restrict        127.0.0.1
restrict        127.127.1.0
restrict -6     ::1

restrict -4     <whitelist.ip.0>    mask    255.255.255.255
restrict -4     <whitelist.ip.1>    mask    255.255.255.255
restrict -4     <whitelist.ip.2>    mask    255.255.255.255 

server      0.pool.ntp.org  iburst nomodify notrap nopeer noquery
restrict    0.pool.ntp.org  iburst nomodify notrap nopeer noquery
server      1.pool.ntp.org  iburst nomodify notrap nopeer noquery
restrict    1.pool.ntp.org  iburst nomodify notrap nopeer noquery
server      2.pool.ntp.org  iburst nomodify notrap nopeer noquery
restrict    2.pool.ntp.org  iburst nomodify notrap nopeer noquery


statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

Eu sei que este é um tópico antigo, mas achei que poderia ajudar alguém. No exemplo, você deve substituir whitelist.ip.0, whitelist.ip.1, whitelist.ip.2 por seus hosts da lista de permissões. Obviamente, você também pode modificar o argumento da máscara para permitir, por exemplo, uma rede / 24

    
por 08.04.2018 / 22:27