手把手教你在linux下搭建一個FTP服務器(2)

Linux 防火牆 Windows 腳本語言 安靜的十年 安靜的十年 2017-10-06

手把手教你在linux下搭建一個FTP服務器(2)

手把手教你在linux下搭建一個FTP服務器(2)

照例,還是先說下FTP的工作原理。就是本地共享一些文件/目錄,客戶機可以通過訪問,連接進入,能上傳和下載數據。端口的話,FTP控制連接,說使用的是TCP 21端口,用於發送FTP命令信息。FTP的數據連接所使用的端口號是 TCP 22端口,用於上傳和下載數據。數據連接的話,分為主動模式和被動模式,一般都是被動模式,主動模式需要關閉客戶機的防火牆。。。所以,你懂的。。。

手把手教你在linux下搭建一個FTP服務器(2)

另外FTP的用戶分為,匿名用戶,本地用戶和虛擬用戶。匿名就是FTP和anonymous,密碼任意。虛擬用戶是通過一個本地賬號虛擬映射為多虛擬賬號。今天我們這裡講的是linux/unix系統下的vsftp。客戶機的話,windows直接可以訪問,linux需要安裝ftp命令。

手把手教你在linux下搭建一個FTP服務器(2)

========================================================

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的。

相關推薦

推薦中...