VPS-এ OpenClaw সুরক্ষিতভাবে চালানোর নিয়ম
OpenClaw সরাসরি শেল কমান্ড চালায় এবং ওয়েব ব্রাউজ করে। CVE-2026-32922 এর মতো ঝুঁকি এড়াতে unprivileged user, firewall এবং systemd ব্যবহার করে কীভাবে একে সুরক্ষিত করবেন তা জানুন।
OpenClaw কী এবং কেন এটিকে আগে শক্তভাবে নিরাপদ করতে হবে
OpenClaw একটি self-hosted AI agent। এটি নিজের server-এ চালিয়ে একটি large language model-এর সঙ্গে সংযুক্ত করা যায়। এটি shell command চালাতে, browser নিয়ন্ত্রণ করতে, নিজের file পড়তে ও লিখতে এবং chat app থেকে পাঠানো message অনুযায়ী কাজ করতে পারে। এই বিস্তৃত ক্ষমতাই tool-টির মূল উদ্দেশ্য। একই কারণে এটিই এর প্রধান ঝুঁকি। যে agent যেকোনো command চালাতে পারে, সেটি যে box-এ চলছে এবং তার ওপর আরোপ করা সীমার মতোই নিরাপদ।
এই guide-এর ভিত্তি দুটি তথ্য। প্রথমত, OpenClaw-কে আপনাকেই harden করার জন্য তৈরি করা হয়েছে। এর security model নিরাপদ default-এর ওপর নির্ভর না করে কঠোর tool policy, sandboxing এবং সতর্ক permission নির্ধারণের দায়িত্ব operator-এর ওপর দেয়। দ্বিতীয়ত, project-টি ইতিমধ্যে একটি গুরুতর security incident-এর মধ্য দিয়ে গেছে: National Vulnerability Database-এ শুধু March 2026-এই 199টি OpenClaw CVE প্রকাশিত হয়েছে। এর মধ্যে 4 থেকে 7 March-এর চার দিনে প্রকাশিত হয়েছে 46টি। এই count 13 October 2026 তারিখে যাচাই করা হয়েছে। ওই মাসের ত্রুটিগুলোর মধ্যে একটি critical privilege escalation ছিল, CVE-2026-32922, যার rating 10-এর মধ্যে 9.9 এবং যা version 2026.3.11-এ ঠিক করা হয়েছে। এই দুটি তথ্যের কোনোটিই OpenClaw এড়িয়ে চলার কারণ নয়। এগুলোর অর্থ হলো, এটি অসতর্কভাবে চালানো উচিত নয়। এই guide-এ সতর্ক পদ্ধতিটি দেখানো হয়েছে। সেই সতর্ক পদ্ধতির একটি অংশ হলো আগে থেকেই নির্ধারণ করা যে agent-কে জিজ্ঞাসা না করে কতটা কাজ করার অনুমতি দেওয়া হবে। Claude Code permission mode-এর মাধ্যমে এই সিদ্ধান্তটি স্পষ্টভাবে নির্ধারণ করতে দেয়। আপনি যার সামনে বসে নেই, এমন server-এর জন্য আপনি যে laptop দেখছেন তার তুলনায় আরও কঠোর setting প্রয়োজন।
ভালো দিকও আছে। OpenClaw ইতিমধ্যে আপনার জন্য একটি নিরাপদ সিদ্ধান্ত নেয়: এর gateway, অর্থাৎ সবকিছু নিয়ন্ত্রণকারী একক process, defaultভাবে loopback address-এ listen করে। তাই আপনি ইচ্ছাকৃতভাবে expose না করলে এটি Internet থেকে reachable নয়। নিচের অধিকাংশ কাজ হলো এই অবস্থাটি বজায় রাখা এবং কোনো সমস্যা হলে তার blast radius সীমিত করা।
OpenClaw-এর জন্য একটি unprivileged user তৈরি করুন
কখনোই root হিসেবে কোনো agent চালাবেন না। যদি OpenClaw root হিসেবে চলে এবং কোনো সমস্যা হয়—তা কোনো bug, ভুল নির্দেশনা বা উপরের মতো কোনো CVE-এর কারণে হোক—তবে ক্ষতির কোনো সীমা থাকবে না। কোনো login shell এবং sudo সুবিধা নেই এমন একটি ডেডিকেটেড system user তৈরি করুন এবং সেই user হিসেবে agent-টি চালান:
sudo useradd --system --home /opt/openclaw --shell /usr/sbin/nologin openclawOpenClaw-এর মালিকানাধীন সবকিছু /opt/openclaw ডিরেক্টরির অধীনে থাকে, যার মালিকানা সেই account-এর। এটি সবচেয়ে গুরুত্বপূর্ণ ধাপ এবং এটি unprivileged user হিসেবে service চালানো অংশে আলোচিত একই নীতির ওপর ভিত্তি করে তৈরি: একটি agent যে account-এ চলে, সেটিই তার ক্ষতির সীমাকে নির্ধারণ করে দেয়।
OpenClaw install করুন
OpenClaw একটি npm package হিসেবে distributed হয়। তাই server-এ Node.js না থাকলে আগে এটি install করুন। Project অনুযায়ী Node 24.16 বা newer, অথবা 26.1 বা newer প্রয়োজন। Package-টি globally install করুন। এতে openclaw binary-টি সব user-এর জন্য PATH-এ যুক্ত হবে। এরপর একবারের onboarding step চালান:
sudo npm install -g openclaw@latest --allow-scripts=openclaw
sudo -u openclaw openclaw onboard--allow-scripts=openclaw flag-টি দেওয়া হয়েছে কারণ npm 12 defaultভাবে package install script block করে। OpenClaw-এর কাজ করার জন্য নিজের install script চালানো প্রয়োজন। npm 11.15 বা older version-এ এই option নেই, তাই সেখানে flag-টি বাদ দিন। openclaw user হিসেবে onboarding চালালে agent-এর configuration তার home directory, /opt/openclaw-এ সংরক্ষিত হবে, root-এর home directory-তে নয়। Project-টি curl -fsSL https://openclaw.ai/install.sh | bash installer-ও দেয়, যা একই install এক লাইনে সম্পন্ন করে। Onboarding-এর সময় --install-daemon flag ব্যবহার করবেন না। এটি OpenClaw-এর নিজের service register করবে, কিন্তু নিচে তৈরি করা hardened systemd unit-টি আরও কঠোর।
Gateway-কে loopback-এ রাখুন, firewall-এর পেছনে
Gateway ডিফল্টভাবে 127.0.0.1-এ bind করে। এটিকে সেখানেই থাকতে দিন। এই port-টি ইন্টারনেটে উন্মুক্ত করার কোনো কারণ নেই বললেই চলে। এটি করলে যে কেউ এই port খুঁজে বের করে এমন একটি প্রসেসে রিমোট অ্যাক্সেস পেয়ে যাবে, যা মূলত কমান্ড এক্সিকিউট করার কাজ করে।
সার্ভারের সামনে একটি default-deny firewall রাখুন যাতে ভুলবশত কোনো কিছু উন্মুক্ত না হয়ে যায়:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableএখানে দুটি বিষয়ে সতর্ক থাকতে হবে। যে firewall শুধুমাত্র IPv4 কভার করে, তা IPv6-এ একই সার্ভিসকে পুরোপুরি উন্মুক্ত রাখতে পারে, যা মূলত IPv6 firewall gap হিসেবে পরিচিত এবং অনেককেই এই সমস্যার সম্মুখীন হতে হয়। আর যদি আপনার ল্যাপটপ থেকে gateway-তে অ্যাক্সেস করার প্রয়োজন হয়, তবে port-টি সরাসরি খুলবেন না। এর পরিবর্তে VPN বা SSH tunnel ব্যবহার করুন, যাতে agent-টি কখনোই সরাসরি ইন্টারনেটে listening অবস্থায় না থাকে।
গোপন তথ্য আলাদা রাখা
OpenClaw-এর জন্য একটি API key প্রয়োজন, যা আপনি যে ল্যাঙ্গুয়েজ মডেলের সাথে এটি সংযুক্ত করবেন তার জন্য ব্যবহৃত হবে। এই key আপনার অর্থ খরচ করতে পারে এবং এজেন্টের মাধ্যমে আপনার হয়ে কাজ করতে পারে, তাই এটিকে পাসওয়ার্ডের মতো গুরুত্ব দিন। এটিকে 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 ব্যবহার করে সেই ফাইলটি লোড করে, ফলে key-টি কমান্ড লাইন, লগ বা আপনার shell history-তে না এসেই সরাসরি প্রসেসে পৌঁছে যায়। এই পদ্ধতিটি সার্ভারের প্রতিটি গোপন তথ্যের ক্ষেত্রেই প্রযোজ্য: self-hosted Vaultwarden-এর নিরাপত্তা জোরদার করার বিষয়টি মূলত এর admin token এবং backup ফাইলের সুরক্ষার ওপর নির্ভর করে, এনক্রিপশনের ওপর নয়; কারণ ফাইল পারমিশনই নির্ধারণ করে যে কে সংরক্ষিত গোপন তথ্য পড়তে পারবে।
এটিকে একটি হার্ডেনড systemd সার্ভিস হিসেবে চালান
agent-কে systemd-এর অধীনে চালালে আপনি স্বয়ংক্রিয় রিস্টার্ট, journalctl-এর মাধ্যমে পরিষ্কার লগ এবং সবচেয়ে গুরুত্বপূর্ণভাবে, কার্নেল-লেভেল স্যান্ডবক্সিং অপশনগুলো পাবেন। এগুলো প্রসেসটি কোনোভাবে compromised হলেও তার নাগাল সীমিত করে ফেলে। একটি agent-এর জন্য সবচেয়ে গুরুত্বপূর্ণ অপশনগুলো হলো NoNewPrivileges, যাতে এটি নতুন কোনো ক্ষমতা অর্জন করতে না পারে; ProtectSystem=strict, যাতে ফাইলসিস্টেমটি রিড-অনলি থাকে (আপনার অনুমতি সাপেক্ষে লেখা যাবে এমন অংশ বাদে); PrivateTmp, এর নিজস্ব আইসোলেটেড টেম্পোরারি ডিরেক্টরির জন্য; এবং ProtectHome, যাতে এটি হোম ডিরেক্টরিগুলো পড়তে না পারে।
এখানে একটি সম্পূর্ণ, হার্ডেনড ইউনিট তৈরি করুন, তারপর সেটিকে /etc/systemd/system/openclaw.service-এ কপি করুন:
ইউনিটটি openclaw gateway চালু করে, যা agent-কে নিয়ন্ত্রণকারী দীর্ঘস্থায়ী প্রসেস; যদি আপনার সার্ভারে which openclaw ভিন্ন কোনো পাথ দেখায়, তবে ExecStart সেই অনুযায়ী পরিবর্তন করুন। এই ডিরেক্টিভগুলোর সম্পূর্ণ ব্যাখ্যা এবং daemon-reload ও enable --now সম্পর্কে জানতে systemd সার্ভিস হিসেবে প্রোগ্রাম চালানো দেখুন। ইউনিটটি পেস্ট করার পর সংক্ষিপ্ত ধাপগুলো হলো:
sudo systemctl daemon-reload
sudo systemctl enable --now openclawসামনের দরজাটিও সুরক্ষিত করুন
একটি এজেন্ট বক্স ততটাই নিরাপদ যতটা এর চারপাশের সার্ভার। কাজ শেষ করতে আরও দুটি স্তর যোগ করুন। SSH-কে শুধুমাত্র key-based authentication-এ স্থানান্তর করুন এবং root login বন্ধ করুন, যেমনটি SSH hardening on a VPS-এ দেখানো হয়েছে, যাতে যে অ্যাকাউন্ট থেকে আপনি বক্সটি পরিচালনা করেন তা brute-force করা না যায়। এরপর Fail2ban যোগ করুন যাতে প্রতিটি পাবলিক পোর্টে স্ক্যান চালানো আক্রমণকারীদের সরিয়ে দেওয়া যায়। এর কোনোটিই সরাসরি OpenClaw-কে স্পর্শ করে না, তবে উভয়ই সেই পথগুলো বন্ধ করে দেয় যা ব্যবহার করে একজন আক্রমণকারী এর কাছে পৌঁছাতে পারে।
সচেতনভাবে আপডেট রাখুন
2026 সালের মার্চের ডিসক্লোজারগুলো সিস্টেম আপডেট রাখার পক্ষে সবচেয়ে জোরালো যুক্তি। একটি এজেন্টের প্রিভিলেজ-এসকেলেশন বাগ সাধারণ ওয়েব অ্যাপের তুলনায় অনেক বেশি ঝুঁকিপূর্ণ, কারণ এজেন্টটি ইতিমধ্যেই কমান্ড চালানোর ক্ষমতা রাখে। প্রজেক্টের রিলিজগুলোর দিকে নজর রাখুন, দ্রুত সিকিউরিটি আপডেট প্রয়োগ করুন এবং OpenClaw আপগ্রেডকে অবহেলার পরিবর্তে রুটিন রক্ষণাবেক্ষণ হিসেবে গণ্য করুন।
আপনি আসলে কী সুরক্ষিত করছেন তা বোঝার জন্য, OpenClaw-স্টাইল এজেন্টের আর্কিটেকচার অংশটি এর বিভিন্ন অংশ সম্পর্কে ধারণা দেবে এবং আপনার নিজস্ব AI এজেন্ট VPS-এ তৈরি করা অংশে যেকোনো এজেন্টের সাধারণ গঠন আলোচনা করা হয়েছে। যদি আপনি একই সাথে দ্বিতীয় কোনো এজেন্ট চালান, তবে মনে রাখবেন যে একটি VPS-এ দুটি Claude Code সেশন একে অপরের কাছে কাজ হস্তান্তর করতে পারে, তাই প্রতিটি এজেন্টের জন্য আলাদা অ্যাকাউন্ট এবং আলাদা লিমিট সেট করুন, যাতে তারা আপনার ব্যক্তিগত প্রিভিলেজ উত্তরাধিকারসূত্রে না পায়।
FAQ
পাবলিক VPS-এ OpenClaw চালানো কি নিরাপদ?
আপনি যদি সিস্টেমটিকে সুরক্ষিত (harden) করেন, তবে এটি নিরাপদ হতে পারে। OpenClaw ডিজাইন অনুযায়ী অত্যন্ত শক্তিশালী: এটি শেল কমান্ড চালায় এবং ব্রাউজার নিয়ন্ত্রণ করে। তাই অসতর্কভাবে সেটআপ করলে তা সত্যিই বিপজ্জনক হতে পারে। এই প্রজেক্টে ইতিমধ্যে একটি গুরুত্বপূর্ণ CVE (মার্চ 2026-এর CVE-2026-32922) পাওয়া গেছে। এর নিরাপত্তা মডেল অনুযায়ী, আপনাকে (অপারেটর হিসেবে) সীমাবদ্ধতাগুলো নির্ধারণ করতে হবে। এটিকে একটি unprivileged ব্যবহারকারীর অধীনে চালান, এর গেটওয়েকে একটি default-deny ফায়ারওয়ালের পেছনে loopback-এ রাখুন, এর API কীগুলোকে আলাদা রাখুন এবং একটি hardened systemd সার্ভিস হিসেবে চালান।
আমার কি OpenClaw গেটওয়ে ইন্টারনেটে উন্মুক্ত করা উচিত?
না। গেটওয়েটি ডিফল্টভাবে loopback-এ bind করা থাকে এবং সেভাবেই রাখা উচিত। এটিই একমাত্র প্রসেস যা এজেন্টকে নিয়ন্ত্রণ করে, তাই গেটওয়ে উন্মুক্ত করা মানে এমন একটি সিস্টেমে দূরবর্তী প্রবেশের পথ তৈরি করা যা নিয়মিত কমান্ড চালায়। যদি আপনার দূর থেকে এটি অ্যাক্সেস করার প্রয়োজন হয়, তবে পোর্ট খোলার পরিবর্তে VPN বা SSH tunnel ব্যবহার করুন।
OpenClaw কোন ব্যবহারকারীর অধীনে চালানো উচিত?
এটি এমন একজন ডেডিকেটেড সিস্টেম ব্যবহারকারীর অধীনে চালানো উচিত যার কোনো login shell বা sudo অ্যাক্সেস নেই; কখনোই root ব্যবহার করবেন না। যদি এজেন্টটি compromised হয়, তবে ওই ব্যবহারকারীর অ্যাকাউন্টের সীমাবদ্ধতাই ক্ষতির পরিমাণ নির্ধারণ করবে। তাই সেই অ্যাকাউন্টের মালিকানায় শুধুমাত্র /opt/openclaw ডিরেক্টরির ভেতরের ফাইলগুলোই থাকা উচিত, অন্য কিছু নয়।
আমি কীভাবে OpenClaw-এর API কীগুলো সুরক্ষিত রাখব?
এগুলোকে এমন একটি ফাইলে রাখুন যা শুধুমাত্র OpenClaw ব্যবহারকারী পড়তে পারে (mode 600) এবং systemd-এর EnvironmentFile ব্যবহার করে সার্ভিসে লোড করুন। কী-টিকে unit file-এর ভেতরে, আপনার শেল হিস্ট্রিতে বা কোনো git রিপোজিটরিতে রাখবেন না। যদি আপনার সন্দেহ হয় যে কী-টি ফাঁস হয়েছে, তবে তা পরিবর্তন (rotate) করুন।