在Linux中為非SSH用戶配置SFTP環(huán)境
在某些環(huán)境中,系統(tǒng)管理員想要允許極少數(shù)用戶在可以傳輸文件到Linux機(jī)器中,但是不允許使用 SSH。要實(shí)現(xiàn)這一目的,我們可以使用SFTP,并為其構(gòu)建chroot環(huán)境。
SFTP & chroot背景:
SFTP是指SSH文件傳輸協(xié)議(SSH File Transfer protocol)或安全文件傳輸協(xié)議(Secure File Transfer Protocol),它提供了可信數(shù)據(jù)流下的文件訪問、文件傳輸以及文件管理功能。當(dāng)我們?yōu)镾FTP配置chroot環(huán)境后,只有被許可的用戶可以訪問,并被限制到他們的家目錄中,換言之:被許可的用戶將處于牢籠環(huán)境中,在此環(huán)境中它們甚至不能切換它們的目錄。
在本文中,我們將配置RHEL 6.X 和 CentOS 6.X中的SFTP Chroot環(huán)境。我們開啟一個(gè)用戶帳號(hào)‘Jack’,該用戶將被允許在Linux機(jī)器上傳輸文件,但沒有ssh訪問權(quán)限。
步驟:1 創(chuàng)建組
- [root@localhost ~]# groupadd sftp_users
步驟:2 分配附屬組(sftp_users)給用戶
如果用戶在系統(tǒng)上不存在,使用以下命令創(chuàng)建( LCTT 譯注:這里給用戶指定了一個(gè)不能登錄的 shell,以防止通過 ssh 登錄):
- [root@localhost ~]# useradd -G sftp_users -s /sbin/nologin jack
- [root@localhost ~]# passwd jack
對(duì)于已經(jīng)存在的用戶,使用以下usermod命令進(jìn)行修改:
- [root@localhost ~]# usermod –G sftp_users -s /sbin/nologin jack
注意:如果你想要修改用戶的默認(rèn)家目錄,那么可以在useradd和usermod命令中使用‘-d’選項(xiàng),并設(shè)置合適的權(quán)限。
步驟:3 現(xiàn)在編輯配置文件 “/etc/ssh/sshd_config”
- # vi /etc/ssh/sshd_config
- #comment out the below line and add a line like below
- #Subsystem sftp /usr/libexec/openssh/sftp-server
- Subsystem sftp internal-sftp
- # add Below lines at the end of file
- Match Group sftp_users
- X11Forwarding no
- AllowTcpForwarding no
- ChrootDirectory %h
- ForceCommand internal-sftp
此處:
- Match Group sftp_users – 該參數(shù)指定以下的行將僅僅匹配sftp_users組中的用戶
- ChrootDirectory %h – 該參數(shù)指定用戶驗(yàn)證后用于chroot環(huán)境的路徑(默認(rèn)的用戶家目錄)。對(duì)于用戶 Jack,該路徑就是/home/jack。
- ForceCommand internal-sftp – 該參數(shù)強(qiáng)制執(zhí)行內(nèi)部sftp,并忽略任何~/.ssh/rc文件中的命令。
重啟ssh服務(wù)
- # service sshd restart
步驟:4 設(shè)置權(quán)限:
- [root@localhost ~]# chmod 755 /home/jack
- [root@localhost ~]# chown root /home/jack
- [root@localhost ~]# chgrp -R sftp_users /home/jack
如果你想要允許jack用戶上傳文件,那么創(chuàng)建一個(gè)上傳文件夾,設(shè)置權(quán)限如下:
[root@localhost jack]# mkdir /home/jack/upload
[root@localhost jack]# chown jack. /home/jack upload/
步驟:5 現(xiàn)在嘗試訪問系統(tǒng)并進(jìn)行測(cè)試
嘗試通過ssh訪問系統(tǒng)
正如下圖所示,用戶jack通過SFTP登錄,而且因?yàn)閏hroot環(huán)境不能切換目錄。
現(xiàn)在進(jìn)行上傳和下載測(cè)試,如下圖:
正如上圖所示,jack用戶的上傳下載功能都工作得很好。
via: http://www.linuxtechi.com/configure-chroot-sftp-in-linux/
作者:Pradeep Kumar 譯者:GOLinux 校對(duì):wxy