বোর্ডটি সাধারণ ইমেজ থেকে বুট হয়, একটি DHCP লিজ পায়, এবং কেউ ডিভাইসটি স্পর্শ করার আগেই একটি প্রভিশনিং স্ক্রিপ্ট চলে। সেই স্ক্রিপ্টের কোথাও এটি এমন একটি WireGuard পরিচয় সংগ্রহ করতে হবে যা এই বোর্ডেরই এবং অন্য কোনওটির নয়, সেই পরিচয়টি অনুমোদন করাতে হবে, এবং এমন একটি প্রোফাইল লিখতে হবে যা গেটওয়ে গ্রহণ করবে। ইমেজটি ক্লায়েন্ট সফটওয়্যার, পর্যালোচিত টেমপ্লেট এবং গেটওয়ের পাবলিক কী বহন করতে পারে। যা এটি কখনও বহন করা উচিত নয় তা হল একটি প্রাইভেট কী যা পুরো ফ্লিট ভাগ করে, কারণ তাতে একটি চুরি হওয়া বোর্ডই পুরো ফ্লিটের ঘটনা হয়ে ওঠে। নিচের ক্রমটি পরিচয়কে স্থানীয় এবং অনুমোদনকে স্পষ্ট রাখে।

ইমেজ যা বহন করে, আর যা করে না

প্যাকেজ, প্লেসহোল্ডারসহ টেমপ্লেট, গেটওয়ের পাবলিক কী এবং নথিভুক্তি ক্লায়েন্ট পাঠান। টেমপ্লেট একটি কাঠামো, গোপন কিছু নয়: এটি প্রভিশনিং ব্যবহারকারীর কাছে পাঠযোগ্য হওয়া উচিত এবং কোনও কী উপাদান ধারণ করা উচিত নয়।

প্রাইভেট কী প্রথম বুটে ডিভাইসেই তৈরি হয় এবং কখনও সেটি ছাড়ে না। কেবল পাবলিক অর্ধেকটাই যাতায়াত করে, একটি নথিভুক্তি অনুরোধের ভেতরে যা ডিভাইসটি নিজে কে তা নিয়ে তার নিজের দাবি ছাড়া অন্য কিছু দ্বারা অনুমোদিত হয়। এই পার্থক্যই একটি চুরি হওয়া বোর্ডকে পুরো ফ্লিটের সমস্যা হয়ে ওঠা থেকে আটকায়। আর এটাই সেই অংশ যা বেশিরভাগ প্রথম-বুট স্ক্রিপ্ট ভুল করে।

ধাপ 1: কী স্থানীয়ভাবে তৈরি করুন

অন্তর্নিহিত নেটওয়ার্ক সংযোগ অনুমোদিত ও কার্যকর হওয়ার পরে একটি সুরক্ষিত ডিরেক্টরিতে তৈরি করুন। সাবশেলটি umask পরিবর্তনকে এই কাজের মধ্যেই সীমিত রাখে, এবং set -C বিদ্যমান ফাইল মুছে নতুন করে লেখা প্রত্যাখ্যান করে:

(
    umask 077
    set -C
    wg genkey > /etc/wireguard/device.key &&
        wg pubkey < /etc/wireguard/device.key > /etc/wireguard/device.pub
)

WireGuard দ্রুত সূচনা এই দুই কমান্ড যে কী-তৈরির সম্পর্কের উপর নির্ভর করে তা নথিভুক্ত করে। তৈরি ব্যাহত হলে ডিভাইসটি অনথিভুক্ত রেখে দিন এবং ওয়ার্কফ্লো ফাইলগুলি মিলিয়ে নিক। স্ক্রিপ্টটি শুরু থেকে পরিষ্কারভাবে চলবে বলে বিদ্যমান পরিচয় মুছে ফেলবেন না।

পুনঃপ্রচেষ্টার মধ্যেও অপেক্ষমাণ কী সংরক্ষণ করুন। প্রতিটি সাময়িক নেটওয়ার্ক ব্যর্থতার পরে পরিচয় নতুন করে তৈরি করাই ফ্লিটকে এমন এতিম peer দিয়ে ভরিয়ে তোলে যাদের কোনও ডিভাইসের সাথে মেলানো যায় না।

ধাপ 2: একটি ডিভাইস রেকর্ড অনুমোদন করুন

ধরুন ইনভেন্টরি এই বোর্ডকে device-042 বলে এবং এটিকে 10.90.0.42/32 বরাদ্দ করে। নথিভুক্তি পরিষেবাকে যাচাই করতে হবে যে এই অনুরোধকারী সেই রেকর্ডের হকদার। ফর্মে টাইপ করা সিরিয়াল নম্বর প্রমাণ নয়, কারণ সিরিয়াল নম্বর বাক্সের বাইরে ছাপা থাকে।

প্রতি-ডিভাইস বুটস্ট্র্যাপ ক্রেডেনশিয়াল, একজন অপারেটরের অনুমোদন, বা হার্ডওয়্যার-সমর্থিত অ্যাটেস্টেশন দাবিটি প্রতিষ্ঠা করতে পারে। অনুরোধের অখণ্ডতা ও প্রতিক্রিয়ার সত্যতা রক্ষা করুন, এবং একটি সাধারণ VPN গোপনীয়তাকে একটি সাধারণ ফ্যাক্টরি ক্রেডেনশিয়াল দিয়ে প্রতিস্থাপন করবেন না।

নিবন্ধিত রেকর্ডটি ডিভাইস, তার পাবলিক কী, তার বরাদ্দকৃত ঠিকানা এবং তার অনুমোদিত ব্যবস্থাপনা ভূমিকা বেঁধে রাখে। WireGuard নিজে কোনও নথিভুক্তি API সংজ্ঞায়িত করে না, তাই সেই পরিষেবাটি এমন কিছু যা আপনি সচেতনভাবে তৈরি ও পরিচালনা করেন।

ধাপ 3: দুটি মিলে-যাওয়া কনফিগারেশন লিখুন

ডিভাইসের এমন একটি প্রোফাইল দরকার যা ব্যবস্থাপনা প্রিফিক্সগুলিকে টানেলে রুট করে, আর গেটওয়ের দরকার এমন একটি peer এন্ট্রি যা কেবল এই ডিভাইসের নিজের সোর্স ঠিকানা অনুমোদন করে। 10.90.0.1-এ গেটওয়ে এবং 10.60.0.0/16 ব্যবস্থাপনা নেটওয়ার্ক নিয়ে ডিভাইসের দিকটি এমন দেখায়:

[Interface]
PrivateKey = <device-042 private key>
Address = 10.90.0.42/32

[Peer]
PublicKey = <trusted gateway public key>
Endpoint = vpn.example.com:51820
AllowedIPs = 10.90.0.1/32, 10.60.0.0/16
PersistentKeepalive = 25

ব্র্যাকেটের ভেতরের মানগুলি প্লেসহোল্ডার, কী নয়। বোর্ডটি NAT-এর পিছনে থাকলে এবং পৌঁছানোযোগ্য থাকতে হলে keepalive গুরুত্বপূর্ণ; এটি সর্বত্র প্রয়োজন হয় না, এবং অভ্যাসবশত যোগ করলে কোনও কারণ ছাড়াই রেডিও জেগে থাকে।

গেটওয়েতে peer এন্ট্রিটি ইচ্ছাকৃতভাবেই সংকীর্ণ:

[Peer]
PublicKey = <device-042 public key>
AllowedIPs = 10.90.0.42/32

ডিভাইসের গন্তব্য তালিকা গেটওয়ে peer-এ কপি করবেন না। ডিভাইসে ওই তালিকা বলে কী টানেলে রুট করতে হবে; গেটওয়েতে এটি বলে এই peer কোন সোর্স ঠিকানা ব্যবহার করতে পারে, আর এগুলি ভিন্ন বিবৃতি।

ফরওয়ার্ডিং, ফায়ারওয়াল নিয়ম এবং ব্যবস্থাপনা নেটওয়ার্কে ফেরার পথকে এখনও অনুমোদিত অ্যাক্সেস মঞ্জুর করতে হবে। নিবন্ধিত peer তার পিছনের প্রতিটি অ্যাপ্লিকেশনের জন্য অনুমতি নয়।

ধাপ 4: নথিভুক্তিকে জীবনচক্র অবস্থা হিসেবে নিশ্চিত করুন

যে যে কনফিগারেশনের মালিক তার মাধ্যমে গেটওয়ে রেকর্ড ও ডিভাইস প্রোফাইল প্রয়োগ করুন, তারপর অভীষ্ট পরিচয় ও ঠিকানা গৃহীত হলেই কেবল নথিভুক্তি সম্পূর্ণ চিহ্নিত করুন। পুনঃপ্রচেষ্টা দ্বিতীয় peer বা দ্বিতীয় ঠিকানা বরাদ্দ না করে সেই একই রেকর্ডই মিলিয়ে নেওয়া উচিত।

ব্যাহত প্রভিশনিংয়ের জন্য পুনরুদ্ধারের পথ রাখুন, যার মধ্যে সেই ক্ষেত্রটিও আছে যেখানে গেটওয়ে কী গ্রহণ করেছে কিন্তু ডিভাইস কখনও তার প্রোফাইল লেখেনি।

বোর্ড প্রতিস্থাপিত বা অবসরিত হলে তার পাবলিক কী ও তার অনুমোদন একসাথে সরিয়ে দিন। নতুন কী একটি সচেতন পুনঃনথিভুক্তি ঘটনা, রিইমেজের পার্শ্বপ্রতিক্রিয়া নয়। কাজের ক্রম: স্থানীয়ভাবে তৈরি করুন, ইনভেন্টরির বিপরীতে অনুমোদন করুন, দুই দিক লিখুন, অবস্থা নিশ্চিত করুন, তারপর টানেল দিয়ে একটি ব্যবস্থাপনা অনুরোধ পরীক্ষা করুন।

সম্পর্কিত নিবন্ধ