admin管理员组文章数量:1516870
NTP时间服务器(带MD5身份验证)
参考文章:
配置一台在公网上的时间服务器,带MD5身份验证,以防止被用来做反射攻击等。
操作系统:CentOS7.3,但是这个对操作系统要求不那么严格的,重点是配置文件,都可以参照。
一、服务端设置
假设公网IP为xxx.xxx.xxx.xxx
1、防火墙开启UDP123端口:
firewall-cmd --zone=public --add-port=123/udp --permanent
firewall-cmd --reload
firewall-cmd --query-port=123/udp
firewall-cmd --zone=public --list-ports
2、安装NTP
yum install -y ntp查看自带版本:
ntpd --version
ntpd 4.2.6p5
这个版本比较低,考虑到已经爆出的安全漏洞,建议卸载掉然后重新编译安装下面的版本:
yum -y remove ntp ntpdate
wget .2/ntp-4.2.8p12.tar.gz【巨慢】
Windows下载:.2/ntp-4.2.8p12.tar.gz然后传上来。
yum -y install gcc gcc-c++ openssl-devel libstdc++* libcap*
tar -zxvf ntp-4.2.8p12.tar.gz
cd ntp-4.2.8p12/
./configure --prefix=/usr --bindir=/usr/sbin --enable-all-clocks --enable-parse-clocks --docdir=/usr/share/doc/ntp-4.2.8p12
make && make install
ln -s /usr/local/ntp-4.2.8p12 /usr/local/ntp
查看ntp版本:
ntpd --version
3、服务端生成MD5文件
ntp-keygen -M
生成的MD5 keys会在/home/xxx 下,通常命名为ntpkey_MD5key_+主机名+随机数字;
将其复制为: /etc/ntp/keys
chmod 600 /etc/ntp/keys
cat /etc/ntp/keys内容一般如下:第一列是ID号,后面会用到,一条一个ID号
1 MD5 dZ}eW@jS$T$ifBuYv<9b # MD5 key
2 MD5 S1+up2v-rDs-$kn+0P-5 # MD5 key
3 MD5 ui)\IwA*aT+(ou}tk{=L # MD5 key
4 MD5 4k,.5+i'p.Z4]UH~ZwW # MD5 key
5 MD5 u=I*9(8.uCw:$Mki:d>5 # MD5 key
6 MD5 )"9x5-]Ys!:V)T_=St?Q # MD5 key
7 MD5 x`h%NW~"+6p^|mwW^4^ # MD5 key
8 MD5 a<|<*a6/Hh[4V(A'L4]b # MD5 key
9 MD5 pnfUPPLU(+qJrTP5lY]. # MD5 key
10 MD5 38Nrat-paqNSG(Il?5( # MD5 key
11 SHA1 057e1c91901fb54dd2aa1b6647c4f9ae41116ca4 # SHA1 key
12 SHA1 19af540745b340db0f9914b5dc52ce0353d2332a # SHA1 key
13 SHA1 d130bba96fb2ed91f667df29144b410963049bc0 # SHA1 key
14 SHA1 e0add5f5faa1f3b643e32429892e2b929e67fb5e4 # SHA1 key
15 SHA1 d0c2650c8913348541a63926e3c2cafd1eea552 # SHA1 key
16 SHA1 8f4e823cdf175e369417d29e0d28b677c4521eda # SHA1 key
17 SHA1 5128923addaa9ca72b56acac9c692a7eb60b9ef2 # SHA1 key
18 SHA1 c8dacc921faf323ab63225d3a0729d46b1d2a637e # SHA1 key
19 SHA1 30140db7409aea8236f371df64170f94957ce2b00 # SHA1 key
20 SHA1 8f4ef4afd68d99d07a23d8b689f26b1395fe3dc8e # SHA1 key
4、配置文件:
vim /etc/ngt.conf
已经去除注释:
driftfile /var/lib/ntp/drift
logfile /var/log/ntpd.log
restrict default kod nomodify notrap nopeer notrust #允许所有的访问,但需要有trust的才可以
restrict -6 default kod nomodify notrap nopeer notrust
restrict 127.0.0.1
restrict ::1
server 1worktime iburst #www.ntp官网上提供的中国区服务器地址
server ntp.synet.edu iburst #www.ntp官网上提供的中国区服务器地址
server cn.pool.ntp iburst #中国区时间池
server ntp.aliyun iburst #阿里云
server ntp1.aliyun iburst #阿里云1
server ntp.ntsc.ac iburst #中科院国家授时中心
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
trustedkey 1 2 3 4 5 6 7 8 9 10 #这个地方吧,写几个ID都行,反正上面MD5生成了那么多,不在这里的不会被校验
requestkey 1 2 3 4 5 6 7 8 9 10
controlkey 1
authdelay 0.000094 #加个计算验证时间偏差
disable monitor
5、启动服务,
/usr/bin/ntpd -c /etc/ntp.conf,顺便把它写进/etc/rc.local里去,愿意的话可以给它加进系统服务。
6、查看状态,
ntpq -p #查看有没有找到上层的那些时间服务器
remote refid st t when poll reach delay offset jitter
==============================================================================
-120.132.6.211 10.23.255.101 4 u 572 1024 377 29.587 -20.941 3.946
+dns2.synet.edu. 202.118.1.48 2 u 669 1024 377 66.664 -4.861 2.927
-b.sin.pobot 17.253.82.253 2 u 520 1024 215 177.992 -30.089 5.083
*203.107.6.88 100.107.25.114 2 u 848 1024 377 29.240 -1.544 0.460
+120.25.115.20 10.137.53.7 2 u 647 1024 377 20.654 1.462 0.286
-114.118.7.161 123.139.33.3 2 u 476 1024 377 36.516 -54.818 10.104
ntpstat #查看有没有开始同步,编译安装的没有这个命令,不过从别的yum安装的机器上传一个过来到/usr/bin啊/usr/sbin之类的l路径下就可以了
[root@xxxxxxx~]# ntpstat
synchronised to NTP server (203.107.6.88) at stratum 3
time correct to within 71 ms
polling server every 1024 s
二、客户端设置
1、安装,可以编译安装,也可以直接yum install ntp。客户端版本低一点也没啥关系。
2、配置文件
vim /etc/ntp.conf
driftfile /var/lib/ntp/drift
logfile /var/log/ntpd.log
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
server xxx.xxx.xxx.xxx key 4 #这里注意,首先指定服务器公网IP,后面指定校验的key的ID,写4,意味着服务端要验证的MD5码的ID是4,写其他的也行,只要服务器端的配置文件里列出来的都可以,本文为例,写1~10都可以,写1个就够用了,不用多写。
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
trustedkey 4 #这里的ID跟上面一样。
disable monitor
3、/etc/ntp/keys
这里可以直接把服务端的整个/etc/ntp/keys文件复制过来,也可以只复制ID为4的那一行,因为本客户端只指定校验ID为4的key,别的复制过来也没啥用的,实际过程中,可以单独复制一条作为keys文件分发给所有客户端。
cat /etc/ntp/keys
4 MD5 4k,.5+i'p.Z4]UH~ZwW # MD5 key
4、如果想要允许硬件也进行时间同步:
echo "SYNC_HWCLOCK=yes" >>/etc/sysconfig/ntpd
5、启动ntp服务,查看状态【视情况和环境不同,最长大概得5到10分钟】
service ntp start (yum 安装的)
ntpq -p#如果reach那一列一直是0就肯定有问题了。
remote refid st t when poll reach delay offset jitter
==============================================================================
*xxx.xxx.xxx.xxx aaa.aaa.aaa.aaa 3 u 429 1024 377 1.488 -0.392 0.548
ntpstat 查看有无同步。
本文标签: NTP时间服务器(带MD5身份验证)
版权声明:本文标题:NTP时间服务器(带MD5身份验证) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1706175649a679709.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论