概述
Rsync 是一個通過檢查文件的時間戳和大小,來跨計算機系統高效地傳輸和同步文件的工具。
通常情況下,管理程序在啟動 Rsync 服務後,會直接運行傳輸任務。如果 Rsync 服務未經過安全加固,則很容易出現未授權訪問等安全問題;其直接後果是傳輸數據裸露在網際網路上,可以被任何人訪問獲取,帶來嚴重的數據泄露風險。
加固方案
1、隱藏 module 信息
將配置文件修改為以下內容:
list = false
2、使用權限控制
將不需要寫入權限的 module 設置為只讀:
read only = true
3、限制網絡訪問
使用 安全組策略 或白名單,限制允許訪問主機的 IP 地址。
hosts allow = 123.123.123.123
4、啟用帳戶認證
只允許指定的用戶,使用指定的密碼,來調用 Rsync 服務。
4.1、服務端配置
auth users = ottocho
secrets file = /etc/rsyncd.secrets
在文件 /etc/rsyncd.secrets 中寫入使用的帳號密碼,格式為:username:password,支持多行。
注意:密碼要求滿足強密碼策略,必須是 8 位以上,且包括大小寫字母、數字、特殊字符的字符串。此處的 password 使用明文。
4.2、客戶端配置
在客戶端,使用 --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。
5、數據加密傳輸
Rsync 默認不支持加密傳輸,如果需要使用 Rsync 傳輸重要性很高的數據,可以使用 SSH 模式。
Rsync 支持以下兩種同步模式:
當源路徑或目的路徑的主機名後面包含一個冒號分隔符時,Rsync 使用 SSH 傳輸。
當源路徑或目的路徑的主機名後面包含兩個冒號,或使用 Rsync://URL 時,Rsync 使用 TCP 直接連接 Rsync daemon。
在配置好 SSH 後,推薦參照以下方式來使用:
Rsync -av test.host.com:/path/to/files /des/path
覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~