VNG Cloud Logo

[Advisory] How to Secure Rsync​​​​​​​

Rsync là một giải pháp đồng bộ dữ liệu được sử dụng rộng rãi trong các hệ thống. Rsync hướng đến tính khả dụng nên mặc dù có các tuỳ chọn về bảo mật nhưng mặc định thường không được kích hoạt, dẫn đến nhiều rủi ro tiềm ẩn rò rỉ các dữ liệu nhạy cảm.

Về cơ bản, việc cấu hình rsync tuân theo các nguyên tắc sau đây có thể giúp giảm thiểu đáng kể khả năng bị rò rỉ thông tin:

  • Chỉ cho phép các hosts và các users cần thiết truy cập đến nội dung tương ứng.
  • Áp dụng strict modes để bảo vệ secrets file.
  • Dữ liệu rsync nên được: truyền trong mạng nội bộ; truyền thông qua VPN Tunnel; mã hoá SSL/TLS.

Một số cấu hình cần xem xét khi sử dụng rsync daemon:

(Tham khảo chi tiết tại https://download.samba.org/pub/rsync/rsyncd.conf.5)

List 

  • Theo mặc định, client có thể gửi truy vấn để liệt kê các module được rsync daemon chia sẻ. Việc dò quét khá đơn giản và đã được tích hợp vào các scanner dò quét tự động như https://nmap.org/nsedoc/scripts/rsync-list-modules.html.
  • Cấu hình list=false sẽ ẩn module được chỉ định khỏi kết quả truy vấn, nhằm bảo vệ phần nào các nội dung nhạy cảm.


Hosts allow hoặc hosts deny 


  • Cách cơ bản và hiệu quả để bảo vệ rsync (cũng như những dịch vụ khác) khỏi các kết nối không mong muốn là áp dụng cơ chế kiểm soát truy cập. Thiết lập Hosts Allow/Deny giúp thu hẹp đáng kể bề mặt tấn công của máy chủ rsync.
  • Sử dụng Hosts Allow chỉ cho phép những kết nối đến từ nguồn (IP, IP range, hostname) tin cậy đã được chỉ định. Tất cả các nguồn khác sẽ bị từ chối kết nối.
  • Sử dụng Hosts Deny từ chối những kết nối từ nguồn bị chỉ định. Tất cả các nguồn khác được cho phép; hoặc chỉ cho phép những nguồn từ Hosts Allow (khuyến nghị).

Auth users và secrets file 

  • Mặc định là tất cả người dùng có thể kết nối mà không cần mật khẩu (anonymous rsync).
  • Auth Users chỉ định những user nào có thể truy cập được module nào. Client cần trải qua bước xác thực để được truy cập.
  • Thông tin xác thực được lưu vào secrets file dưới dạng plaintext, vì vậy nên thiết lập strict modes và phân quyền chặt chẽ để hạn chế xâm phạm.

Ví dụ:

[backups]

path = /data/backups

comment = Backup repository (requires authentication)

auth users = autobackup, autodeploy

secrets file = /etc/rsyncd.secrets

strict modes 

  • Khi strict mode được đặt thành true (mặc định) sẽ thực hiện kiểm tra quyền đọc secrets file chỉ được cấp cho user chạy rsync daemon.

encryption 

  • Rsync daemon mặc định không mã hoá traffic nên có thể bị nghe lén trên đường truyền, đặc biệt là khi public ra internet.
  • Traffic rsyncd nên được truyền trong mạng nội bộ; hoặc tốt nhất nên được truyền qua VPN Tunnel nếu cần truyền qua internet; hoặc nên được triển khai SSL/TLS (qua proxy).

rsync port 

  • Đổi port rsyncd 873 mặc định có thể hạn chế được một số scanner quét không chuyên sâu.
  • Chỉ listen trên các interface cần thiết.
  • Thiết lập kiếm soát qua Firewall nếu có thể.

Tài liệu tham khảo: 


https://www.upguard.com/blog/secure-rsync#:~:text=When%20rsync%20is%20used%20on,whatever%20information%20is%20being%20transferred

https://download.samba.org/pub/rsync/rsyncd.conf.5