Ruroco - "RUn RemOte Command" gọi lệnh từ xa qua UDP
(github.com/beac0n)- Công cụ thực thi lệnh bằng cách gửi gói UDP tới máy chủ
- Lệnh được cấu hình ở phía máy chủ, nên phía client không định nghĩa lệnh sẽ chạy mà chỉ chọn trong các lệnh có sẵn
- Gồm 3 binary
- client: chạy trên máy tính để gửi gói UDP
- server: nhận gói UDP và kiểm tra tính hợp lệ
- commander: thực thi lệnh được mã hóa trong dữ liệu của gói UDP nếu lệnh đó hợp lệ
- Bảo mật
- Vì gửi qua UDP nên máy chủ hoàn toàn không phản hồi: không thể quét cổng
- Dữ liệu được truyền từ client tới server được mã hóa bằng RSA
- Client chỉ chỉ định lệnh cần chạy và lệnh được lưu trên server -> client có thể chọn lệnh nhưng không thể định nghĩa lệnh
- Chạy phần mềm phía server với ít quyền hệ điều hành nhất có thể
- Thêm mọi gói mà server nhận được vào danh sách chặn để bảo vệ khỏi replay
- (WIP) Bảo vệ DoS
Ví dụ sử dụng: single packet authorization (SPA)
Để tăng cường bảo mật cho server, thay vì mở hoàn toàn SSH, có thể áp dụng cách chỉ mở cổng SSH trong thời gian ngắn rồi đóng lại
address = "0.0.0.0:8080" # địa chỉ mà server Ruroco lắng nghe (nếu không dùng systemd/ruroco.socket)
config_dir = "/etc/ruroco/" # đường dẫn lưu file cấu hình
[commands]
# Mở SSH (chỉ cho địa chỉ IP đã gửi yêu cầu)
open_ssh = "ufw allow from $RUROCO_IP proto tcp to any port 22"
# Đóng SSH (chỉ cho địa chỉ IP đã gửi yêu cầu)
close_ssh = "ufw delete allow from $RUROCO_IP proto tcp to any port 22"
- Cấu hình Ruroco trên server như trên và ở phía client chạy lệnh sau
ruroco-client send --address host.domain:8080 --private-pem-path /path/to/ruroco_private.pem --command open_ssh --deadline 5 - Server dùng RSA để xác minh client có quyền thực thi lệnh đó hay không, rồi chạy lệnh được định nghĩa dưới
"open_ssh" - Tham số
--deadlinenghĩa là server phải bắt đầu lệnh trong vòng 5 giây sau khi lệnh được gửi - Chỉ cho phép truy cập cổng SSH từ IP đã gửi gói UDP
- Tất nhiên vẫn cần thực hiện mọi biện pháp tăng cường bảo mật khác như khi cổng SSH được phơi ra Internet
- Có thể thêm nhiều lệnh hơn vào file cấu hình để định nghĩa số lượng lệnh tùy ý
Chưa có bình luận nào.