<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址:http://drops.wooyun.org/papers/161

                    0x00 Rsync簡介


                    Rsync,remote synchronize顧名思意就知道它是一款實現遠程同步功能的軟件,它在同步文件的同時,可以保持原來文件的權限、時間、軟硬鏈接等附加信息。

                    rsync是用 “rsync 算法”提供了一個客戶機和遠程文件服務器的文件同步的快速方法,而且可以通過ssh方式來傳輸文件,這樣其保密性也非常好,另外它還是免費的軟件。

                    rsync 包括如下的一些特性:

                    能更新整個目錄和樹和文件系統;
                    有選擇性的保持符號鏈鏈、硬鏈接、文件屬于、權限、設備以及時間等;
                    對于安裝來說,無任何特殊權限要求;
                    對于多個文件來說,內部流水線減少文件等待的延時;
                    能用rsh、ssh 或直接端口做為傳輸入端口;
                    支持匿名rsync 同步文件,是理想的鏡像工具;
                    

                    0x01 架設Rsync服務器


                    安裝Rsync與xinetd包

                    $ yum -y install xinetd rsync
                    

                    確保xinetd運行在levels 3或4或5。

                    $ chkconfig --level 345 xinetd on
                    

                    修改rsync xinetd配置文件,把disable = yes改成disable = no

                    $ vi /etc/xinetd.d/rsync
                    

                    創建rsync的密碼文件,格式 username:password

                    $ vi /etc/rsyncd.secrets
                    

                    創建rsync共享配置文件

                    $ vi /etc/rsyncd.conf
                    

                    添加如下內容:

                    secrets file = /etc/rsyncd.secrets #密碼文件位置,認證文件設置,設置用戶名和密碼
                    #motd file = /etc/rsyncd.motd #歡迎信息文件名稱和存放位置(此文件沒有,可以自行添加)
                    read only = no # yes只讀 值為NO意思為可讀可寫模式,數據恢復用NO
                    list = yes
                    uid = nobody #以什么身份運行rsync
                    gid = nobody
                    
                    [out]  #模塊名
                    comment = Welcome #歡迎信息
                    path = /home/rsync/out #rsync同步的路徑
                    auth users = rsync #授權帳號,認證的用戶名,如果沒有這行則表明是匿名,多個用戶用,分隔。
                    hosts allow = X.X.X.X #允許訪問的IP
                    auth users = username #/etc/rsyncd.secrets中的用戶名
                    

                    還有很多參數沒有使用。

                    http://www.samba.org/ftp/rsync/rsyncd.conf.html里詳細解釋了rsyncd.conf各個參數的意思。

                    修改權限與所有權,重啟xinetd服務:

                    $ chown root.root /etc/rsyncd.*
                    $ chmod 600 /etc/rsyncd.*
                    $ service xinetd restart
                    

                    然后就可以通過如下命令訪問了:

                    下載文件: ./rsync -vzrtopg --progress --delete [email protected]::out /home/test/getfile

                    上傳文件: /usr/bin/rsync -vzrtopg --progress /home/test/getfile [email protected]::out

                    Rsync 同步參數說明

                    -vzrtopg里的v是verbose,z是壓縮,r是recursive,topg都是保持文件原有屬性如屬主、時間的參數。
                    --progress是指顯示出詳細的進度情況
                    --delete參數會把原有getfile目錄下的文件刪除以保持客戶端和服務器端文件系統完全一致
                    [email protected]用戶名,xxx為ip地址
                    out是指在rsyncd.conf里定義的模塊名
                    /home/test/getfile 是指本地要備份目錄
                    

                    如果不想每次都再輸入一次密碼可以使用--password-file參數

                    /usr/bin/rsync -vzrtopg --progress /home/test/getfile  [email protected]::out --password-file=/test/rsyncd.secrets
                    

                    本機上的/test/rsyncd.secrets文件里只需要保存密碼即可,用戶名已經在命令中有了,并且權限應為600。

                    0x02 匿名訪問危害


                    wooyun出現不少沒有限定任何ip并且允許匿名訪問,而導致嚴重后果的實際案例:

                    WooYun: 我是如何淪陷ChinaZ下載站服務器的,可登錄3389、篡改源碼等

                    WooYun: 新浪漏洞系列第三彈-微博內網遭入侵

                    WooYun: Discuz旗下5d6d某服務器Rsync任意文件上傳

                    0x03 尋找匿名訪問Rsync方式


                    Rsync默認的端口是873,可以使用nmap掃描哪些ip開放了873端口。

                    nmap -n --open -p 873 X.X.X.X/24
                    

                    找到開放的873端口后,連接能否查看模塊名:

                    rsync X.X.X.X::
                    

                    如果可以,就嘗試上傳,下載文件試一下。

                    0x04 安全配置注意事項


                    注意兩種方式防御,一是限定訪問的IP,另一個是不允許匿名訪問,添加用戶口令。

                    限定IP的兩種方式

                    IPTables防火墻

                    給rsync的端口添加一個iptables。

                    只希望能夠從內部網絡(192.168.101.0/24)訪問:

                    iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
                    iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT
                    

                    除此之外rsyncd.conf中的hosts allow也可以設置只允許來源ip。

                    hosts allow = X.X.X.X #允許訪問的IP
                    

                    添加用戶口令

                    添加rsync用戶權限訪問,注意配置的是rsyncd.conf中的:

                    secrets file = /etc/rsyncd.secrets #密碼文件位置,認證文件設置,設置用戶名和密碼
                    auth users = rsync #授權帳號,認證的用戶名,如果沒有這行則表明是匿名,多個用戶用,分隔。
                    

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频