簡介:ftp(File Transfer Protocol)文件傳輸協議,基于該協議FTP客戶端與服務端可以實現共享文件、上傳文件、下載文件。FTP基于C/S模式,FTP客戶端與服務器端有兩種傳輸模式,分别是FTP主動模式、FTP被動模式,主被動模式均是以FTP服務器端為參照。FTP為系統提供了通過網絡與遠程服務器進行文件傳輸的簡單方法,多個Web站點可以共享一個IP地址。Linux下ftp服務可以通過搭建VSftpd服務來實現,以CentOS為例,可以執行命令YUM -y install VSftpd安裝該服務。VSftp的用戶登陸方式有三種,分别是匿名用戶模式、本地用戶模式和虛拟用戶模式,匿名模式和本地用戶模式存在安全性問題,一般配置的都是使用虛拟用戶模式。
本文主要介紹FTP服務器的快速部署以及虛拟用戶模式的認證管理方法,詳細内容請參考下文。
一、登陸Linux系統
二、快速安裝VSftp服務
執行yum安裝程序報錯,提示被另一個進行進程鎖定。解決辦法為執行指令# rm -f /var/run/yum.pid殺掉緩存中的YUM進程,重啟YUM服務。然後繼續執行# yum install -y vsftpd安裝FTP服務。
三、配置VSftp的自啟動模式
1、啟動VSftpd服務
2、設置自動啟動vsftpd服務
執行指令# chkconfig vsftpd on設置自動啟動。
3、設置防火牆,允許ftp服務通過。
4、修改SELINUX配置,修改/etc/selinux/config文件。
說明:SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的實現,是 Linux曆史上最傑出的新安全子系統。但是我們一般都不用它,因為它管的東西太多了,想做安全可以用防火牆等其他措施。需要關閉直接将其狀态改為disabled,然後重啟服務器。
5、重啟服務器并查看VSftp服務
四、配置VSftp的虛拟用戶
1、VSftp配置文件介紹
/etc/vsftpd目錄下相關配置文件說明如下
2、修改核心配置文件VSftpd.conf
備注:首先先禁止匿名登陸,然後編輯vsftpd配置文件,位置是/etc/vsftpd/vsftpd.conf,找到anonymous_enable這個配置項,默認是YES,修改成NO。其他修改事項參考以下内容。
3、創建本地用戶(不需要設置密碼,不需要登錄系統)
執行指令# useradd -s /sbin/nologin ftpuser
4、創建VSftp虛拟用戶的家配置文件
說明:配置文件的路徑是/etc/vsftpd/vsftpd.conf中的user_config_dir=/etc/vsftpd/vuser_conf路徑,在 /etc/vsftpd/vuser_conf/下面創建以用戶名為名稱的文件(名稱是/etc/vsftpd/vftpuser.txt 下面的奇數行)
執行指令# mkdir vuser_conf創建虛拟用戶的家文件夾。如下圖
5、配置VSftp虛拟用戶bkuser1配置文件(其他用戶可參考)
# bkuser1用戶登錄的根目錄
local_root=/home/ftpuser/bkuser1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
6、創建VSftp虛拟用戶登錄的根目錄
7、授予虛拟用戶的自己文件夾權限(權限可定為777)
8、創建 chroot_list_file=/etc/vsftpd/chroot_list文件
執行指令# vim /etc/vsftpd/chroot_list (編輯文件把 /etc/vsftpd/vsftpd.conf的guest_username的值ftpuser寫到文件中)
9、創建VSftp虛拟用戶文件
執行命令# vim /etc/vsftpd/vftpuser.txt文件(奇數行為用戶名 ,偶數行為密碼)
10、生成VSftp虛拟用戶的DB文件
執行指令# db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
11、生成VSftp虛拟用戶的認證文件
執行指令# vim /etc/pam.d/vsftpd(注釋掉/etc/pam.d/vsftpd中所有的内容,已經不需要本地用戶的認證)
備注:64位系統增加以下兩句:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
12、重啟VSftp服務
執行指令# systemctl restart vsftpd
五、客戶端訪問測試
1、在客戶端使用浏覽器訪問ftp://服務器IP地址。如下圖
2、使用FTP工具訪問。如下圖
,