Centos7安裝vsftp-虛擬使用者

过期的豆豆糖發表於2024-11-22

@

目錄
  • 一、準備環境
    • 1.軟體準備
    • 2.檢查是否已安裝
  • 二、下載及安裝
    • 方式一:yum下載及安裝
    • 方式二:yumdownloade下載及安裝
    • 方式三:離線
  • 三、配置
    • 1.配置開機啟動
        • (1)檢視vsftp服務狀態
        • (2)設定開機啟動
    • 2.防火牆設定
      • 方式一:關閉防火牆
      • 方式二:防火牆開放埠
    • 3.vsftp.conf配置
    • 4.配置vsftpd檔案
      • (1)備份vsftpd檔案
      • (2)編輯vsftpd檔案
      • (3)修改內容為如下:
      • (4)重啟服務
    • 5.建立虛擬使用者
      • (1)建立虛擬使用者
      • (2)虛擬使用者配置許可權及目錄
        • ftp1內容如下
  • 一、準備環境
    • 1.軟體準備
    • 2.檢查是否已安裝
  • 二、下載及安裝
    • 方式一:yum下載及安裝
    • 方式二:yumdownloade下載及安裝
    • 方式三:離線
  • 三、配置
    • 1.配置開機啟動
        • (1)檢視vsftp服務狀態
        • (2)設定開機啟動
    • 2.防火牆設定
      • 方式一:關閉防火牆
      • 方式二:防火牆開放埠
    • 3.vsftp.conf配置
    • 4.配置vsftpd檔案
      • (1)備份vsftpd檔案
      • (2)編輯vsftpd檔案
      • (3)修改內容為如下:
      • (4)重啟服務
    • 5.建立虛擬使用者
      • (1)建立虛擬使用者
      • (2)虛擬使用者配置許可權及目錄
        • ftp1內容如下

一、準備環境

1.軟體準備

  1. OS版本:centos-release-7-8.2003.0.el7.centos.x86_64
  2. vsftp版本:vsftpd-3.0.2-28.el7.x86_64.rpm

rpm -q centos-release #檢視OS版本

2.檢查是否已安裝

rpm -qa | grep vsftpd

二、下載及安裝

方式一:yum下載及安裝

yum -y install vsftp

方式二:yumdownloade下載及安裝

# 1.安裝yumdownloade外掛
yum install yum-utils -y
# 2.列出能聯網系統的所有可安裝的vsftpd軟體
yum list | grep vsftpd
# 3.下載到指定目錄
下載軟體包vsftpd.x86_64及依賴到指定目錄(當前目錄)
yumdownloader vsftpd.x86_64   --resolve --destdir=.
yumdownloader vsftpd-sysvinit.x86_64    --resolve --destdir=.
# 4. 安裝:
rpm -ivh --replacefiles /root/vsftpd*.rpm

方式三:離線

  1. 下載地址:https://pkgs.org/download/vsftpd
  2. 下載:vsftpd-3.0.2-28.el7.x86_64.rpm
  3. 安裝:rpm -ivh --replacefiles /root/vsftpd*.rpm

三、配置

1.配置開機啟動

(1)檢視vsftp服務狀態

# 檢視狀態
service vsftpd status
#開啟
service vsftpd start
#停止
service vsftpd stop
#重啟
service vsftpd restart

(2)設定開機啟動

# 檢視是否開機啟動:
systemctl is-enabled vsftpd.service
# 設定開機自啟動:
systemctl enable vsftpd.service

# 檢視開機啟動服務列表:
systemctl list-unit-files|grep enabled
# 檢視啟動失敗的服務列表:
systemctl --failed

2.防火牆設定

方式一:關閉防火牆

# 1.檢視防火牆狀態
systemctl status firewalld.service
# 2.關閉防火牆
systemctl stop firewalld.service

方式二:防火牆開放埠

# 暫時開放
firewall-cmd --add-service=ftp
# 永久開放
firewall-cmd --add-service=ftp --permanent
# 使配置生效
firewall-cmd --reload
# 檢視服務
firewall-cmd --list-service

3.vsftp.conf配置

檢視原始配置:cat /etc/vsftpd/vsftpd.conf |grep -v ^#

# vsftp.conf原始配置
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# 1.配置前先備份:
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
# 2.編輯內容
vi /etc/vsftpd/vsftpd.conf

vsftpd.conf內容修改為如下:

#設定不允許匿名訪問
anonymous_enable=NO
#設定本地使用者可以訪問。注:如使用虛擬宿主使用者,在該專案設定為NO的情況下所有虛擬使用者將無法訪問
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
#記錄上傳下載檔案的日誌
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftp
#日誌記錄檔案位置
xferlog_file=/var/log/vsftpd.log
#格式化日誌
xferlog_std_format=YES
#設定支援ASCII模式的上傳和下載功能
ascii_upload_enable=YES
ascii_download_enable=YES

#使使用者不能離開主目錄
chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list

ls_recurse_enable=YES
#監聽IPv4,sockets
listen=YES
#註釋IPv6,sockets監聽
#listen_ipv6=YES

#PAM認證檔名。PAM將根據/etc/pam.d/vsftpd進行認證
pam_service_name=vsftpd

userlist_enable=YES
userlist_deny=YES
#/etc/vsftpd/user_list中的使用者禁止登入ftp
#如果只配置userlist_enable=YES,有可能出現錯誤“530 Permission denied”,因此加上如下配置
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES

#設定啟用虛擬使用者功能
guest_enable=YES
#指定虛擬使用者的宿主使用者,CentOS中已經有內建的ftp使用者了
guest_username=ftp
#設定虛擬使用者個人vsftp的CentOS FTP服務檔案存放路徑。存放虛擬使用者個性的CentOS,FTP服務檔案(配置檔名=虛擬使用者名稱)
user_config_dir=/etc/vsftpd/vuser_conf

pasv_min_port=61001
pasv_max_port=62000

#檔案上傳下載許可權設定
allow_writeable_chroot=YES
anon_umask=022
file_open_mode=777

#虛擬使用者和本地使用者有相同的許可權
virtual_use_local_privs=YES

4.配置vsftpd檔案

(1)備份vsftpd檔案

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup

(2)編輯vsftpd檔案

vi /etc/pam.d/vsftpd

(3)修改內容為如下:

##1. 檢視系統版本號    
getconf LONG_BIT

#系統為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

(4)重啟服務

systemctl restart vsftpd.service

5.建立虛擬使用者

(1)建立虛擬使用者

# 1.建立chroot list
touch /etc/vsftpd/chroot_list
# 2.將vftpd.conf配置檔案中的guest_username
echo ftp >> /etc/vsftpd/chroot_list
# 3.建立使用者密碼檔案,並寫入內容
touch /etc/vsftpd/vuser_passwd.txt
##注意奇行是使用者名稱,偶行是密碼
ftp1
1qaz@WSX

# 4.生成虛擬使用者認證的db檔案
# 如果沒有db4需要先進行安裝。安裝Berkeley DB工具:
yum install db4 db4-utils
# 5.生成虛擬使用者認證的db檔案,每次新加使用者重新執行
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

(2)虛擬使用者配置許可權及目錄

# 1.建立虛擬使用者配置
mkdir /etc/vsftpd/vuser_conf/
# 2.檔名等於vuser_passwd.txt裡面的賬戶名,否則下面設定無效
vi /etc/vsftpd/vuser_conf/ftp1
# 3.建立虛擬使用者目錄
mkdir -p /data/ftp1/upload
# 4.目錄授權
chmod -R 777 /data/ftp1/upload

ftp1內容如下

 #虛擬使用者根目錄,根據實際情況修改(如果沒有需要建立)。該目錄必須要有讀寫許可權 chmod -R 777 目錄。
local_root=/data/ftp1/upload
#可寫
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

一、準備環境

1.軟體準備

  1. OS版本:centos-release-7-8.2003.0.el7.centos.x86_64
  2. vsftp版本:vsftpd-3.0.2-28.el7.x86_64.rpm

rpm -q centos-release #檢視OS版本

2.檢查是否已安裝

rpm -qa | grep vsftpd

二、下載及安裝

方式一:yum下載及安裝

yum -y install vsftp

方式二:yumdownloade下載及安裝

# 1.安裝yumdownloade外掛
yum install yum-utils -y
# 2.列出能聯網系統的所有可安裝的vsftpd軟體
yum list | grep vsftpd
# 3.下載到指定目錄
下載軟體包vsftpd.x86_64及依賴到指定目錄(當前目錄)
yumdownloader vsftpd.x86_64   --resolve --destdir=.
yumdownloader vsftpd-sysvinit.x86_64    --resolve --destdir=.
# 4. 安裝:
rpm -ivh --replacefiles /root/vsftpd*.rpm

方式三:離線

  1. 下載地址:https://pkgs.org/download/vsftpd
  2. 下載:vsftpd-3.0.2-28.el7.x86_64.rpm
  3. 安裝:rpm -ivh --replacefiles /root/vsftpd*.rpm

三、配置

1.配置開機啟動

(1)檢視vsftp服務狀態

# 檢視狀態
service vsftpd status
#開啟
service vsftpd start
#停止
service vsftpd stop
#重啟
service vsftpd restart

(2)設定開機啟動

# 檢視是否開機啟動:
systemctl is-enabled vsftpd.service
# 設定開機自啟動:
systemctl enable vsftpd.service

# 檢視開機啟動服務列表:
systemctl list-unit-files|grep enabled
# 檢視啟動失敗的服務列表:
systemctl --failed

2.防火牆設定

方式一:關閉防火牆

# 1.檢視防火牆狀態
systemctl status firewalld.service
# 2.關閉防火牆
systemctl stop firewalld.service

方式二:防火牆開放埠

# 暫時開放
firewall-cmd --add-service=ftp
# 永久開放
firewall-cmd --add-service=ftp --permanent
# 使配置生效
firewall-cmd --reload
# 檢視服務
firewall-cmd --list-service

3.vsftp.conf配置

檢視原始配置:cat /etc/vsftpd/vsftpd.conf |grep -v ^#

# vsftp.conf原始配置
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# 1.配置前先備份:
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
# 2.編輯內容
vi /etc/vsftpd/vsftpd.conf

vsftpd.conf內容修改為如下:

#設定不允許匿名訪問
anonymous_enable=NO
#設定本地使用者可以訪問。注:如使用虛擬宿主使用者,在該專案設定為NO的情況下所有虛擬使用者將無法訪問
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
#記錄上傳下載檔案的日誌
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftp
#日誌記錄檔案位置
xferlog_file=/var/log/vsftpd.log
#格式化日誌
xferlog_std_format=YES
#設定支援ASCII模式的上傳和下載功能
ascii_upload_enable=YES
ascii_download_enable=YES

#使使用者不能離開主目錄
chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list

ls_recurse_enable=YES
#監聽IPv4,sockets
listen=YES
#註釋IPv6,sockets監聽
#listen_ipv6=YES

#PAM認證檔名。PAM將根據/etc/pam.d/vsftpd進行認證
pam_service_name=vsftpd

userlist_enable=YES
userlist_deny=YES
#/etc/vsftpd/user_list中的使用者禁止登入ftp
#如果只配置userlist_enable=YES,有可能出現錯誤“530 Permission denied”,因此加上如下配置
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES

#設定啟用虛擬使用者功能
guest_enable=YES
#指定虛擬使用者的宿主使用者,CentOS中已經有內建的ftp使用者了
guest_username=ftp
#設定虛擬使用者個人vsftp的CentOS FTP服務檔案存放路徑。存放虛擬使用者個性的CentOS,FTP服務檔案(配置檔名=虛擬使用者名稱)
user_config_dir=/etc/vsftpd/vuser_conf

pasv_min_port=61001
pasv_max_port=62000

#檔案上傳下載許可權設定
allow_writeable_chroot=YES
anon_umask=022
file_open_mode=777

#虛擬使用者和本地使用者有相同的許可權
virtual_use_local_privs=YES

4.配置vsftpd檔案

(1)備份vsftpd檔案

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup

(2)編輯vsftpd檔案

vi /etc/pam.d/vsftpd

(3)修改內容為如下:

##1. 檢視系統版本號    
getconf LONG_BIT

#系統為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

(4)重啟服務

systemctl restart vsftpd.service

5.建立虛擬使用者

(1)建立虛擬使用者

# 1.建立chroot list
touch /etc/vsftpd/chroot_list
# 2.將vftpd.conf配置檔案中的guest_username
echo ftp >> /etc/vsftpd/chroot_list
# 3.建立使用者密碼檔案,並寫入內容
touch /etc/vsftpd/vuser_passwd.txt
##注意奇行是使用者名稱,偶行是密碼
ftp1
1qaz@WSX

# 4.生成虛擬使用者認證的db檔案
# 如果沒有db4需要先進行安裝。安裝Berkeley DB工具:
yum install db4 db4-utils
# 5.生成虛擬使用者認證的db檔案,每次新加使用者重新執行
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

(2)虛擬使用者配置許可權及目錄

# 1.建立虛擬使用者配置
mkdir /etc/vsftpd/vuser_conf/
# 2.檔名等於vuser_passwd.txt裡面的賬戶名,否則下面設定無效
vi /etc/vsftpd/vuser_conf/ftp1
# 3.建立虛擬使用者目錄
mkdir -p /data/ftp1/upload
# 4.目錄授權
chmod -R 777 /data/ftp1/upload

ftp1內容如下

 #虛擬使用者根目錄,根據實際情況修改(如果沒有需要建立)。該目錄必須要有讀寫許可權 chmod -R 777 目錄。
local_root=/data/ftp1/upload
#可寫
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

相關文章