日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

ubuntu sftp服务器搭建

發布時間:2023/12/31 Ubuntu 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntu sftp服务器搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、SFTP是什么

SFTP(SSH File Transfer Protocol)是一個比普通FTP更為安全的文件傳輸協議。它工作在SSH 上,確保文件被加密傳輸。默認使用端口是 22.

SFTP 常用客戶端軟件推薦使用 FileZilla,下載鏈接如下:
https://www.filezilla.cn/download/client

FileZilla 客戶端配置步驟:
打開 FileZilla --> 文件 --> 站點管理 --> 新站點 --> 常規 --> 協議選擇 SFTP --> 填寫主機 IP,用戶名,密碼 --> 連接

?

二、需求描述
1. 兩類 SFTP 用戶,給這兩類用戶分為兩個用戶組,分別命名為 sftp_root 和 sftp_read
2. sftp_root 用戶組可以對 SFTP 指定目錄擁有所有權限(讀,增,刪,改)
3. sftp_read 用戶組只有可讀權限,不允許刪除,上傳操作,只允許下載操作

三、在 Ubuntu 服務器上 搭建 SFTP 服務端

在 SFTP 搭建的過程中,遇到了一個客戶端連不上服務端的問題。根本原因是忽略了 SFTP “監獄”根目錄,導致每次都被拒絕鏈接。

“監獄”的根目錄必須滿足如下要求:所有者為root,其他任何用戶都不能擁有寫入權限。

“監獄”根目錄下需要創建 SFTP 共享目錄,該共享目錄才是 SFTP 用戶可以維護的目錄,“監獄”根目錄只能ssh等登錄ubuntu服務器后用root用戶維護。

以下步驟都是在 Ubuntu 服務器的終端中輸入命令。

1.?安裝OpenSSH服務器
sudo apt-get install openssh-server

2. 創建?sftp_root 和 sftp_read 用戶組
sudo addgroup sftp_root
sudo addgroup sftp_read

3. 創建使用 SFTP 的用戶,如果已經有已存在用戶了,也可以跳過改步驟
sudo adduser test_read_user1
sudo adduser test_read_user2
...
sudo adduser test_root_user1
sudo adduser test_root_user2
...

4. 將不同類別用戶添加到對應的用戶組
將?test_read_user1,test_read_user2 添加到?sftp_read 用戶組,并從所有其他用戶組中移除,同時關閉其Shell訪問
sudo usermod -G sftp_read -s /bin/false test_read_user1
sudo usermod -G sftp_read -s /bin/false test_read_user2
sudo usermod -a -G sftp_read test_root_user1
sudo usermod -a -G sftp_read test_root_user2

將?test_root_user1,test_root_user2 添加到?sftp_root?用戶組,但不從其他用戶組用移除(當然,也可以像 test_read_user1 一樣,同時關閉其Shell訪問,但不要從所有其他用戶組中移除
sudo usermod -a -G sftp_root?test_root_user1
sudo usermod -a -G sftp_root test_root_user2

以下步驟在自己沒有搞清楚原理前,請務必按照下面的步驟嚴格執行,不要有漏掉的,避免將來訪問權限不對,造成困惑。

5. 創建“監獄”根目錄和 SFTP 共享目錄并修改用戶和權限
以要共享?share1 和?share2 兩個目錄為例:
sudo mkdir /data/testSFTP
sudo mkdir /data/testSFTP/share1
sudo mkdir /data/testSFTP/share2

sudo chown root:sftp_read /data/testSFTP
sudo chmod 755 /data/testSFTP

sudo chown root:sftp_root /data/testSFTP/share1
sudo chown root:sftp_root /data/testSFTP/share2
sudo chmod 775 /data/testSFTP/share1
sudo chmod 775 /data/testSFTP/share2

6. 修改?SSH 配置文件
sudo vim /etc/ssh/sshd_config

#Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp AllowGroups sftp_root sftp_read rootMatch Group sftp_readAllowTcpForwarding noX11Forwarding noForceCommand internal-sftpChrootDirectory /data/testSFTP

相關配置解釋如下:
(1)添加 sftp 子系統,SFTP 根目錄會根據下面的 Match 進行匹配,如果沒有匹配到而且還在 AllowGroups 的用戶組,那么 SFTP 根目錄會是用戶根目錄,比如,/home/test_read_user1/
(2)允許 sftp_root sftp_read root 用戶組通過 SFTP 訪問 SFTP 服務器
(3)置 Match 的用戶組 sftp_read,只要在該用戶組的用戶,都要滿足 Match 下的限制條件
(4)禁止TCP Forwarding和X11 Forwarding;
? ? ? ? ?強制該組用戶僅僅使用SFTP;
? ? ? ? ?該用戶組根目錄為 /data/testSFTP

7. 重啟 ssh 服務
sudo service ssh restart

備注:如果您的網絡沒有硬件防火墻,也沒有設置ubuntu軟件防火墻(默認關閉的),那么理論上上講,可以通過 FileZilla 成功訪問該 SFTP 服務器了。

總結

以上是生活随笔為你收集整理的ubuntu sftp服务器搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。