//samba基礎知識linux
1.工做端口 UDP協議端口:137,138 tcp協議端口:139,445 2.軟件包 samba samba-client.x86_64 samba-common 3.啓動服務 service smb restart 4.配置文件 [global]---全局設置 ------------------------- A. security:share/user/server/domain share:不須要用戶名和密碼,匿名登陸 user:需用戶名和密碼 server: 用戶名和密碼在指定的一臺samba上驗證,驗證錯誤,客戶端會用user級別訪問 domain:服務器加入window域環境,驗證工做由windows域控制器負責。 ads:使用ads安全級別加入到windows域環境中,包含有domain級別中的全部功能,能夠具有域控制器的功能。 B. config file = /etc/samba/smb.conf.%U #%U是變量,指代登陸用戶名 [說明] ##security設爲user時,samba服務器必須建立一些用戶名和密碼供客戶端登陸使用,這些賬號必須是linux系統中存在的用戶,當用戶登陸時,其在共享文件夾裏的權限是其所用賬號在samba所在linux中的權限 -------------------------- [share_config]---共享目錄設置 ------------------- [public] ---共享目錄名稱 //10.10.54.226/public comment = Public Stuff ---標識 path = /home/samba ---服務器端共享目錄的存儲路徑(要有權限) writable = yes ---是否具備寫入權限 read only = yes ---只讀權限 browseable = no ---共享目錄是否可見(no爲隱藏,yes可見) guest ok = yes ---匿名用戶是否能夠訪問 write list = +staff ---指定那些用戶或者用戶組能夠寫入 --------------------
//samba測試工具ios
1:pdbedit:管理samba 用戶數據庫的一個工具 pdbedit -a -u username 增長一個samba用戶 pdbedit -x samba_user 刪除用戶 pdbedit 查看建立的samba用戶 2.工具2:samba測試命令 smbstatus -pS -u username smbclient -L 10.10.54.150 #查看後面所接主機上提供的共享資源 smbclient -L 10.10.54.150 -Uboss#以賬號boss訪問主機上的資源 smbclient //10.10.54.150/centos -Uboss%boss1 #相似ftp的登陸,直接操做服務器共享文件夾 mount -t cifs //10.10.54.150/centos /mnt/smb -o username=boss,password=boss1 #掛載
//例一:創建共享目錄爲softs,安全級別爲share,只容許10.10.54.0/24網段訪問shell
1.一下題目中,環境都是: samba服務器:10.10.54.150---centos6.4 客戶機:10.10.54.158----ubuntu13 2.配置文件 ---------------------- shell> vim /etc/samba/smb.conf [global] security = share hosts allow = 10.10.54.0/24 [softs] comment = public path = /home/softs writeable = no browseable = yes ---------------------
//例二:創建共享目錄爲share,對全部人只有只讀權限
數據庫
1.##配置[服務器:150] ----------------------------- shell> vim /etc/samba/smb.conf [global] security = share [share] comment = public path = /pub read only = yes writable = no ------------------------------ 2.##測試[客戶機:158] shell> smbclient //10.10.54.150/softs WARNING: The security=share option is deprecated Enter root's password: Domain=[HELLO,1003-LJ] OS=[Unix] Server=[Samba 3.6.9-151.el6] Server not using user level security and no password supplied. smb: \> ls smb: \> mkdir 12 NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \12 #只讀
//例三:使用smbclient命令登陸samba服務器,並下載共享資源到/temp目錄ubuntu
1.配置[服務器:150] ------------------------------- shell> vim /etc/samba/smb.conf [global] security = share [share] comment = public path = /pub read only = yes writable = yes ------------------------------- 2.測試[客戶機:158] shell> cd /tmp shell> smbclient //10.10.54.150/share smb: \> mkdir mkdir <dirname> smb: \> ls . D 0 Tue Mar 4 17:03:55 2014 .. D 0 Tue Mar 4 15:43:53 2014 openssl-1.0.1e.tar.gz A 4459777 Mon Mar 3 09:38:52 2014 smb: \> get openssl-1.0.1e.tar.gz getting file \openssl-1.0.1e.tar.gz of size 4459777 as openssl-1.0.1e.tar.gz (82174.4 KiloBytes/sec) (average 82174.5 KiloBytes/sec)
//例四:創建共享目錄爲centos,其絕對路徑爲/share/centos,只有boss賬號能夠讀寫該目錄,其餘人只能讀取vim
1.配置[服務器:150] ------------------------------ shell> vim /etc/samba/smb.conf [global] security = user [centos] comment = public path = /pub guest ok = no read only = yes writable = boss --------------------------- 2.創建賬號 shell> useradd boss shell> useradd test shell> pdbedit -a -u boss shell> pdbedit -a -u test shell> pdbedit -L boss:502: test:504: 3.測試[客戶機:158] ----測試boss shell> smbclient //10.10.54.150/centos -Uboss Enter boss's password: Domain=[HELLO,1003-LJ] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: \> mkdir 12 smb: \> ls . D 0 Tue Mar 4 17:14:35 2014 .. D 0 Tue Mar 4 15:43:53 2014 12 D 0 Tue Mar 4 17:14:35 2014 39371 blocks of size 524288. 32159 blocks available ---測試test shell> smbclient //10.10.54.150/centos -Utest Enter test's password: Domain=[HELLO,1003-LJ] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: \> ls . D 0 Tue Mar 4 17:14:35 2014 .. D 0 Tue Mar 4 15:43:53 2014 12 D 0 Tue Mar 4 17:14:35 2014 39371 blocks of size 524288. 32159 blocks available smb: \> mkdir 13 NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \13
//結合window2008活動目錄,配置samba,用戶名和密碼認證來自活動目錄。
windows
//環境說明 1.linux上的samba做爲一臺文件服務器監聽用戶請求,用戶使用用戶名和密碼認證方式登陸samba服務器,默認狀況下,samba服務器自帶一個保存登陸用戶名和密碼的數據庫來實現對登陸用戶的身份確認 2.samba加入windows2008活動目錄後,samba服務器再也不保存用戶名和密碼這些信息,而是把這些信息存儲在windows server域控制器上,當用戶使用用戶名和密碼登陸samba服務器時,身份認證工做由windows server上的活動目錄負責,認證經過的用戶就可使用samba服務器提供的資源 3.由上面兩點,咱們能夠知道,要驗證samba是否成功加入windows server的域,首先要在windows server的test.com(下面步驟中會建立)域中建立一個用戶,而後在linux主機上使用這個建立的用戶名和密碼登陸samba服務器,若是能夠登陸,那麼說明samba加入成功 //windows域和工做組概念 1.局域網上的資源須要管理,「域」和「工做組」就是兩種不一樣的網絡資源管理模式 2.工做組:局域網上可能有不少的計算機存在,爲了管理和查找的方便,將不一樣的電腦按不一樣分類分紅一個個的工做組,這樣方便管理和查找 3.工做組的不足之處是: A.工做組中每一臺計算機都獨立維護本身的資源,不能集中管理全部的網絡資源 B.每一臺計算機都在本地存儲用戶的帳戶 C.一個帳戶只能登陸到一臺計算機 D.工做組中的計算機都是平等的,對於其它計算機來講便是服務器,也是客戶機 4.域(Domain)是一個共用「目錄服務數據庫」的計算機和用戶的集合,域是邏輯分組,與網絡的物理拓撲無關,能夠很小,好比只有一臺DC,也能夠很大,包括遍及世界各地的計算機,好比大型跨國公司網絡上的域 正是因爲全部域成員計算機和域用戶都共用這個域的「目錄服務數據庫」,域管理員就能夠基於域的「目錄服務數據庫」來進行集中管理、共享資源,如用戶、組、計算機賬號、權限設置、組策略設置等等。目錄服務爲管理員提供從網絡上任何一個計算機上查看和管理用戶和網絡資源的能力。目錄服務也爲用戶提供惟一的用戶名和密碼,用戶只需一次登陸,便可訪問本域或有信任關係的其它域上的全部資源(固然用戶得有權限才行),而不須要屢次提供用戶名和密碼登陸。 //windows2008上建立域控制器 ##10.10.54.152機子做爲域控制器和DNS服務器 1.域控制器上存儲着Active Directory,首先在網絡和共享中內心更改網卡的首選DNS爲改本機IP 2.開始菜單-運行對話框中輸入dcpromo開始安裝,新的域名爲test.com,安裝過程大多默認便可,DNS提示那一步選是 3.完成後重啓系統 //linux上配置samba加入windows域 #Win 2008 Server是域控制器,linux是samba服務器,客戶端提交的認證請求和受權是經過Kerberos5協議來完成的,因此要讓Linux的samba服務器支持windows server的域認證 1.軟件安裝 shell> yum install krb5* -y shell> rpm -qa | grep krb5 krb5-server-1.10.3-10.el6.x86_64 pam_krb5-2.3.11-9.el6.x86_64 krb5-workstation-1.10.3-10.el6.x86_64 krb5-devel-1.10.3-10.el6.x86_64 krb5-libs-1.10.3-10.el6.x86_64 2.配置/etc/krb5.conf ----------------------------------------- [logging]#日誌文件位置 default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [kdc] profile = /var/kerberos/krb5kdc/kdc.conf [libdefaults] default_realm = TEST.COM #大寫,windows2008活動目錄域名,剛纔在windows上建立的test.com dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] TEST.COM = { kdc = 10.10.54.152:88 #域控制器的IP admin_server = 10.10.54.152:749 default_domain = TEST.COM } [domain_realm] .test.com = TEST.COM #指定域 test.com = TEST.COM [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } shell>vim /var/kerberos/krb5kdc/kdc.conf [realms] TEST.COM = { #修改成TEST.COM ... ------------------------------------------------- 3.配置/etc/nsswitch.conf passwd: files winbind #先讀files,而後再經過winbind認證 shadow: files winbind group: files winbind 4.配置/etc/samba/smb.conf ------------------------------------------ workgroup = TEST #工做組 server string = Filesrv password server = 10.10.54.152 #密碼服務器地址,用於存放身份信息 realm = TEST.COM #認證服務器域名,全部認證信息都將由該服務器來提供。 security = ads #ads:使用ads安全級別加入到windows域環境中 netbios name = MYSERVER #centos netbios名,加入後會顯示在windows server域的computers中 idmap uid = 16777216-33554431 idmap gid = 16777216-33554431 template shell = /bin/bash template homedir = /home/%U winbind use default domain = true winbind offline logon = true winbind enum groups = yes winbind enum users = yes winbind separator = / [centos] #共享的目錄 comment = centos path = /home/samba guest ok = no read only = yes write list = boss browseable = yes #passdb backend = tdbsam #這行註釋掉,不使用samba自己的密碼認證 ----------------------------------------- 5.修改linux DNS服務器指向windows域IP shell> vim /etc/resolv.conf nameserver 10.10.54.152 6.重啓samba和winbind服務 shell> service winbind restart shell> service smb restart //samba加入windows域控制器中 1. shell> kinit administrator@TEST.COM #TEST.COM爲在windows上建立的域,注意大小寫 Password for administrator@TEST.COM: #輸入的密碼是windows 2008管理員密碼,沒有提示說明測試成功 2.net 命令加入windows域 shell> net ads/rpc join -U administrator@TEST.COM Enter administrator@TEST.COM's password: Using short domain name -- TEST Joined 'MYSERVER' to dns domain 'test.com' No DNS domain configured for myserver. Unable to perform DNS Update. DNS update failed! #此時在windos2008 Active Directory管理中心 test.com 域下能夠看到myserver 3.一些驗證 #驗證加入是否成功 shell> net ads testjoin Join is OK #查看域用戶 sehll> wbinfo -u MYSERVER/boss MYSERVER/me MYSERVER/test MYSERVER/shift1 MYSERVER/shift2 MYSERVER/shift3 administrator guest krbtgt #查看域用戶組 shell> wbinfo -g domain computers domain controllers schema admins enterprise admins cert publishers domain admins domain users domain guests group policy creator owners ras and ias servers allowed rodc password replication group denied rodc password replication group read-only domain controllers enterprise read-only domain controllers dnsadmins dnsupdateproxy //測試windows活動目錄認證是否生效 1.在windows 活動目錄中建立用戶test,而後在linux上查看用戶信息 shell> wbinfo -u MYSERVER/boss #linux機子上用戶 MYSERVER/me MYSERVER/test administrator #下面是windows server上用戶 guest krbtgt test #剛纔在windows server上建立的域用戶 2.驗證是否能夠登陸samba服務器 [ubuntu:158機子] shell> smbclient //10.10.54.150/centos -Utest #用剛纔在windows2008中建立的test用戶登陸 WARNING: The security=share option is deprecated Enter test's password: session setup failed: NT_STATUS_LOGON_FAILURE ##登陸失敗了! /etc/samba/smb.conf 中指定的realm是 TEST.COM shell> smbclient //10.10.54.150/centos -W=TEST.COM -Utest #使用TEST.COM這個域組 WARNING: The security=share option is deprecated Enter test's password: Domain=[TEST] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: \> ls . D 0 Wed Mar 5 21:20:25 2014 .. D 0 Wed Mar 5 21:20:20 2014 game.sh A 4846 Wed Mar 5 21:20:25 2014 39371 blocks of size 524288. 32159 blocks available ##測試成功