VPS-এ OpenClaw সুরক্ষিতভাবে চালানোর নিয়ম
OpenClaw সরাসরি শেল কমান্ড চালায় এবং ওয়েব ব্রাউজ করে। CVE-2026-32922 এর মতো ঝুঁকি এড়াতে unprivileged user, firewall এবং systemd ব্যবহার করে কীভাবে একে সুরক্ষিত করবেন তা জানুন।
OpenClaw কী এবং কেন আপনি এটিকে প্রথমেই সুরক্ষিত করবেন
OpenClaw হলো একটি self-hosted AI agent। আপনি এটিকে আপনার নিজস্ব সার্ভারে চালান, একটি large language model-এর সাথে সংযুক্ত করেন এবং এটি shell command চালাতে, browser নিয়ন্ত্রণ করতে, আপনার ফাইল পড়তে ও লিখতে এবং chat app থেকে আপনার পাঠানো বার্তার ভিত্তিতে কাজ করতে পারে। এই ব্যাপক ক্ষমতা টুলটির মূল উদ্দেশ্য, আবার এটিই এর প্রধান ঝুঁকি। যে agent যেকোনো command চালাতে পারে, তার নিরাপত্তা নির্ভর করে সেটি যে পরিবেশে চলছে তার ওপর এবং আপনি তার চারপাশে কী কী সীমাবদ্ধতা আরোপ করেছেন তার ওপর।
দুটি তথ্য এই নির্দেশিকার প্রেক্ষাপট নির্ধারণ করে। প্রথমত, OpenClaw এমনভাবে তৈরি করা হয়েছে যাতে আপনি নিজেই একে সুরক্ষিত করতে পারেন। এর security model-এ কঠোর tool policy, sandboxing এবং সতর্কতামূলক permission-এর দায়িত্ব অপারেটরের ওপর ন্যস্ত, কোনো নিরাপদ ডিফল্ট সেটিংসের ওপর নয়। দ্বিতীয়ত, এই প্রজেক্টে ইতিমধ্যে একটি গুরুতর নিরাপত্তা ঘটনা ঘটেছে: 2026 সালের মার্চ মাসে, চার দিনের মধ্যে নয়টি নিরাপত্তা ত্রুটি প্রকাশ পায়, যার মধ্যে একটি critical privilege-escalation flaw, CVE-2026-32922 অন্তর্ভুক্ত ছিল, যার রেটিং ছিল 10-এর মধ্যে 9.9। এই দুটি তথ্যের মানে এই নয় যে আপনার OpenClaw ব্যবহার করা উচিত নয়। এর মানে হলো, আপনার এটিকে অবহেলার সাথে চালানো উচিত নয় এবং এই নির্দেশিকাটি হলো সতর্কতার সাথে কাজ করার উপায়। সতর্কতার একটি অংশ হলো, agent কোনো কিছু না জিজ্ঞেস করে কতটুকু কাজ করতে পারবে তা আগে থেকেই নির্ধারণ করা; এটি এমন একটি সিদ্ধান্ত যা Claude Code তার permission mode-এর মাধ্যমে স্পষ্টভাবে প্রকাশ করে, যেখানে আপনি সরাসরি সামনে বসে নেই এমন সার্ভারে ল্যাপটপের তুলনায় অনেক বেশি কঠোর সেটিংস প্রয়োজন।
তবে ভালো খবরও আছে। OpenClaw ইতিমধ্যে আপনার জন্য একটি নিরাপদ সিদ্ধান্ত নিয়ে রেখেছে: এর gateway, যা সবকিছু নিয়ন্ত্রণকারী একক process, ডিফল্টভাবে loopback address-এ listen করে। তাই আপনি যদি নিজে থেকে একে উন্মুক্ত না করেন, তবে internet থেকে এটি অ্যাক্সেস করা সম্ভব নয়। নিচে বর্ণিত বেশিরভাগ কাজের উদ্দেশ্য হলো এই অবস্থাকে বজায় রাখা এবং কোনো সমস্যা হলে তার প্রভাব বা 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 ইনস্টল করা
OpenClaw একটি npm প্যাকেজ হিসেবে বিতরণ করা হয়, তাই সার্ভারে Node.js না থাকলে প্রথমে তা ইনস্টল করুন। প্যাকেজটি গ্লোবালি ইনস্টল করুন, যা openclaw বাইনারিটিকে প্রতিটি ব্যবহারকারীর PATH-এ যুক্ত করবে, এরপর এককালীন অনবোর্ডিং ধাপটি সম্পন্ন করুন:
sudo npm install -g openclaw@latest
sudo -u openclaw openclaw onboardopenclaw ব্যবহারকারী হিসেবে অনবোর্ডিং চালানোর অর্থ হলো এজেন্টের কনফিগারেশন root-এর ডিরেক্টরিতে না গিয়ে তার নিজস্ব হোম ডিরেক্টরি /opt/openclaw-এ সংরক্ষিত হবে। এই প্রজেক্টটি একটি curl -fsSL https://openclaw.ai/install.sh | bash ইনস্টলারও অফার করে যা একই কাজ এক লাইনে সম্পন্ন করে। অনবোর্ডিংয়ের সময় --install-daemon ফ্ল্যাগটি এড়িয়ে চলুন: এটি OpenClaw-এর নিজস্ব সার্ভিস রেজিস্টার করবে, অথচ নিচে আপনি যে হার্ডেনড systemd ইউনিট তৈরি করবেন তা আরও কঠোর।
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) করুন।