Ruroco - "RUn RemOte Command" การเรียกใช้คำสั่งระยะไกลผ่าน UDP
(github.com/beac0n)- เครื่องมือสำหรับรันคำสั่งด้วยการส่งแพ็กเก็ต UDP ไปยังเซิร์ฟเวอร์
- คำสั่งถูกกำหนดค่าฝั่งเซิร์ฟเวอร์ ดังนั้นไคลเอนต์จะไม่ได้นิยามคำสั่งที่จะรันเอง แต่เลือกได้เฉพาะจากคำสั่งที่มีอยู่
- ประกอบด้วยไบนารี 3 ตัว
- client: รันบนคอมพิวเตอร์และส่งแพ็กเก็ต UDP
- server: รับแพ็กเก็ต UDP และตรวจสอบความถูกต้อง
- commander: รันคำสั่งเมื่อคำสั่งที่เข้ารหัสอยู่ในข้อมูลของแพ็กเก็ต UDP ถูกต้อง
- ความปลอดภัย
- เนื่องจากส่งผ่าน UDP เซิร์ฟเวอร์จึงไม่ตอบสนองใดๆ เลย: ทำ port scanning ไม่ได้
- ข้อมูลที่ส่งจากไคลเอนต์ไปยังเซิร์ฟเวอร์ถูกเข้ารหัสด้วย RSA
- ไคลเอนต์ระบุได้เพียงคำสั่งที่จะรัน และตัวคำสั่งถูกเก็บไว้บนเซิร์ฟเวอร์ -> ไคลเอนต์จึงเลือกคำสั่งได้ แต่ไม่สามารถกำหนดคำสั่งเองได้
- รันซอฟต์แวร์ฝั่งเซิร์ฟเวอร์ด้วยสิทธิ์ของระบบปฏิบัติการให้น้อยที่สุดเท่าที่เป็นไปได้
- เพิ่มทุกแพ็กเก็ตที่เซิร์ฟเวอร์ได้รับเข้าในรายการบล็อก เพื่อป้องกัน replay
- (WIP) การป้องกัน DoS
ตัวอย่างการใช้งาน : single packet authorization (SPA)
เพื่อเพิ่มความปลอดภัยให้เซิร์ฟเวอร์ แทนที่จะเปิด SSH ไว้ตลอด สามารถใช้วิธีเปิดพอร์ต SSH ชั่วครู่แล้วปิดกลับได้
address = "0.0.0.0:8080" # ที่อยู่ที่เซิร์ฟเวอร์ Ruroco รอฟังอยู่ (ในกรณีที่ไม่ได้ใช้ systemd/ruroco.socket)
config_dir = "/etc/ruroco/" # พาธที่เก็บไฟล์ตั้งค่า
[commands]
# เปิด SSH (เฉพาะสำหรับ IP address ที่ส่งคำขอมา)
open_ssh = "ufw allow from $RUROCO_IP proto tcp to any port 22"
# ปิด SSH (เฉพาะสำหรับ IP address ที่ส่งคำขอมา)
close_ssh = "ufw delete allow from $RUROCO_IP proto tcp to any port 22"
- กำหนดค่า Ruroco บนเซิร์ฟเวอร์แบบนี้ แล้วรันคำสั่งต่อไปนี้ฝั่งไคลเอนต์
ruroco-client send --address host.domain:8080 --private-pem-path /path/to/ruroco_private.pem --command open_ssh --deadline 5 - เซิร์ฟเวอร์จะใช้ RSA เพื่อตรวจสอบว่าไคลเอนต์มีสิทธิ์รันคำสั่งดังกล่าวหรือไม่ แล้วจึงรันคำสั่งที่นิยามไว้ใต้
open_ssh - อาร์กิวเมนต์
--deadlineหมายความว่า หลังจากรันคำสั่งแล้ว เซิร์ฟเวอร์ต้องเริ่มคำสั่งภายใน 5 วินาที - อนุญาตการเข้าถึงพอร์ต SSH เฉพาะ IP ที่ส่งแพ็กเก็ต UDP มาเท่านั้น
- แน่นอนว่า เช่นเดียวกับกรณีที่พอร์ต SSH เปิดเผยสู่อินเทอร์เน็ต ก็ยังควรทำมาตรการเสริมความปลอดภัยอื่นๆ ทั้งหมดด้วย
- สามารถเพิ่มคำสั่งในไฟล์ตั้งค่าเพื่อกำหนดคำสั่งได้มากเท่าที่ต้องการ
ยังไม่มีความคิดเห็น