Vsftp 實驗案例一:(本地用戶) 試驗版本:Linux7.X版本 公司內部現在有一臺FTP 和WEB 伺服器,FTP 的功能主要用於維護公司的網站內容,包括上傳文 件、創建目錄、更新網頁等等。公司現有兩個部門負責維護任務,他們分別適用team1 和team2 帳號進行管理。先要求僅允許team1 ...
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