12月10、11日任務(wù)
15.1 FTP介紹
15.2/15.3 使用vsftpd搭建ftp
15.4 xshell使用xftp傳輸文件
15.5 使用pure-ftpd搭建ftp服務(wù)
15.1 FTP介紹
FTP是File Transfer Protocol(文件傳輸協(xié)議,簡稱文傳協(xié)議)的英文簡稱,用于在Internet上控制文件的雙向傳輸。FTP的主要作用就是讓用戶連接一個(gè)遠(yuǎn)程計(jì)算機(jī)(這些計(jì)算機(jī)上運(yùn)行著FTP服務(wù)器程序),并查看遠(yuǎn)程計(jì)算機(jī)中的文件,然后把文件從遠(yuǎn)程計(jì)算機(jī)復(fù)制到本地計(jì)算機(jī),或把本地計(jì)算機(jī)的文件傳送到遠(yuǎn)程計(jì)算機(jī)。
小公司用的多,大企業(yè)不用FTP,因?yàn)椴话踩?。許多大企業(yè)用自動(dòng)化發(fā)布工具,比如git。
15.2/15.3 使用vsftpd搭建ftp
centos上自帶vsftpd,如果沒有使用yum install -y vsftpd安裝。
vsftpd可以使用系統(tǒng)用戶操作,但是為了安全,為ftp設(shè)置虛擬用戶,將虛擬用戶映射成系統(tǒng)用戶。首先創(chuàng)建一個(gè)系統(tǒng)用戶,用來之后虛擬用戶映射。useradd -s /sbin/nologin virftp。然后就編輯虛擬用戶密碼文件,vim /etc/vsftpd/vsftpd_login,奇數(shù)行為用戶名,偶數(shù)行為密碼,多個(gè)用戶就寫多行。我在密碼文件中添加了一個(gè)虛擬用戶:
testuser1
alinux
保存后修改文件權(quán)限:chmod 600 /etc/vsftpd/vsftpd_login。生成二進(jìn)制文件:db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db。
然后生成虛擬用戶的配置文件:mkdir /etc/vsftpd/vsftpd_user_conf,進(jìn)入配置文件目錄cd /etc/vsftpd/vsftpd_user_conf。配置文件的名稱要和虛擬用戶的名字一致。這里我們根據(jù)上面添加,vim testuser1,加入如下內(nèi)容
local_root=/home/virftp/testuser1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
然后創(chuàng)建共享目錄:mkdir /home/virftp/testuser1,隨便創(chuàng)建一個(gè)文件:touch /home/virftp/testuser1/aming.txt。更改共享目錄的屬主:chown -R virftp:virftp /home/virftp。
定義密碼文件路徑:vim /etc/pam.d/vsftpd,在最前面加上:
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
最后配置vsftpd的主配置文件:vim /etc/vsftpd/vsftpd.conf:
將anonymous_enable=YES 改為 anonymous_enable=NO,將#anon_upload_enable=YES 改為 anon_upload_enable=NO,將#anon_mkdir_write_enable=YES 改為 anon_mkdir_write_enable=NO。再增加如下內(nèi)容
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
systemctl start vsftpd,啟動(dòng)vsftpd服務(wù)。netstat -lntp 查看21端口是否開啟。
測試ftp服務(wù)就需要安裝ftp客戶端,圖形軟件推薦filezilla,linux上命令行軟件有l(wèi)ftp。yum install -y lftp。使用lftp ftpuser1@127.0.0.1登錄服務(wù)端,注意用戶名和服務(wù)端ip。執(zhí)行命令ls,看是否正常輸出。若不正常查看日志/var/log/messages和/var/log/secure。lftp下輸入問號(hào)查看命令提示,常用的有put、get等。
windows下安裝filezilla客戶端軟件,進(jìn)行測試。注意filezilla有server、client版本,不要安裝錯(cuò)。另外,許多l(xiāng)inux管理員在windows下使用xshell登錄管理linux,xshell提供了基于ssh的sftp功能。類似ssh登錄配置,在xshell連接登錄界面簡單設(shè)置后就可以命令行界面登錄linux。默認(rèn)登錄用戶家目錄,使用put上傳,get下載。xshell還提供了xftp功能,這個(gè)是sftp的圖形實(shí)現(xiàn),安裝xftp插件即可(按ctrl+alt+f)。
15.5 使用pure-ftpd搭建ftp服務(wù)
pure-ftpd比vsftpd要輕量,可以代替vsftpd。
yum安裝需要擴(kuò)展源:yum install -y epel-release,安裝pure-ftpd:yum install -y pure-ftpd。
編輯配置文件:vim /etc/pure-ftpd/pure-ftpd.conf,找到pureftpd.pdb這行,把行首的#刪除,保存退出即可。systemctl stop vsftpd,關(guān)閉vsftpd,釋放21端口。systemctl start pure-ftpd,開啟pure-ftpd服務(wù)。
測試前準(zhǔn)備:
mkdir /data/ftp #創(chuàng)建共享目錄
useradd -u 1010 pure-ftp #創(chuàng)建系統(tǒng)用戶
chown -R pure-ftp:pure-ftp /data/ftp #更改共享目錄(即虛擬用戶的家目錄)
pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp #創(chuàng)建虛擬用戶ftp_usera,-u指定映射的系統(tǒng)用戶,-d指定家目錄。執(zhí)行此命令后按要求設(shè)置密碼
pure-pw mkdb #生成密碼文件。此外常用命令有:pure-pw list/userdel/usermod/passwd,與系統(tǒng)用戶管理類似。
然后就可以用lftp或filezilla測試了。