FTP 服務器搭建與配置

簡介linux

一、FTP是什麼?數據庫

FTP是文件傳輸協議(File Transfer Protocal)的簡寫,主要完成與遠程計算機的文件傳輸。vim

FTP存在服務器的概念,能夠理解爲文件服務器。也就存在權限的控制。然而權限的控制與SVN相似,除了受權帳號外,多了一種「匿名訪問」。匿名訪問也就是FTP服務器向公衆開放。一般匿名的權限較低,只能下載文件,不能上傳文件。centos

二、FTP工做原理是什麼?安全

FTP是一種CS架構,也就是客戶端與服務端的交互。客戶端與服務端之間利用TCP創建鏈接,默認端口爲21,客戶能夠從服務器上下載文件,也能夠把本地文件上傳至服務器。上傳與下載通常基於命令或者圖形工具可實現,命令方式就不用舉例,圖形化工具推薦 Transmit。服務器

三、FTP存在兩種工做模式架構

主要是針對數據鏈接而言的。 主動模式:服務端主動向服務端發送請求;被動模式:服務端等待着客戶端請求(也是默認的工做方式0)工具

服務器搭建測試

預習vsftpd工具ui

能夠利用很好的開源工具 vsftpd(very secure ftp daemon,很是安全的FTP守護進程),重要是免費!!!好比傳輸速度快、安全性高、以及支持虛擬用戶驗證等其它FTP服務程序不具有的功能。該工具其它特色需自行細品。

安全性高:可控制用戶權限、可經過chroot變動用戶的根目錄、基於GPL發佈的FTP服務器軟件,支持虛擬用戶模式登錄。

傳輸速度快:傳輸模式基於文本模式(ASCII)與二進制模式(Binary),都是以序列傳輸數據。

虛擬用戶模式搭建:(Linux系統)

一、安裝工具(通常可經過yum來下載軟件)

yum -y install vsftpd

安裝成功(可經過修改vsftpd.conf配置,使用匿名模式訪問完成簡單的ftp服務器)

二、建立對應虛擬用戶的根目錄,可自定義目錄地址。建立完以後須要對目錄變動爲虛擬用戶權限。這時候經過linux命令來實現

#建立目錄
mkdir \*\*
# 添加用戶
useradd -s /sbin/nologin virtual

目錄變動全部者權限: (ps: . 變動全部者與組權限, -R 全部目錄當前目錄下的父子目錄)

chown virtual. /opt/ftp/ -R

三、建立虛擬用戶及其數據庫

a、虛擬用戶文本存在格式問題,奇數行爲用戶名,偶數行爲密碼。

#建立文本命令
touch fileName.txt
vim filename.txt

b、虛擬用戶名數據庫關聯來生成對應的db文件

db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

c、定義pam認證文件(注意:db=/etc/vsftpd/login 文件就是上面生成的login.db文件;省略後綴.db)

[root@VM-8-6-centos ~]# vim /etc/pam.d/ftp
[root@VM-8-6-centos ~]# cat /etc/pam.d/ftp
auth  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/vuser
account  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/vuser

四、配置vsftpd.conf 文件

#禁止匿名登陸FTP服務器
anonymous_enable=NO
#容許本地用戶登陸FTP服務器
local_enable=YES
#能夠上傳(全局控制) 
write_enable=NO
#匿名用戶能夠上傳
anon_upload_enable=NO
#匿名用戶能夠建目錄
anon_mkdir_write_enable=NO
#匿名用戶修改刪除
anon_other_write_enable=NO
#所有用戶被限制在主目錄
chroot_local_user=YES

#2.3.5版本以後,若是用戶被限定在了其主目錄下,則該用戶的主目錄不能再具備寫權限了
,需新增長下面這條配置
allow_writeable_chroot=YES

#將全部用戶當作虛擬用戶guest
guest_enable=YES
#指定虛擬用戶,也就是將guest用戶映射到virtual用戶
guest_username=virtual
#指定爲獨立服務
listen=YES
#指定監聽的端口
listen_port=21
#開啓被動模式
pasv_enable=NO
#FTP服務器公網IP
pasv_address=106.55.172.70
#設置被動模式下,創建數據傳輸可以使用port範圍的最小值
pasv_min_port=10000
#設置被動模式下,創建數據傳輸可以使用port範圍的最大值
pasv_max_port=10088
#是否容許匿名用戶下載全局可讀的文件
anon_world_readable_only=NO
#指定虛擬用戶配置文件的路徑
user_config_dir=/etc/vsftpd/vusers_dir

五、建立虛擬用戶目錄

須要在其 vusers_dir 穿件對應虛擬用戶的權限文件

以虛擬用戶名爲文件名。

drwxr-xr-x    3 root root  4096 1月  27 13:41 .
drwxr-xr-x. 104 root root 12288 1月  26 14:23 ..
-rw-------    1 root root   125 10月 14 00:10 ftpusers
-rw-------    1 root root   361 10月 14 00:10 user_list
-rw-------    1 root root  1200 1月  19 15:43 vsftpd.conf
-rw-------    1 root root  5114 1月  19 11:14 vsftpd.conf.bak
-rwxr--r--    1 root root   338 10月 14 00:10 vsftpd_conf_migrate.sh
-rw-------    1 root root 12288 1月  19 15:34 vuser.db
#須要與配置文件 vsftpd.conf 對應
drwxr-xr-x    2 root root  4096 1月  19 15:41 vusers_dir 
-rw-r--r--    1 root root    35 1月  19 15:33 vuser.txt
[root@VM-8-6-centos vsftpd]# cd vusers_dir/
[root@VM-8-6-centos vusers_dir]# ls -al
總用量 20
drwxr-xr-x 2 root root 4096 1月  19 15:41 .
drwxr-xr-x 3 root root 4096 1月  27 13:41 ..
-rw-r--r-- 1 root root  163 1月  19 15:20 joey
-rw-r--r-- 1 root root  164 1月  19 15:40 joeyTest
-rw-r--r-- 1 root root  163 1月  19 15:41 joeyTest2
[root@VM-8-6-centos vusers_dir]# vim joey
[root@VM-8-6-centos vusers_dir]# cat joey
write_enable=YES
anon_world_readable_only=no
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
local_root=/var/ftp/pub

六、啓動vsftpd

serivce vsftpd start

完成以上操做基本ftp搭建完成,但還須要另一臺客戶端機器測試(需擁有lftp命令支持)

#經過yum安裝lftp命令
yum install lftp 
#lftp 帳戶名稱:密碼@服務端IP地址 端口號(默認爲21,非21端口需填寫)
[root@localhost ~]# lftp joeyTest:joey123@127.0.0.1
lftp joeyTest@127.0.0.1:~> mkdir test3
mkdir 成功, 創建 `test3'
lftp joeyTest@127.0.0.1:/>
相關文章
相關標籤/搜索