您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)samba + OPENldap搭建文件共享服務(wù)器的方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
這里我使用的是 samba(文件共享服務(wù)) v4.9.1 + OPENldap(后端數(shù)據(jù)庫軟件) v2.4.44 + smbldap-tools(后端數(shù)據(jù)庫管理軟件) v0.9.11 + CentOS7。 如果有不同,可能會有部分問題。
注:
samba 的功能不只有文件共享,還可以作為一臺Windows域成員,甚至Windows域控制器。千萬不要認(rèn)為samba只是一個文件共享服務(wù)。
由于我們使用了samba的文件共享功能,與文件權(quán)限有直接的聯(lián)系,所以samba中的使用的用戶必須是Linux中能查詢到。因為使用了 OPENldap 作為samba 的后端數(shù)據(jù)庫,所以我們這里還需要配置Linux能查詢到 OPENldap 中的用戶信息,也就是需要配置 NSS。關(guān)于NSS部分的配置需要在smbldap-tools 初始化ldap數(shù)據(jù)庫后完成NSS部分的配置,需要注意!??!
samba 有使用PAM作為認(rèn)證模塊,和使用其自帶的認(rèn)證程序,在CentOS中編譯時配置的是使用其自帶的認(rèn)證程序,所以PAM的配置可以省略。
如果想要配置OPENldap中的用戶可以登入系統(tǒng),可以查閱這篇文章:《配置Linux使用LDAP用戶認(rèn)證》,其中的配置與本文中的配置并不相同,需要注意?。。?/p>
初始化配置
yum 源和網(wǎng)絡(luò)配置省略。
yum -y install samba openldap-servers openldap-clients smbldap-tools nss-pam-ldapd
配置OPENldap服務(wù)
這里只進(jìn)行簡單的服務(wù)配置,數(shù)據(jù)庫配置這里會使用 smbldap-tools 進(jìn)行配置,如果不知道OPENldap 可以去看看這篇文章:《OPENLDAP 服務(wù)搭建和后期管理》
這里將 OPENldap 所有配置清空,重新配置。
# 首先備份文件,以免無法復(fù)原 mkdir /root/back tar -Jcvf /root/back/slapd.config-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /etc/openldap/slapd.d/ tar -Jcvf /root/back/slapd.data-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /var/lib/ldap/ # 然后再刪除配置文件 rm -rf /etc/openldap/slapd.d/* rm -rf /var/lib/ldap/* # 復(fù)制一個samba的schema文件 cp /usr/share/doc/samba-4.9.1/LDAP/samba.ldif /etc/openldap/schema/
這里的配置文件我是從/usr/share/openldap-servers/slapd.ldif
中復(fù)制過來,并修改成如下這個樣子的。主要修改了baseDN(suffix), OPENLDAPTLS,olcRootPW(密碼由 slappasswd 生成,本文中的密碼為: 123456) 和 include
# file: /tmp/slapd.ldif dn: cn=config objectClass: olcGlobal cn: config olcArgsFile: /var/run/openldap/slapd.args olcPidFile: /var/run/openldap/slapd.pid dn: cn=schema,cn=config objectClass: olcSchemaConfig cn: schema include: file:///etc/openldap/schema/core.ldif include: file:///etc/openldap/schema/cosine.ldif include: file:///etc/openldap/schema/nis.ldif include: file:///etc/openldap/schema/inetorgperson.ldif include: file:///etc/openldap/schema/samba.ldif dn: olcDatabase=frontend,cn=config objectClass: olcDatabaseConfig objectClass: olcFrontendConfig olcDatabase: frontend dn: olcDatabase=config,cn=config objectClass: olcDatabaseConfig olcDatabase: config olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none dn: olcDatabase=monitor,cn=config objectClass: olcDatabaseConfig olcDatabase: monitor olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=black,dc=com" read by * none dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: hdb olcSuffix: dc=black,dc=com olcRootDN: cn=Manager,dc=black,dc=com olcRootPW: {SSHA}l1vBI/HOMKLEiQZgcm3Co+hFQI68rH1Q olcDbDirectory: /var/lib/ldap olcDbIndex: objectClass eq,pres olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub,uid
根據(jù)配置生成服務(wù)器的配置文件
slapadd -F "/etc/openldap/slapd.d/" -b "cn=config" -l /tmp/slapd.ldif # 這里還需要注意文件屬主還是root的,需要改回為openldap chown -R ldap:ldap /etc/openldap/slapd.d/* # 然后再開啟服務(wù)即可 systemctl start slapd
_#################### 100.00% eta none elapsed none fast!
Closing DB...
注:這里只配置了OPENldap中的服務(wù)配置部分,沒有配置OPENldap 的數(shù)據(jù)庫,這里再次強(qiáng)調(diào)以下。
配置 samba
這里只是為了測試使用samba 與 OPENldap 的使用,就不進(jìn)行過于復(fù)雜的文件共享配置了,只共享一個用戶的家目錄僅供測試。
# file: /etc/samba/smb.conf [global] workgroup = MYGROUP # 指定共享組名稱。 server string = Samba Server Version %v log file = /var/log/samba/log # 日志 security = user # 指定安全級別為User passdb backend = ldapsam:ldap://127.0.0.1 # 指定passdb 的后端數(shù)據(jù)庫使用ldapsam ldap suffix = dc=black,dc=com # 指定ldap的 suffix ldap user suffix = ou=People # 指定用戶的 suffix 段位 ou=People 這里會與上一個suffix結(jié)合。 ldap group suffix = ou=Group # 上同,指定的是用戶組。 ldap admin dn = cn=Manager,dc=black,dc=com # 指定查詢ldap服務(wù)使用的管理員用戶 ldap ssl = no # 指定不使用SSL加密。 load printers = no # 指定不加載共享打印機(jī)。 [homes] comment = Home Directories browseable = no writable = yes create mask = 0600 directory mask = 700
smbpasswd -w 123456 # 存儲用于連接 LDAP 服務(wù)的用戶密碼,?。?!非常重要,否則無法啟動smb服務(wù)。
啟動samba服務(wù)
systemctl start nmb systemctl start smb
smbldap-tools 配置
這里使用 smbldap-tools 來快速完成 samba 服務(wù)所需要的數(shù)據(jù)信息,同時通過 smblda-tools 來進(jìn)行用戶段管理。但是smbldap-tools 有一個缺點就是 不會管你本地用戶是否有相同的 UID 或則 GID,可能有沖突,需要注意。
smbldap 會從 /etc/samba/smb.conf 讀取部分信息,所以需要先配置好samba再配置 smbldap-tools 服務(wù)。
smbldap-config # 配置 smbldap-tools 的配置,這里使用smbldap-conifg 簡易配置。
這里省略下面的配置過程,不知道的默認(rèn)即可。
smbldap-populate # 初始化配置 OPENldap 數(shù)據(jù)庫。
這里再創(chuàng)建一個用戶用于后面的測試使用。
smbldap-useradd -a -m User1 # 添加用戶User2 # -a: 指定添加的用戶類型為Windows,這樣samba 才能識別到該用戶。 # -m: 指定創(chuàng)建該用戶的家目錄。 smbldap-passwd User1 # 修改該用戶的用戶密碼
這里省略該用戶的密碼修改過程。
這樣 OPENldap 的數(shù)據(jù)庫初始化就完成了,這樣就能去查詢OPENldap 中的內(nèi)容了。如下圖,這個就是smbldap-populate
所創(chuàng)建的內(nèi)容了。下圖為 apache Directory Studio,有興趣可以去研究一下《apache Directory Studio 簡易使用》
在圖中我們可以看到 UID = root 和 nobody 的用戶,我并不想讓這些特殊用戶登入到服務(wù)器,所以在下面的配置,我會通過 fliter 將這2個用戶過濾掉。
NSS 配置
這里的NSS配置主要就是需要配置,NSS 將 LDAP 的請求轉(zhuǎn)發(fā)給 nslcd ,由 nslcd 來查詢 OPENldap 中的用戶信息。
首先配置 NSS ,只需添加 passwd 段和 group 段的ldap認(rèn)證即可。
# file: /etc/nsswitch.conf passwd: files ldap shadow: files group: files ldap hosts: files dns myhostname bootparams: nisplus [NOTFOUND=return] files ethers: files netmasks: files networks: files protocols: files rpc: files services: files sss netgroup: nisplus sss publickey: nisplus automount: files nisplus sss aliases: files nisplus
然后配置 nslcd, 注意 nslcd 是以daemon 形式運(yùn)行的,主要配置后重啟。
# file:/etc/nslcd.conf uid nslcd gid ldap uri ldap://127.0.0.1/ # ldap URL地址 base dc=black,dc=com # base dn 路徑 binddn cn=Manager,dc=black,dc=com # 指定連接的用戶 bindpw 123456 # 指定密碼 ssl no # 指定不要使用SSL 加密連接。 filter passwd (&(objectClass=posixAccount)(uidNumber>=1000)) # 編寫 passwd 的過濾規(guī)則。 filter group (&(objectClass=posixGroup)(gidNumber>=500)) # 上同,編寫的是 group Copy chmod 600 /etc/nslcd.conf # 配置文件權(quán)限,非常重要,否則無法啟動服務(wù)。 systemctl start nslcd # 啟動 nslcd 服務(wù)。
我們這里測試以下 NSS 的配置是否可用
getent passwd User1
User1:*:1001:513:System User:/var/smb/User1:/bin/bash
如上可見,我們配置的 NSS 和 OPENldap 服務(wù) 已經(jīng)生效了,下面我們再來繼續(xù)配置samba,使其可用。
samba 權(quán)限配置
如果看的比較仔細(xì)的人,就會發(fā)現(xiàn)我將用戶的home 目錄位置存放在了/var/smb
位置,主要是為了不與系統(tǒng)中的用戶搞混。并且這樣可以通過SELinux來隔離samba 禁止訪問 /home
路徑下的資源,詳細(xì)請看下面操作。
# 上面通過 smbldap-useradd 命令,已經(jīng)創(chuàng)建了用戶的home 目錄, # 下面可以直接進(jìn)行SELinux 的相關(guān)配置了。 semanage fcontext -a -t samba_share_t '/var/smb(/.*)?' # 修改/var/smb 路徑的默認(rèn)type,這里我用 samba 共享使用的type,SELinux 默認(rèn)允許訪問這個type類型 # 如果要使samba 可以訪問 /home 則應(yīng)當(dāng)開啟 samba_enable_home_dirs 這個 bool 值。 # 但是 我這里因為使用的是 samba_share_t 這個 type 類型,所以無需開啟 任何 bool 值,這樣就能使samba只能訪問到 /var/smb 和 samba 其他所需文件。 restorecon -R /var/smb/ # 然后我們在重置 /var/smb 目錄下的SELinux type 類型即可。 Copy # 這里我們就能進(jìn)行samba的測試了 smbclient -L //127.0.0.1/ -U User1
這里我們也就可看到了,User1 用戶已經(jīng)可以登入并查詢到共享目錄了。
那么我們這里直接登入進(jìn)去,上傳一些文件做一些測試:
OK,那么這樣一個samba 的文件共享就完成了。
感謝各位的閱讀!關(guān)于“samba + OPENldap搭建文件共享服務(wù)器的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。