周岁献礼:快速搭建Time Server与NIS Server.
发表于:2007-07-04来源:作者:点击数:
标签:
[color=green:26b9f6daa1]作者:梁尚锋网名:好好先生/longfei 原出处:www.chinaunix.net 参考文档: http://www.chinalinuxpub.com/read.htm?id=1337 http://www.fengnet.com/showart.asp?art_id=395nbsp; http://chinaunix.net/jh/6/16555.html 感谢前人的付
[color=green:26b9f6daa1]作者:梁尚锋 网名:好好先生/longfei
原出处:www.chinaunix.net
参考文档:
http://www.chinalinuxpub.com/read.htm?id=1337 http://www.fengnet.com/showart.asp?art_id=395&cat_id=10 http://chinaunix.net/jh/6/16555.html感谢前人的付出 转载请保留上述信息
=========================================================================[/color:26b9f6daa1]
春去春来,一转眼在CU已经混了一年了。这一年来,我在CU学了很多很多,感谢CU,感谢大家的支持和关爱。
我是做技术的,思来想去还是写一篇技术方面的文档,来纪念一下这个特别的日子吧。闲言少叙,言归正传。
一.Time Server的搭建(在此我们使用ntp:Network Time Protocol)
Time Server即时间
服务器。我们经常会发现服务器上的时间不正确,这样会影响到我们的应用,有时甚至会带来一些不良后果。比如影响我们的备份,影响我们的
数据库的更新等。比较常见的解决方法是与公网上的时间服务器同步(只用使用crontab执行00 02 * * * /usr/sbin/ntpdate 195.13.1.153就行了,后面的195.13.1.153就是公网上可以用的时间服务器之一),但这样做计算机必须能连接公网,这样也许会有一些
安全问题。并且如果你的计算机在内网不能直接连接公网的时间服务器的话,那就……今天我们就来讲一讲搭建我们自己的时间服务器的做法。
方法一:时间服务器与公网上的时间服务器同步,其它机器与自己的时间服务器同步。缺点:时间服务器还要暴露在公网上。
步骤:
1.检查是否有相应的包
[code:1:26b9f6daa1]# rpm -qa |grep ntp
ntp-4.1.1a-9
chkfontpath-1.9.6-3[/code:1:26b9f6daa1]
如果没有ntp这个包,则从光盘上装上。执行下面命令安装NTP的RPM包:
# rpm -ivh ntp-4.1.1a-9.i386.rpm(我使用的是redhat8.0,请根据你的实际情况安装对应的包)
2.修改配置文件
/etc/ntp.conf是ntp的主要配置文件,里面设置了你用来同步时间的时间服务器的域名或者IP地址,下面是到互联网同步时间的最基本的配置:
首先我们来定义自己喜欢的时间服务器:(可用的时间服务器,参看
http://chinaunix.net/jh/5/100591.html,或者参看:
http://www.eecis.udel.edu/~mills/ntp/servers.html)
[code:1:26b9f6daa1]server 195.13.1.153
server 194.137.39.67[/code:1:26b9f6daa1]
接下来,我们设置上面两台服务器的访问权限,在这个例子中我们不允许它们修改或者查询我们配置在
Linux上的NTP服务器。
[code:1:26b9f6daa1]restrict 195.13.1.153 mask 255.255.255.255 nomodify notrap noquery
restrict 194.137.39.67 mask 255.255.255.255 nomodify notrap noquery[/code:1:26b9f6daa1]
说明:掩码255.255.255.255是用来限制远程NTP服务器的掩码地址。
然后设置允许访问的内网机器。请注意,配置中noquery已经去掉了:
[code:1:26b9f6daa1]restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap[/code:1:26b9f6daa1]
在此例中,掩码地址扩展为255,因此从192.168.1.1-192.168.1.254的计算机都可以使用我们的NTP服务器来同步时间。如果你想限制的更严格一点,你可以修改你的掩码。
最后,也是最重要的是默认的限制配置要从你配置文件中删除,否则它将覆盖你所有的配置选项,你会发现如果不删除该配置,你的时间服务器将只能和自己通讯。如果ntp.conf中有以下一行,请将它注释:
[code:1:26b9f6daa1]# restrict default ignore[/code:1:26b9f6daa1]
3.检查可用性
a.保存你的配置文件,然后对每个你在ntp.conf里配置的时间服务器执一下查询命令,确保这些上游时间服务器可用。
[code:1:26b9f6daa1]# ntpdate 195.13.1.153
27 Jun 10:12:01 ntpdate[25475]: adjust time server 133.100.11.8 offset -0.127154 sec
# ntpdate 194.137.39.67
27 Jun 10:12:06 ntpdate[25478]: adjust time server 133.100.9.2 offset 0.010008 sec[/code:1:26b9f6daa1]
b.执行下列命令
# ntpq -p
…… ……输出略
一个可以证明同步问题的证据是所有远程服务器的jitter值是4000并且delay和reach的值是0。
[code:1:26b9f6daa1] remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) LOCAL(0) 10 l - 64 7 0.000 0.000 0.008
* 0.0.0.0 16 u - 64 0 0.000 0.000 4000.00[/code:1:26b9f6daa1]
4.设置自启动
为了使NTP服务可以在系统引导的时候自动启动,执行:
[code:1:26b9f6daa1]# chkconfig ntpd on[/code:1:26b9f6daa1]
启动/关闭/重启NTP的命令是:
[code:1:26b9f6daa1]
# /etc/init.d/ntpd start
# /etc/init.d/ntpd stop[/code:1:26b9f6daa1] # /etc/init.d/ntpd restart
5.客户端的设置
a.linux客户端
以root身份登录,执行crontab -e输入00 02 * * * /usr/sbin/ntpdate 192.168.1.1(换成你的Time Server的ip)
这样就会在每天的凌晨两点自动与Time Server同步时间。
b.
windows Xp客户端
双击右下角的时间,出现“日期和时间属性”的窗口,选择Internet 时间,在服务器一栏中输入你的Time Server的ip,点击"立即更新",过几秒钟将能看到更新成功的提示。然后勾选“自动与Internet时间服务器同步”。点击确定。
方法二:时间服务器与自己的硬件时钟同步,其它机器与时间服务器同步。缺点:如果Time Server的硬件时钟不准确,则所有的时间将不准确。优点:更安全,没有暴露在公网上的机器。
unix类系统的时钟都有两种,一种是硬件时钟,一种是系统时钟。在此不在详述。步骤如下:
1.校准Time server的硬件时钟(可以直接在b
ios中设置),或者用hwclock命令来校对,例如: hwclock --set --date="6/16/04 11:14:05"
2.设置系统时间和硬件时钟同步:
输入:hwclock --hctosys.
3.修改配置文件
vi /etc/ntp.conf,我的ntp.conf如下
[code:1:26b9f6daa1]# Prohibit general a
clearcase/" target="_blank" >ccess to this service.
# restrict default ignore
# 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
# -- CLIENT NETWORK -------
# Permit systems on this network to synchronize with this
# time service. Do not permit those systems to modify the
# configuration of this service. Also, do not use those
# systems as peers for synchronization.
# restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap
# --- OUR TIMESERVERS -----
# or remove the default restrict line
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
# restrict mytrustedtimeserverip mask 255.255.255.255 nomodify notrap noquery
# --- NTP MULTICASTCLIENT ---
#multicastclient # listen on default 224.0.1.1
# restrict 224.0.1.1 mask 255.255.255.255 notrust nomodify notrap
# restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap
restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap
# --- GENERAL CONFIGURATION ---
#
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available. The
# default stratum is usually 3, but in this case we elect to use stratum
# 0. Since the server line does not have the prefer keyword, this driver
# is never used for synchronization, unless no other other
# synchronization source is available. In case the local host is
# controlled by some external source, such as an external oscillator or
# another protocol, the prefer keyword would cause the local host to
# disregard all other synchronization sources, unless the kernel
# modifications are in use and declare an unsynchronized condition
#
#server 127.127.1.0 # local clock
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 10
#
# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
#
driftfile /etc/ntp/drift
broadcastdelay 0.008
#
# Authentication delay. If you use, or plan to use someday, the
# authentication facility you should make the programs in the auth_stuff
# directory and figure out what this number should be on your machine.
#
authenticate yes
#
# Keys file. If you w
ant to diddle your server at run time, make a
# keys file (mode 600 for sure) and define the key number to be
# used for making requests.
#
# PLEASE DO NOT USE THE DEFAULT VALUES HERE. Pick your own, or remote
# systems might be able to reset your clock at will. Note also that
# ntpd is started with a -A flag, disabling authentication, that
# will have to be removed as well.
#
keys /etc/ntp/keys[/code:1:26b9f6daa1]
其它设置和方法一相同,启动ntp服务,配置客户端即可。
二.NIS 服务器的配置
NIS即:Network Information Services
网络信息服务,我们使用它可以对系统信息进行集中管理。
1.服务器端配置(假设ip为192.168.0.1)
a.检查是否安装了下列包
[code:1:26b9f6daa1]portmap
ypserv
ypbind
yp-tools
make[/code:1:26b9f6daa1]
缺哪个装哪个吧。
b.vi /etc/sysconfig/network
增加下面一行:
NISDOMAIN=redhat(这里你可以用你喜欢的域名,不必使用FQDN)
c.为立刻使上述设置生效,运行:
# domainname redhat
d.vi /var/yp/Makefile,找到all: passwd group ......这一行,修改如下:
all: passwd group
e.启动ypserv服务
[code:1:26b9f6daa1]# service portmap start
# service ypserv start[/code:1:26b9f6daa1]
f.初始化NIS数据库,运行:
#[code:1:26b9f6daa1] /usr/lib/yp/ypinit -m[/code:1:26b9f6daa1]
注意:1) 若以上配置有问题,会显示出错。
2) 提示增加hosts,按[CTRL-D]
g.若上部没有错误,重新起动ypserv
[code:1:26b9f6daa1]# service ypserv restart [/code:1:26b9f6daa1]
h.启动密码进程:
[code:1:26b9f6daa1]# service yppasswdd start[/code:1:26b9f6daa1]
i.检查进程是否真的运行,运行:
[code:1:26b9f6daa1]# ps auxf | grep yp[/code:1:26b9f6daa1]
j.检查日志,确定NIS服务是否真的正常,运行:
[code:1:26b9f6daa1]# tail /var/log/messages[/code:1:26b9f6daa1]
2.linux客户端配置
a.检查是否安装下列包
[code:1:26b9f6daa1]portmap
ypbine
yp-tools
authconfig[/code:1:26b9f6daa1]
缺哪个装哪个吧。
b.确认服务器端打开portmap服务:
[code:1:26b9f6daa1]# rpcinfo -p 192.168.0.1
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 32768 status
100011 1 udp 851 rquotad
100011 2 udp 851 rquotad
100011 1 tcp 854 rquotad
100011 2 tcp 854 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100021 1 udp 32787 nlockmgr
100021 3 udp 32787 nlockmgr
100021 4 udp 32787 nlockmgr
100021 1 tcp 32769 nlockmgr
100021 3 tcp 32769 nlockmgr
100021 4 tcp 32769 nlockmgr
100005 1 udp 867 mountd
100005 1 tcp 870 mountd
100005 3 udp 867 mountd
100005 3 tcp 870 mountd
100004 2 udp 663 ypserv
100004 1 udp 663 ypserv
100004 2 tcp 666 ypserv
100004 1 tcp 666 ypserv
100009 1 udp 680 yppasswdd
391991 100 tcp 7325[/code:1:26b9f6daa1]
c.用authconfig工具,配置客户端访问服务器。如下图
[img:26b9f6daa1]
http://www.ltesting.net/uploads/2007/07/1_200707032329402.gif[/img:26b9f6daa1]图一
[img:26b9f6daa1]
http://www.ltesting.net/uploads/2007/07/1_200707032329401.gif[/img:26b9f6daa1]图二
d.authconfig结束时,ypbind会自动启动。tail -f /var/log/messages 看有无报错
e.运行# ypcat passwd 看服务器提供了哪些用户。
3.solaris客户端配置
a.cp /etc/nsswitch.nis /etc/nsswitch.conf
b.vi /etc/hosts 添加NIS Server的hostname 和 IP
c.domainname redhat
d.vi /etc/defaultdomain添加一行
redhat
e.ypinit –c
然后输入你的NIS Server的hostname,按ctrl+d,按y退出。
f./usr/lib/netsvc/yp/ypstart
#ypwhich –m :查看NIS server的数据库信息,如果看到说明NIS client 成功
4.测试
a.在NIS Server上新增一用户
[code:1:26b9f6daa1]useradd test
passwd test[/code:1:26b9f6daa1]
b.cd /var/yp
执行make命令
c.在客户机上用test用户登录
5.注意事项
a.NIS Server的自启动
在服务器端输入ntsysv,选择
[code:1:26b9f6daa1]portmap
ypserv
yppasswdd [/code:1:26b9f6daa1]
这个地方你一定要注意让它自启动,否则下次开机nis server不能启动的话,客户端查询不到nis server,将不能登录。
b.每增加一个用户,或者用户修改了密码等,要在服务器端的/var/yp下执行一下make命令。
c.新增用户和修改密码一定要在NIS Server上进行,这样所有的客户端就会自动更新。
后记:就写这么多吧,这是我近期的学习总结,也算是送给自己和CU的周岁献礼吧。欢迎与我交流。
javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">
|
authconfig图二
| authconfig图一
q1208c 回复于:2004-06-16 12:40:45 | 这么麻烦呀! 不玩了。
不过,还是谢谢版主啦!
| swingcoder 回复于:2004-06-16 13:30:52 | linux下是怎么截图的,若没装GNOME/KDE
| 好好先生 回复于:2004-06-16 13:37:41 | [quote:7726d7b1d3="swingcoder"]linux下是怎么截图的,若没装GNOME/KDE[/quote:7726d7b1d3]
我是用的putty连接的服务器,然后抓的图。没有xwindow的话,我也不清楚linux下怎么截图,如果有按PrintScreenSysRq那个键就行了。
| 零二年的夏天 回复于:2004-06-16 14:33:24 | 有机会尝试一下,最近在更改网络,可能会添加几台Linux系统。 :D
终端下截图在一句话中提供了一种方法的。 :D
| likuku 回复于:2004-06-16 21:31:30 | 此文NTP部分 “引用”不少www.cnfug.org的一篇文章,怎么不著明???
| sw_yp 回复于:2004-06-16 22:15:52 | 不错,很详细。。。
| likuku 回复于:2004-06-16 22:56:40 | http://www.cnfug.org/journal/archives/000038.html
www.cnfug.org 的NTP 的原文: [quote:0048abdb88]系统时间同步及ntp服务的提供
tonight <dingxin@sea.plala.or.jp>
电脑的时间放置不理的话过不久就会出现误差。 这个误差会反映在email送信时刻的time stamp上,会反映在你的论坛帖子发表时刻上。至少我遇到过这个问题。 网络上有ntp(network time protocol)服务器,提供当前的时刻。我们可以将本地的时刻与ntp服务器的时刻进行同步。
目的如下: 1,启动时用ntpdate进行时刻修正。 2,启动中,通过ntpd进行时刻校正的同时,将各个客户端电脑的时刻也进行同期校正。 3,如果不能找到ntp服务器,那么就使用local time,同时同步客户。
全世界约有100多个ntp服务器,从下面地址找一个离你最近的
http://www.eecis.udel.edu/~mills/ntp/clock1a.html 我选择了两个
clock.nc.fukuoka-u.ac.jp 133.100.9.2 clock.tl.fukuoka-u.ac.jp 133.100.11.8
步骤:
FreeBSD中有两个标准的ntp程序,其一为ntpdate。 ntpdate通过从ntp服务器获取时刻,调整本地时刻。
# ntpdate clock.nc.fukuoka-u.ac.jp 9 Oct 18:12:23 ntpdate: step time server 133.100.9.2 offset -19.112674 大约有19秒钟的误差
自动设定
# grep ntpdate /etc/defaults/rc.conf >>/etc/rc.conf # vi /etc/rc.conf ntpdate_enable="YES" # Run ntpdate to sync time on boot (or NO). ntpdate_program="ntpdate" # path to ntpdate, if you want a different one. ntpdate_flags="clock.nc.fukuoka-u.ac.jp" # Flags to ntpdate (if enabled). 重新启动以后就运行了,当然设定没有完,不必急着启动 FreeBSD的另一个标准ntp程序,ntp ntp程序使的获取ntp时刻的同时,向其他pc提供时刻。
添加文件ntp.conf:
用来作为标准时刻的ntp服务器我选择了两个
clock.nc.fukuoka-u.ac.jp 133.100.9.2 clock.tl.fukuoka-u.ac.jp 133.100.11.8
同时指定复数个服务器也没有问题,系统会自动选择一个可以信赖的。 这里,为避免多余的DNS数据包传递,我们直接指定IP地址。 server行 server 127.127.1.0 为参考本地时刻时用的地址。然后用fudge指定阶层编号为5,降低其优先度。
接着用restrict对每一个IP地址指定相应的规则。 最后,指定波长校正用的drift文档保存地址。关于这个命令行,具体的含义不太清楚。不过如果没有的话,时间校正起来就会比较慢
# vi /etc/ntp.conf server 133.100.9.2 #clock.nc.fukuoka-u.ac.jp server 133.100.11.8 #clock.tl.fukuoka-u.ac.jp server 127.127.1.0 fudge 127.127.0.1 stratum 5 restrict default ignore restrict 127.0.0.0 mask 255.0.0.0 restrict 192.168.1.0 mask 255.255.255.0 noquery nopeer notrust restrict 133.100.9.2 noquery restrict 133.100.11.8 noquery driftfile /etc/ntpd.drift 启动测试
# ntpd -p /var/run/ntpd.pid # tail /var/log/messages Oct 9 16:46:56 chiwawa ntpd[89409]: ntpd 4.1.0-a Thu Apr 3 08:26:24 GMT 2003 (1) Oct 9 16:46:56 chiwawa ntpd[89409]: kernel time discipline status 2040 ...... Oct 9 16:50:10 chiwawa ntpd[89409]: time set -0.189546 s 看到类似的结果就可以了。
运行测试 ntpd的运行用ntpq命令
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *clock.nc.fukuok .GPS. 1 u 43 64 37 19.067 -6.884 10.339 +clock.tl.fukuok .GPS. 1 u 36 64 35 19.670 -3.259 2.341 LOCAL(0) LOCAL(0) 5 l 45 64 37 0.000 0.000 0.001 启动后到时刻校正完成需要一点时间。*是第一候补,+是第二。 本地时刻校正完成以后就可以为其他PC提供时刻校正服务了。
自动启动的设定 完成以上设定,确认运行无误以后:
# grep ntpd /etc/defaults/rc.conf >>/etc/rc.conf # vi /etc/rc.conf xntpd_enable="YES" # Run ntpd Network Time Protocol (or NO). xntpd_program="ntpd" # path to ntpd, if you want a different one. xntpd_flags="-p /var/run/ntpd.pid" # Flags to ntpd (if enabled).
往rc.conf追加上面3行内容,并修改。 客户端PC设定: UNIX OS
# vi /etc/ntp.conf server [local ntp server IP] prefer driftfile /etc/ntpd.drift 或者追加下面内容到crontab,这样,每过一个小时0分的时候就自动更新。 # vi /etc/crontab 0 * * * * root ntpdate [ntp server IP] >/dev/null 2>&1 当然,你的主机其实也是一个客户机,这些内容也可以用上。 Windows
精工的网站上有下载软件,不过是日语的 http://www.seiko-p.co.jp/systems/down/time.html windows2000自带了sntp机能,请自己研究吧。 [/quote:0048abdb88]
| 好好先生 回复于:2004-06-17 10:00:40 | [quote:ed8f286a3e="likuku"]此文NTP部分 “引用”不少www.cnfug.org的一篇文章,怎么不著明???[/quote:ed8f286a3e]
谢谢你的提醒,我已经在我的文档上注明了参考文档. :oops: 但很遗憾,我并不知道你说的那篇文章.如果有相似之处,也许真的是巧合吧.
再次感谢你的提醒!谢谢!
| llzqq 回复于:2004-06-17 10:27:38 | 好啊好啊,有空在研究
| iambuku 回复于:2004-06-17 10:35:54 | [quote:3decb004d0="好好先生"]
我是用的putty连接的服务器,然后抓的图。没有xwindow的话,我也不清楚linux下怎么截图,如果有按PrintScreenSysRq那个键就行了。[/quote:3decb004d0] :| :| :| SecureCRT按PrintScreen之后 他就会很听话的用打印机打出来,真的是打印屏幕。。5555 :em16: :em16:
| 不想发言 回复于:2004-06-17 10:42:34 | [quote:ad78e525d8="iambuku"]:| :| :| SecureCRT按PrintScreen之后 他就会很听话的用打印机打出来,真的是打印屏幕。。5555 :em16: :em16:[/quote:ad78e525d8]
hehe,Maybe you can use "Alt + PrinterScreenSysRq".
| platinum 回复于:2004-06-17 13:56:08 | 好贴!顶!!!!!!
| lovelock 回复于:2005-01-10 18:33:51 | 好好先生: 请教一下,我NIS配置c/s端都没有问题,客户端也可以解析到dns,但是ypcat passwd的时候,就没有任何返回,也不报错,我不知道可能是哪里的问题,请您帮忙分析一下,配置过程和您提供的基本相同。 先谢啦!:)
| zmlul 回复于:2005-05-26 23:06:10 | NIS差不多是windows上的域控制器,不知道是谁抄谁。
| 網中人 回复于:2005-05-27 01:49:04 | [quote:22e1be5dc5="zmlul"]NIS差不多是windows上的域控制器,不知道是谁抄谁。[/quote:22e1be5dc5]
差很多~~~~
nis 只是一種簡單的 diretory 服務, 簡單來說, 在 /etc 底下找不到就到 nis 去找而已. 但是 windows DC 主要是在 authentication 上的集中管理. 你理解一下 domain 的 authen token , 再回來看 nis 差在哪不遲.
|
原文转自:http://www.ltesting.net
|
|
|
|