Rsync 是一個經過檢查文件的時間戳和大小,來跨計算機系統高效地傳輸和同步文件的工具。安全
一般狀況下,管理程序在啓動 Rsync 服務後,會直接運行傳輸任務。若是 Rsync 服務未通過安全加固,則很容易出現未受權訪問等安全問題;其直接後果是傳輸數據裸露在互聯網上,能夠被任何人訪問獲取,帶來嚴重的數據泄露風險。網絡
建議您在使用 Rsync 服務端時,參考本文對 Rsync 服務進行安全加固,保障數據安全。ide
加固方案工具
隱藏 module 信息加密
將配置文件修改成如下內容:字符串
list = false同步
使用權限控制權限控制
將不須要寫入權限的 module 設置爲只讀:it
read only = trueclass
限制網絡訪問
使用 安全組策略 或白名單,限制容許訪問主機的 IP 地址。
hosts allow = 123.123.123.123
啓用帳戶認證
只容許指定的用戶,使用指定的密碼,來調用 Rsync 服務。
服務端配置
auth users = ottocho
secrets file = /etc/rsyncd.secrets
在文件 /etc/rsyncd.secrets 中寫入使用的帳號密碼,格式爲:username:password,支持多行。
注意:密碼要求知足強密碼策略,必須是 8 位以上,且包括大小寫字母、數字、特殊字符的字符串。此處的 password 使用明文。
客戶端配置
在客戶端,使用 --password-file=/etc/rsyncd.secrets 參數,在 /etc/rsyncd.secrets 中寫入密碼。
Rsync -av --password-file=/etc/rsyncd.secrets test.host.com::files /des/path
在上述 /etc/rsyncd.secrets 密碼文件中,用戶或用戶組必須和實際使用者保持一致,且權限必須是 600。
數據加密傳輸
Rsync 默認不支持加密傳輸,若是須要使用 Rsync 傳輸重要性很高的數據,能夠使用 SSH 模式。
Rsync 支持如下兩種同步模式:
當源路徑或目的路徑的主機名後面包含一個冒號分隔符時,Rsync 使用 SSH 傳輸。
當源路徑或目的路徑的主機名後面包含兩個冒號,或使用 Rsync://URL 時,Rsync 使用 TCP 直接鏈接 Rsync daemon。
在配置好 SSH 後,推薦參照如下方式來使用:
Rsync -av test.host.com:/path/to/files /des/path