SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor

วิธีติดตั้ง OpenClaw บน VPS ให้ปลอดภัย ป้องกันช่องโหว่

เรียนรู้วิธีรัน OpenClaw บน VPS อย่างปลอดภัยด้วยการจำกัดสิทธิ์ผู้ใช้ ตั้งค่า Firewall และจัดการ Secrets เพื่อป้องกันช่องโหว่ CVE-2026-32922 ที่มีความรุนแรงระดับ 9.9

OpenClaw คืออะไร และเหตุใดคุณจึงต้องเสริมความปลอดภัยก่อนเป็นอันดับแรก

OpenClaw คือ AI agent ที่คุณโฮสต์ด้วยตนเอง คุณสามารถรันมันบนเซิร์ฟเวอร์ของคุณ เชื่อมต่อกับโมเดลภาษาขนาดใหญ่ (LLM) เพื่อให้มันรันคำสั่งเชลล์ ควบคุมเบราว์เซอร์ อ่านและเขียนไฟล์ รวมถึงดำเนินการตามข้อความที่คุณส่งผ่านแอปแชท ความสามารถที่ครอบคลุมนี้คือจุดประสงค์หลักของเครื่องมือ แต่ในขณะเดียวกันก็เป็นความเสี่ยงทั้งหมดด้วย เอเจนต์ที่สามารถรันคำสั่งใดๆ ได้จะมีความปลอดภัยเท่ากับสภาพแวดล้อมที่มันทำงานอยู่และข้อจำกัดที่คุณกำหนดไว้เท่านั้น

ข้อเท็จจริงสองประการนี้เป็นตัวกำหนดแนวทางของคู่มือนี้ ประการแรก OpenClaw ถูกออกแบบมาให้คุณเป็นผู้เสริมความปลอดภัยด้วยตนเอง โมเดลความปลอดภัยของมันวางภาระความรับผิดชอบในการกำหนดนโยบายเครื่องมือที่รัดกุม การทำแซนด์บ็อกซ์ และการจัดการสิทธิ์อย่างระมัดระวังไว้ที่ผู้ดูแลระบบ ไม่ใช่การตั้งค่าเริ่มต้นที่ปลอดภัย ประการที่สอง โครงการนี้เคยประสบปัญหาด้านความปลอดภัยครั้งใหญ่ โดย National Vulnerability Database ระบุว่ามี CVE ของ OpenClaw ถึง 199 รายการที่เผยแพร่ในเดือนมีนาคม 2026 เพียงเดือนเดียว โดย 46 รายการเกิดขึ้นในช่วงสี่วันระหว่างวันที่ 4 ถึง 7 มีนาคม (ตรวจสอบจำนวนเมื่อวันที่ 13 ตุลาคม 2026) ในบรรดาช่องโหว่ของเดือนนั้นมีช่องโหว่ระดับวิกฤตคือการยกระดับสิทธิ์ (privilege escalation) รหัส CVE-2026-32922 ซึ่งได้คะแนน 9.9 เต็ม 10 และได้รับการแก้ไขในเวอร์ชัน 2026.3.11 ข้อเท็จจริงเหล่านี้ไม่ได้หมายความว่าคุณควรหลีกเลี่ยง OpenClaw แต่หมายความว่าคุณไม่ควรใช้งานแบบละเลย และคู่มือนี้คือแนวทางที่รอบคอบ ส่วนหนึ่งของความรอบคอบคือการตัดสินใจล่วงหน้าว่าเอเจนต์สามารถทำอะไรได้บ้างโดยไม่ต้องขออนุญาต ซึ่งเป็นทางเลือกที่ Claude Code ทำให้ชัดเจนด้วยโหมดการอนุญาต โดยเซิร์ฟเวอร์ที่คุณไม่ได้นั่งใช้งานอยู่ตรงหน้าควรได้รับการตั้งค่าที่เข้มงวดกว่าแล็ปท็อปที่คุณเฝ้าดูอยู่

ยังมีข่าวดีอยู่บ้าง OpenClaw ได้เลือกสิ่งที่ปลอดภัยให้คุณแล้วอย่างหนึ่ง คือเกตเวย์ของมันซึ่งเป็นกระบวนการเดียวที่ควบคุมทุกอย่าง จะฟังคำสั่งบน 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 ดังนั้นให้ติดตั้ง Node.js ก่อนหากเซิร์ฟเวอร์ยังไม่มี โดยโครงการต้องการ Node 24.16 หรือใหม่กว่า หรือ 26.1 หรือใหม่กว่า ให้ติดตั้งแพ็กเกจแบบ global ซึ่งจะนำไบนารี openclaw ไปไว้ใน PATH สำหรับผู้ใช้ทุกคน จากนั้นให้รันขั้นตอนการเริ่มต้นใช้งาน (onboarding) เพียงครั้งเดียว:

sudo npm install -g openclaw@latest --allow-scripts=openclaw
sudo -u openclaw openclaw onboard

แฟล็ก --allow-scripts=openclaw จำเป็นต้องใช้เนื่องจาก npm 12 บล็อกสคริปต์การติดตั้งแพ็กเกจโดยค่าเริ่มต้น และ OpenClaw จำเป็นต้องรันสคริปต์ของตนเอง สำหรับ npm 11.15 หรือเก่ากว่าซึ่งไม่มีตัวเลือกนี้ ให้ตัดแฟล็กดังกล่าวออก การรันขั้นตอน onboarding ในฐานะผู้ใช้ openclaw หมายความว่าการตั้งค่าของเอเจนต์จะถูกเก็บไว้ในโฮมไดเร็กทอรีของผู้ใช้ คือ /opt/openclaw ไม่ใช่ของ root นอกจากนี้โครงการยังมีตัวติดตั้ง curl -fsSL https://openclaw.ai/install.sh | bash ที่ทำการติดตั้งแบบเดียวกันในบรรทัดเดียว ให้ข้ามแฟล็ก --install-daemon ในระหว่างการ onboarding ไป เพราะมันจะลงทะเบียนบริการของ OpenClaw เอง ในขณะที่ systemd unit ที่คุณจะสร้างขึ้นด้านล่างนี้มีความเข้มงวดมากกว่า

คงการเชื่อมต่อ 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 key

systemd 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:

ToolGenerate a hardened systemd unit for the agent

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 และควบคุมเบราว์เซอร์ได้ ดังนั้นการตั้งค่าที่ไม่รัดกุมจึงเป็นอันตรายอย่างแท้จริง และโครงการนี้เคยมีช่องโหว่ระดับวิกฤตมาแล้ว (CVE-2026-32922 ในเดือนมีนาคม 2026) รูปแบบความปลอดภัยของโครงการคาดหวังให้คุณในฐานะผู้ดูแลระบบเป็นผู้กำหนดข้อจำกัดต่างๆ ด้วยตนเอง ควรใช้งานในฐานะผู้ใช้ที่ไม่มีสิทธิ์พิเศษ (unprivileged user) เก็บ gateway ไว้ที่ loopback หลัง firewall ที่ตั้งค่า default-deny แยกส่วน API keys และรันผ่าน systemd service ที่มีการทำ hardening แล้ว

ฉันควรเปิดให้เข้าถึง 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) key นั้น