VPS এ OpenClaw নিরাপদে চালানোর উপায়
OpenClaw shell কমান্ড চালায় ও ব্রাউজার নিয়ন্ত্রণ করে, তাই সাবধানে সেটআপ করুন। unprivileged user, firewall, secrets সুরক্ষা ও systemd কনফিগ দিয়ে আপনার VPS এ এটি শক্তিশালী করুন।
OpenClaw কী এবং আপনি কেন এটি আগে শক্তিশালী করবেন
OpenClaw একটি স্ব-হোস্টেড AI এজেন্ট। আপনি এটি নিজের সার্ভারে চালান, একটি বড় ভাষার মডেলের সাথে সংযুক্ত করেন, এবং এটি shell কমান্ড চালাতে, একটি ব্রাউজার নিয়ন্ত্রণ করতে, আপনার ফাইল পড়তে ও লিখতে এবং চ্যাট অ্যাপ থেকে আপনি যে বার্তাগুলি পাঠান সেগুলি অনুযায়ী কাজ করতে পারে। এই পরিসরটিই এই টুলের মূল উদ্দেশ্য, আর এটিই এর সম্পূর্ণ ঝুঁকিও। যে এজেন্ট যেকোনো কমান্ড চালাতে পারে, তার নিরাপত্তা কেবল যে সার্ভারে এটি চলে এবং আপনি এর চারপাশে যে সীমাবদ্ধতা আরোপ করেন, কেবল ততটুকুই।
এই গাইডের মূল সুর নির্ধারণ করে দুটি বিষয়। প্রথমত, OpenClaw আপনার দ্বারা শক্তিশালী করার জন্য তৈরি। এর নিরাপত্তা মডেল কঠোর টুল নীতি, স্যান্ডবক্সিং এবং সতর্ক অনুমতির দায়িত্ব অপারেটরের ওপর রাখে, কোনো নিরাপদ ডিফল্টের ওপর নয়। দ্বিতীয়ত, প্রকল্পটিতে ইতিমধ্যে একটি গুরুতর নিরাপত্তা ঘটনা ঘটেছে: 2026 সালের মার্চ মাসে, চার দিনের মধ্যে নয়টি নিরাপত্তা সমস্যা প্রকাশ করা হয়েছিল, যার মধ্যে একটি গুরুতর প্রিভিলেজ-এসকেলেশন ত্রুটি, CVE-2026-32922, যার রেটিং 10-এর মধ্যে 9.9। এর কোনোটাই এর অর্থ এই নয় যে আপনার OpenClaw এড়িয়ে চলা উচিত। এর অর্থ হলো আপনার এটি অবহেলাভরে চালানো উচিত নয়, আর এই গাইডটি হলো সতর্ক পদ্ধতি।
এখানে একটি ভালো খবরও আছে। OpenClaw ইতিমধ্যে আপনার জন্য একটি নিরাপদ পছন্দ করে: এর গেটওয়ে, যে একক প্রসেসটি সবকিছু নিয়ন্ত্রণ করে, ডিফল্টভাবে লুপব্যাক ঠিকানায় শোনে, তাই আপনি ইচ্ছা করে এটি প্রকাশ না করলে ইন্টারনেট থেকে এটি পৌঁছানো যায় না। নিচের বেশিরভাগ কাজ হলো এটিকে সেভাবেই রাখা এবং কিছু ভুল হলে ক্ষতির পরিধি সীমিত করা।
OpenClaw-কে এর নিজস্ব একটি অ-বিশেষাধিকারপ্রাপ্ত ইউজার দিন
কখনোই কোনো এজেন্ট root হিসেবে চালাবেন না। OpenClaw root হিসেবে চললে এবং কিছু ভুল হলে, সেটি বাগ, খারাপ নির্দেশ বা উপরের মতো কোনো CVE-এর কারণে হতে পারে, ক্ষতির কোনো সীমা থাকে না। কোনো লগইন shell এবং sudo ছাড়া একটি নিবেদিত সিস্টেম ইউজার তৈরি করুন এবং এজেন্টটি সেই ইউজার হিসেবে চালান:
sudo useradd --system --home /opt/openclaw --shell /usr/sbin/nologin openclawOpenClaw-এর সমস্ত সম্পদ /opt/openclaw-এর অধীনে থাকে, যা সেই অ্যাকাউন্টের মালিকানাধীন। এটি সবচেয়ে গুরুত্বপূর্ণ ধাপ, এবং এটি একটি অ-বিশেষাধিকারপ্রাপ্ত ইউজার হিসেবে পরিষেবা চালানো-তে বর্ণিত একই নীতি: যে অ্যাকাউন্ট হিসেবে একটি এজেন্ট চলে, সেটিই হলো এটি কী ক্ষতি করতে পারে তার সর্বোচ্চ সীমা।
OpenClaw ইনস্টল করুন
OpenClaw একটি npm প্যাকেজ হিসেবে বিতরণ করা হয়, তাই সার্ভারে এটি না থাকলে প্রথমে Node.js ইনস্টল করুন। প্যাকেজটি গ্লোবালি ইনস্টল করুন, যা প্রতিটি ইউজারের জন্য PATH-এ openclaw বাইনারি রাখে, তারপর এককালীন অনবোর্ডিং ধাপটি চালান:
sudo npm install -g openclaw@latest
sudo -u openclaw openclaw onboardopenclaw ইউজার হিসেবে অনবোর্ডিং চালানোর অর্থ হলো এজেন্টের কনফিগারেশন তার হোম ডিরেক্টরি, /opt/openclaw-এ স্থাপিত হবে, root-এর মধ্যে নয়। প্রকল্পটি একটি curl -fsSL https://openclaw.ai/install.sh | bash ইনস্টলারও অফার করে যা একই ইনস্টল এক লাইনে সম্পন্ন করে। অনবোর্ডিংয়ের সময় --install-daemon ফ্ল্যাগ এড়িয়ে যান: এটি OpenClaw-এর নিজস্ব পরিষেবা নিবন্ধন করবে, আর নিচে আপনি যে শক্তিশালী systemd ইউনিট তৈরি করবেন তা আরও কঠোর।
গেটওয়ে লুপব্যাকে রাখুন, একটি ফায়ারওয়ালের পেছনে
গেটওয়ে ডিফল্টভাবে 127.0.0.1-এ বাইন্ড করে। এটি সেখানেই রাখুন। সেই পোর্ট ইন্টারনেটে প্রকাশ করার প্রায় কোনো কারণ নেই, এবং তা করলে যে কেউ এটি খুঁজে পেলে এমন একটি প্রসেসে দূরবর্তী অবস্থান থেকে প্রবেশাধিকার পেয়ে যায় যা কমান্ড চালাতে কাজ করে।
বক্সের সামনে একটি ডিফল্ট-ডিনাই ফায়ারওয়াল রাখুন যাতে দুর্ঘটনাক্রমে কিছু প্রকাশ না পায়:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableএখানে এড়িয়ে চলার জন্য দুটি ফাঁদ রয়েছে। কেবল IPv4 কভার করে এমন একটি ফায়ারওয়াল IPv6-এ একই পরিষেবা সম্পূর্ণ খোলা রেখে দিতে পারে, যা ঠিক সেই IPv6 ফায়ারওয়াল শূন্যস্থান যা অনেককেই ফাঁদে ফেলে। আর আপনার যদি আপনার ল্যাপটপ থেকে গেটওয়েতে পৌঁছানোর প্রয়োজন হয়, তবে পোর্ট খুলবেন না। একটি VPN বা SSH টানেলের মাধ্যমে এটিতে পৌঁছান, যাতে এজেন্ট কখনোই খোলা ইন্টারনেটে শুনতে না থাকে।
এর সিক্রেটগুলো আলাদা রাখুন
OpenClaw-কে আপনি যে ভাষার মডেলের সাথে সংযুক্ত করেন তার জন্য একটি API কী প্রয়োজন। সেই কী আপনার টাকা খরচ করতে পারে এবং এজেন্টের মাধ্যমে আপনার পক্ষে কাজ করতে পারে, তাই এটিকে একটি পাসওয়ার্ডের মতো বিবেচনা করুন। এটি ইউনিট ফাইলের বাইরে এবং কোনো রিপোজিটরির বাইরে রাখুন। এটি এমন একটি ফাইলে রাখুন যা কেবল 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 ইউনিটটি EnvironmentFile দিয়ে সেই ফাইলটি লোড করে, তাই কীটি কখনোই কোনো কমান্ড লাইনে, লগে বা আপনার shell হিস্ট্রিতে না থেকেই প্রসেসে পৌঁছায়।
এটি একটি শক্তিশালী systemd পরিষেবা হিসেবে চালান
এজেন্টটি systemd-এর অধীনে চালানোর ফলে আপনি স্বয়ংক্রিয় রিস্টার্ট পান, journalctl-এর মাধ্যমে পরিষ্কার লগ পান, এবং সর্বোপরি, কার্নেল-স্তরের স্যান্ডবক্সিং বিকল্পের একটি সেট পান যা প্রসেসটি কম্প্রোমাইজ হলেও এটি যা স্পর্শ করতে পারে তা কমিয়ে দেয়। একটি এজেন্টের জন্য সবচেয়ে গুরুত্বপূর্ণ বিষয়গুলো হলো NoNewPrivileges যাতে এটি কখনোই নতুন ক্ষমতা অর্জন করতে না পারে, ProtectSystem=strict যাতে আপনি যেখানে লেখার অনুমতি দেন সেখানে ছাড়া ফাইলসিস্টেমটি রিড-অনলি থাকে, PrivateTmp এর নিজস্ব আলাদা টেম্পোরারি ডিরেক্টরির জন্য, এবং ProtectHome যাতে এটি হোম ডিরেক্টরিগুলো পড়তে না পারে।
এখানে একটি সম্পূর্ণ, শক্তিশালী ইউনিট তৈরি করুন, তারপর এটি /etc/systemd/system/openclaw.service-এ কপি করুন:
ইউনিটটি openclaw gateway শুরু করে, যে দীর্ঘকাল চলমান প্রসেসটি এজেন্ট নিয়ন্ত্রণ করে; আপনার সার্ভারে which openclaw যদি ভিন্ন পথ দেখায়, তবে মিলিয়ে নিতে ExecStart সমন্বয় করুন। এই নির্দেশিকাগুলোর এবং daemon-reload ও enable --now-এর সম্পূর্ণ বিবরণ একটি প্রোগ্রামকে systemd পরিষেবা হিসেবে চালানো-তে রয়েছে। আপনি ইউনিটটি পেস্ট করার পর সংক্ষিপ্ত সংস্করণ:
sudo systemctl daemon-reload
sudo systemctl enable --now openclawসামনের দরজাটিও শক্তিশালী করুন
একটি এজেন্ট বক্স কেবল তার চারপাশের সার্ভারের মতোই নিরাপদ। কাজটি সম্পূর্ণ করতে আরও দুটি স্তর। VPS-এ SSH শক্তিশালীকরণ-এর মতো SSH-কে কী-অনলি প্রমাণীকরণে সরিয়ে নিন এবং root লগইন বাদ দিন, যাতে যে অ্যাকাউন্ট থেকে আপনি বক্সটি পরিচালনা করেন তাতে ব্রুট-ফোর্স করা না যায়। তারপর প্রতিটি পাবলিক পোর্টে আঘাত হানা স্ক্যানারদের তাড়াতে Fail2ban যোগ করুন। কোনোটিই সরাসরি OpenClaw-কে স্পর্শ করে না, কিন্তু উভয়ই একজন আক্রমণকারী এটিতে পৌঁছাতে ব্যবহার করবে এমন পথগুলো বন্ধ করে দেয়।
ইচ্ছাকৃতভাবে আপডেট রাখুন
2026 সালের মার্চ মাসের প্রকাশগুলো বর্তমান থাকার জন্য সবচেয়ে স্পষ্ট যুক্তি। একটি এজেন্টে প্রিভিলেজ-এসকেলেশন বাগ একটি সাধারণ ওয়েব অ্যাপের তুলনায় অনেক বেশি গুরুতর, কারণ এজেন্ট ইতিমধ্যেই কমান্ড চালায়। প্রকল্পের রিলিজগুলো খেয়াল রাখুন, নিরাপত্তা আপডেট দ্রুত প্রয়োগ করুন, এবং একটি OpenClaw আপগ্রেডকে দেরি করার বিষয় না ভেবে নিয়মিত রক্ষণাবেক্ষণ হিসেবে বিবেচনা করুন।
আপনি আসলে কী শক্তিশালী করছেন তা বোঝার জন্য, একটি OpenClaw-স্টাইল এজেন্টের আর্কিটেকচার এর চলমান অংশগুলো ব্যাখ্যা করে, এবং VPS-এ নিজের AI এজেন্ট তৈরি করা যেকোনো এজেন্টের সাধারণ রূপ তুলে ধরে।
FAQ
একটি পাবলিক VPS-এ OpenClaw চালানো কি নিরাপদ?
আপনি এটি শক্তিশালী করলে নিরাপদ হতে পারে। OpenClaw ডিজাইন অনুযায়ী শক্তিশালী: এটি shell কমান্ড চালায় এবং একটি ব্রাউজার নিয়ন্ত্রণ করে, তাই একটি অবহেলাপূর্ণ সেটআপ সত্যিই বিপজ্জনক, এবং প্রকল্পটিতে ইতিমধ্যে একটি গুরুতর CVE (2026 সালের মার্চ মাসে CVE-2026-32922) হয়েছে। এর নিরাপত্তা মডেল আপনি, অপারেটর, থেকে সীমাবদ্ধতা যোগ করার প্রত্যাশা করে। এটি একটি অ-বিশেষাধিকারপ্রাপ্ত ইউজার হিসেবে চালান, এর গেটওয়ে একটি ডিফল্ট-ডিনাই ফায়ারওয়ালের পেছনে লুপব্যাকে রাখুন, এর API কীগুলো আলাদা রাখুন, এবং এটি একটি শক্তিশালী systemd পরিষেবা হিসেবে চালান।
আমার কি OpenClaw গেটওয়ে ইন্টারনেটে প্রকাশ করা উচিত?
না। গেটওয়ে ডিফল্টভাবে লুপব্যাকে বাইন্ড করে, এবং আপনার এটি সেখানেই রাখা উচিত। এটি সেই একক প্রসেস যা এজেন্ট নিয়ন্ত্রণ করে, তাই একটি প্রকাশিত গেটওয়ে এমন কিছুর দিকে একটি দূরবর্তী পথ, যা কমান্ড চালাতে কাজ করে। আপনার যদি দূর থেকে এটিতে পৌঁছানোর প্রয়োজন হয়, তবে পোর্ট খোলার পরিবর্তে একটি VPN বা SSH টানেল ব্যবহার করুন।
OpenClaw কোন ইউজার হিসেবে চালানো উচিত?
কোনো লগইন shell এবং sudo ছাড়া একটি নিবেদিত সিস্টেম ইউজার, কখনোই root নয়। এজেন্ট কম্প্রোমাইজ হলে, এর ইউজার অ্যাকাউন্টই হলো ক্ষতির সর্বোচ্চ সীমা, তাই সেই অ্যাকাউন্টের কেবল /opt/openclaw-এর মতো একটি ডিরেক্টরির অধীনে তার নিজের ফাইলগুলো মালিকানা থাকা উচিত এবং আর কিছুই নয়।
আমি কীভাবে OpenClaw-এর API কীগুলো নিরাপদ রাখব?
সেগুলো এমন একটি ফাইলে সংরক্ষণ করুন যা কেবল OpenClaw ইউজার পড়তে পারে (mode 600) এবং systemd-এর EnvironmentFile দিয়ে পরিষেবায় লোড করুন। কীটি ইউনিট ফাইলের বাইরে, আপনার shell হিস্ট্রির বাইরে এবং কোনো git রিপোজিটরির বাইরে রাখুন। আপনি সন্দেহ করলে এটি লিক হয়েছে এমন কোনো সময় এটি পরিবর্তন করুন।