一、 ftp的定義
ftp:// ##文件傳輸協議
爲internet上如今最常用的最老的網絡協議之一,它爲系統提供了通過網絡與遠程服務器進行傳輸的簡單方法。
載RED HAT ENTERPRISE LINUX6中,FTP 服務器包的名稱爲 VSFTPD ,它代表Very Secure File TransferProtocol Damon 服務器名稱也叫做 vsftpd
默認配置文件讓 ANONYMOUS 用戶只能用於下載位於 CHROOT 目錄的內容。/var/ftp/這意味着遠程 FTP 客戶端能以用戶 anonymous 或 ftp 身份連接到服務器(無需密碼),並從 ftp 服務器上的 /var/ftp/ 目錄下載文件(其本地 ftp 用戶可以讀取這些文件)
二、 ftp協議提供的軟件
*地址:http://172.25.254.93/rhel7.2
注:其爲鏡像軟件,地址也爲自行設定
*軟件:vsftpd
三、 部署ftp服務
*前期準備操作:
[root@server ~]# vim /etc/yum.repos.d/rhel_dvd.repo ##yum 源指定
[root@server ~]# vim /etc/sysconfig/selinux ##設置爲disable模式
[root@server ~]# reboot ##重啓
查看其配置文件是否更改之法:
[root@server vsftpd]# getenforce
Disabled
*ftp部署過程:
>>yum clean all ##清除日誌--當更改好yum源指定後,無法正常安裝軟件,可用此命令
>>yum install vsftpd -y ##安裝vsftpd服務
>>systemctl start vsftpd ##開啓vsftpd服務
>>systemctl enable vsftpd ##設置服務爲開機啓動
>>firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload ##在防火牆中加入ftp策略
>安裝lftp
yum install lftp -y
四、 ftp服務的基本信息
>軟件安裝包: vsftpd
>默認發佈目錄: /var/ftp
>協議接口: 21/tcp
查看方式:
[root@server ~]# ss -antple | grep vsftpd
LISTEN 0 32 :::21 :::* users:(("vsftpd",2903,3)) ino:53573 sk:ffff880022fb6000 <->
>服務配置文件: /etc/vsftpd/vsftpd.conf
>報錯id解析:
550表示服務本身不允許該動作--更改配置文件/...
553本地文件系統對你無權力--更改文件權限。
530表示登陸失敗即用戶認證失敗--密碼錯誤
500文件系統權限過大--解決:例chmod 755 /var/ftp/
五、用戶權限的設置
更改在配置文件:
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd.service
**匿名用戶**
>anonymous_enable=YES|NO ##匿名用戶是否可以登陸ftp服務器
實操:
更改前,在匿名用戶登陸ftp服務顯示:
注:表示可以登陸
更改後
注:表示不可以登陸
**本地用戶**
>local_enable=YES ##本地用戶是否可以登陸
>write_enable=YES ##ftp是否對登陸可寫
附:
1)本地用戶登陸方式
lftp 172.25.254.218 -u student
2)本地用戶只能上傳文件,不可建立文件
關於其以上命令,大家可自行驗證。
1. 匿名用戶上傳
>vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES(取消註釋)
>systemctl restart vsftpd.service
>chgrp ftp /var/ftp/pub
>chmod 775 /var/ftp/pub
**制定匿名用戶家目錄修改**
>anon_root=/directory
實操:
1)配置文件更改如下:
2)錯誤排查
*狀況:
[kiosk@foundation93 Desktop]$ lftp 172.25.254.10lftp 172.25.254.10:~> ls lftp 172.25.254.10:/> put /etc/passwd put: Access failed: 553 Could not create file. (passwd) -->553表示文件的權限不
*解決1:
[root@server pub]# chmod 777 /westos此種方法對於系統來說安全度不夠
*解決2:
[root@server westos]# chgrp ftp /westos[root@server westos]# chmod 775 /westos
3)結果如下:
[root@server westos]# ls /westos passwd
**匿名用戶上傳文件默認權限**
anon_umask=xxx
實操:
1)配置文件更改如下:
2)結果如下:
**匿名用戶建立目錄**
anon_mkdir_write_enable=YES|NO(取消註釋)
注:只能建立目錄
**匿名用戶下載**
anon_world_readable_only=YES|NO ##設定參數值爲no表示匿名用戶可以下載
**匿名用戶刪除**
anon_other_write_enable=YES|NO
**匿名用戶使用的用戶身份修改**
chown_uploads=YES
chown_username=student
(以上兩個更改方式:取消註釋)
**最大上傳速率**
anon_max_rate=102400
**最大鏈接數**
max_clients=2
2. 本地用戶設定
> local_enable=YES|NO
> write_enable=YES|NO
1)本地用戶家目錄修改
local_root=/directory
注:若要在指定家目錄(/westos)中建立文件需要更改指定家目錄/westos權限
2)本地用戶上傳文件權限
local_umask=xxx
3)限制本地用戶瀏覽/目錄
所有用戶被鎖定到自己的家目錄中
chroot_local_user=YES(取消註釋)
chmod u-w /home/*
*用戶黑名單建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(之上更改方式爲取消註釋)
*用戶白名單建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
4)限制本地用戶登陸
vim /etc/vsftpd/ftpusers ##用戶黑名單
vim /etc/vsftpd/user_list ##用戶臨時黑名單
用戶白名單設定
userlist_deny=NO
/etc/vsftpd/user_list ##參數設定,此文件變成白名單,只在白名單中出現的用戶可以登陸ftp