Linux下vsftp的安裝與使用教程

一、環境準備

yum -y install glibc
yum -y install libcap
yum -y install libnsl
yum -y install openssl
yum -y install pam

二、yum安裝

yum -y install vsftpd

三、啓動

systemctl start vsftpd
ps aux | grep vsftpd   #檢測是否啓動

在這裏插入圖片描述
四、本地用戶登錄
1、修改配置文件

vim  /etc/vsftpd/vsftpd.conf

啓用如下:
anonymous_enable=NO #不允許匿名用戶登錄
local_enable=YES #允許本地用戶登錄
write_enable=YES #允許寫入權限 包括刪除修改
local_umask=022 #本地用戶文件上傳權限限制
dirmessage_enable=YES #顯示目錄說明文件
xferlog_enable=YES #記錄所有的上傳下載信息,默認放在/var/log/vsftpd.log
connect_from_port_20=YES #使用20端口
listen=YES
pam_service_name=vsftpd
userlist_enable=YES #在userlist_file文件內的用戶可以使用ftp服務
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
2、添加用戶

useradd ftpuser -s /sbin/nologin   #添加賬戶 禁止登錄bash  
passwd ftpuser  #設置密碼

在這裏插入圖片描述
3、編輯user_list文件

vim  /etc/vsftpd/user_list

添加ftpuser等用戶到文件中
在這裏插入圖片描述
4、開啓防火牆 ftp默認端口21

firewall-cmd --zone=public --add-port=21/tcp --permanent  #開啓防火牆21端口
systemctl restart firewalld.service   #重啓防火牆服務
firewall-cmd --query-port=21/tcp   #查詢防火牆21端口是否打開

注:netstat命令是在可用接口上監聽端口,若該端口沒有被佔用,則不會查詢到
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
5、修改SELinux

getsebool -a | grep ftp

可以看到都是off,沒有開啓外網訪問
在這裏插入圖片描述

setsebool -P allow_ftpd_full_access on 
setsebool -P tftp_home_dir on  

6、啓動服務

systemctl start vsftpd

7、在另一臺linux服務器安裝ftp客戶端,接下來的操作都在這臺進行(也可以在windows終端執行)

yum -y  install ftp

同時開啓本機防火牆的21端口 或者是關閉防火牆
在這裏插入圖片描述
8、登錄到服務器端192.168.162.128

ftp 192.168.162.128

在這裏插入圖片描述
可以看到,提示530登陸失敗,尋找錯誤原因
解決辦法:
決定一個用戶是否可以通過ftp登錄有兩個配置文件:ftpusers和user_list。在ftpusers中的用戶都不能通過ftp登錄,在user_list中的用戶根據配置決定。給這兩個文件授權。chmod 644 ftpusers chmod 644 user_list (不過這裏好像沒說權限問題)
查看日誌tail -f /var/log/secure 部分信息爲Unregistered Authentication Agent for unix-process:6284
修改/etc/pam.d/vsftpd文件 註釋#auth required pam_shells.so
該pam設置含義爲如果用戶想登錄系統,那麼它的shell必須是在/etc/shells文件中之一的shell
在這裏插入圖片描述
9、測試

  • 下載文件
    -----get 文件名

在這裏插入圖片描述
上傳文件
-----put 文件名
在這裏插入圖片描述
刪除文件
-----delete 文件名
在這裏插入圖片描述
修改文件名
-----rename 原文件名 新文件名
在這裏插入圖片描述

五、虛擬用戶登錄
1、繼續修改配置文件

vim  /etc/vsftpd/vsftpd.conf

在本地用戶的基礎下啓用如下:
guest_enable=YES #啓用虛擬用戶
guest_username=vuser #虛擬用戶使用的系統用戶名
virtual_use_local_privs=YES #設定虛擬用戶的權限符合他們的宿主用戶。
user_config_dir=/etc/vsftpd/vusers_conf #虛擬用戶使用的配置文件目錄

2、在/etc/vsftpd下面建立虛擬用戶信息文件,在其中寫入用戶和密碼,奇數行爲用戶,偶數行爲密碼

vim vusers

在這裏插入圖片描述
3、生成虛擬用戶數據庫文件

db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db

在這裏插入圖片描述
爲了保護信息,該文件是亂碼文件
在這裏插入圖片描述
4、設置文件權限

chmod 700  /etc/vsftpd/vusers.db

在這裏插入圖片描述
5、配置pam文件

vim /etc/pam.d/vsftpd

註釋掉所有內容,然後添加(不能寫成db=/etc/vsftpd/vusers.db)

auth       required   pam_userdb.so        db=/etc/vsftpd/vusers
account    required   pam_userdb.so        db=/etc/vsftpd/vusers

在這裏插入圖片描述
6、添加一個系統用戶vuser,用它來對應所有虛擬用戶,虛擬用戶使用系統用戶訪問ftp

useradd vuser
mkdir -p  /home/ftp/vuser #虛擬用戶的目錄
chown vuser:vuser  /home/ftp/vuser

在這裏插入圖片描述
在這裏插入圖片描述
7、創建虛擬用戶使用的配置文件目錄

mkdir /etc/vsftpd/vusers_conf

8、設置虛擬用戶配置文件(文件名設置成和賬戶名相同)

touch /etc/vsftpd/vusers_conf/admin
touch /etc/vsftpd/vusers_conf/ham
touch /etc/vsftpd/vusers_conf/snake

並在其中寫入(注意配置文件行後面不能有空格,否則會報錯):

local_root= /home/ftp/vuser    #指定虛擬用戶的目錄
anon_world_readable_only=NO       #瀏覽FTP目錄和下載
anon_upload_enable=YES           #允許上傳
anon_mkdir_write_enable=YES         #允許建立和刪除目錄
anon_other_write_enable=YES         #允許改名和刪除文件

9、重新啓動ftp服務

systemctl restart vsftpd

10、虛擬用戶登錄192.168.162.128
出現權限被拒絕:
530 Permission denied.
Login failed.
解決:在user_list中加入虛擬用戶
在這裏插入圖片描述
11、測試

  • 上傳文件
    -----put 文件名
    在這裏插入圖片描述
    下載文件
    -----get 文件名
    在這裏插入圖片描述
    刪除文件
    -----delete 文件名
    在這裏插入圖片描述
    修改文件名
    -----rename 原文件名 新文件名
    在這裏插入圖片描述
    在這裏插入圖片描述
    (注:部分資料來源於網絡,如有侵權,請聯繫作者)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章