FTP是文件傳輸協議,正是因爲這種協議使得主機間能夠共享文件。 FTP 使用TCP生成一個虛擬鏈接用於控制信息,而後再生成一個單獨的 TCP 鏈接用於數據傳輸。
數據庫
vsftpd是一款在LINUX發行版中最主流的FTP服務器程序;特色是小巧輕快,安全易用;能讓其自身特色得發發揮和掌握。若是使用系統用戶登陸FTP,是比較危險的,因此咱們主要採用vsftpd虛擬用戶登陸FTP服務器進行常見的操做,固然配置就相對複雜一點。(centos7安裝)vim
一、首先安裝FTP以及虛擬用戶須要用到的軟件及認證模塊centos
yum install vsftpd -y yum install pam* libdb4-utils libdb4 --skip-broken –y
建立並生成vsftpd數據庫文件vim /etc/vsftpd/vuser_passwd.txt,內容以下:安全
第一行爲FTP虛擬用戶,登陸用戶名,第二行爲密碼,第三行爲用戶名,依次類推。服務器
[root@server vsftpd]# cat /etc/vsftpd/vuser_passwd.txt test1 123456 test2 456789
二、生成數據庫文件命令app
[root@server vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db [root@server vsftpd]# chmod 700 /etc/vsftpd/vuser_passwd.db
三、配置PAM驗證文件tcp
將配置文件vim /etc/pam.d/vsftpd 改成以下兩行認證語句:(若是是32位,lib64需改爲lib,若是RedHat,加入的語句不同,需注意)ide
[root@server vsftpd]# vim /etc/pam.d/vsftpd #%PAM-1.0 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
四、建立vsftpd映射本地用戶測試
全部的FTP虛擬用戶須要使用一個系統用戶,這個系統用戶不須要密碼,也不須要登陸。主要用來作虛擬用戶映射使用。ui
[root@server vsftpd]# useradd -s /sbin/nologin ftpuser
五、修改完整版vsftpd.conf配置文件
[root@server vsftpd]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO //禁止匿名用戶訪問 local_enable=YES // 容許本地用戶登陸FTP write_enable=YES //容許用戶在FTP目錄有寫入的權限 local_umask=022 //設置本地用戶的文件生成掩碼爲022,默認是077 dirmessage_enable=YES //激活目錄信息,當遠程用戶更改目錄時將出現提示信息 xferlog_enable=YES //啓用上傳和下載日誌功能 connect_from_port_20=YES //啓用FTP數據端口的鏈接請求 xferlog_file=/var/log/xferlog xferlog_std_format=YES //是否使用標準的ftpd xferlog日誌文件格式 ascii_upload_enable=YES //設定支持ASCII模式的上傳功能 ascii_download_enable=YES //設定支持ASCII模式的下載功能 listen=YES //使用vsftpd處於獨立啓動監聽端口模式 guest_enable=YES //設定啓用虛擬用戶功能 guest_username=ftpuser //指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftpuser用戶了 pam_service_name=vsftpd //設置PAM認證服務配置文件名,文件存放在/etc/pam.d/目錄 userlist_enable=YES //用戶列表中的用戶是否容許登陸FTP服務器,默認是不容許 tcp_wrappers=YES //使用tcp_wrappers做爲主機訪問控制方式 user_config_dir=/etc/vsftpd/vsftpd_user_conf //設定虛擬用戶我的vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名) virtual_use_local_privs=YES //虛擬用戶和本地用戶有相同的權限 vsftpd_log_file=/var/log/vsftpd.log
保存重啓,service vsftpd restart 便可使用虛擬用戶登陸,這時候全部的虛擬用戶共同使用/home/ftpuser目錄上傳下載。
六、若是想使用本身獨立的目錄,能夠在/etc/vsftpd/vsftpd_user_conf目錄建立各自的配置文件,如給
test1建立獨立的配置文件:
[root@server vsftpd]# vim /etc/vsftpd/vsftpd_user_conf/test1 //內容以下,創建本身的FTP目錄。 local_root=/home/ftpuser/test1 //鎖定虛擬wugk用戶登陸FTP後的目錄 write_enable=YES //表示用戶具備建立和刪除的權限 anon_world_readable_only=YES //表示用戶能夠瀏覽FTP目錄及下載文件 anon_upload_enable=YES //表示用戶能夠上傳文件 anon_mkdir_write_enable=YES //表示用戶有建立和刪除目錄的權限 anon_other_write_enable=YES //表示用戶具備文件更名和刪除文件的權限
[root@server vsftpd]# vim /etc/vsftpd/vsftpd_user_conf/test2 //內容以下,創建本身的FTP目錄。 local_root=/home/ftpuser/test2 write_enable=YES anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
要建立/home/ftpuser/test1和/home/ftpuser/test2
[root@server vsftpd]# mkdir -p /home/ftpuser/{test1,test2}
[root@server vsftpd]# chown -R ftpuser:ftpuser /home/ftpuser若是啓用vsftpd日誌需手動創建日誌文件
[root@server vsftpd]# touch /var/log/xferlog
[root@server vsftpd]# touch /var/log/vsftpd.log
重啓,使用客戶端登陸FTP,測試便可。
七、配置PASV模式(可選)
vsftpd默認沒有開啓PASV模式,如今FTP只能經過PORT模式鏈接,要開啓PASV默認須要經過下面的配置。打開/etc/vsftpd/vsftpd.conf,在末尾添加
#開啓PASV模式
pasv_enable=YES
#最小端口號
pasv_min_port=61000
#最大端口號
pasv_max_port=61200 pasv_promiscuous=YES
#在防火牆配置內開啓40000到40080端口
-A INPUT -m state --state NEW -m tcp -p -dport 40000:40080 -j ACCEPT
#重啓iptabls和vsftpd
service iptables restart
service vsftpd restart 如今可使用PASV模式鏈接你的FTP服務器了~