1. 程式人生 > >第十三節課:第11章和第12章,vsftpd服務與samba和nfs服務

第十三節課:第11章和第12章,vsftpd服務與samba和nfs服務

第十一章

(借鑑請改動)

11.1、檔案傳輸協議

        FTP檔案穿數協議,埠20用於資料傳輸,21埠用於傳輸相關FTP命令

        ftp協議的兩種工作模式:

        主動模式:ftp向客戶端發起

        被動模式(預設):等待客戶端發起

        yun   install   vsftpd    -y

    安裝vsftpd服務,並 iptables   -F   清空防火牆

        vsftpd的住配置檔案   /etc/vsftpd/vsftpd.conf  其中大部分是註釋

        把配置檔案更名  vsftpd.conf_bak  然後用  grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf  過濾註釋,得到的常用引數:

            

        listen=[YES|NO]                                        //是否以獨立執行的方式監聽服務

        listen_address=IP地址                               //設定要監聽的IP地址

        listen_port=21                                        //設定FTP服務的監聽埠

        download_enable=[YES|NO]                  // 是否允許下載檔案

        userlist_enable=[YES|NO]                       //設定使用者列表為“允許”還是“禁止”操作

        userlist_deny=[YES|NO]                        //設定使用者列表為“允許”還是“禁止”操作

        max_clients=0                                       // 最大客戶端連線數,0為不限制

        max_per_ip=0                                        // 同一IP地址的最大連線數,0為不限制

        anonymous_enable=[YES|NO]                  //是否允許匿名使用者訪問

        anon_upload_enable=[YES|NO]               //是否允許匿名使用者上傳檔案

        anon_umask=022                              // 匿名使用者上傳檔案的umask值

        anon_root=/var/ftp                              // 匿名使用者的FTP根目錄

        anon_mkdir_write_enable=[YES|NO]     //是否允許匿名使用者建立目錄

        anon_other_write_enable=[YES|NO]       // 是否開放匿名使用者的其他寫入許可權(包括重新命名、刪除等操作許可權)

        anon_max_rate=0                              // 匿名使用者的最大傳輸速率(位元組/秒),0為不限制

        local_enable=[YES|NO]                            // 是否允許本地使用者登入FTP

        local_umask=022                                      //本地使用者上傳檔案的umask值

        local_root=/var/ftp                                    //本地使用者的FTP根目錄

        chroot_local_user=[YES|NO]                     //是否將使用者許可權禁錮在FTP目錄,以確保安全

        local_max_rate=0                                        //本地使用者最大傳輸速率(位元組/秒),0為不限制

11.2、vsftpd服務程式

        匿名開放模式任何人都可以登入,不安全

        本地使用者模式:通過伺服器本地使用者登入

        虛擬使用者模式:三種中最安全的認證方式,建立使用者資料庫,虛擬出來使用者登入

        需先安裝:yum  install   ftp   -y

        匿名開放模式  (/var/ftp)

        1、修改配置檔案中的部分引數:

             anonymous_enable=YES               //允許匿名訪問模式

             anon_umask=022                          //匿名使用者上傳檔案的umask值

             anon_upload_enable=YES            // 允許匿名使用者上傳檔案

             anon_mkdir_write_enable=YES    //允許匿名使用者建立目錄

             anon_other_write_enable=YES    //允許匿名使用者修改目錄名稱或刪除目錄

        2、修改目錄許可權和selinux的域並重啟服務

            

        3、測試服務(ftp預設訪問的是/var/ftp目錄)

            

        本地使用者模式

        1、修改部分配置檔案:

             anonymous_enable=NO               //禁止匿名訪問模式

             local_enable=YES                       //允許本地使用者模式

             write_enable=YES                       //設定可寫許可權

             local_umask=022                        //本地使用者模式建立檔案的umask值

             userlist_deny=YES                     // 啟用“禁止使用者名稱單”,名單檔案為ftpusers和user_list

             userlist_enable=YES                  // 開啟使用者作用名單檔案功能

        2、修改selinux域並重啟服務

            setsebool  -p  ftpd_full_access=on

        3、本地使用者模式預設不允許root使用者登入,如需登入,需要把/etc/vsftpd/user_list和/etc/vsftpd/ftpusers中root使用者去掉(死亡筆記)

        虛擬使用者模式

        pam模組:可插拔認證模組。是一種認證機制,通過一些動態連結庫和統一的API把系統服務與認證方式分開,靈活的調整不同認證方式。

        1、建立用於認證的使用者資料庫檔案,並加密與授權,刪除原檔案

             [[email protected] vsftpd]# vim vuser.list              //一行使用者名稱一行密碼交替
             zhangsan
             redhat
             lisi
             redhat

             db_load -T -t hash -f vuser.list vuser.db              //加密

             chmod  600  vuser.db

             rm  -rf  vuser.db

        2、把建立的虛擬使用者對映到本地使用者

            useradd -d /var/ftproot -s /sbin/nologin virtual      //用於對映虛擬使用者

            chmod -Rf 755  /var/ftproot

        3、建立用於認證的pam模組

             vim /etc/pam.d/vsftpd.vu

             auth required pam_userdb.so db=/etc/vsftpd/vuser

             account required pam_userdb.so db=/etc/vsftpd/vuser

        4、寫入配置檔案

            anonymous_enable=NO                           //禁止匿名開放模式

            local_enable=YES                                       //允許本地使用者模式

            guest_enable=YES                                   //開啟虛擬使用者模式

            guest_username=virtual                          // 指定虛擬使用者賬戶

            pam_service_name=vsftpd.vu                    // 指定PAM檔案

            allow_writeable_chroot=YES                       // 允許對禁錮的FTP根目錄執行寫入操作,而且不拒絕使用者的登入請求

        5、為使用者設定許可權並寫入配置檔案

            vim  /etc/vsftpd/vusers_dir/zhangsan

            anon_upload_enable=YES

            anon_mkdir_write_enable=YES

            anon_other_write_enable=YES

            vim /etc/vsftpd/vsftpd.conf

            user_config_dir=/etc/vsftpd/vusers_dir

        6、設定selinux域並重啟服務

11.3、簡單文字傳輸協議

        yum  install  tftp-server  tftp   -y      //安裝tftp

        vim  /etc/xinetd.d/tftp   把其中的disable  項改成yes

            

        防火牆新增埠:

            firewall-cmd --permanent --add-port=69/udp

            firewall-cmd --reload 

        tftp的根目錄為  /var/lib/tftpboot  相關引數解釋:

            ?                           //幫助資訊

            put                       //上傳檔案

            get                      //下載檔案

            verbose              //顯示詳細的處理資訊

            status                 //顯示當前的狀態資訊

            binary                 //使用二進位制進行傳輸

            ascii                   //使用ASCII碼進行傳輸

            timeout              //設定重傳的超時時間

            quit                   //退出

        重啟服務:systemctl  restart  xinetd

第十二章

samba和nfs(nfs只能linux之間)總結:

Windows和linux:(smb服務)

         linux 服務端:安裝Samba,將共享目錄寫入/etc/samba/smb.conf並且設定許可權、selinux、防火牆。然後pdbedit建立smb登入使用者,重啟服務。

        windows客戶端:開始搜尋欄直接:\\192.168.10.10

linux  和  linux   :(smb服務)

        服務端:與上述一樣正常配置Samba服務即可

        linux客戶端:yum安裝cifs-utils並寫入認證檔案auth.smb,然後寫入掛載檔案/etc/fstab

        例如://192.168.10.10/database   /database   cifs   credentials=/root/auth.smb   0   0

nfs的linux與linux(只能linux):

        服務端:安裝nfs,把共享目錄寫入/etc/export,設定許可權,selinux,防火牆,並重啟服務(rpc-bind和nfs-server)

        /etc/export的寫入格式:共享目錄路徑         允許訪問nfs客戶端(共享許可權引數)

        客戶端:showmount   -e   檢視服務端共享目錄,並掛載,使用mount   -t  檔案型別掛載

詳細如下:

12.1、samba檔案共享服務

        yum install  samba  -y    安裝Samba服務

        主配置檔案  /etc/samba/smb.conf  中的引數解釋:

           [global] #全域性引數。

           workgroup = MYGROUP               //#工作組名稱

           server string = Samba Server Version %v           //#伺服器介紹資訊,引數%v為顯示SMB版本號

           log file = /var/log/samba/log.%m                       //#定義日誌檔案的存放位置與名稱,引數%m為來訪的主機名

           max log size = 50                                             //#定義日誌檔案的最大容量為50KB

           security = user                                                    //#安全驗證的方式,總共有4種

           #share:                                                         //來訪主機無需驗證口令;比較方便,但安全性很差

           #user:                                    //需驗證來訪主機提供的口令後才可以訪問;提升了安全性

           #server:                             //使用獨立的遠端主機驗證來訪主機提供的口令(集中管理賬戶)

           #domain:                          //使用域控制器進行身份驗證

           passdb backend = tdbsam              // #定義使用者後臺的型別,共有3種

           #smbpasswd:                         //使用smbpasswd命令為系統使用者設定Samba服務程式的密碼

           #tdbsam:                                //建立資料庫檔案並使用pdbedit命令建立Samba服務程式的使用者

           #ldapsam:                              //基於LDAP服務進行賬戶驗證

           load printers = yes                         //#設定在Samba服務啟動時是否共享印表機裝置

           cups options = raw                          //#印表機的選項

           [homes]                                        //#共享引數

           comment = Home Directories             //#描述資訊

           browseable = no                                  //#指定共享資訊是否在“網路上的芳鄰”中可見

           writable = yes                                           // #定義是否可以執行寫入操作,與“read only”相反

           [printers]                                     //#印表機共享引數

           comment = All Printers

           path = /var/spool/samba                     //#共享檔案的實際路徑(重要)。

           browseable = no

           guest ok = no                                 // #是否所有人可見,等同於"public"引數。

           writable = no

           printable = yes

             

     (服務端配置)配置共享資源

        1、寫入配置檔案並且建立smb使用者

            vim  /etc/samba/smb.conf

            [database]                          //共享名稱為database

            comment = Do not arbitrarily modify the database file         //警告使用者不要隨意修改資料庫

            path = /home/database                 //共享目錄為/home/database

            public = no                            //關閉“所有人可見”

             writable = yes                         // 允許寫入操作

            pdbedit   -a  -u  linuxprobe

        pdbedit   用於管理Samba使用者 。    pdbedit  【選項】 【賬戶】。

          -a   使用者名稱     // 建立Samba賬戶                            -x  使用者名稱        //刪除使用者名稱

          -L                  //列出賬戶列表                                 -Lv                   //列出賬戶詳細列表

        2、建立共享檔案目錄/home/database   並授權和selinux的安全上下文和selinux域

        3、清空防火牆並重啟服務

    (客戶端)配置共享

        window端:直接在開始的搜尋欄:\\192.168.10.10  並輸入使用者名稱密碼

        linux端:yum  install  cifs  -y ,寫認證檔案並授權,建立掛載目錄,寫入/etc/fstab中,mount  -a掛載使用 

            vim auth.smb

            username=linuxprobe

            password=redhat

            domain=MYGROUP

            chmod -Rf 600 auth.smb

            vim /etc/fstab

            //192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0

 

複習:ftp的本地模式

預習:第十二章,第十三章  13.5