FTP簡介:
FTP 協議是目前最長用的網絡文件傳輸協議,FTP協議從出現到如今已經有40年曆史了.
此協議傳輸是基於明文.爲C/S構架的協議.
傳輸時使用兩個端口,分別爲21端口和20端口.基於TCP鏈接.
21端口用於命令傳輸 (命令連接一直保持活動狀態)
20端口用於數據傳輸 (可同時存在多個鏈接)
服務器兩種數據傳輸模式: 模式由客戶端決定
1.主動模式
2.被動模式數據庫
登錄的用戶類型:
1.匿名用戶 : anonymous 以 ftp 用戶身份登錄
2.本地用戶 : 及帳號密碼信息保存在passwd,shadow中的用戶.
3.虛擬用戶 : 後面有詳細介紹.vim
常見的FTP服務器:
IIS , Serv-U (windows上)
wu-ftpd, proftpd (Linux上)
pureftpd ,proftpd功能強
vsftpd(Very Secure FTP Daemon) Redhat上默認,安全性高,但功能少
常見的客戶端:ftp,lftp, gftp, fliash fxp, cuteftpwindows
#這裏以vsftpd爲基礎介紹安裝配置FTP服務器:安全
vsftpd以ftp用戶的身份運行.ftp用戶的家目錄位於:/var/pub
安裝:
1.配置好yum源
2.yum install vsftpd
啓動:
server vsftpd start
[此時ftp服務應經可使用了,需共享的文件複製到/var/pub/便可]服務器
配置:vsftpd 的配置文件在目錄/etc/vsftpd/ 下
1.主配置文件:/etc/vsftpd/vsftpd.conf
2.用戶控制文件:
/etc/vsftpd/ftpusers :拒絕訪問列表
/etc/vsftpd/user_list :根據用戶配置決定
主配置文件中經常使用配置選項:
max_clients 定義用戶最大鏈接數
max_per_ip 定義一個IP的最大鏈接數
chroot_localuser 把全部用戶鎖到家目錄
anonymous_enable=NO 匿名用戶登錄
pam_service
userlist_enable=YES
userlist_deny=YES 網絡
vsftpd的高級配置:
虛擬用戶的配置使用: [注:配置後本地用戶將沒法登錄]
基本步驟:
1.創建虛擬FTP用戶的賬號數據庫文件
2.建立FTP根目錄及虛擬用戶映射的系統用戶
3.創建支持虛擬用戶的PAM認證文件
4.在vsftpd.conf文件中添加支持配置
5.爲個別虛擬用戶創建獨立的配置文件
6.從新加載vsftpd配置
7.使用虛擬FTP帳戶訪問測試ide
一.創建帳號數據庫
1.vim /etc/vsftpd/vusers.list 目錄可自定義
mike
123
john
321
2.cd /etc/vsftpd/
3.bd_load -T -t hash -f vusers.list vusers.db ( yum install db4-utils)
4. chmod 600 vusers.* (爲了安全更改權限)
二.建立FTP根目錄及虛擬用戶映射的系統用戶
1.mkdir /var/ftproot
2.useradd -d /var/ftproot -s /sbin/nologin virtual
3.chmod 755 /var/ftproot
4.chown virtual:virtual /var/ftproot (*此步如不配置,登錄後操做會報權限錯誤)
三.創建支持虛擬用戶的PAM認證文件
1.vim /etc/pam.d/vsftpd.vu
寫入如下內容:
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
↑
對應第一步創建的vusers.db
四.在vsftpd.conf文件中添加支持配置
1.vim /etc/vsftpd/vsftpd.conf
配置或添加如下內容:
anonymous_enable=NO --此項更改
local_enable=YES
write_enable=YES
anon_umask=022 --此三項默認應該有
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu --此三項需添加測試
五.爲個別虛擬用戶創建獨立的配置文件
1.vim /etc/vsftpd/vsftpd.conf
添加以下內容:
user_config_dir=/etc/vsftpd/vusers_dir ("="後爲定義的配置文件目錄)
2.mkdir /etc/vsftpd/vusers_dir (創建上面定義的目錄)
3.cd /etc/vsftpd/vusers_dir (創建配置文件)
touch mike (創建mike配置文件,爲空)
vim john (創建並編輯配置文件)
在john配置文件中添加以下內容:
anon_upload_enable=YES
anon_mkdir_write_enable=YESui
六.從新加載vsftpd配置
1.service vsftpd reload
七.使用虛擬FTP帳戶訪問測試
測試結果應爲:
1. mike用戶能夠登陸,並能夠瀏覽、下載文件,但沒法上傳
2. john用戶能夠登陸,並能夠瀏覽、下載文件,也能夠上傳
3.匿名用戶或其餘系統用戶將不能登陸
server