centos 6.5 設定FTP伺服器 與客戶機連線FTP伺服器
伺服器端
1.yum install vsftp
service vsftpd restart (ftp服務端的程序是vsftpd)
2.vsftpd伺服器檔案
配置檔案: /etc/vsftpd/vsftpd.conf
伺服器根目錄: /var/ftp/pub/
vsftpd.ftpusers:位於/etc目錄下。它指定了哪些使用者賬戶不能訪問FTP伺服器,例如root等。vsftpd.user_list:位於/etc目錄下。該檔案裡的使用者賬戶在預設情況下也不能訪問FTP伺服器,僅當vsftpd.conf配置檔案裡啟用userlist_enable=NO選項時才允許訪問。vsftpd.conf:位於
banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable
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=Welcometo 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使用標準的ftpdxferlog日誌格式#idle_session_timeout=600此設定將在使用者會話空閒10分鐘後被中斷#data_connection_timeout=120將在資料連線空閒2分鐘後被中斷#ascii_upload_enable=YES啟用上傳的ASCII傳輸方式#ascii_download_enable=YES啟用下載的ASCII傳輸方式#ftpd_banner=Welcometo 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
a. 建立FTP賬戶
#adduser -d /tmp/test -g ftp -s /sbin/nologin test //建立一個test使用者,目錄為/tmp/test, 不能用作登陸系統用
#passwd test //設定密碼
b.限制使用者目錄,不得改變目錄到上級
修改/etc/vsftpd/vsftpd.conf
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
b1.註釋去掉
b2.新增一個檔案 /etc/vsftpd/chroot_list
內容寫需要限制的使用者名稱: test
重啟vsftpd
客戶端
1.安裝ftp客戶端
yum install ftp
ftp
> open ftp_server_ip
>username
>passwd
2.用瀏覽器連線的時候會出現oops 500 chroot.
原因是是selinux的問題,它有一個叫做”Allow ftp to read/write in the user home directories” 的選項。
使用如下命令 /usr/sbin/setsebool -P ftp_home_dir on 開啟選項
或者 setsebool-P ftpd_disable_trans=1
vsftpd伺服器常見錯誤: http://wenku.baidu.com/link?url=ekVgUTbq2-Ol9itQC6KSpWRuZd42b3d_TYFeqqWHfDi31Gb58aO-hQHv4luPS1PtG2f7IZaRqSKWoJinXq_eT4Ymty57cah-Wp9WVfzZ8pK