一、FTP工作原理(1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #數(shù)據(jù)鏈路:端口20 ftp 21/tcp #控制鏈路:端口21 (2)FTP連接方式
1.客戶端從自己的一個(gè)任意端口(N > 1024)和FTP服務(wù)器的21端口建立控制鏈路
1.客戶端從自己的一個(gè)任意端口(N > 1024)和FTP服務(wù)器的21端口建立控制鏈路 注意:
二、ftp服務(wù)器搭建需求:在Linux中搭建一個(gè)ftp服務(wù)器在存儲(chǔ)文件,創(chuàng)建一個(gè)ftp用戶:test,主目錄是:/home/test,設(shè)置該用戶不允許登錄服務(wù)器,并需要限制該用戶不能離開自己的主目錄。 【實(shí)現(xiàn)步驟】 1.查看系統(tǒng)有沒有安裝vsftpd 2.查看vsftpd服務(wù)是否開機(jī)自啟 3.建立一個(gè)新用戶賬戶test,-d 參數(shù)指定用戶登入時(shí)的主目錄,參數(shù)-m 表示如果主目錄不存在則自動(dòng)創(chuàng)建 為用戶設(shè)置密碼,輸入命令: 4.vsftpd的配置
查看vsftpd.conf配置文件 1 [root@localhost ~]# cat /etc/vsftpd/vsftpd.conf | grep -v '^#' 2 #----匿名用戶設(shè)置---- 3 anonymous_enable=NO #禁止匿名用戶登錄 4 5 #----本地用戶設(shè)置---- 6 local_enable=YES #允許本地用戶登錄ftp服務(wù)器 7 write_enable=YES #允許用戶想服務(wù)器執(zhí)行寫入操作 8 local_umask=022 #設(shè)置服務(wù)器上本地用戶創(chuàng)建文件的權(quán)限掩碼 9 10 #----歡迎語設(shè)置---- 11 dirmessage_enable=YES #啟用目錄提示消息 12 13 #----日志文件設(shè)置---- 14 xferlog_enable=YES #啟用日志文件功能,記錄于/var/log/xferlog 15 xferlog_std_format=YES #啟用標(biāo)準(zhǔn)的日志格式 16 17 #----FTP工作方式與端口設(shè)置---- 18 connect_from_port_20=YES #主動(dòng)模式下,是否啟用默認(rèn)的20端口進(jìn)行數(shù)據(jù)傳輸 19 20 #----與連接相關(guān)的設(shè)置---- 21 listen=NO #vsftpd不是以獨(dú)立的服務(wù)運(yùn)行,要受到xinetd服務(wù)的管控,功能上會(huì)受到限制 22 listen_ipv6=YES 23 24 #----控制用戶是否允許切換到上級目錄---- 25 chroot_list_enable=YES #開啟限制用戶在主目錄的功能 26 chroot_list_file=/etc/vsftpd/chroot_list #在chroot_list文件中加入你要限制的用戶名,一行一個(gè)用戶 27 28 #----虛擬用戶設(shè)置---- 29 pam_service_name=vsftpd #虛擬用戶使用PAM認(rèn)證方式 30 31 #----控制用戶訪問(通過vsftpd.user_list和ftpusers文件來實(shí)現(xiàn))---- 32 userlist_enable=YES #是否啟用userlist_file文件 33 userlist_file=/etc/vsftpd/user_list #允許user_list文件中加入的用戶訪問ftp服務(wù)器 34 35 #----控制主機(jī)訪問---- 36 tcp_wrappers=YES #vsftpd服務(wù)器檢查/etc/hosts.allow和/etc/hosts.deny中的設(shè)置,來決定請求連接的主機(jī),是否允許訪問該FTP服務(wù)器 37 38 #----其它設(shè)置---- 39 allow_writeable_chroot=YES #去除用戶主目錄的寫權(quán)限 在上述vsftpd.conf的相關(guān)選項(xiàng)的配置下,對ftpuser文件和user_list文件的配置如下:
5.開啟vsftpd服務(wù) 6.訪問ftp服務(wù)器方法
注意:關(guān)閉ftp服務(wù)器上的防火墻及Selinux(防止端口限制)
------------------------------- 補(bǔ)充知識點(diǎn)
xferlog_enable=YES //開啟日志功能 xferlog_file=/var/log/xferlog //日志文件的存放位置 xferlog_std_format=YES //使用標(biāo)準(zhǔn)格式記錄日志 xferlog該日志文件記錄了FTP會(huì)話,可以顯示出用戶向從FTP服務(wù)器拷貝了什么文件。其中一條記錄如下: Thu Feb 16 10:09:05 2017 1 10.10.10.9 990 ./home/ftpie.txt b _ o r test ftp 0 * c 含義:在某個(gè)時(shí)間test用戶向主機(jī)10.10.10.9上傳了哪些文件 數(shù)據(jù)參數(shù)說明
服務(wù)器安裝完成vsftpd后是允許匿名用戶訪問的,匿名訪問的用戶名是ftp,密碼為空。這個(gè)用戶可以在/etc/passwd文件中找到 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 數(shù)據(jù)參數(shù)說明:
默認(rèn)情況下,匿名用戶登錄所訪問的文件夾一般是/var/ftp,當(dāng)然也可以由用戶自行添加或刪除。而且,匿名用戶的權(quán)限只能是下載,而不能上傳或是其它寫操作。
在/etc/vsftpd.conf中,將list_port=10034或者其它端口號選項(xiàng)加入該文件中即可,然后重新啟動(dòng)vsftp守護(hù)進(jìn)程。 # ftp 127.0.0.1 10034 注:此時(shí)測試以前使用的21端口,該端口已經(jīng)不再有用;如果要使用ftp默認(rèn)的21端口工作,需要?jiǎng)h除或者使用#屏蔽掉前面加入的選項(xiàng)即可。
|
|