1. 程式人生 > >CentOS7種搭建FTP伺服器

CentOS7種搭建FTP伺服器

如果是在虛擬機器中試驗的,最好先拍攝快照以免出現錯誤時恢復

1.安裝vsftpd

#首先要檢視你是否安裝vsftp

 [[email protected] /]# rpm -q vsftpd

vsftpd-3.0.2-10.el7.x86_64             (顯示也就安裝成功了!)

#如果沒有則安裝vsftpd

[[email protected]/]# yum  install -y  vsftpd

#完成後再檢查一遍

 [[email protected] /]# whereis  vsftpd

vsftpd:/usr/sbin/vsftpd /etc/vsftpd/usr/share/man/man8/vsftpd

#檢視vsftpd服務的狀態

 [[email protected] /]# systemctl statusvsftpd.service

(如果是啟用狀態的話會有active綠色的標記)

#啟用vsftpd服務

 [[email protected] /]# systemctl startvsftpd.service

#設定vsftpd服務開機自啟

 [[email protected] /]#systemctl enablevsftpd.service

2. 配置vsftpd.conf

#首先備份配置檔案(必須要備份,以免出現意外時恢復。)

cp /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.bak

#執行以下命令(sed  -i 命令相當於直接修改原檔案)

sed -i"s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'

sed -i"s/#anon_upload_enable=YES/anon_upload_enable=NO/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#chown_uploads=YES/chown_uploads=NO/g"

'/etc/vsftpd/vsftpd.conf'

sed -i"s/#async_abor_enable=YES/async_abor_enable=YES/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#ascii_download_enable=YES/ascii_download_enable=YES/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome toFTP service./g"'/etc/vsftpd/vsftpd.conf'

(其實你也可以直接使用

  vim /etc/vsftpd/vsftpd.conf 進入配置檔案修改如下

    anonymous_enable=NO  # 禁用匿名登入

    ascii_upload_enable=YES

   ascii_download_enable=YES

   chroot_local_user=YES  # 啟用限定使用者在其主目錄下

)

#之後新增下列內容到vsftpd.conf末尾

use_localtime=YES

listen_port=21

chroot_local_user=YES

idle_session_timeout=300

guest_enable=YES

guest_username=vsftpd

user_config_dir=/etc/vsftpd/vconf

data_connection_timeout=1

virtual_use_local_privs=YES

pasv_min_port=10060

pasv_max_port=10090

accept_timeout=5

connect_timeout=1

3. 建立使用者檔案

#第一行使用者名稱,第二行密碼,不能使用root為使用者名稱

vim /etc/vsftpd/virtusers

新增內容

test

123456

liu

123456

4.生成使用者資料檔案

首先你需要確定你是否有db_load這個命令

rpm –q  db

安裝之前先查詢一下 

yum  search db4

安裝

yum install-y  compat-db47.x86_64  (以你的機器為準) 

生成db檔案

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

#設定PAM驗證檔案,並指定對虛擬使用者資料庫檔案進行讀取

chmod600/etc/vsftpd/virtusers.db   (許可權r,w即可)

5. 修改/etc/pam.d/vsftpd檔案

# 修改前先備份

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

# 將auth及account的所有配置行均註釋掉

vi /etc/pam.d/vsftpd

在裡面新增這兩句話

auth sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

account sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

# 如果系統為32位,上面lib64改為lib

6.新建系統使用者vsftpd,使用者目錄為/home/vsftpd

#先在家目錄下建立vsftpd資料夾,這也是我們訪問的空間

mkdir -p /home/vsftpd

#使用者登入終端設為/bin/false(即:使之不能登入系統)

useradd vsftpd -d/home/vsftpd -s /bin/false

chown -R vsftpd:vsftpd /home/vsftpd

7.建立虛擬使用者個人配置檔案

mkdir /etc/vsftpd/vconf

cd/etc/vsftpd/vconf

#這裡建立兩個虛擬使用者配合檔案

touch test liu

#建立使用者根目錄

mkdir -p /home/vsftpd/test/

#編輯test使用者配置檔案,內容如下,其他使用者類似

vi test

local_root=/home/vsftpd/test/

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

8.防火牆設定(centos 7

#如果系統啟用了防火牆和SELinux,那麼還要做以下配置(預設情況下centos7是使用firewall和selinux的,不在使用iptables)

#防火牆新增FTP服務:

[[email protected] vsftpd]#firewall-cmd --permanent --zone=public --add-service=ftp

[[email protected] vsftpd]#firewall-cmd --reload

#設定SELinux

[[email protected] vsftpd]#getsebool -a | grep ftp

[[email protected] vsftpd]#setsebool -P ftpd_full_access on

9. 重啟vsftpd伺服器

[[email protected]]# systemctl stop  vsftpd.service

[[email protected]]# systemctl start  vsftpd.service

[[email protected]]# systemctl status  vsftpd.service

10. /home/vsftpd/test/下面件幾個資料夾做測試

mkdir  /home/vsftpd/test/test{1..5}