1. 程式人生 > >CentOS.7下安裝FTP服務

CentOS.7下安裝FTP服務

Centos7中預設已經安裝了sshd服務(sftp), vsftpd需要手動安裝

sftp使用22埠,ftp使用21埠

1、安裝並啟動FTP服務

1.1 安裝vsftpd

使用 yum 安裝 vsftpd

yum install -y vsftpd

1.2、修改配置檔案

vi /etc/vsftpd/vsftpd.conf

1.2 啟動vsftpd

安裝完成後, 啟動vsftpd服務 :

service vsftpd start

保證下面3項為YES

    anonymous_enable=YES

    anon_upload_enable=YES

    anon_mkdir_write_enable=YES

1.3、設定vsftpd開機啟動

systemctl enable vsftpd.service

 

1.4、啟動並檢視vsftpd服務狀態,systemctl啟動服務成功不會有任何提示,綠色的active表示服務正在執行

systemctl start vsftpd.service
systemctl status vsftpd.service

2、本地驗證ftp是否可以正常訪問

2.1、安裝ftp

yum -y install ftp

2.2、使用anonymous登陸,無需密碼

ftp localhost

220表示服務正常,可以登陸;230表示登陸成功。

2.3、檢視FTP伺服器資料夾資訊

啟動後, 可以看到系統已經監聽了 21 埠(Ubuntu下命令為: lsof -i:21)

netstat -nltp | grep 21

3.此時, 訪問ftp://IPaddr 就可瀏覽主機上的 /var/ftp目錄了

4、檔案讀寫。

     到上面為止,我們發現ftp目錄下並不能讀寫檔案,這是由資料夾許可權和selinux引起的。

4.1、設定資料夾許可權,將pub資料夾的許可權設定為777

chmod 777 -R /var/ftp/pub

4.1、關閉selinux服務

vi /etc/selinux/config

    將SELINUX=enforcing改為:SELINUX=disabled

4.3、系統重啟,讓配置生效

shutdown -r now

至此,ftp完全安裝完成

5、配置 FTP 許可權

5.1 瞭解 vsftpd 配置

vsftpd 的配置目錄為 /etc/vsftpd, 包含下列的配置檔案 :

        a. vsftpd.conf 為主要配置檔案

        b. ftpusers 配置禁止訪問 FTP 伺服器的使用者列表

        c. user_list 配置使用者訪問控制

 

5.2 阻止匿名訪問和切換根目錄

匿名訪問和切換目錄都會給伺服器帶來安全風險, 我們把這兩個功能關閉.

編輯 /etc/vsftpd/vsftpd.conf, 找到下面兩處配置並修改:

 

# 禁用匿名使用者  YES 改為NO

anonymous_enable=NO

 

# 禁止切換根目錄 刪除或#

chroot_local_user=YES

 

編輯完成後儲存配置, 重新啟動 FTP 服務

service vsftpd restart

 

5.3 建立 FTP 使用者

建立一個使用者 ftpuser

useradd ftpuser

為使用者 ftpuser 設定密碼

passwd ftpuser  或  echo "new_password" | passwd ftpuser --stdin

 

5.4 限制該使用者僅能通過FTP訪問

限制使用者 ftpuser 只能通過 FTP 訪問伺服器, 而不能直接登入伺服器

usermod -s /sbin/nologin ftpuser

 

5.5 為使用者分配主目錄

為使用者 ftpuser建立主目錄並約定

/data/ftp 為主目錄, 該目錄不可上傳檔案

/data/ftp/pub 檔案只能上傳到該目錄下

在/data中建立相關的目錄

mkdir -p /data/ftp/pub

設定訪問許可權

chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub

設定為使用者的主目錄

usermod -d /data/ftp ftpuser

 

6、OK

至此, FTP服務已經搭建完成, 可以使用各種第三方客戶端來測試訪問FTP伺服器

訪問前, 記得關閉防火牆

systemctl stop firewalld.service

如果需要使用root登入連線FTP服務, 需要配置 /etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers, 將檔案中的root註釋