Vsftp 實驗案例一:(本地用戶)html
試驗版本:Linux7.X版本web
公司內部如今有一臺FTP 和WEB 服務器,FTP 的功能主要用於維護公司的網站內容,包括上傳文數據庫
件、建立目錄、更新網頁等等。公司現有兩個部門負責維護任務,他們分別適用team1 和team2vim
賬號進行管理。先要求僅容許team1 和team2 賬號登陸FTP 服務器,但不能登陸本地系統,並將服務器
這兩個賬號的根目錄限制爲/var/www/html,不能進入該目錄之外的任何目錄。測試
ftp 和www web服務器相結合。網站
www web服務器根目錄: /var/www/htmlui
只容許:team1和team2兩用戶 能夠上傳。 vsftp禁止匿名。spa
分析:rest
將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)
實驗說明;
1、容許全部人訪問/var/ftp/soft目錄不能建立文件和目錄,不容許上傳文件,devadm虛擬戶能夠對該目錄有修改上傳,刪除等操做權限。
2、sales虛擬用戶只能讀取/var/market。其他沒有任何權限,salesadm對該目錄有刪除修改、上傳、建立等權限。
3、不容許本地用戶登陸。
一、 關閉防火牆
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
二、 安裝vsftpd軟件
三、 創建虛擬用戶帳戶文件
[root@localhost ~]# vim /etc/vsftpd/vusers.list
devadm
123456a
sales
123456b
salesadm
123456c
四、 建立數據庫文件
[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
六、 爲虛擬用戶創建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
七、 修改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 //添加
八、 建立虛擬用戶獨立的配置文件
[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