網路檔案分享權限設定服務-vsftp

來源:互聯網
上載者:User

標籤:dha   time   chmod   tran   最新版   oca   通道   範圍   run   

檔案傳輸通訊協定FTP
    1、File Transfer Protocol 早期的三個應用級協議之一    2、基於C/S結構    3、雙通道協議:            資料和命令串連            資料連線則是從命令決定傳輸資料開始到資料轉送結束,這個串連則關閉了            用戶端發起請求服務端響應、雙方正式建立串連。而結束,這是命令串連的正常工作邏輯            資料連線是臨時根據命令需求建立的、根本目的是為了用戶端上傳資料給服務端            資料連線誰給開啟                    資料連線如果是為伺服器端主動去串連用戶端的稱為主動模式                    由用戶端發請求、服務端響應、稱為被動模式                    FTP多數都是工作在被動模式下,由用戶端發請求來串連伺服器    4、資料轉送格式:            二進位(預設)和文本    5、兩種模式:伺服器角度            主動(PORT style):伺服器主動串連            命令(控制):用戶端:隨機port --- 伺服器:tcp21            資料:用戶端:隨機port ---伺服器:tcp20            被動(PASV style):用戶端主動串連            命令(控制):用戶端:隨機port --- 伺服器:tcp21            資料:用戶端:隨機port --- 伺服器:隨機port    6、伺服器被動模式資料連接埠樣本:            227 Entering Passive Mode (172,16,0,1,224,59)            伺服器資料連接埠為:224*256+59
FTP軟體介紹:
FTP伺服器:    Wu-ftpd,Proftpd,Pureftpd,ServU,IIS    vsftpd:Very Secure FTP Daemon,CentOS預設FTP伺服器        高速,穩定,下載速度是WU-FTP的兩倍        ftp.redhat.com資料:單機最多可支援15000個並發用戶端軟體:    ftp,lftp,lftpget,wget,curl    ftp -A ftpserver port -A主動模式 –p 被動模式    lftp –u username ftpserver    lftp [email protected]    lftpget ftp://ftpserver/pub/file    gftp:GUI centos5 最新版2.0.19 (11/30/2008)    filezilla,CuteFtp,FlashFXP,LeapFtp    IE ftp://username:[email protected]
FTP服務
狀態代碼:    1XX:    資訊       125:資料連線開啟    2XX:    成功類狀態   200:命令OK 230:登入成功    3XX:    補充類          331:使用者名稱OK    4XX:    用戶端錯誤    425:不能開啟資料連線    5XX:    伺服器錯誤   530:不能登入使用者認證:    匿名使用者:ftp,anonymous,對應Linux使用者ftp    系統使用者:Linux使用者,使用者/etc/passwd,密碼/etc/shadow    虛擬使用者:特定服務的專用使用者,獨立的使用者/密碼檔案        nsswitch:network service switch名稱解析架構        pam:pluggable authentication module 使用者認證        /lib64/security /etc/pam.d/ /etc/pam.conf
vsftpd服務
1、由vsftpd包提供2、不再由xinetd管理3、使用者認證設定檔:        /etc/pam.d/vsftpd4、服務指令碼:        /usr/lib/systemd/system/vsftpd.service        /etc/rc.d/init.d/vsftpd5、設定檔:        /etc/vsftpd/vsftpd.conf        man 5 vsftpd.conf        格式:option=value        注意:= 前後不要有空格6、匿名使用者(映射為系統使用者ftp )共用檔案位置:        /var/ftp7、系統使用者共用檔案位置:        使用者家目錄8、虛擬使用者共用檔案位置:        為其映射的系統使用者的家目錄9、命令連接埠        listen_port=2110、主動模式連接埠        connect_from_port_20=YES  主動模式連接埠為20        ftp_data_port=20 (預設) 指定主動模式的連接埠11、被動模式連接埠範圍        linux 用戶端預設使用被動模式        windows 用戶端預設使用主動模式        pasv_min_port=6000 0為隨機分配        pasv_max_port=601012、使用當地時間        use_localtime=YES 使用當地時間(預設為NO,使用GMT)13、匿名使用者        anonymous_enable=YES                    支援匿名使用者        no_anon_password=YES(預設NO)          匿名使用者略過口令檢查        anon_world_readable_only (預設YES)        只能下載全部讀的檔案        anon_upload_enable=YES                  匿名上傳,注意:檔案系統許可權        anon_mkdir_write_enable=YES             匿名建目錄        anon_umask=0333                         指定匿名上傳檔案的umask,預設077        anon_other_write_enable=YES             可刪除和修改上傳的檔案        chown_uploads=YES(預設NO)             指定上傳檔案的預設的所有者和許可權        chown_username=wang        chown_upload_mode=064414、Linux系統使用者        local_enable=YES            是否允許linux使用者登入        write_enable=YES            允許linux使用者上傳檔案        local_umask=022             指定系統使用者上傳檔案的預設許可權        guest_enable=YES            所有系統使用者都映射成guest使用者        guest_username=ftp          配合上面選項才生效,指定guest使用者        local_root=/ftproot         guest使用者登入所在目錄15、禁錮所有系統使用者在家目錄中        chroot_local_user=YES(預設NO,不禁錮)禁錮系統使用者16、禁錮或不禁錮特定的系統使用者在家目錄中,與上面設定功能相反        chroot_list_enable=YES        chroot_list_file=/etc/vsftpd/chroot_list        當chroot_local_user=YES時,則chroot_list中使用者不禁錮        當chroot_local_user=NO時,則chroot_list中使用者禁錮17、wu-ftp日誌:        預設啟用            xferlog_enable=YES (預設)啟用記錄上傳下載日誌            xferlog_std_format=YES (預設) 使用wu-ftp日誌格式            xferlog_file=/var/log/xferlog (預設)可自動產生    vsftpd日誌:        預設不啟用            dual_log_enable=YES 使用vsftpd日誌格式,預設不啟用            vsftpd_log_file=/var/log/vsftpd.log(預設)可自動產生18、登入提示資訊        ftpd_banner="welcome to mage ftp server"        banner_file=/etc/vsftpd/ftpbanner.txt 優先上面項生效    目錄訪問提示資訊        dirmessage_enable=YES (預設)        message_file=.message(預設)         資訊存放在指定目錄下.message19、使用pam(Pluggable Authentication Modules)完成使用者認證    pam_service_name=vsftpd        pam設定檔:/etc/pam.d/vsftpd        /etc/vsftpd/ftpusers 預設檔案中使用者拒絕登入正常情況下,任何一個檔案通過網路服務訪問時,他應該受控於兩個維度    1、受控於軟體本身定義的存取控制規則    2、受控於檔案系統
vsftpd匿名使用者配置樣本
簡單樣本:只要安裝好之後啟動服務就可以正常使用ftp1、安裝vsftpd軟體    [[email protected] ~]#yum -y install vsftpd2、啟動vsftpd服務    [[email protected] ~]#systemctl start vsftpd3、通過用戶端來訪問做個簡單測試    [[email protected] ~]#lftp 192.168.137.56    lftp 192.168.137.56:~> ls                  drwxr-xr-x    2 0        0               6 Aug 03  2017 pub    lftp 192.168.137.56:/> cd pub    lftp 192.168.137.56:/pub> ls    lftp 192.168.137.56:/pub> ls    -rw-r--r--    1 0        0              23 Oct 22 12:26 issue    lftp 192.168.137.56:/pub> lcd /tmp    lcd ok, local cwd=/tmp    lftp 192.168.137.56:/pub> mget issue     23 bytes transferred    lftp 192.168.137.56:/pub> bye    [[email protected] ~]#ls /tmp/    issue4、把服務端共用的檔案許可權改成600[[email protected] /var/ftp/pub]#chmod 600 issue [[email protected] /var/ftp/pub]#lltotal 4-rw------- 1 root root 23 Oct 22 20:26 issue5、再次通過用戶端串連然後下載此檔案    [[email protected] ~]#lftp 192.168.137.56    lftp 192.168.137.56:/> cd pub/    lftp 192.168.137.56:/pub> ls    -rw-------    1 0        0              23 Oct 22 12:26 issue    lftp 192.168.137.56:/pub> mget issue     mget: Access failed: 550 Failed to open file. (issue)    lftp 192.168.137.56:/pub> 配置匿名使用者上傳、下載、等功能:    修改設定檔,開啟允許匿名使用者上傳功能        [[email protected] /etc/vsftpd]#vim vsftpd.conf             #anon_upload_enable=YES            anon_upload_enable=YES    通過用戶端驗證        [[email protected] ~]#lftp 192.168.137.56        lftp 192.168.137.56:~> lcd /etc/        lcd ok, local cwd=/etc        lftp 192.168.137.56:~> put fstab        put: Access failed: 553 Could not create file. (fstab)        lftp 192.168.137.56:/>     正常情況下,ftp的使用者anonymous被映射為ftp使用者,而預設共用的pub目錄屬主屬組預設為root,而ftp使用者被映射為其它使用者是沒有寫入權限,所以導致無法上傳,建議不要修改pub的許可權,最好建立一個目錄用來上傳    解決方案:在pub同級目錄下建立一個目錄專門用來上傳,修改目錄的所屬組和屬主許可權為ftp        [[email protected] /var/ftp]#mkdir upload        [[email protected] /var/ftp]#ls        pub  upload        [[email protected] /var/ftp]#ll        total 0        drwxr-xr-x 2 root root 19 Oct 22 20:26 pub        drwxr-xr-x 2 root root  6 Oct 22 20:52 upload        [[email protected] /var/ftp]#chown -R ftp.ftp upload/        [[email protected] /var/ftp]#ll -ld  upload/        drwxr-xr-x 2 ftp ftp 6 Oct 22 20:52 upload/    再次驗證用戶端        [[email protected] ~]#lftp 192.168.137.56/upload        cd ok, cwd=/upload        lftp 192.168.137.56:/upload> lcd /etc        lcd ok, local cwd=/etc        lftp 192.168.137.56:/upload> put fstab        595 bytes transferred        lftp 192.168.137.56:/upload>     切換到伺服器上查看檔案        [[email protected] /var/ftp]#cd upload/        [[email protected] /var/ftp]#ls -l upload/        total 4        -rw------- 1 ftp ftp 595 Oct 22 20:55 fstab把上傳的檔案屬主改成別的使用者、並修改檔案許可權:    編輯設定檔        [[email protected] /etc/vsftpd]#vim vsftpd.conf         #chown_uploads=YES        #chown_username=whoever    改為        chown_uploads=YES        chown_username=cobbler        chown_upload_mode=0644    建立cobbler使用者        [[email protected] /etc/vsftpd]#useradd cobbler    重啟vsftpd服務        [[email protected] /etc/vsftpd]#systemctl restart vsftpd    通過用戶端驗證此舉設定是否成功        [[email protected] ~]#lftp 192.168.137.56/upload        cd ok, cwd=/upload        lftp 192.168.137.56:/upload> lcd /etc        lcd ok, local cwd=/etc        lftp 192.168.137.56:/upload> put passwd        1199 bytes transferred        lftp 192.168.137.56:/upload> ls    從伺服器端查看檔案屬性        [[email protected] /var/ftp]#cd upload/        [[email protected] /var/ftp/upload]#ll        total 8        -rw------- 1 ftp     ftp  595 Oct 22 20:55 fstab        -rw-r--r-- 1 cobbler ftp 1199 Oct 22 21:04 passwd    在用戶端串連到伺服器嘗試能否建立目錄        lftp 192.168.137.56:/upload> mkdir test        mkdir: Access failed: 550 Permission denied. (test)        lftp 192.168.137.56:/upload> rm fstab        rm: Access failed: 550 Permission denied. (fstab)        lftp 192.168.137.56:/upload> rm passwd         rm: Access failed: 550 Permission denied. (passwd)        lftp 192.168.137.56:/upload>     需要允許匿名使用者建立刪除檔案或者目錄需要在伺服器的設定檔裡面開啟如下兩項        [[email protected] /etc/vsftpd]#vim vsftpd.conf             anon_mkdir_write_enable=YES            anon_other_write_enable=YES    修改完之後重啟服務        [[email protected] /etc/vsftpd]#systemctl restart vsftpd    在用戶端上驗證        [[email protected] ~]#lftp 192.168.137.56/upload        cd ok, cwd=/upload        lftp 192.168.137.56:/upload> mkdir test        mkdir ok, ‘test‘ created        lftp 192.168.137.56:/upload> ls        -rw-------    1 14       50            595 Oct 22 12:55 fstab        -rw-r--r--    1 1000     50           1199 Oct 22 13:04 passwd        drwx------    2 14       50              6 Oct 22 13:10 test        lftp 192.168.137.56:/upload> rm fstab         rm ok, ‘fstab‘ removed        lftp 192.168.137.56:/upload> rm passwd         rm ok, ‘passwd‘ removed        lftp 192.168.137.56:/upload> rmdir test        rmdir ok, ‘test‘ removed        lftp 192.168.137.56:/upload> ls        lftp 192.168.137.56:/upload> 
vsftpd匿名使用者配置樣本
建立一個系統使用者,並修改密碼    [[email protected] /etc/vsftpd]#useradd ilinux    [[email protected] /etc/vsftpd]#echo 123456|passwd --stdin ilinux    Changing password for user ilinux.    passwd: all authentication tokens updated successfully.用戶端登入剛剛在伺服器端建立的系統使用者,登入上來之後顯示的是系統使用者的名稱,而匿名使用者沒有    [[email protected] ~]#lftp -u ilinux 192.168.137.56    Password:     lftp [email protected]:~> ls           lftp [email protected]:~> lcd /etc/    lcd ok, local cwd=/etc    lftp [email protected]:~> put issue    23 bytes transferred    lftp [email protected]:~> ls     -rw-r--r--    1 1001     1001           23 Oct 22 13:19 issue    lftp [email protected]:~> 在伺服器端ilinux的家目錄裡面查看從用戶端上傳上來的檔案每個使用者登入ftp之後訪問的都是使用者的家目錄為什麼匿名使用者存取的是/var/ftp目錄,匿名使用者存取的也是家目錄,是ftp的家目錄    [[email protected] /var/ftp/upload]#grep "^ftp" /etc/passwd    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin    [[email protected] /var/ftp/upload]#ls /home/ilinux/    issue系統使用者和匿名使用者受控方式是不一樣的,就算禁止匿名使用者上傳下載,系統使用者不受影響、正常能上傳和下載
把系統使用者映射為來賓帳號guest
先建立來賓使用者和來賓的目錄,然後需要把建立的目錄去掉寫入權限要不然通過用戶端驗證會報錯誤提示    [[email protected] /var/ftp/upload]#useradd -d /data/ftproot vsguest    [[email protected] /var/ftp/upload]#chmod -w /data/ftproot/    [[email protected] /var/ftp/upload]#ls -ld /data/ftproot/    dr-x------ 2 vsguest vsguest 62 Oct 22 21:56 /data/ftproot/    [[email protected] /var/ftp/upload]#chmod +rx !$    chmod +rx /data/ftproot/    [[email protected] /var/ftp/upload]#ls -ld /data/ftproot/       dr-xr-xr-x 2 vsguest vsguest 62 Oct 22 21:56 /data/ftproot/    [[email protected] /var/ftp/upload]#編輯設定檔增加兩項選項    [[email protected] /etc/vsftpd]#vim vsftpd.conf     #guest user    guest_enable=YES    guest_username=vsguest重啟服務    [[email protected] /etc/vsftpd]#systemctl restart vsftpd複製測試檔案到來賓目錄下,能區分開來是在此目錄下    [[email protected] /etc/vsftpd]#cp /etc/vsftpd/vsftpd.conf /data/ftproot/在用戶端上測試:這裡上面說過要把來賓的目錄寫入權限去掉要不然會提示500的錯誤提示    [[email protected] ~]#lftp -u ilinux 192.168.137.56    Password:     lftp [email protected]:~> pwd          ftp://[email protected]    lftp [email protected]:~> ls    ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()    lftp [email protected]:~> ls    ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()    lftp [email protected]:~> ls    lftp [email protected]:/> ls     -rw-------    1 0        0            5129 Oct 22 14:00 vsftpd.conf    lftp [email protected]:/> 在伺服器上把剛才映射為來賓帳號的那兩項注釋掉然後再通過用戶端測試看是不是回到了它自己的家目錄裡面    [[email protected] /etc/vsftpd]#vim vsftpd.conf         #guest_enable=YES        #guest_username=vsguest重啟服務    [[email protected] /etc/vsftpd]#systemctl restart vsftpd然後在home下的ilinux目錄下查看裡面的檔案,再通過用戶端查看裡面的是否和這裡的看到的是一樣的檔案    [[email protected] /var/ftp/upload]#ls /home/ilinux/    issue測試用戶端上:    [[email protected] ~]#lftp -u ilinux 192.168.137.56    Password:     lftp [email protected]:~> ls           -rw-r--r--    1 1001     1001           23 Oct 22 13:19 issue    lftp [email protected]:~>     lftp [email protected]:~> cd /etc/          一旦允許系統使用者登入以後有個悲劇性的問題,它可以隨意遊盪在整個系統之上,不光是自己的家目錄,如果伺服器上有敏感資訊,這樣一來使用者登入上去之後直接可以下載造成資訊泄露,建議最好使用者登入上來之後只能呆在自己的家目錄裡面,別的目錄不讓它隨意切換                            
禁錮系統使用者在家目錄中樣本:
要禁錮哪個使用者確保這個使用者的家目錄沒有寫入權限,要不然會報錯,不讓使用不過禁錮使用者不常用修改設定檔裡面的參數    [[email protected] /etc/vsftpd]#vim vsftpd.conf     chroot_list_enable=YES    chroot_list_file=/etc/vsftpd/chroot_list建立一個使用者    [[email protected] /etc/vsftpd]#useradd ik8s    [[email protected] /etc/vsftpd]#echo 123456|passwd --stdin ik8s    Changing password for user ik8s.    passwd: all authentication tokens updated successfully.把使用者家目錄的寫入權限去掉    [[email protected] /etc/vsftpd]#chmod -w /home/ik8s/建立要禁錮的使用者列表    [[email protected] /etc/vsftpd]#vim /etc/vsftpd/chroot_list    ik8s重啟服務    [[email protected] /etc/vsftpd]#systemctl restart vsftpd用戶端測試:    [[email protected] ~]#lftp -u ilinux,123456 192.168.137.56    lftp [email protected]:~> cd /etc/                             lftp [email protected]:/etc> exit    [[email protected] ~]#lftp -u ik8s,123456 192.168.137.56    lftp [email protected]:~> cd /etc    cd: Access failed: 550 Failed to change directory. (/etc)    lftp [email protected]:/> ls    lftp [email protected]:/> 

網路檔案分享權限設定服務-vsftp

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.