一.準備工做。
爲了調試順利,關閉selinux,firewall和iptables。
根據我的需求,安裝本身須要的程序。
#yum install gcc lrzsz vim wget
環境介紹:
centos7.4
ip:192.168.1.238
client:Win10
二.vsftp科普。
Port模式(主動模式):
當客戶端C向服務端S鏈接後,使用的是Port模式,那麼客戶端C會發送一條命令告訴服務端S(客戶端C在本地打開了一個端口N在等着你進行數據鏈接),當服務端S收到這個Port命令後 就會向客戶端打開的那個端口N進行鏈接,這種數據鏈接就生成了。
Pasv模式(被動模式):
當客戶端C向服務端S鏈接後,服務端S會發信息給客戶端C,這個信息是(服務端S在本地打開了一個端口M,你如今去鏈接我吧),當客戶端C收到這個信息後,就能夠向服務端S的M端口進行鏈接,鏈接成功後,數據鏈接也創建了。
三.開始安裝。
1.yum安裝vsftp
yum -y install vsftpd
2.啓動服務
systemctl start vsftpd.service
3.配置文件路徑
/etc/vsftpd
四.虛擬用戶功能
1.首先修改配置文件。
#cp vsftpd.conf vsftpd.conf.bak #備份配置文件。
#echo ‘’ > vsftpd.conf #清空配置文件。
#vim /etc/vsftpd/vsftpd.conf #編輯配置文件。
2。配置文件內容。(虛擬用戶須要anonymous_enable=NO)
################################
anonymous_enable=NO
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
use_localtime=YES
local_enable=YES
allow_writeable_chroot=YES
xferlog_enable=YES
local_umask=022
pam_service_name=vsftpd
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=120
data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
################################
:wq #退出並保存
3.建立vsftp的宿主用戶
#useradd -g root -m -d /home/vsftpd -s /sbin/nologin ftpuser
#建立用戶 ftpuser 指定 /home/vsftpd
目錄
#passwd ftpuser #設置用戶 ftpuser 的密碼
#chown -R ftpuser.root /home/vsftpd #把 /home/vsftpd 的全部權給ftpuser.root
4.創建虛擬用戶文件
#touch /etc/vsftpd/vuser_passwd
(虛擬用戶名單,第一行爲用戶名,第二行爲密碼,不可用root爲用戶名)(以下圖)
#vim /etc/vsftpd/vuser_passwd
:wq #退出並保存
5.生成虛擬用戶數據文件
#db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
#chmod 600 /etc/vsftpd/vuser_passwd.db
6.建立用戶配置
#mkdir /etc/vsftpd/vuser_conf # 創建虛擬用戶我的vsftp的配置文件
#cd /etc/vsftpd/vuser_conf # 進入目錄
#建立兩個用戶的文件touch ftp4 ftp5
每一個文件(ftp4,ftp5)都寫入以下內容
#local_root=/home/vsftpd/ftp4填寫用戶的真實路徑
7.建立用戶目錄。
#mkdir -p /home/vsftpd/ftp4
#mkdir -p /home/vsftpd/ftp5
8.而後就能夠啓動服務了。
#systemctl start vsftpd #開啓服務
#systemctl restart vsftpd #重啓服務
#systemctl stop vsftpd #關閉服務
#systemctl status vsftpd #查看服務狀態
9.生成虛擬用戶的PAM文件。
#cd /etc/pam.d #先進入存放PAM文件的目錄。
#cp vsftpd vsftpd.bak #先備份vsftpd這個文件。
修改vsftpd文件內容(加入第二和第三行,下面的都所有註釋,注意下面是64位操做系統,若是是32位的話lib64須要改爲lib)
10.須要給虛擬用戶加上權限。
#chmod -R 777 /home/vsftpd #遞歸給沒個虛擬用戶權限。
11.更改完配置,須要重啓vsftpd服務。
#systemctl restart vsftpd
#systemctl stop firewalld #關閉防火牆
#setenforce 0 #關閉selinux
12.而後進入Windows下的cmd試着鏈接一下。
顯示遠程主機關閉鏈接。
13.接下來讓咱們改一下配置文件就OK了,以下圖:
把這三行信息註釋掉,而後咱們重啓服務。
再次cmd進行鏈接。
鏈接成功!
14.有須要的小夥伴能夠把端口改一下。
在/etc/vsftpd/vsftpd.conf文件中添加以下內容。
端口修改成2121
在/etc/services文件中修改以下內容。
15.而後重啓一下服務就能夠啦!
16.讓咱們用ftp工具試驗一下。
17.大功告成!linux