FTP服務(wù)
軟件安裝包: vsftpd
默認(rèn)發(fā)布目錄: /var/ftp
協(xié)議接口: 21/tcp
服務(wù)配置文件: /etc/vsftpd/vsftpd.conf
報(bào)錯(cuò)id的解析:
500 ##文件系統(tǒng)權(quán)限過(guò)大
530 ##用戶認(rèn)證失敗
550 ##服務(wù)本身功能未開(kāi)放
553 ##文件權(quán)過(guò)小
FTP(File Transfer Protocol),是文件傳輸協(xié)議的簡(jiǎn)稱。用于Inte.NET上的控制文件的雙向傳輸。同時(shí),
它也是一個(gè)應(yīng)用程序(Application),用戶可以通過(guò)它把自己的PC機(jī)與世界各地所有運(yùn)行FTP協(xié)議的服務(wù)器相連,
訪問(wèn)服務(wù)器上的大量程序和信息。
FTP的主要功能是實(shí)現(xiàn)各種操作系統(tǒng)之間的文件交流,建立一個(gè)統(tǒng)一的文件傳輸協(xié)議。
ftp:// ##文件傳輸協(xié)議
vsftpd ##FTP服務(wù)器包
安裝包
服務(wù)端: vsftd
客戶端: lftp
服務(wù)端部署ftp服務(wù)
yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
添加防火墻策略
##添加防火墻策略,讓火墻允許ftp服務(wù); --permanent表示永久添加
firewall-cmd --permanent --add-service=ftp
Success
##重新加載;必須執(zhí)行,否則不生效
firewall-cmd --reload
success
firewall-cmd --list-all
關(guān)閉selinux
##查看selinux的狀態(tài)
getenforce Enforcing
vim /etc/sysconfig/selinux
SELINUX=disabled
reboot
客戶端部署
yum -y install lftp
連接命令:
lftp 172.25.254.234 -u chunyu
基本命令使用
##本地用戶登陸
[kIOSk@foundation34 ~]$ lftp 172.25.254.234 -u westos
Password:
lftp [email protected]:~> ls
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile1
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile2
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile3
##上傳文件
lftp [email protected]:~> put /etc/passwd
3190 bytes transferred
lftp [email protected]:~> ls
-rw-r--r-- 1 1001 1001 3190 Oct 31 15:19 passwd
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile1
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile2
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile3
##刪除文件
lftp [email protected]:~> rm passwd
rm ok, `passwd' removed
lftp [email protected]:~> ls
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile1
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile2
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile3
##新建目錄
lftp [email protected]:~> mkdir hello
mkdir ok, `hello' created
lftp [email protected]:~> ls
drwxr-xr-x 2 1001 1001 6 Oct 31 15:20 hello
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile1
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile2
-rw-r--r-- 1 0 0 0 Oct 31 15:18 westosfile3
##但不能用使用touch命令 因?yàn)閒tp服務(wù)界面并非支持所有shell中的所有命令
lftp [email protected]:~> touch file
Unknown command `touch'.
lftp [email protected]:~> exit
連接后使用命令錯(cuò)誤提示
Fatal error: Certificate verification: Not trusted
解決辦法:
臨時(shí)解決
直接在lftp命令提示符下輸入:set ssl:verify-certificate no 回車
永久生效:
編輯/etc/lftp.conf,加入下面內(nèi)容:
set ssl:verify-certificate no
SFTP服務(wù)
sftp是Secure File Transfer Protocol的縮寫(xiě),安全文件傳送協(xié)議。可以為傳輸文件提供一種安全的網(wǎng)絡(luò)的加密方法。SFTP 為 SSH的其中一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。其實(shí)在SSH軟件包中,已經(jīng)包含了一個(gè)叫作SFTP(Secure File Transfer Protocol)的安全文件信息傳輸子系統(tǒng),SFTP本身沒(méi)有單獨(dú)的守護(hù)進(jìn)程,它必須使用sshd守護(hù)進(jìn)程(端口號(hào)默認(rèn)是22)來(lái)完成相應(yīng)的連接和答復(fù)操作,所以從某種意義上來(lái)說(shuō),SFTP并不像一個(gè)服務(wù)器程序,而更像是一個(gè)客戶端程序。SFTP同樣是使用加密傳輸認(rèn)證信息和傳輸?shù)臄?shù)據(jù),所以,使用SFTP是非常安全的。但是,由于這種傳輸方式使用了加密/解密技術(shù),所以傳輸效率比普通的FTP要低得多
本次使用系統(tǒng)自帶的internal-sftp搭建sftp,因?yàn)樾枰玫絚hroot,所以openssh 版本不能低于4.8p1
ssh -V檢查版本
要?jiǎng)?chuàng)建的sftp用戶和組
user: BigData1 BigData2
groups:sftpusers
創(chuàng)建組
groupadd sftpusers
創(chuàng)建用戶
useradd -g sftpusers -s /sbin/nologin BigData1
useradd -g sftpusers -s /sbin/nologin BigData2
修改密碼
passwd BigData1
passwd BigData2
創(chuàng)建目錄
mkdir -p home/Sftp/BigData2FTP
mkdir -p home/Sftp/BigData1FTP
修改屬主和屬主(該目錄為sftp用戶的home目錄,屬主必須為root,權(quán)限最高為755)
chown root:root BigData2FTP
chown root:root BigData1FTP
修改權(quán)限
chmod 755 /home/Sftp/BigData2FTP
chmod 755 /home/Sftp/BigData1FTP
創(chuàng)建文件傳輸目錄
mkdir /home/Sftp/BigData2FTP/BigData2
mkdir /home/Sftp/BigData1FTP/BigData1
更改權(quán)限(此目錄權(quán)限隨意)
chmod 777 /home/Sftp/BigData2FTP/BigData2
chmod 777 /home/Sftp/BigData2FTP/BigData1
修改home目錄
usermod -d /home/Sftp/BigData2FTP BigData2
usermod -d /home/Sftp/BigData1FTP/ BigData1
修改配置文件
vim /etc/ssh/sshd_config
注釋
#Subsystem sftp /usr/libexec/openssh/sftp-server
添加
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %p
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
重啟sshd服務(wù)
systemctl restart sshd.service
登陸測(cè)試
sftp BigData2@ip
sftp -oPort=8000 [email protected]
參數(shù)說(shuō)明:
Subsystem sftp internal-sftp:指定使用sftp服務(wù)使用系統(tǒng)自帶的internal-sftp
Match Group sftp:用來(lái)匹配sftp組的用戶,如果要匹配多個(gè)組,多個(gè)組之間用逗號(hào)分割。
注:當(dāng)然也可以匹配用戶,如:【Match User mysftp】,多個(gè)用戶名
之間也是用逗號(hào)分割。
ChrootDirectory /sftp/%u:用chroot將用戶的根目錄指定到/sftp/%u,%u代表用戶名,這
樣用戶就只能在/sftp/%u下活動(dòng)。
ForceCommand internal-sftp:指定sftp命令
更改工作目錄權(quán)限
chown root:sftp /sftp
chown root:sftp /sftp/tom
chmod 755 /sftp
chmod 755 /sftp/tom
權(quán)限說(shuō)明:
目錄的權(quán)限設(shè)定有兩個(gè)要點(diǎn):
1、由ChrootDirectory指定的目錄開(kāi)始一直往上到系統(tǒng)根目錄為止的目錄擁有者,都只能是 root,群組可以是第一步創(chuàng)建的組,這里是sftp
2、由ChrootDirectory指定的目錄開(kāi)始一直往上到系統(tǒng)根目錄為止,目錄所屬的群組都不可以 具有寫(xiě)的權(quán)限。
注:讀(r,權(quán)限值為4)、寫(xiě)(w,權(quán)限值為2)、執(zhí)行(x,權(quán)限值為1)。
連接命令
sftp -oPort=32676 upload_pat@ip
連接后ls提示錯(cuò)誤
Fatal error: Certificate verification: Not trusted (94:0C:C5:11:EE:74:05:7E:6C:CD:63:97:4D:A7:DB:F4:58:FE:4A:61)

解決方法
編輯/etc/lftp.conf,加入下面內(nèi)容:
set ssl:verify-certificate no
或直接在lftp命令提示符下輸入:set ssl:verify-certificate no 回車。