關於SAMBA和2003域控制器的配置

關於SAMBA和2003域控制器的配置
 
http://www.centeros.net華中網絡技術聯盟論壇)鑑於網絡上的一些說明關於SAMBA和2003域控制器的配置的文章不是很全面,且安全級別大多是在SHARE和USER級別,不能滿足企業安全級別(SERVER,DOMAIN,ADS)的需要,我花了一些時間去探索這方面的實踐,得出了一些經驗,和大家分享。
試驗環境:一臺PT600R(192.168.78.1,裝有LINUX,內核爲2.6.9-5.ELsmp;一臺WINDOWS2003域控制器且同時也是DNS服務器(192.168.78.250);兩者均在192.168.78.網段,且網路暢通。
因本文主要是介紹SAMBA方面的經驗,關於AD就不再贅述。
1,SAMBA的安裝。

1)準備工作:
www.samba.org上獲得最新的samba-3.0.21c.tar.gz,samba文件放置的目爲/tmp/samba/samba-3.0.21c.tar.gz;

2).編譯、安裝
首先進入/tmp/samba/samba-3.0.21c.tar.gz目錄下,執行解包指令
[root@erp4 samba]# gunzip samba-3.0.21c.tar.gz
[root@erp4 samba]# tar -vxf samba-3.0.21c.tar
然後進入samba-3.0.21c目錄下,在這個目錄中有一個whatsnew.txt的文件,這個文件記錄了samba-3.0.21c版本比以前幾 個版本修正的錯誤,如果英文不成問題的情況下,建議看看.在此不在贅述,然後直接進入source目錄下,samba在配置的時候提供了很多的參數,我們 一般用到的就是
      --with-smbmount
      --prefix=
好了,我們繼續來編譯
[root@erp4 samba-3.0.21c]# ./configure --with-smbmount --prefix=/usr/local/samba
執行make指令
[root@erp4 samba-3.0.21c]# make
這樣就可以創建二進制程序和手冊頁了,然後再執行make install
[root@erp4 samba-3.0.21c]# make install
這樣就將安裝文件安裝完了

2,SAMBA的配置。

   1)普通配置。
首先要將源代碼包中/examples/smb.conf.default文件拷貝到/usr/local/samba/lib下,並將其改名爲 smb.conf,然後通過運行/usr/local/samba/bin/testparm程序來測試smb.conf文件,如果testparm運行 OK就會列出可裝載的服務項,否則給出出錯信息.
然後進入/usr/local/samba/lib目錄下,去修改smb.conf配置文件,如果只是實現簡單需求的話,只需要更改相應的幾個簡單的
選項即可:
   security = share
找到security的地方,將默認security=user改爲share,即共享
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = @staff
然後再找到上面配置的地方,將前面的;號去掉,將path=處改爲你希望共享的目錄.

以上只是最簡單實現samba的方法,如果還需要其他的需求,可以根據自己的需求進行相應的設置
  
   2)高級配置。
筆者希望能將SAMBA加入到已經在域控制器192.168.78.250上配置好的FILESERVER.SCUT.EDU.CN裏,故在[global]裏做了如下的修改:
[global]
       workgroup = FILESERVER
       realm = FILESERVER.SCUT.EDU.CN
       netbios name = FILESERVER
       server string = FILESERVER
       security = ADS
       password server = 192.168.78.250
       passdb backend = tdbsam
       log file = /usr/local/samba/var/log.%m
       max log size = 10000
       dns proxy = No
       hosts allow = 202.112.18., 192.168.78., 127.

另外,由於WINDOWS2003上用的是KERBOROS的方式進行用戶認證,故現在將SAMBA所在的LINUX也做相應的調整,具體就是運行 “setup",若亂碼就unset LANG(在環境變量裏除去語言的環境變量),然後進入”Authentication configuration“進行修改,防火牆也應該關閉。

最後配置krb5.conf文件,路徑在/etc/krb5.conf,建議先備份一份,然後再去vi.注意:大小寫要區別。
筆者的配置如下:

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = FILESERVER.SCUT.EDU.CN
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
FILESERVER.SCUT.EDU.CN = {
   kdc = 192.168.78.250
   kdc = 192.168.78.250
   #admin_server = kerberos.example.com:749
   default_domain = fileserver.scut.edu.cn
}

FILESERVER.SCUT.EDU.CN = {
}

[domain_realm]
.example.com = FILESERVER.SCUT.EDU.CN
example.com = FILESERVER.SCUT.EDU.CN

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

4,將samba加入到域控制器裏。

1)連接2003服務器

kinit
[email protected]

Kerberos 的 kinit 命令將測試服務器間的通信,後面的域名FILESERVER.SCUT.EDU.CN是你的活動目錄的域名,必須大寫,否則會收到錯誤信息:
kinit(v5): Cannot find KDC for requested realm while getting initial credentials.

如果通信正常,你會提示輸入口令(爲域控制器上對應用戶的口令,此處對應管理員口令),口令正確的話,就返回 bash 提示符,如果錯誤則報告:
kinit(v5): Preauthentication failed while getting initial credentials.

2)加入域,共享WINDOWS上的信息。
若上一步操作成功,則將服務器加入活動目錄: /usr/local/samba/bin/net ads join
去 Windows 2003 服務器檢查上面的工作:打開活動目錄用戶和計算機,查看其中的條目,如果成功的話,就可以看到你的 Linux 服務器。
然後在 Linux 機器上,你就可以採用 smbclient 命令連接到 Windows 的共享文件夾(我的共享文件夾爲:fileserver),而不需要輸入口令(因爲採用了Kerberos )。
/usr/local/samba/bin/smbclient //192.168.78.250/fileserver -k

3)WINDOWS訪問SAMBA。
在HOST ALLOW所允許的IP段內的WIN的機器裏,在運行裏輸入:\\192.168.78.18;會彈出一個對話框,實質上是到域控制器(192.168.78.250)上去認證.輸入已經建立好的域裏的用戶名和密碼,就可以進去了.
注意:因爲用戶名的輸入格式爲:域名\用戶名,故域名必須在本機裏必須可以解析,故建議在本機的首選和次選DNS裏均寫192.168.78.250,因爲在搭建AD的同時,該機器也被搭建成了一個DNS服務器.

5,SAMBA的啓動和停止.

這是一個需要注意的地方,在以前的版本,包括2.2.5,2.2.6,2.2.7,2.2.8和2.2.8a都是通過執行
    /usr/local/samba/bin/smbd -D
    /usr/local/samba/bin/nmbd -D
來啓動服務,但是3.0.0以後的版本卻將守護進程smbd和nmbd放到/usr/local/sambd/sbin/的目錄下(更確切的說應該是samba3.0
將命令和系統服務的守護進程進行了分離來提高了它的安全性),
    這時就需要這樣來啓動服務了
    /usr/local/samba/sbin/smbd -D (UDP相關)
    /usr/local/samba/sbin/nmbd -D (TCP/IP相關)
    /usr/local/samba/sbin/winbindd -D (NT4和ADS DOMAIN相關,此處必須要!)
    如果希望開機時即運行samba服務,可以將服務啓動的指令寫道/etc/rc.d/rc.local的文件中,並在指令後邊加入&,來將
程序放到後臺運行.例如:
[root@erp4 lib]# vi /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

Touch /var/lock/subsys/local
/usr/local/samba/sbin/smbd -D &
/usr/local/samba/sbin/nmbd -D &
/usr/local/samba/sbin/winbindd -D &

停止的話就KILL相關進程,再起就可以了.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章