Linux:FTP服務匿名用戶,本地用戶,虛擬用戶配置


匿名用戶

  FTP協議占用兩個端口號:

21端口:命令控制,用於接收客戶端執行的FTP命令。

20端口:數據傳輸,用於上傳、下載文件數據。 

 

圖片

實驗:匿名訪問,服務器192.168.10.10    客戶端192.168.10.20   匿名訪問模式的FTP根目錄為/var/ftp:
第1步:
服務器端,安裝vsftpd服務, yum install vsftpd -y
第2步:
服務器端,編輯配置文件: 
vim /etc/vsftpd/vsftpd.conf 在配置文件中追加:第一項原配置文件中已存在
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
第3步:
客戶端,安裝ftp服務,  yum install ftp -y
第4步:
客戶端,使用命令: ftp 192.168.10.10   用戶名Name: anonymous  密碼空密碼。
創建文件夾時,權限被拒絕。是SELinux的限制,和/var/ftp的所有者的限制
 ftp> mkdir file
550 Permission denied. 
第5步:
服務器端,
chown  ftp /var/ftp/pub 
  getsebool -a | grep ftp 
 setsebool -P ftpd_full_access=on
第6步:
客戶端進行驗證。 

本地用戶

本地用戶即服務器端(除root外)的普通用戶。

第1步:

服務器端編輯配置文件: vim /etc/vsftpd/vsftpd.conf 追加:已經有的項目不添加
 anonymous_enable=NO
 local_enable=YES
 write_enable=YES
 local_umask=022
 userlist_deny=YES
 userlist_enable=YES

第2步:

/etc/vsftpd/ftpusers    /etc/vsftpd/user_list 禁止列表
 服務器端vsftpd服務為了讓FTP服務更加的安全,默認禁止以root身份登入,那么創建個普通用戶abc 並添加密碼:
 useradd abc
  passwd abc


第3步:
 
服務器端設置SELinux: setsebool -P ftpd_full_access=on

第4步:

客戶端登錄ftp192.168.10.10 並驗證 ,創建的文件位於abc賬戶家目錄:/home/abc

虛擬用戶

http://blog.sina.com.cn/s/blog_3edc5e2e0102vzv8.html權限設置參考
http://blog.chinaunix.net/uid-324202-id-144759.html 數據庫MySQL

虛擬用戶不是系統中存在的,因此比本地用戶安全,步驟

   第1步:建立虛擬FTP用戶數據庫文件。

第2步:創建FTP根目錄及虛擬用戶映射的系統用戶。

第3步:建立支持虛擬用戶的PAM認證文件。

第4步:在vsftpd.conf文件中添加支持配置。

第5步:為虛擬用戶設置不同的權限。

第6步:重啟vsftpd服務,驗證實驗效果。

    第1步:建立虛擬FTP用戶數據庫文件。
        服務器端,切換目錄cd /etc/vsftpd/
             [root@linuxprobe vsftpd]# vim vuser.list

            //單數行為帳號,雙數行為密碼。
            linuxprobe
            pa33w0rd
            blackshield
            pa22w1rd
            使用db_load命令用HASH算法生成FTP用戶數據庫文件vuser.db:  db_load -T -t hash -f vuser.list vuser.db
            查看文件:file vuser.db  
            FTP用戶數據庫內容很敏感,所以權限給小一些:chmod 600 vuser.db
 

 第2步:創建FTP根目錄及虛擬用戶映射的系統用戶。

            創建用戶virtual並設置為不允許登陸系統並定義該用戶的家目錄:useradd -d /var/ftproot -s /sbin/nologin virtual
             為保證其他用戶可以訪問,給予rwxr-xr-x權限:chmod -Rf 755 /var/ftproot/

    第3步:建立支持虛擬用戶的PAM認證文件。
             [root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu

            //參數db用於指向剛剛生成的vuser.db文件,但不要寫后綴。
            auth       required     pam_userdb.so db=/etc/vsftpd/vuser
            account    required     pam_userdb.so db=/etc/vsftpd/vuser

     第4步:在vsftpd.conf文件中添加支持配置。
             vim /etc/vsftpd/vsftpd.conf
            ----------------------------------
             anonymous_enable=NO
             local_enable=YES
             guest_enable=YES
             guest_username=virtual
             pam_service_name=vsftpd.vu
             allow_writeable_chroot=YES
            ------------------------------------- 
添加后的配置文件,已測試,可直接復制 

anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
allow_writeable_chroot=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
userlist_enable=YES
tcp_wrappers=YES
 
user_config_dir=/etc/vsftpd/vusers_dir
 


        第5步:為虛擬用戶設置不同的權限。 

        現在不論是linuxprobe還是blackshield帳戶,他們的權限都是相同的——默認不能上傳、創建、修改文件,
        如果希望用戶blackshield能夠完全的管理FTP內的資料,就需要讓FTP程序支持獨立的用戶權限配置文件了:
          指定用戶獨立的權限配置文件存放的目錄:vim /etc/vsftpd/vsftpd.conf (user_config_dir=/etc/vsftpd/vusers_dir)
      創建用戶獨立的權限配置文件存放的目錄:mkdir /etc/vsftpd/vusers_dir/
      切換進入到該目錄中:cd /etc/vsftpd/vusers_dir/
      創建空白的linuxprobe的配置文件:touch linuxprobe
      指定blackshield用戶的具體權限:vim blackshield 下面一段直接復制會報錯。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES  
     第6步:重啟vsftpd服務,驗證實驗效果。
       setsebool -P ftpd_full_access=on
        在客戶端驗證以上兩個用戶的權限。 
        linuxprobe用戶不能創建文件夾, blackshield用戶可以創建文件夾

 

-----------------------------------------------------------------------------------實際應用例子-------------------

ftp服務器匿名用戶設置
匿名用戶在服務器端映射到ftp用戶下
/1、主配置文件:/etc/vsftpd/vsftpd.conf 刪除默認配置增加以下內容:
客戶端只能下載~:
anonymous_enable=YES 
no_anon_password=YES  匿名登錄系統不檢測密碼,通常是email
anon_max_rate=1000000  最大帶寬10M
data_connection_timeout=60  超時60s
idle_session_timeout=600    發呆超過10分鍾斷線
max_clients=50     最大連接數及每個IP可用連接
max_per_ip=5
 
local_enable=NO
 
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
banner_file=/etc/vsftpd/anon_welcome.txt  歡迎信息
 ----------------------------------------------------------------------------------
 2、讓匿名用戶可以上傳/下載資料(權限開放最大)上一個配置文件后面增加:

write_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
改文件夾權限:
mkdir /var/ftp/uploads
chown ftp /var/ftp/uploads
還要修改seLinux:
setsebool -P ftpd_anon_write=on
setsebool -P ftpd_full_access=on
--------------------------------------------------------------------------/
3、讓匿名用戶具有上傳權限,不能下載(實際應用案例:經審核才能下載),上傳之后就在客戶端看不見了
 
 write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
chown_uploads=YES
chown_username=daemon  將上傳文件所有者改為daemon所以無法下載

 


免責聲明!

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



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