手把手教你在linux下搭建一個FTP服務器(2)
照例,還是先說下FTP的工作原理。就是本地共享一些文件/目錄,客戶機可以通過訪問,連接進入,能上傳和下載數據。端口的話,FTP控制連接,說使用的是TCP 21端口,用於發送FTP命令信息。FTP的數據連接所使用的端口號是 TCP 22端口,用於上傳和下載數據。數據連接的話,分為主動模式和被動模式,一般都是被動模式,主動模式需要關閉客戶機的防火牆。。。所以,你懂的。。。
另外FTP的用戶分為,匿名用戶,本地用戶和虛擬用戶。匿名就是FTP和anonymous,密碼任意。虛擬用戶是通過一個本地賬號虛擬映射為多虛擬賬號。今天我們這裡講的是linux/unix系統下的vsftp。客戶機的話,windows直接可以訪問,linux需要安裝ftp命令。
========================================================
1:準備工作
yum -y install vsftpd安裝vsftpd
/etc/init.d/iptables stop關閉防火牆
setenforce 0關閉selinux
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.$(date+%Y%m%d%H)給主配置文件做備份,後面的是年月日小時。
chmod ftp /var/ftp/pub給默認共享目錄權限
=======================================================
12 anonymous_enable=YES允許匿名訪問
15 local_enable=YES允許本地訪問
18 write_enable=YES允許修改(修改的總開關)
22 local_umask=022本地用戶的權限是755
27 anon_upload_enable=YES匿名允許上傳
31 anon_mkdir_write_enable=YES允許匿名創建目錄
35 dirmessage_enable=YES顯示文件列表
42 connext_from_port_20=YES20端口連接
47 chown_upload=YES屬主可上傳
48 chown_username=whoever屬主用戶名是 whoever
62 data_connection_timeout=120120秒後,連接超時
96 chroot_local_user=YES開啟本地用戶家目錄鎖定
117 pam_service_name=vsftpdpam驗證服務的腳本名是vsftpd
118 userlist_enable=YESuserlist開始使用(裡面記錄的本地用戶賬號不能登陸)
其他配置:
listen=YES開啟監聽
listen_address=192.168.137.11監聽地址
listen_port=2121監聽端口
pasv_enable=YES開啟被動模式
pasv_min_port=24500被動模式端口下限
pasv_max_port=24600被動模式端口上限
max_clients=2000最大15000,最大客戶連接數,一般不限制
max_per_ip=2每個IP限制最多打開幾個客戶端工具,一般不限制
anon_max_rate=50000匿名最大傳輸速率,一般不限制
local_max_rate=20000本地用戶最大傳輸速率,一般不限制
可添加的:
anon_other_write_enable=YES匿名用戶可以有其他寫入權限(刪除、重命名等)
anon_umask=022匿名用戶的umask值
/etc/vsftpd下的ftpusers文件是ftp服務的黑名單,寫入賬號之後,永久不能登陸
user_list文件寫入賬號之後,可通過主配置文件寫入 userlist_deny=NO 不拒絕uerlist登陸
=====================================================
2:設置虛擬映射賬號
需要先創建本地映射賬號,指定家目錄/var/ftproot,並且指定不能登陸
chmod 777 /var/ftproot給需要映射賬號的家目錄修改權限,或用chown改變該家目錄的屬主
在/etc/vsftpd下,創建虛擬用戶賬號密碼列表文件test.list
db_load -T -t hash -f test.list test.db用test.list生成test.db數據庫文件,允許非Berkeley程序使用該數據庫,指定hash算法,-f是指定源文件的。(如果電腦裡沒有db_load命令,需要先安裝db4-utils。)
chmod 600 test.*修改有關用戶密碼文件的權限,增強安全性
增加pam認證
vim /etc/pam.d/vsftpd.vu 手動創建此pam認證文件
內容為:
authrequiredpam_userdb.sodb=/etc/vsftpd/test
accountrequiredpam_userdb.sodb=/etc/vsftpd/test此處不加.db,用為前面是db=
在主配置文件內,加入允許虛擬用戶登陸:
guest_enable=YES
guest_username=test
在/etc/vsftpd/下創建test.dir/目錄,裡面創建虛擬用戶文件:如 test1 test2 test3
在每個虛擬用戶文件內,配置每個用戶的不同權限,格式為:
anon_upload_enable=YES允許匿名用戶上傳
anon_mkdir_write_enable=YES允許匿名用戶寫目錄
anon_other_write_enable=YES允許匿名用戶其他寫的權限
anon_max_rate=1匿名用戶傳輸的最大速度是1K,如果寫0的話,是不限速
local_root=/var/test指定家目錄
給每個賬戶都設置好權限後,需要在主配置文件內加入:
user_config_dir=/etc/vsftpd/test.dir指定用戶配置目錄
==================================================
3:客戶機測試
客戶機可用ftp FTP服務器IP 連接服務器
匿名用戶用ftp 密碼任意登陸服務器
登陸進入服務器之後,可用命令:
mkdir創建目錄
rmdir刪除目錄
cd切換路徑
get下載
put上傳
mdir創建多個目錄
mget下載多個文件/目錄
mput上傳多個文件/目錄
ls列表
delete刪除文件
mdelete刪除多個文件
?顯示可用命令
==================================================
4:給VSFTP服務做日誌
在主配置文件內加入:
xferlog_std_format=YES
xferlog_file=/var/log/xferlog手動添加,使FTP服務日誌文件保存為/var/log/xferlog
==================================================
當然大家可以用可相互ping通的windows主機測試,在地址欄裡直接輸入 ftp://FTP服務器IP 就能進入,再右鍵有登陸,就可以了。
到此。FTP服務器安裝測試完畢。大家一起共同學習進步,有不理解的,可以在下方評論回覆。希望大家多多關注,給我這個新人多多的支持。謝謝。因為一天只能發一個,所以明天預計發一個DNS的。