一.目的:有許多時候我們需要從自己機器上,上傳文件到Linux伺服器上,想要上傳文件就必須要通過FTP 協議(File Transfer Protocol(文件傳輸協議))。所以要在伺服器上配置FTP功能。 二.步驟: 查看伺服器是否安裝vsftp: rpm -p -vsftpd。 如果安裝則會顯示 ...
一.目的:有許多時候我們需要從自己機器上,上傳文件到Linux伺服器上,想要上傳文件就必須要通過FTP 協議(File Transfer Protocol(文件傳輸協議))。所以要在伺服器上配置FTP功能。
二.步驟:
- 查看伺服器是否安裝vsftp: rpm -p -vsftpd。 如果安裝則會顯示vsftpd版本,沒有安裝就會提示未安裝軟體包。
- 安裝vsftp命令(需要有root許可權):yum install -y vsftpd。
- 安裝成功之後,檢查vsftp狀態(是否激活active):systemctl status vsftpd.service。
此時,你已經成功安裝好了vsftp伺服器。但是,最關鍵的不是安裝,而是如何配置伺服器,也是難點。
三.配置:
聲明:以下所有文件路徑皆以 “全路徑” 演示。
- 創建vsftp的用戶數據
- 創建二進位文件(此文件是作為生成用戶數據的一個臨時數據文件,包含用戶名、密碼):
- touch '/etc/vsftpd/用戶名'。用戶名 自己隨便取,我命名為“vsftpuser.txt”,即 touch '/etc/vsftpd/vsftpuser.txt'。
- 向二進位文件中添加內容:
- vim '/etc/vsftpd/vsftpuser.txt'。進入如下頁面:
1為用戶名,2為密碼。
PS:一條信息需要占據一行,用戶名、密碼不可以寫在一行。不能使用root做用戶名,因為系統需要,所以你不能用,嘻嘻。
- 使用 :wq 退出vim編輯頁面,保存文件。
- vim '/etc/vsftpd/vsftpuser.txt'。進入如下頁面:
1為用戶名,2為密碼。
- 使用db4命令使vsftpuser.txt文本文件生成vsftpuser.db(名字自己定義也可以)數據文件
- 檢查是否安裝db4 :rpm –q db。
- 在網路搜索匹配你自己系統的安裝包:yum search db4。如下圖所示:
- 安裝db4: yum install -y compat-db47.x86_64。
- 生成vsftpuser.db數據文件: db_load -T -t hash -f '/etc/vsftpd/vsftpuser.txt' '/etc/vsftpd/vsftpuser.db'。
- 查看vsftpuser.db數據文件,如下圖就對啦:
- 設置ftp 的Guest賬戶
- 創造ftp文件存儲目錄:mkdir -p '/ftp/private'
- 將此目錄設置成ftp文件傳輸目錄:useradd -d '/ftp/private' -s /sbin/nologin '/etc/vsftpd/vsftpuser'
- 編輯vsftpd的PAM認證文件
- 備份/etc/pam.d/vsftpd文件,然後進入打開/etc/pam.d/vsftpd:vi /etc/pam.d/vsftpd。
- 將auth及account的所有配置行行均在註釋掉。
- 在文件最上面兩行添加如下內容:
-
auth required pam_userdb.so db=/etc/vsftpd/vsftpuser
-
account required pam_userdb.sodb=/etc/vsftpd/vsftpuser
-
- 配置vsftpd.conf
- 打開/etc/vsftpd/vsftpd.conf文件
- # anonymous_enable=YES 改為 anonymous_enable=NO
- 在文件裡面添加如下內容:
- virtual_use_local_privs=YES
- guest_enable=YES
- guest_username=vsftpd
- chroot_local_user=YES
- allow_writeable_chroot=YES
- 保存
- 將ftp設置成開機自啟:systemctl enable vsftpd
四、防火牆設置
- 添加防火牆設置:firewall-cmd --permanent --zone=public --add-service=ftp
- 重新載入防火牆:firewall-cmd --reload
五、啟動ftp
- 查看ftp狀態:systemctl status ftpd
- 啟動ftp:systemctl start ftpd