Rsync 是一個(gè)通過(guò)檢查文件的時(shí)間戳和大小,來(lái)跨計(jì)算機(jī)系統(tǒng)高效地傳輸和同步文件的工具。
通常情況下,管理程序在啟動(dòng) Rsync 服務(wù)后,會(huì)直接運(yùn)行傳輸任務(wù)。如果 Rsync 服務(wù)未經(jīng)過(guò)安全加固,則很容易出現(xiàn)未授權(quán)訪問(wèn)等安全問(wèn)題;其直接后果是傳輸數(shù)據(jù)裸露在互聯(lián)網(wǎng)上,可以被任何人訪問(wèn)獲取,帶來(lái)嚴(yán)重的數(shù)據(jù)泄露風(fēng)險(xiǎn)。
建議您在使用 Rsync 服務(wù)端時(shí),參考本文對(duì) Rsync 服務(wù)進(jìn)行安全加固,保障數(shù)據(jù)安全。
加固方案
隱藏 module 信息
將配置文件修改為以下內(nèi)容:
list = false
使用權(quán)限控制
將不需要寫入權(quán)限的 module 設(shè)置為只讀:
read only = true
限制網(wǎng)絡(luò)訪問(wèn)
使用 安全組策略 或白名單,限制允許訪問(wèn)主機(jī)的 IP 地址。
hosts allow = 123.123.123.123
啟用賬戶認(rèn)證
只允許指定的用戶,使用指定的密碼,來(lái)調(diào)用 Rsync 服務(wù)。
服務(wù)端配置
auth users = ottocho
secrets file = /etc/rsyncd.secrets
在文件 /etc/rsyncd.secrets 中寫入使用的賬號(hào)密碼,格式為:username:password,支持多行。
注意:密碼要求滿足強(qiáng)密碼策略,必須是 8 位以上,且包括大小寫字母、數(shù)字、特殊字符的字符串。此處的 password 使用明文。
客戶端配置
在客戶端,使用 --password-file=/etc/rsyncd.secrets 參數(shù),在 /etc/rsyncd.secrets 中寫入密碼。
Rsync -av --password-file=/etc/rsyncd.secrets test.host.com::files /des/path
在上述 /etc/rsyncd.secrets 密碼文件中,用戶或用戶組必須和實(shí)際使用者保持一致,且權(quán)限必須是 600。
數(shù)據(jù)加密傳輸
Rsync 默認(rèn)不支持加密傳輸,如果需要使用 Rsync 傳輸重要性很高的數(shù)據(jù),可以使用 SSH 模式。
Rsync 支持以下兩種同步模式:
當(dāng)源路徑或目的路徑的主機(jī)名后面包含一個(gè)冒號(hào)分隔符時(shí),Rsync 使用 SSH 傳輸。
當(dāng)源路徑或目的路徑的主機(jī)名后面包含兩個(gè)冒號(hào),或使用 Rsync://URL 時(shí),Rsync 使用 TCP 直接連接 Rsync daemon。
在配置好 SSH 后,推薦參照以下方式來(lái)使用:
Rsync -av test.host.com:/path/to/files /des/path