服务 | 域名解析服务 | 文件共享服务 | web服务 | ||
---|---|---|---|---|---|
DNS | FTP | NFS | SAMBA | APACHE | |
软件 | bind bind-chroot | vsftpd | rpcbind nfs-utils | samba samba-common | httpd |
服务 | named | vsftpd | rpcbind nfs | smb nmb | httpd |
daemon | named | vsftpd | rpcbind nfs | smbd nmbd | httpd |
端口号 | 53 | 21 | 111 2049 | 137 138 139 445 | 80 8080 |
配置文件 | /etc/named.conf /etc/named.rfc1912.zones | /etc/vsftpd/vsftpd.conf | /etc/exports | /etc/samba/smb.conf | /etc/httpd/conf/httpd.conf |
数据文件 | /var/named/ | /var/ftp/ | /var/lib/samba | /var/www | |
客户端 | lftp | rpcbind | samba-client | elinks | |
命令 | nslookup | lftp | nfs-utils mount | smbclient | links |
Ntp服务的作用
大家设想一下,如果我们的主机时间不准,可以怎么做?有将硬件时间和软件时间同步的办法,也可以使用date -s
去设置一个时间,但是你怎么知道你设置的时间就一定准了,或者说你能确定硬件时间一定准么?不能保证吧?那这时候我们就可以找天文台或者一些网络上的时间服务器去做同步,那这时候怎么去做呢?
这里就用到一种服务了,这种服务叫做ntp服务,它是一种针对时间同步的服务。
Ntp服务的原理
其实更细化来说,NTP服务器(Network Time Protocol)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。时间按NTP服务器的等级传播。按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中。
Stratum层也是一个分层式的结构,下一层找上一层做同步,上一层还有上一层。以此类推。
时间同步服务配置
服务端
rhel6 | rhel7 | |
---|---|---|
软件 | ntp | chrony |
service | ntpd | chronyd |
daemon | ntpd | chronyd |
配置文件 | /etc/ntp.conf | /etc/chrony.conf |
数据文件 | /var/lib/ntp | /var/lib/chrony |
日志文件 | /var/log/ntpstats | /var/log/chrony |
客户端
命令 | ntpdate | timedatectl |
---|---|---|
ntpdate 172.25.0.11 | timedatectl set-ntp 1 |
项目实践1:配置ntp时间同步服务器
rhel6 软件
ntp-4.2.6p5-1.el6.x86_64
配置详解
NTP安全设置(restrict)
运行一个NTP Server不需要占用很多的系统资源,所以也不用专门配置独立的服务器,就可以给许多client提供时间同步服务, 但是一些基本的安全设置还是很有必要的那么这里一个很简单的思路就是第一我们只允许局域网内一部分的用户连接到我们的服务器. 第二个就是这些client不能修改我们服务器上的时间
driftfile /var/lib/ntp/drift #侦测BIOS时钟与Linux系统时间的差异写入次文件。
利用restrict 来管理权限控制
Restrict [IP] mask [netmask_IP] [parameter]
Parameter 的参数主要如下:
- ignore :拒绝所有类型的NTP联机。
- nomodify: 客户端不能使用ntpc 与ntpq 这两个程序来修改服务器的时间参数,但客户端可透过这部主机来进行网络校时;
- noquery:客户端不能够使用ntpc 与ntpq 等指令来查询时间服务器,不提供NTP的网络校时。
- notrap:不提供trap 这个运程事件登入的功能。
- notrust:拒绝没有认证的客户端。
- Kod:kod技术可以阻止“Kiss of Death “包对服务器的破坏。拒绝服务攻击
- Nopeer:不与其他同一层的NTP服务器进行时间同步。
利用server 设定上层NTP服务器,格式如下:
server [IP or hostname] [prefer]
- perfer:表示优先级最高
- burst :当一个运程NTP服务器可用时,向它发送一系列的并发包进行检测。
iburst :当一个运程NTP服务器不可用时,向它发送一系列的并发包进行检测。
注:默认情况小15分钟后才会与上层NTP服务器进行时间校对。
谁能来同步我的时间?
首先我们对于默认的client拒绝所有的操作
代码:restrict default kod nomodify notrap nopeer noquery
然后允许本机地址一切的操作
代码:restrict 127.0.0.1
最后我们允许局域网内所有client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间
代码:restrict 172.25.0.0 mask 255.255.255.0 nomodify
我去同步谁的时间?
server 时间同步服务器 层数比我高的,及数字比我小的
代码:server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
详细步骤
服务器端 |
一些补充和拾遗(挺重要)
配置文件中的driftfile是什么?
我们每一个system clock的频率都有小小的误差,这个就是为什么机器运行一段时间后会不精确.NTP会自动来监测我们时钟的误差值并予以调整.但问题是这是一个冗长的过程,所以它会把记录下来的误差先写入driftfile.这样即使你重新开机以后之前的计算结果也就不会丢失了如何同步硬件时钟?
NTP一般只会同步system clock. 但是如果我们也要同步RTC(hwclock)的话那么只需要把下面的选项打开就可以了
代码:vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
- 让rhel6运行ntpdate更新时间时,rhel6同步失败,会提示端口被占用:如下
[root@rhel6 ~]# ntpdate 172.25.0.11
2 Aug 18:39:16 ntpdate[4831]: the NTP socket is in use, exiting - 利用crontab让rhel7 NTP定时更新时间
0 8 * * * /usr/sbin/ntpdate 172.25.0.11
chrony
chrony-1.29.1-1.el7.x86_64
RHEL从7.0开始改用chrony同步时间,原ntp同步方式也可以使用,但要安装ntp服务。
chronyd是一个在系统后台运行的守护进程。他根据网络上其他时间服务器时间来测量本机时间的偏移量从而调整系统时钟。对于孤立系统,用户可以手动周期性的输入正确时间(通过chronyc)。在这两种情况下,chronyd决定计算机快慢的比例,并加以纠正。chronyd实现了NTP协议并且可以作为服务器或客户端。
项目实践2:配置chrony时间同步服务器
[root@rhel7 ~]# yum install -y chrony |