LINUX FTP服務配置文檔
一、FTP主動被動模式介紹
在此之前首先要了解什麽是控制層面,什麽是數據層面。控制層面是在數據傳輸之前所建立的連接,如TCP三次握手就屬於控制層面,建立好連接後開始傳輸數據,屆時就屬於數據傳輸層面。
1、主動模式:客戶端向服務器發起連接,隨機生成一個大於1024的端口X,服務端用21號端口建立控制層面連接,建立好連接後即可執行上傳下載命令。當需要傳輸數據時,客戶端會再開啟一個大於1024的端口Y並通過之前建立的控制層面連接將端口信息發送給服務端,屆時服務端主動向客戶端發起連接,數據層面的連接建立好,開始傳輸數據。
2、被動模式:客戶端隨機生成一個大於1024的端口與服務端21端口建立連接,建立好連接後即可執行上傳下載命令。當需要傳輸數據時,客戶端會通過之前建立好的控制層面通道向服務器請求數據層面連接,服務端收到後生成一個隨機端口號Y,並通過之前建立好的通道將端口信息發送給客戶端。客戶端再隨機生成一個端口號Z,主動向服務器的Y端口發起連接,數據層面的連接建立好,開始傳輸數據。
之所以有被動模式,是因為考慮到企業防火墻的限制,如果FTP服務器在防火墻後端,使用主動模式時服務端主動向客戶端發起連接請求,一般策略都會設置成不允許untrust到trust,導致ftp無法建立連接,所以才有了被動模式。
二、配置FTP服務器
1、環境:CentOS 6.6 X64
2、安裝步驟:
1) 使用vsftpd搭建 用yum安裝
#yum -y install vsftpd
2)啟動FTP服務並設置開機啟動
service vsftpd start
chkconfig --add vsftpd
#讓vsftpd成為系統服務,開機自動啟動
chkconfig --level 2345 vsftpd on
# 把vsftpd在運行級別為2、3、4、5的情況下都是on(開啟)的狀態
2)曾加FTP用戶並設置密碼,讓其不能登錄系統
useradd mingyongxing -s /sbin/nologin
passwd mingyongxing
3)通過修改主配置文件給用戶設置權限
默認vsftp允許匿名用戶登陸,默認登陸目錄是:/var/ftp/pub 匿名用戶只有下載的權限
默認普通用戶登陸後在自己的家目錄。 /home/$name
可以通過vsftp的主配置文件修改相應參數 如下
4)以下是vsftp配置文件的常用參數
vim /etc/vsftpd/vsftpd.conf //FTP的主配置文件
anonymous_enable=YES //是否允許匿名登陸
local_enable=YES //是否允許本地用戶登錄FTP服務器
write_enable=YES //本地用戶登陸ftp是否有寫入權限
local_umask=022 //文件或目錄的掩碼,類似於網絡中的子網掩碼,掩碼越大權限越小
#022代表777減去022=755 :
7是由數組4 2 1加起來得到的,4代表可以讀 2代表可以寫 1代表可執行
755表示:屬主:7 屬組:5 others:5
anon_upload_enable=YES //是否允許匿名用戶創建文件夾
anon_mkdir_write_enable=YES //啟用歡迎信息
ftpd_banner=Welcome to blah FTP service. //設置歡迎消息
dirmessage_enable=YES //啟用日誌信息 日誌在/var/log/vsftpd.log
chown_uploads=YES //是否允許改變屬主 (上傳一個文件後修改文件的屬主)
chown_username=mingyongxing //改變屬主為mingyongxing
(參數:“whoever”代表任何人,即上傳的文件屬於任何用戶)
xferlog_file=/var/log/vsftpd.log //修改日誌文件路徑
userlist_enable=YES //開啟用戶限制登陸功能
userlist_deny=NO //設置是否允許userlist中的用戶登陸ftp NO為僅允許user_list中的賬戶登陸 YES為拒絕user_list中的賬戶登陸 如果配置文件中沒有寫userlist_deny,但是開啟了userlist_enable=YES的話,默認僅拒絕user_list中的賬號。
chroot_list_enable=YES //是否允許用戶切換目錄 yes為僅允許在自己的目錄不允許切換
chroot_list_file=/etc/vsftpd/chroot_list //不允許切換目錄的用戶列表文件 在文件中添加用戶
5)配置文件的一些其他參數
/etc/vsftpd/vsftpd.conf
①限制並發和傳輸速率 設置成0均代表不限制
max_client=100 //限制100用戶同時登陸ftp
max_per_ip=10 //設置同一個IP最大連接數
local_max_rate=500000 //設置本地用戶傳輸速率為500KB/s 單位B/s
ano_max_rate=500000 //設置匿名用戶傳輸速率為500KB/s 單位B/s
listen_port=4449 //修改默認監聽端口號、
6)FTP的配置文件目錄
/var/log/xferlog vsftpd的日誌文件
/etc/rc.d/init.d/vsftpd 啟動腳本
/etc/vsftpd vsftpd的配置文件存放的目錄
/etc/vsftpd/ftpusers 禁止使用vsftpd的用戶列表文件
/etc/vsftpd/user_list 禁止或允許使用vsftpd的用戶列表文件
/etc/vsftpd/vsftpd.conf 主配置文件
附:FTP的狀態碼
用命令行或者ftp客戶端登陸的時候,會提示一個狀態碼
參考文獻:http://www.jb51.net/article/94223.htm
LINUX FTP服務配置文檔