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

匿名用戶

  FTP協議佔用兩個端口號:

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

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

 

圖片

實驗:匿名訪問,服務器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/abcweb

虛擬用戶

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

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

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

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

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

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

第5步:爲虛擬用戶設置不一樣的權限。session

第6步:重啓vsftpd服務,驗證明驗效果。

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

            //單數行爲賬號,雙數行爲密碼。
            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用戶下
/一、主配置文件:/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  歡迎信息
 ----------------------------------------------------------------------------------
 二、讓匿名用戶能夠上傳/下載資料(權限開放最大)上一個配置文件後面增長:

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
--------------------------------------------------------------------------/
三、讓匿名用戶具備上傳權限,不能下載(實際應用案例:經審覈才能下載),上傳以後就在客戶端看不見了
 
 write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
chown_uploads=YES
chown_username=daemon  將上傳文件全部者改成daemon因此沒法下載
相關文章
相關標籤/搜索