快速搭建Time Server與NIS Server.(轉)

post0發表於2007-08-11
快速搭建Time Server與NIS Server.(轉)[@more@]

作者:梁尚鋒 網名:好好先生/longfei

原出處:

參考文件:

    

    

感謝前人的付出  轉載請保留上述資訊

=========================================================================

  春去春來,一轉眼在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.檢查是否有相應的包

程式碼:

# rpm -qa |grep ntp

ntp-4.1.1a-9

chkfontpath-1.9.6-3

  如果沒有ntp這個包,則從光碟上裝上。執行下面命令安裝NTP的RPM包:

  # rpm -ivh ntp-4.1.1a-9.i386.rpm(我使用的是redhat8.0,請根據你的實際情況安裝對應的包)

  2.修改配置檔案

   /etc/ntp.conf是ntp的主要配置檔案,裡面設定了你用來同步時間的時間伺服器的域名或者IP地址,下面是到網際網路同步時間的最基本的配置:

  首先我們來定義自己喜歡的時間伺服器:(可用的時間伺服器,參看,或者參看:~mills/ntp/servers.html)

程式碼:

server 195.13.1.153

server 194.137.39.67

  接下來,我們設定上面兩臺伺服器的訪問許可權,在這個例子中我們不允許它們修改或者查詢我們配置在Linux上的NTP伺服器。

程式碼:

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

  說明:掩碼255.255.255.255是用來限制遠端NTP伺服器的掩碼地址。

  然後設定允許訪問的內網機器。請注意,配置中noquery已經去掉了:

程式碼:

restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap

  在此例中,掩碼地址擴充套件為255,因此從192.168.1.1-192.168.1.254的計算機都可以使用我們的NTP伺服器來同步時間。如果你想限制的更嚴格一點,你可以修改你的掩碼。

  最後,也是最重要的是預設的限制配置要從你配置檔案中刪除,否則它將覆蓋你所有的配置選項,你會發現如果不刪除該配置,你的時間伺服器將只能和自己通訊。如果ntp.conf中有以下一行,請將它註釋:

程式碼:

# restrict default ignore

  3.檢查可用性

  a.儲存你的配置檔案,然後對每個你在ntp.conf裡配置的時間伺服器執一下查詢命令,確保這些上游時間伺服器可用。

程式碼:

# 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

  b.執行下列命令

  # ntpq -p

…… ……輸出略

  一個可以證明同步問題的證據是所有遠端伺服器的jitter值是4000並且delay和reach的值是0。

程式碼:

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

  4.設定自啟動

  為了使NTP服務可以在系統引導的時候自動啟動,執行:

程式碼:

# chkconfig ntpd on

  啟動/關閉/重啟NTP的命令是:

程式碼:

# /etc/init.d/ntpd start

# /etc/init.d/ntpd stop

# /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的硬體時鐘(可以直接在bios中設定),或者用hwclock命令來校對,例如: hwclock --set --date="6/16/04 11:14:05"

  2.設定系統時間和硬體時鐘同步:

   輸入:hwclock --hctosys.

  3.修改配置檔案

   vi /etc/ntp.conf,我的ntp.conf如下

程式碼:

# Prohibit general access 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 want 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

  其它設定和方法一相同,啟動ntp服務,配置客戶端即可。

  二.NIS 伺服器的配置

  NIS即:Network Information Services 網路資訊服務,我們使用它可以對系統資訊進行集中管理。

  1.伺服器端配置(假設ip為192.168.0.1)

   a.檢查是否安裝了下列包

程式碼:

portmap

ypserv

ypbind

yp-tools

make

  缺哪個裝哪個吧。

  b.vi /etc/sysconfig/network

  增加下面一行:

  NISDOMAIN=redhat(這裡你可以用你喜歡的域名,不必使用FQDN)

  c.為立刻使上述設定生效,執行:

  # domainname redhat

  d.vi /var/yp/Makefile,找到all: passwd group ......這一行,修改如下:

  all: passwd group

  e.啟動ypserv服務

程式碼:

# service portmap start

# service ypserv start

  f.初始化NIS資料庫,執行:

  #

程式碼:

/usr/lib/yp/ypinit -m

  注意:1) 若以上配置有問題,會顯示出錯。

     2) 提示增加hosts,按[CTRL-D]

  g.若上部沒有錯誤,重新起動ypserv

程式碼:

# service ypserv restart

  h.啟動密碼程式:

  

程式碼:

# service yppasswdd start

  i.檢查程式是否真的執行,執行:

程式碼:

# ps auxf | grep yp

  j.檢查日誌,確定NIS服務是否真的正常,執行:

程式碼:

# tail /var/log/messages

  2.linux客戶端配置

  a.檢查是否安裝下列包

程式碼:

portmap

ypbine

yp-tools

authconfig

  缺哪個裝哪個吧。

  b.確認伺服器端開啟portmap服務:

  

程式碼:

# 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

  c.用authconfig工具,配置客戶端訪問伺服器。如下圖

圖一

圖二

  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上新增一使用者

   

程式碼:

useradd test

passwd test

  b.cd /var/yp

  執行make命令

  c.在客戶機上用test使用者登入

  5.注意事項

   a.NIS Server的自啟動

    在伺服器端輸入ntsysv,選擇

程式碼:

portmap

ypserv

yppasswdd

   這個地方你一定要注意讓它自啟動,否則下次開機nis server不能啟動的話,客戶端查詢不到nis server,將不能登入。

  b.每增加一個使用者,或者使用者修改了密碼等,要在伺服器端的/var/yp下執行一下make命令。

  c.新增使用者和修改密碼一定要在NIS Server上進行,這樣所有的客戶端就會自動更新。

  後記:就寫這麼多吧,這是我近期的學習總結,也算是送給自己和CU的週歲獻禮吧。歡迎與我交流。

tu2.gif

authconfig圖二

tu1.gif

authconfig圖一

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-945240/,如需轉載,請註明出處,否則將追究法律責任。

相關文章