วิธีติดตั้ง OpenClaw บน VPS ให้ปลอดภัย ป้องกันช่องโหว่
เรียนรู้วิธีรัน OpenClaw บน VPS อย่างปลอดภัยด้วยการจำกัดสิทธิ์ผู้ใช้ ตั้งค่า Firewall และจัดการ Secrets เพื่อป้องกันช่องโหว่ CVE-2026-32922 ที่มีความรุนแรงระดับ 9.9
OpenClaw คืออะไร และเหตุใดคุณจึงต้องเสริมความปลอดภัยก่อนใช้งาน
OpenClaw คือ AI agent ที่คุณโฮสต์ด้วยตนเอง คุณสามารถรันมันบนเซิร์ฟเวอร์ของคุณ เชื่อมต่อกับโมเดลภาษาขนาดใหญ่ (LLM) เพื่อให้มันรันคำสั่ง shell, ควบคุมเบราว์เซอร์, อ่านและเขียนไฟล์ รวมถึงโต้ตอบกับข้อความที่คุณส่งผ่านแอปแชทได้ ความสามารถที่ครอบคลุมนี้คือจุดประสงค์หลักของเครื่องมือ แต่ในขณะเดียวกันก็เป็นความเสี่ยงทั้งหมดด้วย Agent ที่สามารถรันคำสั่งใดๆ ได้นั้นจะปลอดภัยเท่ากับสภาพแวดล้อมที่มันทำงานอยู่และข้อจำกัดที่คุณกำหนดไว้ให้มันเท่านั้น
ข้อเท็จจริงสองประการนี้เป็นหัวใจสำคัญของคู่มือฉบับนี้ ประการแรก OpenClaw ถูกออกแบบมาให้คุณเป็นผู้เสริมความปลอดภัยด้วยตนเอง รูปแบบความปลอดภัยของมันวางภาระความรับผิดชอบในการกำหนดนโยบายเครื่องมือที่รัดกุม การทำ sandboxing และการจัดการสิทธิ์อย่างระมัดระวังไว้ที่ผู้ดูแลระบบ ไม่ใช่ค่าเริ่มต้นที่ปลอดภัย ประการที่สอง โครงการนี้เคยประสบเหตุการณ์ด้านความปลอดภัยที่ร้ายแรงมาแล้ว ในเดือนมีนาคม 2026 มีการเปิดเผยช่องโหว่ด้านความปลอดภัย 9 รายการภายในเวลา 4 วัน ซึ่งรวมถึงช่องโหว่ระดับวิกฤตในการยกระดับสิทธิ์ (privilege-escalation) คือ CVE-2026-32922 ซึ่งได้รับคะแนนความรุนแรง 9.9 เต็ม 10 ข้อเท็จจริงทั้งสองประการนี้ไม่ได้หมายความว่าคุณควรหลีกเลี่ยง OpenClaw แต่หมายความว่าคุณไม่ควรใช้งานมันอย่างประมาท และคู่มือนี้คือแนวทางปฏิบัติที่รอบคอบ ส่วนหนึ่งของความรอบคอบคือการตัดสินใจล่วงหน้าว่า agent สามารถทำสิ่งใดได้บ้างโดยไม่ต้องขออนุญาต ซึ่งเป็นทางเลือกที่ Claude Code ระบุไว้อย่างชัดเจนด้วยโหมดการอนุญาต (permission modes) โดยเซิร์ฟเวอร์ที่คุณไม่ได้นั่งใช้งานอยู่ตรงหน้าควรได้รับการตั้งค่าที่รัดกุมกว่าแล็ปท็อปที่คุณเฝ้าดูอยู่
อย่างไรก็ตามยังมีข่าวดีอยู่บ้าง OpenClaw ได้เลือกสิ่งที่ปลอดภัยไว้ให้คุณแล้วหนึ่งอย่าง นั่นคือ gateway ซึ่งเป็นกระบวนการเดียวที่ควบคุมทุกอย่าง จะฟังคำสั่งบน loopback address เป็นค่าเริ่มต้น ดังนั้นมันจึงไม่สามารถเข้าถึงได้จากอินเทอร์เน็ตเว้นแต่คุณจะตั้งใจเปิดเผยมันออกมา งานส่วนใหญ่ในขั้นตอนด้านล่างนี้คือการรักษาค่าเริ่มต้นดังกล่าวไว้และจำกัดขอบเขตความเสียหายหากเกิดเหตุการณ์ไม่คาดฝันขึ้น
กำหนดให้ OpenClaw ทำงานภายใต้ผู้ใช้ที่ไม่มีสิทธิ์พิเศษ
ห้ามรัน agent ในฐานะ root โดยเด็ดขาด หาก OpenClaw ทำงานด้วยสิทธิ์ root แล้วเกิดข้อผิดพลาดขึ้น ไม่ว่าจะเป็นบั๊ก คำสั่งที่ผิดพลาด หรือช่องโหว่ CVE ดังที่กล่าวไปข้างต้น ความเสียหายที่เกิดขึ้นจะไม่มีขีดจำกัด ให้สร้าง system user เฉพาะสำหรับงานนี้โดยไม่ให้มี login shell และไม่มีสิทธิ์ sudo จากนั้นจึงรัน agent ด้วยผู้ใช้ดังกล่าว:
sudo useradd --system --home /opt/openclaw --shell /usr/sbin/nologin openclawทุกสิ่งที่ OpenClaw เป็นเจ้าของจะถูกเก็บไว้ภายใต้ /opt/openclaw โดยมีบัญชีผู้ใช้นั้นเป็นเจ้าของ นี่คือขั้นตอนที่สำคัญที่สุด และเป็นหลักการเดียวกันกับที่ระบุไว้ใน การรันบริการในฐานะผู้ใช้ที่ไม่มีสิทธิ์พิเศษ: บัญชีผู้ใช้ที่ agent ใช้งานจะเป็นขีดจำกัดสูงสุดของความเสียหายที่อาจเกิดขึ้นได้
การติดตั้ง OpenClaw
OpenClaw ถูกแจกจ่ายในรูปแบบ npm package ดังนั้นให้ติดตั้ง Node.js ก่อนหากเซิร์ฟเวอร์ยังไม่มี ให้ติดตั้งแพ็กเกจแบบ global ซึ่งจะนำไฟล์ binary openclaw ไปไว้ใน PATH ของผู้ใช้ทุกคน จากนั้นให้รันขั้นตอนการตั้งค่าเริ่มต้น (onboarding) เพียงครั้งเดียว:
sudo npm install -g openclaw@latest
sudo -u openclaw openclaw onboardการรัน onboarding ในฐานะผู้ใช้ openclaw จะทำให้ไฟล์คอนฟิกูเรชันของเอเจนต์ถูกจัดเก็บไว้ในโฮมไดเรกทอรีของผู้ใช้รายนั้นคือ /opt/openclaw ไม่ใช่ของ root นอกจากนี้โปรเจกต์ยังมีตัวติดตั้ง curl -fsSL https://openclaw.ai/install.sh | bash ที่สามารถติดตั้งแบบเดียวกันได้ในบรรทัดเดียว ให้ข้ามการใช้ flag --install-daemon ในระหว่างการทำ onboarding เนื่องจาก flag ดังกล่าวจะลงทะเบียน service ของ OpenClaw เอง ในขณะที่ unit ของ systemd แบบ hardened ที่คุณจะสร้างขึ้นด้านล่างนี้มีความเข้มงวดมากกว่า
คงการเชื่อมต่อ gateway ไว้ที่ loopback และอยู่หลัง firewall
โดยค่าเริ่มต้น gateway จะ bind เข้ากับ 127.0.0.1 ให้คงค่านี้ไว้ แทบไม่มีเหตุผลใดที่ต้องเปิดพอร์ตดังกล่าวสู่สาธารณะบนอินเทอร์เน็ต การทำเช่นนั้นเท่ากับเปิดโอกาสให้ผู้ที่พบพอร์ตนี้สามารถเข้าถึงกระบวนการที่ทำหน้าที่รันคำสั่งต่างๆ ได้โดยตรง
ให้ติดตั้ง firewall แบบ default-deny ไว้หน้าเครื่องเพื่อป้องกันไม่ให้มีการเปิดพอร์ตโดยไม่ตั้งใจ:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableมีกับดัก 2 ประการที่ต้องหลีกเลี่ยงในส่วนนี้ ประการแรกคือ firewall ที่ครอบคลุมเฉพาะ IPv4 อาจทำให้บริการเดียวกันเปิดกว้างอยู่บน IPv6 ซึ่งเป็น ช่องโหว่ของ IPv6 firewall ที่ทำให้หลายคนพลาดมาแล้ว ประการที่สอง หากคุณจำเป็นต้องเข้าถึง gateway จากแล็ปท็อปของคุณ อย่าเปิดพอร์ตดังกล่าวโดยตรง แต่ให้เข้าถึงผ่าน VPN หรือ SSH tunnel เพื่อให้มั่นใจว่า agent จะไม่เปิดรับการเชื่อมต่อจากอินเทอร์เน็ตสาธารณะโดยเด็ดขาด
แยกเก็บข้อมูลลับ
OpenClaw จำเป็นต้องใช้ API key สำหรับโมเดลภาษาที่คุณเชื่อมต่อด้วย คีย์ดังกล่าวสามารถใช้จ่ายเงินและดำเนินการแทนคุณผ่านตัว agent ได้ ดังนั้นให้ถือว่าคีย์นี้เป็นรหัสผ่าน ห้ามใส่ไว้ใน unit file หรือเก็บไว้ใน repository ใดๆ ให้เก็บไว้ในไฟล์ที่เฉพาะผู้ใช้ OpenClaw เท่านั้นที่อ่านได้:
sudo install -o openclaw -g openclaw -m 600 /dev/null /opt/openclaw/openclaw.env
sudoedit /opt/openclaw/openclaw.env # add ANTHROPIC_API_KEY=... or your model provider's keysystemd unit จะโหลดไฟล์ดังกล่าวด้วย EnvironmentFile เพื่อให้คีย์ส่งไปยัง process โดยไม่ปรากฏใน command line, log หรือ shell history ของคุณ รูปแบบนี้ใช้ได้กับข้อมูลลับทุกอย่างบนเซิร์ฟเวอร์: การ ทำ hardening ให้กับ Vaultwarden ที่โฮสต์เอง นั้นขึ้นอยู่กับการจัดการ admin token และไฟล์สำรองข้อมูลมากกว่าการเข้ารหัส เพราะสิทธิ์การเข้าถึงไฟล์คือสิ่งที่กำหนดว่าใครสามารถอ่านข้อมูลลับที่จัดเก็บไว้ได้จริง
การรันในฐานะ systemd service ที่มีความปลอดภัยสูง
การรัน agent ภายใต้ systemd ช่วยให้คุณได้รับคุณสมบัติการรีสตาร์ทอัตโนมัติ, การจัดการ log ที่สะอาดผ่าน journalctl และที่สำคัญที่สุดคือชุดตัวเลือก sandboxing ระดับ kernel ซึ่งช่วยจำกัดขอบเขตการเข้าถึงของ process แม้ในกรณีที่ระบบถูกบุกรุก ตัวเลือกที่มีความสำคัญสูงสุดสำหรับ agent คือ NoNewPrivileges เพื่อป้องกันไม่ให้ process ได้รับสิทธิ์เพิ่มเติม, ProtectSystem=strict เพื่อกำหนดให้ระบบไฟล์เป็นแบบอ่านได้อย่างเดียว ยกเว้นในส่วนที่คุณอนุญาตให้เขียนได้, PrivateTmp สำหรับการแยกไดเรกทอรีชั่วคราวเฉพาะของตนเอง และ ProtectHome เพื่อป้องกันไม่ให้เข้าถึงไดเรกทอรี home ของผู้ใช้
สร้าง unit file ที่มีความปลอดภัยสูงให้สมบูรณ์ที่นี่ จากนั้นคัดลอกไปยัง /etc/systemd/system/openclaw.service:
unit นี้จะเริ่มการทำงานของ openclaw gateway ซึ่งเป็น process หลักที่ควบคุม agent หาก which openclaw แสดง path ที่แตกต่างกันบนเซิร์ฟเวอร์ของคุณ ให้ปรับแก้ ExecStart ให้ตรงกัน คำอธิบายโดยละเอียดของคำสั่งเหล่านี้ รวมถึง daemon-reload และ enable --now อยู่ใน การรันโปรแกรมในฐานะ systemd service สรุปขั้นตอนสั้นๆ หลังจากที่คุณวางเนื้อหา unit file แล้ว:
sudo systemctl daemon-reload
sudo systemctl enable --now openclawเสริมความปลอดภัยให้ประตูด่านหน้า
ความปลอดภัยของ agent box ขึ้นอยู่กับความปลอดภัยของเซิร์ฟเวอร์ที่ครอบมันอยู่ การเพิ่มอีกสองชั้นจะช่วยให้งานนี้สมบูรณ์ ให้เปลี่ยนการยืนยันตัวตนของ SSH เป็นแบบใช้ key เท่านั้นและปิดการล็อกอินด้วย root ตามที่ระบุใน การเสริมความปลอดภัย SSH บน VPS เพื่อป้องกันไม่ให้บัญชีที่คุณใช้ดูแลระบบถูกโจมตีแบบ brute-force จากนั้นให้ติดตั้ง Fail2ban เพื่อขับไล่ตัวสแกนที่พยายามโจมตีพอร์ตสาธารณะทุกพอร์ต แม้ทั้งสองวิธีนี้จะไม่ได้แตะต้อง OpenClaw โดยตรง แต่ทั้งคู่ช่วยตัดเส้นทางที่ผู้โจมตีจะใช้เพื่อเข้าถึงมันได้
หมั่นอัปเดตอย่างสม่ำเสมอ
การเปิดเผยข้อมูลในเดือน March 2026 เป็นข้อพิสูจน์ที่ชัดเจนที่สุดว่าเหตุใดจึงควรใช้งานซอฟต์แวร์เวอร์ชันล่าสุดอยู่เสมอ บั๊กประเภท privilege-escalation ใน agent นั้นมีความรุนแรงกว่าในเว็บแอปพลิเคชันทั่วไปมาก เนื่องจากตัว agent มีสิทธิ์ในการรันคำสั่งอยู่แล้ว ให้ติดตามการ releases ของโปรเจกต์อย่างใกล้ชิด รีบติดตั้งอัปเดตด้านความปลอดภัย และมองว่าการอัปเกรด OpenClaw เป็นงานบำรุงรักษาตามปกติ ไม่ใช่สิ่งที่ควรผัดวันประกันพรุ่ง
หากต้องการทำความเข้าใจว่าคุณกำลังเสริมความปลอดภัยให้กับสิ่งใด สถาปัตยกรรมของ agent แบบ OpenClaw จะอธิบายส่วนประกอบต่างๆ ที่ทำงานร่วมกัน และ การสร้าง AI agent ของคุณเองบน VPS จะครอบคลุมโครงสร้างทั่วไปที่ agent ทุกตัวต้องมี หากคุณใช้งาน agent ตัวที่สองควบคู่กันไป โปรดจำไว้ว่า Claude Code สองเซสชันบน VPS เดียวกันสามารถส่งต่องานระหว่างกันได้ ดังนั้นแต่ละเซสชันจึงจำเป็นต้องมีบัญชีและข้อจำกัดของตนเอง แทนที่จะใช้สิทธิ์ร่วมกับบัญชีของคุณ
FAQ
การรัน OpenClaw บน VPS สาธารณะมีความปลอดภัยหรือไม่?
มีความปลอดภัยได้หากคุณทำการ hardening ระบบ OpenClaw ถูกออกแบบมาให้มีประสิทธิภาพสูง โดยสามารถรัน shell commands และควบคุมเบราว์เซอร์ได้ ดังนั้นการตั้งค่าที่ไม่รัดกุมจึงเป็นอันตรายอย่างแท้จริง และโปรเจกต์นี้เคยมีช่องโหว่ระดับวิกฤตมาแล้ว (CVE-2026-32922 ในเดือนมีนาคม 2026) รูปแบบความปลอดภัยของซอฟต์แวร์นี้คาดหวังให้ผู้ดูแลระบบเป็นผู้กำหนดข้อจำกัดด้วยตนเอง คุณควรใช้งานผ่านผู้ใช้ที่ไม่มีสิทธิ์พิเศษ (unprivileged user), ให้ gateway ทำงานบน loopback หลัง firewall ที่ตั้งค่า default-deny, แยก API keys ออกจากส่วนอื่น และรันผ่าน systemd service ที่มีการตั้งค่าความปลอดภัยอย่างเข้มงวด
ฉันควรเปิดให้เข้าถึง OpenClaw gateway จากอินเทอร์เน็ตหรือไม่?
ไม่ควร โดยปกติ gateway จะผูกกับ loopback อยู่แล้ว และคุณควรปล่อยให้เป็นเช่นนั้น เนื่องจากเป็นกระบวนการเดียวที่ควบคุม agent ดังนั้นหากเปิด gateway สู่สาธารณะ จะกลายเป็นช่องทางให้ผู้ไม่หวังดีเข้ามาสั่งรันคำสั่งต่างๆ ในระบบได้ หากคุณจำเป็นต้องเข้าถึงจากระยะไกล ให้ใช้ VPN หรือ SSH tunnel แทนการเปิดพอร์ตโดยตรง
ควรให้ OpenClaw รันด้วยผู้ใช้ใด?
ควรใช้ผู้ใช้เฉพาะของระบบ (dedicated system user) ที่ไม่มี login shell และไม่มีสิทธิ์ sudo ห้ามรันด้วย root โดยเด็ดขาด หาก agent ถูกบุกรุก ความเสียหายจะจำกัดอยู่เพียงสิทธิ์ของผู้ใช้บัญชีนั้น ดังนั้นบัญชีดังกล่าวควรเป็นเจ้าของเฉพาะไฟล์ของตนเองภายใต้ไดเรกทอรีอย่าง /opt/openclaw เท่านั้น และไม่ควรเข้าถึงส่วนอื่นของระบบ
ฉันจะรักษาความปลอดภัยของ API keys สำหรับ OpenClaw ได้อย่างไร?
ให้เก็บไว้ในไฟล์ที่อ่านได้เฉพาะผู้ใช้ OpenClaw เท่านั้น (ใช้สิทธิ์ 600) และโหลดเข้าสู่ service ผ่าน EnvironmentFile ของ systemd ห้ามใส่ key ไว้ใน unit file, ห้ามเก็บไว้ใน shell history และห้ามนำไปไว้ใน git repository หากคุณสงสัยว่า key อาจรั่วไหล ให้ทำการเปลี่ยน (rotate) ทันที