天天看點

阿裡雲ECS的CentOS7下搭建FTP伺服器

轉載https://blog.csdn.net/jiance520/article/details/85705816

在網上看了一些别人的筆記,很多不适合新手看,結果各種問題,不是代碼錯誤,就是省略了一些步驟。最後自己整了幾天才把常用的功能整理完,包括使用虛拟使用者來配置設定不同使用者的權限。不過還是要感謝前人的筆記。

目錄

準備

安裝vsftpd伺服器

建立系統使用者

修改配置檔案(重點)

/etc/vsftpd/vsftpd.conf  核心配置檔案

vim /etc/vsftpd/user_list 白名單

vim /etc/vsftpd/chroot_list無限制名單

建立/添加/删除虛拟使用者

連接配接FTP伺服器

Xftp或 FlashFXP連接配接FTP

xftp 提示無法顯示遠端檔案夾:

使用者身份驗證失敗:

如果需要截圖部分的代碼,請到這裡下載下傳。https://download.csdn.net/download/jiance520/10894330

vsftpd.conf部分常用參數說明:https://mp.csdn.net/postedit/85723550。

準備

使用環境是阿裡雲ECS伺服器,系統CentOS7

所有操作是在關閉防火牆的情況下示範,如果你的伺服器很重要,請不要關閉。

systemctl stop firewalld
           

重新整理防火牆:iptables -F。

阿裡雲ECS開放相關端口。54301:54305端口你自己定義。用于pasv被動模式的資料傳輸。這是很多人容易忽略的步聚。

阿裡雲ECS的CentOS7下搭建FTP伺服器

如果伺服器不在阿裡雲,如在本機,請執行以下操作開放端口。

A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 54301:54305 -j ACCEPT
           

檢查SElinux狀态并關閉,SElinux是 Linux 的一個本機安全性授權。

getsebool -a|grep ftp
           

如果沒有關閉,  把 SELINUX=SeLinux 改為SELINUX=disable。

vim /etc/sysconfig/selinux
           

安裝vsftpd伺服器

檢查是否已經安裝vsftpd

rpm -qa| grep vsftpd
           

如果沒有安裝,執行yum安裝

yum -y install vsftpd
           

啟動vsftpd

systemctl start vsftpd
           

檢視vsftpd服務的狀态

systemctl status vsftpd
           

設定vsftpd服務開機自啟

systemctl enable vsftpd
           

建立系統使用者

useradd ftpuser3
           

passwd ftpuser3指定密碼123456。密碼你自己寫。

passwd ftpuser3
           

給建立的使用者檔案夾授權,預設是/home/ftpuser3

chmod 777 -R /home/ftpuser3
           

如果要修改主目錄,把/home/ftpuser3改成你自己指定的目錄

usermod -d /home/ftpuser3
           

修改配置檔案(重點)

主要配置檔案:

 /etc/vsftpd/vsftpd.conf      核心配置檔案

 /etc/vsftpd/user_list 白名單,裡面存放允許登陸ftp的賬号,一行一個賬号名,如果不想讓某個賬号登陸ftp,就别填那個賬号進來。

 /etc/vsftpd/ftpusers 黑名單,和清單,user_list差不多,可以忽略。

 /etc/vsftpd/chroot_list無限制名單:指定其中的使用者允許登和通路主目錄和上級目錄(前提是chroot_list_enable=NO)。                                  反過來,不在這裡面的使用者隻能通路自己的主目錄。

      /etc/pam.d/vsftpd     PAM接口配置檔案

      /var/ftp              匿名使用者的工作目錄

/etc/vsftpd/vsftpd.conf  核心配置檔案

所有配置檔案的修改,請自行備份,備份:cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

修改配置檔案,并:wq儲存退出。

vim /etc/vsftpd/vsftpd.conf
           

以下為我修改後的内容,如需要匿名通路,請改anonymous_enable=YES。

阿裡雲ECS的CentOS7下搭建FTP伺服器

pasv_address=xxx.xxx.xxx.xxx填寫你自己的ECS虛拟主機IP。

阿裡雲ECS的CentOS7下搭建FTP伺服器

vim /etc/vsftpd/user_list 白名單

增加使用者,由你自己決定是否增加匿名使用者,如果啟用了user_list,必須添加建立的使用者ftpuser3

ftp
anonymous
ftpuser3
           

vim /etc/vsftpd/chroot_list無限制名單

增加以下使用者

ftpuser3
           

修改配置以後,必須重新開機ftp。

systemctl restart vsftpd
           

如果啟動失敗,提示錯誤:Job for vsftpd.service failed because the control process exited with error,Failed to start Vsftpd ftp daemon,vsftpd,99%是你的vsftpd.conf中代碼錯誤,亂碼等。

還有一些其它原因,中文亂碼^M,格式問題。

建立/添加/删除虛拟使用者

虛拟使用者對系統更安全。可以針對不同的使用者指定不同的工作目錄。

首先檢視compat-db

rpm -qa| grep compat-db
           

如果沒有,執行安裝

yum install -y  compat-db
           

修改使用者配置檔案

vim /etc/vsftpd/ftpuser.conf
           

添加,第一行使用者名,第二行密碼

ftpuser3
123456
           

根據虛拟使用者配置檔案ftpuser.conf生成ftpuser.db檔案

db_load -T -t hash -f /etc/vsftpd/ftpuser.conf /etc/vsftpd/ftpuser.db
           

修改pam

vim /etc/pam.d/vsftpd
           
阿裡雲ECS的CentOS7下搭建FTP伺服器

建立/配置虛拟使用者權限配置檔案,指定虛拟使用者操作的目錄,以及所擁有的操作權限。

建立使用者配置檔案目錄

mkdir /etc/vsftpd/virconf
           

建立并編輯使用者ftpuser3配置檔案

vim /etc/vsftpd/virconf/ftpuser3
           

根據自己的情況,指定虛拟使用者ftpuser3通路目錄,并擁有以下指定的權限。

阿裡雲ECS的CentOS7下搭建FTP伺服器

我們可以重複建立多個不同的虛拟使用者,共用一個宿主使用者ftpuser3

最後别忘記建立白名單使用者

vim /etc/vsftpd/chroot_list
           

之前我們在在user_list中添加了使用者ftpuser3,如果我們需要使用者擁有更大的通路權限,請在chroot_list中也添加ftpuser3。

連接配接FTP伺服器

Xftp或 FlashFXP連接配接FTP

最後就是我們可以在Xftp或 FlashFXP上配置自己的host:xxx.xxx.xxx.xxx主機IP位址和端口21,使用ftp方式通路FTP伺服器。遠端檔案夾目錄填寫你的主目錄,如:/home/ftpuser3

阿裡雲ECS的CentOS7下搭建FTP伺服器

也可以在我的電腦上添加一個網絡位置。來通路FTP。還可以在IDEA上配置。

阿裡雲ECS的CentOS7下搭建FTP伺服器

xftp 提示無法顯示遠端檔案夾:

xftp遠端檔案夾目錄填寫跟local_root=/home/ftpuser3不一緻,沒有通路權限。

如果配置沒有錯誤,有該提示,并不影響操作,如果要去掉,可以在chroot_list中也添加ftpuser3,但是會增加使用者的通路權限。

使用者身份驗證失敗:

沒有生成db資料檔案。或資料檔案ftpuser.db中沒有該帳戶。

使用者名或密碼錯誤。

其主目錄檔案夾沒有建立。或指定的主目錄不一緻。

防火牆攔截,沒有開放端口。

沒有使用pasv被動模式。

檔案夾沒有授權chmod 777 -R

帳戶沒有加入user_list

allow_writeable_chroot=YES

沒有重起更新修改。

一定要記得,修改虛拟使用者密碼或新增虛拟使用者後要再次執行生成資料檔案ftpuser.db,修改vsftpd.conf要記得重起。或者reboot重新開機系統,關閉防火牆。

db_load -T -t hash -f /etc/vsftpd/ftpuser.conf /etc/vsftpd/ftpuser.db

systemctl restart vsftpd
           

如果需要截圖部分的代碼,請到這裡下載下傳。https://download.csdn.net/download/jiance520/10894330

vsftpd.conf部分常用參數說明:https://mp.csdn.net/postedit/85723550。

繼續閱讀