Centos7 實戰Vsftp服務-實戰案例


Vsftp 實驗案例一:(本地用戶)

試驗版本:Linux7.X版本

公司內部現在有一台FTP 和WEB 服務器,FTP 的功能主要用於維護公司的網站內容,包括上傳文

件、創建目錄、更新網頁等等。公司現有兩個部門負責維護任務,他們分別適用team1 和team2

帳號進行管理。先要求僅允許team1 和team2 帳號登錄FTP 服務器,但不能登錄本地系統,並將

這兩個帳號的根目錄限制為/var/www/html,不能進入該目錄以外的任何目錄。

 

ftp 和www web服務器相結合。

www web服務器根目錄:  /var/www/html

只允許:team1和team2兩用戶 可以上傳。 vsftp禁止匿名。

 

分析:

將FTP 和WEB 服務器做在一起是企業經常采用的方法,這樣方便實現對網站的維護,為了增強安

全性,首先需要使用僅允許本地用戶訪問,並禁止匿名用戶登錄。其次使用chroot 功能將team1

和team2 鎖定在/var/www/html 目錄下。如果需要刪除文件則還需要注意本地權限

 

解決方案:

1)建立維護網站內容的ftp 帳號team1 和team2 並禁止本地登錄,然后設置其密碼

[root@localhost ~]# useradd -s /sbin/nologin team1

[root@localhost ~]# useradd -s /sbin/nologin team2

[root@localhost ~]# echo "123456" | passwd --stdin team1

Changing password for user team1.

passwd: all authentication tokens updated successfully.

[root@localhost ~]# echo "123456" | passwd --stdin team2

Changing password for user team2.

passwd: all authentication tokens updated successfully.

2)配置vsftpd.conf 主配置文件並作相應修改

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO:禁止匿名用戶登錄

local_enable=YES:允許本地用戶登錄

 改:

 

 

為:

 

 

 

local_root=/var/www/html:設置本地用戶的根目錄為/var/www/html

chroot_list_enable=YES:激chroot 功能

chroot_list_file=/etc/vsftpd/chroot_list:設置鎖定用戶在根目錄中的列表文件。此文件存放要鎖定的用戶名;

allow_writeable_chroot=YES :允許鎖定的用戶有寫的權限

保存退出;

(3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帳號

[root@localhost vsftpd]# touch /etc/vsftpd/chroot_list

[root@localhost ~]# ll !$

-rw-r--r-- 1 root root 0 Nov 10 17:08 /etc/vsftpd/chroot_list

[root@xuegod63 ~]# vim /etc/vsftpd/chroot_list  #寫入以下內容,一行,一個用戶名

team1

team2

(4)修改本地權限

[root@localhost ~]# ll -d /var/www/html/

drwxr-xr-x. 2 root root 4096 Oct  6  2011 /var/www/html/

[root@localhost ~]# chmod -R o+w /var/www/html/

[root@localhost ~]# ll -d /var/www/html/

drwxr-xrwx. 2 root root 4096 Oct  6  2011 /var/www/html/

(5)重啟vsftpd 服務使配置生效

service vsftpd restart

 

vsftp實驗案例二:(匿名用戶,創建文件下載上傳文件。。。)

公司技術部准備搭建一台功能簡單的FTP 服務器,允許所有員工上傳和下載文件,並允許創建用

戶自己的目錄。

分析:

允許所有員工上傳和下載文件需要設置成允許匿名用戶登錄並且需要將允許匿名用戶上傳功能

開啟,

anon_mkdir_write_enable 字段可以控制是否允許匿名用戶創建目錄。

[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back

vim  /etc/vsftpd/vsftpd.conf  #修改以下內容

 

允許匿名用戶訪問

anonymous_enable=YES

允許匿名用戶上傳文件並可以創建目錄

anon_upload_enable=YES

anon_mkdir_write_enable=YES

 

 

Vsftp實驗案例二:(匿名用戶)

公司技術部准備搭建一台功能簡單的FTP 服務器,允許所有員工上傳和下載文件,並允許創建用

戶自己的目錄。

分析:

允許所有員工上傳和下載文件需要設置成允許匿名用戶登錄並且需要將允許匿名用戶上傳功能

開啟,

anon_mkdir_write_enable 字段可以控制是否允許匿名用戶創建目錄。

[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back

vim  /etc/vsftpd/vsftpd.conf  #修改以下內容

 

允許匿名用戶訪問

anonymous_enable=YES

允許匿名用戶上傳文件並可以創建目錄

anon_upload_enable=YES

anon_mkdir_write_enable=YES

 

 

 

啟動服務:

service vsftpd restart

測試:

 

 

[root@localhost vsftpd]# chown  ftp.ftp  /var/ftp/pub/

然后測試,是可以新建文件夾了,但是不能重命名,不能刪除!


[root@localhost vsftpd]# vim vsftpd.conf

anon_other_write_enable=YES  ##默認沒有,需要手動添加下這行

重啟服務,即可重命名文件夾。

下面我們來一步一步的實現,先修改目錄權限,創建一個公司上傳用的目錄,叫xuegoddata,設置擁有者為ftp 用戶所有,目錄權限是755

[root@localhost vsftpd]# mkdir /var/ftp/xuegoddata

[root@localhost vsftpd]# chown ftp.ftp /var/ftp/xuegoddata/

[root@localhost vsftpd]# ll -d !$

ll -d /var/ftp/xuegoddata/

drwxr-xr-x 2 ftp root 4096 Mar  9 19:30 /var/ftp/xuegoddata/

 

然后重新啟動服務

[root@localhost ~]# service vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

 

最后發現能刪除和創建文件了;實驗完成!

 

 

Vsftp實驗案例三:(虛擬用戶登錄ftp)

實驗說明;

一、允許所有人訪問/var/ftp/soft目錄不能創建文件和目錄,不允許上傳文件,devadm虛擬戶可以對該目錄有修改上傳,刪除等操作權限。

二、sales虛擬用戶只能讀取/var/market。其余沒有任何權限,salesadm對該目錄有刪除修改、上傳、創建等權限。

三、不允許本地用戶登錄。

1、 關閉防火牆

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# setenforce 0

2、 安裝vsftpd軟件

3、 建立虛擬用戶賬戶文件

[root@localhost ~]# vim /etc/vsftpd/vusers.list

devadm

123456a

sales

123456b

salesadm

123456c

 

4、 創建數據庫文件

[root@localhost ~]# cd /etc/vsftpd/

[root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db

[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.*

[root@localhost vsftpd]# file  vusers.db    #查看轉換后的文件類型

vusers.db: Berkeley DB (Hash, version 9, native byte-order)     #提示這些是成了

 

5、添加虛擬用戶的映射賬號、FTP根目錄

    [root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin zhangsan

[root@localhost ~]# chmod 755 /var/ftproot

 

6、 為虛擬用戶建立PAM認證文件

[root@localhost ~]# vim /etc/pam.d/vsftpd.vu

auth    required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers

 

7、 修改vsftpd配置,添加虛擬用戶支持

[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

    pam_service_name=vsftpd.vu         //修改

userlist_enable=NO                   //修改

anon_root=/var/ftp/soft               //末尾添加

guest_enable=yes                     //添加

guest_username=zhangsan           //添加

user_config_dir=/etc/vsftpd/vusers_dir       //添加

allow_writeable_chroot=YES             //添加

 

8、 創建虛擬用戶獨立的配置文件

[root@localhost vsftpd]# mkdir /etc/vsftpd/vusers_dir

[root@localhost vsftpd]# cd /etc/vsftpd/vusers_dir

[root@localhost vusers_dir]# touch devadm

[root@localhost vusers_dir]# vim devadm

local_root=/var/ftp/soft

write_enable=YES

anon_upload_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

    root@localhost vusers_dir]# vim sales

       local_root=/var/market

    [root@localhost vusers_dir]# vim salesadm

       local_root=/var/market

write_enable=YES

anon_upload_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

[root@localhost vusers_dir]# systemctl restart vsftpd

 

9、創建目錄和文件准備驗證(遇到文件上傳不了或者修改不了的,記得修改權限或者屬主)

[root@localhost vsftpd]# mkdir /var/ftp/soft

[root@localhost vusers_dir]# touch /var/ftp/soft/devadm

[root@localhost vusers_dir]# mkdir /var/market

[root@localhost var]# chmod 755 /var/market/

[root@localhost vusers_dir]# touch /var/market/sales

[root@localhost var]# chmod 755 /var/ftp/soft

[root@localhost vusers_dir]# chown zhangsan /var/market

[root@localhost vusers_dir]# chown zhangsan /var/ftp/soft

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM