一、FTP的安裝
1、檢測是否安裝了FTP :[root@localhost ~]# rpm -q vsftpd
如果安裝了會顯示版本資訊:
[root@localhost ~]# vsftpd-2.0.5-16.el5_5.1
否則顯示:[root@localhost ~]# package vsftpd is not installed
2、如果沒安裝FTP,運行yum install vsftpd命令
具體的細節如下:(如果無法更新,你先配置能訪問互連網,我有文檔叫 CentOS 在 VMware下,如何連網到Internet的解決辦法 可以解決無法上網的問題)
[root@localhost ~]# yum install vsftpd
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.i386 0:2.0.5-12.el5 set to be updated
filelists.xml.gz 100% |=========================| 648 kB 02:46
http://ftp.hostrino.com/pub/centos/5.2/os/i386/rep odata/filelists.xml.gz: [Errno 4] Socket Error: timed out
Trying other mirror.
filelists.xml.gz 100% |=========================| 2.8 MB 00:21
filelists.xml.gz 100% |=========================| 1.1 MB 00:12
filelists.xml.gz 100% |=========================| 132 kB 00:01
filelists.xml.gz 100% |=========================| 150 B 00:00
--> Finished Dependency Resolution
Dependencies Resolved
================================================== ===========================
Package Arch Version Repository Size
================================================== ===========================
Installing:
vsftpd i386 2.0.5-12.el5 base 137 k
Transaction Summary
================================================== ===========================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 137 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): vsftpd-2.0.5-12.el 100% |=========================| 137 kB 00:01
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <centos-5-key@centos.org>" from http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS -5
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: vsftpd ######################### [1/1]
Installed: vsftpd.i386 0:2.0.5-12.el5
Complete!
[root@localhost ~]#
3、完成ftp安裝後,將 /etc/vsftpd/user_list檔案和/etc/vsftpd/ftpusers檔案中的root這一行注釋掉
# root
4、執行以下命令
# setsebool -P ftpd_disable_trans=1
修改/etc/vsftpd/vsftpd.conf,在最後一行處添加local_root=/
5、重啟ftp進程 #service vsftpd restart
註:每次修改過ftp相關的設定檔,都需要重啟ftp進程來生效。
ftp伺服器就可以使用了。
*********************************************************************
二、vsftpd的設定檔說明:
vsftpd.ftpusers:位於/etc目錄下。它指定了哪些使用者賬戶不能訪問FTP伺服器,例如root等。
vsftpd.user_list:位於/etc目錄下。該檔案裡的使用者賬戶在預設情況下也不能訪問FTP伺服器,僅當vsftpd .conf設定檔裡啟用userlist_enable=NO選項時才允許訪問。
vsftpd.conf:位於/etc/vsftpd目錄下。來自訂使用者登入控制、使用者權限控制、逾時設定、伺服器功能選項、伺服器效能選項、伺服器響應訊息等FTP伺服器的配置。
(1)使用者登入控制
anonymous_enable=YES,允許匿名使用者登入。
no_anon_password=YES,匿名使用者登入時不需要輸入密碼。
local_enable=YES,允許本機使用者登入。
deny_email_enable=YES,可以建立一個檔案儲存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。
banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable功能時,所需的電子郵件黑名單儲存路徑(預設為/etc/vsftpd.banned_emails)。
(2)使用者權限控制
write_enable=YES,開啟全域上傳許可權。
local_umask=022,本機使用者的上傳檔案的umask設為022(系統預設是077,一般都可以改為022)。
anon_upload_enable=YES,允許匿名使用者具有上傳許可權,很明顯,必須啟用write_enable=YES,才可以使用此項。同時我們還必須建立一個允許ftp使用者可以讀寫的目錄(前面說過,ftp是匿名使用者的映射使用者帳號)。
anon_mkdir_write_enable=YES,允許匿名使用者有建立目錄的權利。
chown_uploads=YES,啟用此項,匿名上傳檔案的屬主使用者將改為別的使用者賬戶,注意,這裡建議不要指定root帳號為匿名上傳檔案的屬主使用者!
chown_username=whoever,當啟用chown_uploads=YES時,所指定的屬主使用者帳號,此處的whoever自然要用合適的使用者帳號來代替。
chroot_list_enable=YES,可以用一個列表限定哪些本機使用者只能在自己目錄下活動,如果chroot_local_user=YES,那麼這個列表裡指定的使用者是不受限制的。
chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的儲存路徑(預設是/etc/vsftpd.chroot_list)。
nopriv_user=ftpsecure,指定一個安全使用者帳號,讓FTP伺服器用作完全隔離和沒有特權的獨立使用者。這是vsftpd系統推薦選項。
async_abor_enable=YES,強烈建議不要啟用該選項,否則將可能導致出錯!
ascii_upload_enable=YES;ascii_download_enable=YES,預設情況下伺服器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的請求,啟用上述的兩個選項可以讓伺服器真正實現ASCⅡ模式的傳輸。
注意:啟用ascii_download_enable選項會讓惡意遠端使用者們在ASCⅡ模式下用“SIZE/big/file”這樣的指令大量消耗FTP伺服器的I/O資源。
這些ASCⅡ模式的設定選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳指令碼等惡意檔案而導致崩潰),而不會遭受拒絕服務的攻擊的危險。
(3)使用者串連和逾時選項
idle_session_timeout=600,可以設定預設的空閑逾時時間,使用者超過這段時間不動作將被伺服器踢出。
data_connection_timeout=120,設定預設的資料連線逾時時間。
(4)伺服器日誌和歡迎資訊
dirmessage_enable=YES,允許為目錄配置顯示資訊,顯示每個目錄下面的message_file檔案的內容。
ftpd_banner=Welcome to blah FTP service,可以自訂FTP使用者登入到伺服器所看到的歡迎資訊。
xferlog_enable=YES,啟用記錄上傳/下載活動紀錄功能。
xferlog_file=/var/log/vsftpd.log,可以自訂記錄檔的儲存路徑和檔案名稱,預設是/var/log/vsftpd.log。
anonymous_enable=YES 允許匿名登入local_enable=YES允許本機使用者登入
write_enable=YES 開放本機使用者寫入權限
local_umask=022 設定本機使用者組建檔案的掩碼為022
#anon_upload_enable=YES 此項設定允許匿名使用者上傳檔案
#anon_mkdir_write_enable=YES 開啟匿名使用者的寫和建立目錄的許可權
dirmessage_enable=YES 當切換到目錄時,顯示該目錄下的.message隱藏檔案的內容
xferlog_enable=YES 啟用上傳和下載日誌
connect_from_port_20=YES 啟用FTP資料連接埠的串連請求
#chown_uploads=YES 是否具有上傳許可權. 使用者由chown_username參數指定。
#chown_username=whoever 指定擁有上傳檔案許可權的使用者。此參數與chown_uploads聯用。
#xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES 使用標準的ftpd xferlog日誌格式
#idle_session_timeout=600 此設定將在使用者會話空閑10分鐘後被中斷
#data_connection_timeout=120 將在資料連線空閑2分鐘後被中斷
#ascii_upload_enable=YES 啟用上傳的ASCII傳輸方式
#ascii_download_enable=YES 啟用下載的ASCII傳輸方式
#ftpd_banner=Welcome to blah FTP service 設定使用者串連伺服器後顯示訊息
#deny_email_enable=NO 此參數預設值為NO。當值為YES時,拒絕使用banned_email_file參數指定檔案中所列出的e-mail地址使用者登入。
#banned_email_file=/etc/vsftpd.banned_emails 指定包含拒絕的e-mail地址的檔案.
#chroot_list_enable=YES 設定本機使用者登入後不能切換到自家目錄以外的別的目錄
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
pam_service_name=vsftpd 設定PAM認證服務的設定檔名稱,該檔案存放在/etc/pam.d/
userlist_enable=YES 此項配置/etc/vsftpd.user_list中指定的使用者也不能訪問伺服器,若添加userlist_deny=No,則僅僅/etc/vsftpd.user_list檔案中的使用者可以訪問,其他使用者都不可以訪問伺服器。如過userlist_enable=NO,userlist_deny=YES,則指定使檔案/etc/vsftpd.user_list中指定的使用者不可以訪問伺服器,其他本機使用者可以訪問伺服器。
listen=YES 指明VSFTPD以獨立運行方式啟動
tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers遠端存取控制機制,預設值為YES
三、舉例建立一個名為test的賬戶並進行配置
根據實際情況對FTP進行配置後,下面舉例介紹建立一個FTP賬戶並進行簡單的配置:
1、建立一個帳號為test的賬戶:
#mkdir /tmp/test //首先建立好目錄
#adduser -d /tmp/test -g ftp -s /sbin/nologin test //-s /sbin/nologin是讓其不能登陸系統,-d 是指定使用者目錄為/opt/srsman ,即該賬戶只能登陸ftp,卻不能用做登陸系統用。
#passwd test
Changing password for user beinan.//接下來會出現讓你設定新的密碼
New password:
Retype new password:
passwd: all authentication tokens updated successfully
建立賬戶成功!
2、限制使用者目錄,不得改變目錄到上級
修改/etc/vsftpd/vsftpd.conf
將這兩行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
注釋去掉
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
新增一個檔案: /etc/vsftpd/chroot_list
內容寫需要限制的使用者名稱:
test
重新啟動vsftpd
# service vsftpd restart
3、最後為了防止伺服器由於斷電、重啟等現象發生,導致ftp進程在開機後未啟動,將其添加到開機開機檔案中:
(1)找到/etc/rc.local檔案
(2)開啟該檔案,在最後一行添加:service vsftpd start
(3)儲存,退出
4、通過在“我的電腦”中輸入ftp://192.168.179.30(填該ftp伺服器ip地址)進入ftp伺服器,輸入設定好的賬戶登陸即可。