基於本地VMware虛擬機上的centos搭建ftp服務器

基於VMware上的centos搭建ftp服務器

前言:最近整理後端相關知識點,然後在本機win10上搭建VMware虛擬機,並搭建了ftp服務器用於測試學習使用。虛擬機用的是centos7 64位系統的,ftp服務器用的是常用的vsftp服務器。

一、安裝ftp

我這邊用的是xshell連接上VM虛擬機的,如何連接可以自行百度,當然也可以在虛擬機上的控制檯直接操作,另外,便於學習使用,建議可以在root賬號下安裝,普通賬號可以使用su - 進入root賬戶。
1.安裝:yum -y install vsftpd
在這裏插入圖片描述
因爲我這邊已經安裝好了,所以可以直接看到已安裝最新版本了。也可以通過vsftpd -v查看當前安裝的版本。
2.可以通過指令whereis vsftpd查看安裝的位置。
3.啓動ftp服務:systemctl start vsftpd.service
4.查看服務是否啓動成功:netstat -npal|grep vsftpd。可以看到21端口已經啓動成功了。
5.關閉SELinux限制:
獲取SELinux對ftp相關的配置信息:getsebool -a | grep ftp
將 ftpd_full_access設置開啓狀態: setsebool -P ftpd_full_access on
6.開啓ftp防火牆:
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
查看防火牆狀態:
firewall-cmd --list-all
在這裏插入圖片描述
在這裏插入圖片描述
可以看到21/tcp端口已經開啓並且防火牆中也已經添加到白名單了。

二、配置ftp

通過前面我們知道ftp安裝在 /etc/vsftpd目錄下,執行:
[root@localhost ~]# cd /etc/vsftpd
[root@localhost vsftpd]#
進入對應目錄,執行vim vsftpd.conf,進行相關配置,vsftpd.conf是ftp的配置文件:

不允許匿名訪問,設置爲NO時,訪問ftp的時候不需要輸入密碼,設置爲YES的時候,需要輸入密碼訪問。
anonymous_enable=YES

允許ascii文件上傳和下載
ascii_upload_enable=YES
ascii_download_enable=YES

將用戶限制在爲其配置的主目錄
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

三、用戶配置

1.修改ftp配置文件:[root@localhost vsftpd]# vim vsftpd.conf
設置啓用虛擬用戶功能:guest_enable=YES

指定宿主用戶名(需要創建該用戶,後面我們會創建):guest_username=ftpuser

制定虛擬用戶配置文件放置文件夾(需要我們自己建立,後面創建)
user_config_dir=/etc/vsftpd/vuser_conf

允許寫入:allow_writeable_chroot=YES
在這裏插入圖片描述
2.創建宿主用戶
我們常用於ftp上傳網頁相關的資源文件,我這邊是將虛擬用戶指向/var/www/html目錄下的,你們在創建的時候可以根據自己的需要配置。
useradd -g root -M -d /var/www/html -s /sbin/nologin ftpuser
其中useradd是添加用戶,-s /sbin/nologin ftpuser 表示不允許該用戶通過命令行方式登錄。
然後輸入:passwd ftpuser 設置好密碼即可。
最後把 /var/www/html 的所有權給ftpuser.root : chown -R ftpuser.root /var/www/html
創建好了之後可以通過cat /etc/passwd查看。

3.創建虛擬用戶信息文件:
切換到ftp安裝目錄下
[root@localhost vsftpd]# cd /etc/vsftpd
[root@localhost vsftpd]#
創建用戶信息文件

touch vuser_passwd
編輯改文件:
vim vuser_passwd
編輯如下內容,創建虛擬賬戶信息,奇數行爲用戶名,偶數行爲密碼:
在這裏插入圖片描述
賬號密碼可以自己制定就ok了,只要滿足規定設置即可。
4.生成虛擬用戶數據文件:
db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
賦予相應權限:
chmod 600 /etc/vsftpd/vuser_passwd.db
可以看到在vsftp目錄下生成一個vuser_passwd.db文件。

5.編輯pam認證文件:vim /etc/pam.d/vsftpd
將其他都註釋掉,添加下面兩行;

注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虛擬用戶的db文件,這裏不要加擴展名。

系統爲32位:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
required pam_userdb.so db=/etc/vsftpd/vuser_passwd

系統爲64位:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
這邊直接複製就行了。
查看系統版本:
getconf LONG_BIT
在這裏插入圖片描述
6.爲虛擬賬戶創建訪問根目錄,要在宿主用戶下(當前是指在/var/www/html目錄下)
/var/www/html
├──ftp-user1
└── files
└──ftp-user2
└──files
└──test
└──files
修改文件權限:
修改權限

chmod 777 ftp-user1
chmod 777 ftp-user2
chmod 777 test

7.創建虛擬用戶配置目錄
cd /etc/vsftpd/

創建上述配置文件中配置的虛擬用戶文件夾,一定要對應(重點)

mkdir vuser_conf
cd vuser_conf

創建虛擬用戶配置文件,文件名稱要與虛擬用戶名稱相同
這裏我們配置三個虛擬用戶就創建三個配置文件

touch ftp-user1 ftp-user2 test

#編輯三個文件,加入以下信息(local_root需要替換成你自己的實際路徑)

local_root=/var/www/html/ftp-user1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
在這裏插入圖片描述
8.創建chroot_list:
cd /etc/vsftpd
創建使當前配置的虛擬用戶允許訪問
[root@localhost vsftpd]# touch chroot_list
[root@localhost vsftpd]# vim chroot_list

寫入虛擬用戶名
ftp-user1
ftp-user2
test
在這裏插入圖片描述
9.重啓ftp服務
systemctl restart vsftpd.service
10.使用xftp連接ftp服務器:
在這裏插入圖片描述
其中主機可以通過ifconfig:
在這裏插入圖片描述
我們發現能正常連接,並且也能上傳文件,例如我們上傳一些文件:
在這裏插入圖片描述
在虛擬機上查看:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章