最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

【云盤搭建】NextCloud+vsftpd+LDAP融合服務云盤平臺搭建歷程

2023-06-24 08:36 作者:Microsoft365  | 我要投稿

近日上層對原有老舊FTP云盤平臺提出升級要求,具體如下:

  1. 搭建一個類似于Dropbox的新云盤,提供Web網頁、移動App等諸多訪問方式,提高易用性和性能水平;

  2. 兼顧老同事的使用習慣,保留傳統(tǒng)的FTP使用方式(使用Windows文件資源管理器訪問),做到無縫銜接、用戶無感知平滑過渡;

  3. 提供統(tǒng)一的服務體驗,使得新云盤可以和FTP合作,同步文件訪問、文件修改;

  4. 為確保用戶敏感信息安全,希望采用統(tǒng)一身份驗證方案,多平臺實現(xiàn)用戶憑據統(tǒng)一存儲、修改、查驗。

經過綜合考慮,我們選擇了NextCloud作為新一代云盤平臺。作為一款免費的云盤項目,其提供了Web網頁端、移動端、WebDAV等多種訪問方式,能夠滿足跨平臺協(xié)作的需求;同時NextCloud操作簡便、易于上手,且易于安裝維護,可以極大節(jié)省人力成本,降低后期運營維護技術門檻。通過啟用插件,NextCloud還可以進一步擴展其功能,從而滿足更多需求。

原有FTP平臺采用Windows Server 2003+Serv-U 6.x方案,經綜合測試考慮,我們采用了Linux+vsftpd解決方案。作為一款開源、免費的FTP服務端軟件,vsftpd支持MySQL、LDAP等多種外部認證方案,同時配置靈活度高,可定制選項豐富,能夠最大限度滿足用戶需要。

對于統(tǒng)一身份驗證方案,我們采用了LDAP。相比于MySQL,LDAP能夠實現(xiàn)數(shù)據快速檢索讀取,減少服務器資源開銷。同時LDAP被眾多應用程序和服務器支持,幾乎不會遇到兼容性、支持性問題,便于快速對接。

針對統(tǒng)一協(xié)作、數(shù)據同步的需求,經過研究討論,最終決定將vsftpd的數(shù)據目錄設置為NextCloud的數(shù)據目錄,讓兩者共同使用www-data賬戶,共同讀取、操作相同的文件目錄。

初步規(guī)劃完成,開始著手測試。



NextCloud安裝配置

本例中,我們使用傳統(tǒng)的手動下載離線安裝包的方式進行NextCloud的部署。除了下載zip離線安裝包外,NextCloud還提供了snap一鍵安裝、VM打包鏡像等方式進行部署,可以根據實際需要合理選擇。

下圖列出了官方的系統(tǒng)要求。推薦閱讀NextCloud的官方Admin手冊。

https://docs.nextcloud.com/server/stable/admin_manual/
  • 下載安裝包

默認情況下,NextCloud官網提供最新的zip安裝包。如果希望下載舊版本,可以點擊下方的?older versions or major releases 超鏈接,下載舊版本NextCloud。


NextCloud官網-下載頁面
  • 安裝NextCloud

將zip文件夾拷貝至Linux系統(tǒng)中,并解壓縮至/var/www/html/目錄下。

設置該文件夾的權限,確保www-data用戶對nextcloud目錄有合適的權限。

本例選擇了Ubuntu 22.04 LTS系統(tǒng)。出于排錯調試考慮,本例安裝了帶有桌面體驗的系統(tǒng)版本。

拷貝
  • 安裝Apache、PHP等組件

出于個人習慣考慮,我選擇了Apache。使用nginx之類的也沒有問題。

NextCloud官方目前已經支持到PHP 8.2,本例部署時間較早,仍然使用PHP 8.0。出于安全性等考慮,推薦各位小伙伴使用新版PHP 8.2。

NC官方給出的PHP安裝要求
  • 初步配置運行Apache

本地瀏覽器訪問localhost,看到歡迎界面表示配置成功。

  • 安裝配置MySQL

具體添加、刪除用戶和修改密碼的命令不再贅述。

此處創(chuàng)建nextcloud使用的MySQL數(shù)據庫賬號和數(shù)據庫。

我并不會告訴你,為了偷懶,我直接用MySQL Workbench連接到了127.0.0.1并使用GUI界面完成了用戶添加和數(shù)據庫創(chuàng)建。XD。

  • 修改PHP配置

打開/etc/php/8.0/fpm/php.ini,將下方三個值改大,提高性能。這里我統(tǒng)一改成了4096.

  • 修改NC配置文件

修改默認語言為CN中文,同時增加受信任域名(FQDN或IP地址)。只有通過受信任域名才能訪問NC。

NC默認將文件夾映射關系存儲在數(shù)據庫中,因而本地文件目錄可能與NC中文件目錄不同。因此應如本例所示,增添一行filesystem_check_changes項,使NC同步本地目錄。

  • 完成NextCloud安裝

瀏覽器訪問NextCloud域名或IP地址,根據引導完成數(shù)據庫連接配置、管理員密碼設置等,進入初始界面。

初始界面
  • 配置LDAP

在初始頁面,點擊個人頭像-應用,找到名為“LDAP user and group backend”的應用,點擊 啟用。當其按鈕變?yōu)?禁用 時,表明該應用已經成功啟用。

已啟用。

點擊個人頭像-管理設置,從左側列表中找到LDAP/AD集成,進行LDAP配置。

考慮文章篇幅限制,這里不再贅述如何搭建LDAP服務器。本例中,我在本機上使用OpenLDAP搭建了LDAP服務,管理員用戶名:密碼=admin:admin,域名為mywebpc.com,并創(chuàng)建了cn=test2、userPassword=admin的測試用戶。

本例中的LDAP配置僅供參考,各人實際情況不完全相同。

當所有信息都填寫完畢后,點擊“測試 Base DN”,我們應該看到其提示“配置完成”。此時點擊繼續(xù)。


第二步中,選擇我們希望允許登錄的用戶的對象類(Object Class)。

完成后,點擊“驗證設置和統(tǒng)計用戶”,確保用戶數(shù)量和預期的一致,然后點擊“繼續(xù)”。

實在是

第三步、第四步中,根據自己的實際需求進行設置。

懶得寫
注釋了

這里需要注意一點,默認情況下,NextCloud會自動同步LDAP中的用戶信息,并使用用戶的UUID作為用戶文件夾的名稱。這對于NC自己來說沒什么,但對于vsftpd無疑是增加了一道障礙(原因詳見下文),因此我們需要多一步配置。

點擊右上角的“專家”,修改內部用戶名屬性。由于我在LDAP服務器中將cn配置成了用戶名,因此我在這里修改為“cn”。這樣,NC將以cn屬性(用戶名)命名用戶文件夾。

如圖,修改前用戶文件夾如第一個所示,修改后用戶文件夾如最后一個所示。

此外,我們希望用戶可以通過NC重置、修改LDAP中的密碼。因此我們點擊“高級”-“目錄設置”,勾選“每個用戶可以更改LDAP密碼”。下次修改密碼時,NC默認會以SSHA方式加密密碼并存儲在LDAP中。

至此,NC配置基本完成。此時,我們應該可以在NextCloud的用戶列表里看到test2用戶。使用test2:admin登錄NC,成功來到用戶主頁。

請無視被打碼的其他用戶...
test2


vsftpd配置

  • 安裝vsftpd

  • 安裝、配置pam_ldap對接模塊

安裝過程中會提示我們手動輸入相關信息完成配置。這里不再贅述。

安裝完畢后,查看pam_ldap配置文件,確認配置正確。

本例中的LDAP配置文件內容僅供參考,各人實際情況不完全相同。

  • 修改vsftpd外部驗證方案配置文件

通過安裝、配置pam_ldap模塊,我們得以讓應用程序借助該模塊連接LDAP服務器并完成用戶身份驗證;而要想讓應用程序通過LDAP方式實現(xiàn)身份驗證,我們需要明確告訴應用程序:請采用LDAP身份驗證方案。因此我們修改vsftpd的外部驗證方案配置文件,使其指向pam_ldap模塊:

配置文件最下方追加如下兩行:

  • 創(chuàng)建、修改vsftpd用戶配置文件

這一步的意義,請參見下文“修改vsftpd主配置文件”中的第二條!

格式:/var/www/html/nextcloud/data/{username}/files

  • 修改vsftpd主配置文件

這里需要說明幾個配置項:

  1. 為了讓vsftpd讀取剛才的外部驗證方案配置文件,我們添加一項:pam_service_name=vsftpd,這里的值就是配置文件的文件名。這樣,vsftpd就會讀取該配置文件,而配置文件中又明確指向了pam_ldap模塊,所以vsftpd會采用LDAP驗證方式驗證用戶身份。在LDAP配置文件中,我們配置了LDAP服務器的URI地址、用戶名、Base DN等信息,這使得pam_ldap模塊可以成功連接到LDAP服務器并進行用戶身份查驗。至此,vsftpd就可以順利通過LDAP方式驗證用戶身份。

  2. 驗證用戶身份后,vsftpd需要知道這個用戶的FTP文件夾根目錄的位置,而每個用戶的文件夾隨自身用戶名變化,顯然各有不同。因此我們配置一項: user_config_dir=/etc/vsftpd/user_conf ,告訴vsftpd用戶配置文件的路徑,這樣vsftpd將會讀取/etc/vsftpd/user_conf/{username}這個配置文件。每個用戶的用戶名都不同,所以我們需要創(chuàng)建以用戶名為文件名、等量于用戶數(shù)量的配置文件,并在配置文件中指定用戶的根目錄。這一步可以通過Linux腳本進行批量創(chuàng)建設置。

  3. 由于NextCloud將數(shù)據存放在data/{username}/files目錄中,該目錄顯然不能設置為只讀,否則NC將無法刪除該用戶。但出于安全性考慮,vsftpd默認強制要求用戶FTP根目錄為只讀,否則將會在登錄成功后收到錯誤提醒并被強制關閉連接。因此我們增添一項 allow_writeable_chroot=YES ,從而讓vsftpd允許用戶FTP根目錄不為只讀。

  4. 默認情況下,F(xiàn)TP虛擬用戶創(chuàng)建的文件夾的umask為077,這代表該文件夾的權限為700。這看起來沒有什么問題,但在實際測試中發(fā)現(xiàn),無論文件所有者是誰,F(xiàn)TP用戶都無法讀取權限為700的文件夾內容。在掉了一把又一把頭發(fā)之后,我明智地決定,將umask修改為011,從而使新文件夾的權限變?yōu)?66,成功解決該問題。后來測試中發(fā)現(xiàn),只要將權限設置為704即可解決問題。原因未知。歡迎各位小伙伴交流反饋!

  5. 在vsftpd中,LDAP中的用戶(從配置文件、MySQL等外部數(shù)據源讀取的用戶)被視作虛擬用戶,虛擬用戶被映射到一個Linux上的真實用戶身上,從而使得虛擬用戶可以“附身”真實用戶進行文件增刪改操作。為了簡便配置、減少文件權限沖突,我們使用www-data用戶作為映射用戶,這樣無論是從vsftpd還是從NC創(chuàng)建的文件(夾),都將以www-data為所有者。為此我們增添兩條配置:guest_enable=YES;guest_username=www-data。其中guest就是映射用戶。

  • 重新啟動vsftpd服務

在另一臺機器上打開FTP客戶端,使用test2:admin登錄,我們應該可以成功登錄FTP服務器,并看到和在NC主界面一樣的文件內容。

嘗試在FTP中對文件進行修改,然后在NC中查看文件的變化。反之亦然。我們應該會看到,兩邊的文件目錄和文件內容始終保持一致。比如,在FTP中刪除一個PDF,那么在NC中,這個PDF也將消失。進行多輪測試,確保兩邊的數(shù)據同步體驗一致。

嘗試在NC中修改用戶密碼,然后分別嘗試使用舊密碼和新密碼登錄FTP。我們應該看到,使用舊密碼登錄失敗,而使用新密碼登錄成功。這表明我們成功通過LDAP實現(xiàn)了用戶憑據的統(tǒng)一管理。

至此,Quest Clear.



感興趣的話,不妨點個贊唄!

【云盤搭建】NextCloud+vsftpd+LDAP融合服務云盤平臺搭建歷程的評論 (共 條)

分享到微博請遵守國家法律
荣成市| 克拉玛依市| 芮城县| 潮安县| 宁远县| 义乌市| 卢氏县| 延庆县| 佛学| 昭苏县| 阳山县| 民丰县| 渝北区| 大方县| 浙江省| 利辛县| 三穗县| 晴隆县| 临夏县| 镇宁| 乌兰察布市| 寿宁县| 井研县| 石柱| 左云县| 府谷县| 瓮安县| 开封市| 扶绥县| 永年县| 兴海县| 山阳县| 修文县| 恩施市| 新绛县| 灌云县| 天长市| 调兵山市| 凤山县| 上饶市| 霍邱县|