Sftp搭建與配置參考
1. 介紹
sftp是Secure File Transfer Protocol的縮寫竞阐,安全文件傳送協(xié)議辰企〕枘埽可以為傳輸文件提供一種安全的加密方法夸楣。sftp 與 ftp 有著幾乎一樣的語(yǔ)法和功能椰苟。SFTP 為 SSH的一部分抑月,是一種傳輸檔案至 Blogger 伺服器的安全方式。其實(shí)在SSH軟件包中舆蝴,已經(jīng)包含了一個(gè)叫作SFTP(Secure File Transfer Protocol)的安全文件傳輸子系統(tǒng)谦絮,SFTP本身沒有單獨(dú)的守護(hù)進(jìn)程,它必須使用sshd守護(hù)進(jìn)程(端口號(hào)默認(rèn)是22)來完成相應(yīng)的連接操作洁仗,所以從某種意義上來說层皱,SFTP并不像一個(gè)服務(wù)器程序,而更像是一個(gè)客戶端程序赠潦。SFTP同樣是使用加密傳輸認(rèn)證信息和傳輸?shù)臄?shù)據(jù)叫胖,所以,使用SFTP是非常安全的她奥。但是瓮增,由于這種傳輸方式使用了加密/解密技術(shù),所以傳輸效率比普通的FTP要低得多哩俭,如果您對(duì)網(wǎng)絡(luò)安全性要求更高時(shí)绷跑,可以使用SFTP代替FTP。
2. sftp搭建
2.1查看openssl的版本
ssh -V
版本必須大于4.8p1,低于這個(gè)版本需要升級(jí)凡资。
2.2創(chuàng)建sftp組
groupadd sftp
2.3創(chuàng)建一個(gè)sftp用戶砸捏,用戶名為mysftp,密碼為mysftp
//該用戶不能通過sshd登陸到系統(tǒng)
useradd –g sftp –s /bin/false mysftp
//為用戶設(shè)置密碼
passwd mysftp
// 設(shè)置密碼
2.3sftp組的用戶的home目錄統(tǒng)一指定到/data/sftp下隙赁,按用戶名區(qū)分垦藏,這里先新建一個(gè)mysftp目錄,然后指定mysftp的home為/data/sftp/mysftp
mkdir -p /data/sftp/mysftp
usermod –d /data/sftp/mysftp mysftp
2.4配置sshd_config
文本編輯器打開 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
找到如下這行鸳谜,用#符號(hào)注釋掉膝藕。
# Subsystem sftp /usr/libexec/openssh/sftp-server
在文件最后面添加如下幾行內(nèi)容,然后保存咐扭。
Subsystem sftp internal-sftp
配置一個(gè)外部子系統(tǒng)(例如,一個(gè)文件傳輸守護(hù)進(jìn)程)滑废。僅用于SSH-2協(xié)議蝗肪。值是一個(gè)子系###統(tǒng)的名字和對(duì)應(yīng)的命令行(含選項(xiàng)和參數(shù))。比如"sftp /usr/libexec/openssh/sftp-server"蠕趁。薛闪,###這里配置為內(nèi)部的
Match Group sftp
限定只有sftp組的才能訪問
ChrootDirectory /data/sftp/%u
設(shè)定屬于用戶組sftp的用戶訪問的根文件夾
ForceCommand internal-sftp
強(qiáng)制執(zhí)行這里指定的命令而忽略客戶端提供的任何命令。這個(gè)命令將使用用戶的登錄###shell執(zhí)行(shell -c)俺陋。這可以應(yīng)用于 shell 豁延、命令昙篙、子系統(tǒng)的完成,通常用于 Match 塊中诱咏。###這個(gè)命令最初是在客戶端通過 SSH_ORIGINAL_COMMAND 環(huán)境變量來支持的苔可。
AllowTcpForwarding no
是否允許TCP轉(zhuǎn)發(fā),默認(rèn)值為"yes", 禁止TCP轉(zhuǎn)發(fā)并不能增強(qiáng)安全性袋狞,除非禁止了用戶###對(duì)shell的訪問焚辅,因?yàn)橛脩艨梢园惭b他們自己的轉(zhuǎn)發(fā)器。
X11Forwarding no
是否允許進(jìn)行 X11 轉(zhuǎn)發(fā)苟鸯。默認(rèn)值是"no"同蜻,設(shè)為"yes"表示允許。如果允許X11轉(zhuǎn)發(fā)并且sshd(8)代理的顯示區(qū)被配置為在含有通配符的地址(X11UseLocalhost)上監(jiān)聽早处。那么將可能有額外的信息被泄漏湾蔓。由于使用X11轉(zhuǎn)發(fā)的可能帶來的風(fēng)險(xiǎn),此指令默認(rèn)值為"no"砌梆。需要注意的是卵蛉,禁止X11轉(zhuǎn)發(fā)并不能禁止用戶轉(zhuǎn)發(fā)X11通信,因?yàn)橛脩艨梢园惭b他們自己的轉(zhuǎn)發(fā)器么库。
如果啟用了 UseLogin 傻丝,那么X11轉(zhuǎn)發(fā)將被自動(dòng)禁止。
2.5設(shè)定Chroot目錄權(quán)限
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
2.6建立SFTP用戶登入后可寫入的目錄
照上面設(shè)置后诉儒,在重啟sshd服務(wù)后葡缰,用戶mysftp已經(jīng)可以登錄。但使用chroot指定根目錄后忱反,根應(yīng)該是無法寫入的泛释,所以要新建一個(gè)目錄供mysftp上傳文件。這個(gè)目錄所有者為mysftp温算,所有組為sftp怜校,所有者有寫入權(quán)限,而所有組無寫入權(quán)限注竿。命令如下:
mkdir /data/sftp/mysftp/upload
chown mysftp:sftp /data/sftp/mysftp/upload
chmod 755 /data/sftp/mysftp/upload
2.7重啟sshd服務(wù)
service sshd restart
3.附錄
3.1sftp參考資料
http://blog.csdn.net/xinxin19881112/article/details/46831311
http://www.2cto.com/os/201401/272738.html
http://www.1949idc.com/shownews399.html
3.2 UNIX文件權(quán)限詳解參考資料
http://blog.csdn.net/astonqa/article/details/8292935###UNIX文件權(quán)限詳解(尤其是SUID和SGID)參照
3.3setfacl參考資料
http://cn.linux.vbird.org/linux_basic/0410accountmanager_3.php ###鳥哥的講解非常詳細(xì)
http://man.linuxde.net/setfacl
http://blog.csdn.net/qwq_qaq/article/details/54882203
基礎(chǔ)不牢茄茁,地動(dòng)山搖。 要謹(jǐn)慎巩割,冒進(jìn)的結(jié)果裙顽,就是回頭補(bǔ)課。