• เครื่องมือสำหรับรันคำสั่งด้วยการส่งแพ็กเก็ต 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 เปิดเผยสู่อินเทอร์เน็ต ก็ยังควรทำมาตรการเสริมความปลอดภัยอื่นๆ ทั้งหมดด้วย
  • สามารถเพิ่มคำสั่งในไฟล์ตั้งค่าเพื่อกำหนดคำสั่งได้มากเท่าที่ต้องการ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น