ওয়্যারগার্ড ব্যবহার করে একটি স্ব-হোস্টেড ভিপিএন সেট আপ করুন
ক ভিপিএন (ভার্চুয়াল প্রাইভেট নেটওয়ার্ক) ব্যবহারকারীকে একটি ব্যক্তিগত নেটওয়ার্কের সাথে দূরবর্তীভাবে সংযোগ করতে দেয় যেন ব্যবহারকারীর কম্পিউটার সরাসরি ব্যক্তিগত নেটওয়ার্কের সাথে সংযুক্ত ছিল। প্রযুক্তিটি প্রাথমিকভাবে একটি কোম্পানির অভ্যন্তরীণ প্রাইভেট নেটওয়ার্কে দূরবর্তী অ্যাক্সেসের অনুমতি দেওয়ার জন্য তৈরি করা হয়েছিল, অভ্যন্তরীণ নেটওয়ার্কের অবস্থানে আসলে উপস্থিত নয় এমন কর্মীদের জন্য।
একটি ভিপিএন সার্ভার অভ্যন্তরীণ নেটওয়ার্কের অবস্থানে স্থাপন করা হয়। এই সার্ভারটি সর্বজনীন নেটওয়ার্কে রয়েছে এবং কর্মচারী দ্বারা একটি VPN ক্লায়েন্ট ব্যবহার করে অ্যাক্সেস করা যেতে পারে৷ VPN সার্ভারের সাথে সংযোগ করার জন্য প্রমাণীকরণ প্রয়োজন। ভিপিএন সার্ভার এবং ভিপিএন ক্লায়েন্টের মধ্যে যোগাযোগ একটি টানেলিং প্রোটোকল ব্যবহার করে সুরক্ষিত। মনে রাখবেন যে এই যোগাযোগটি এনক্রিপ্ট করা হতে পারে বা নাও হতে পারে, তবে সাধারণত বেশিরভাগ ভিপিএন প্রোটোকলেই এটি এনক্রিপ্ট করা হয়।
VPN এর আরেকটি ব্যবহার হল ইন্টারনেট অ্যাক্সেস করার সময় পরিচয় গোপন করুন বা কিছু ওয়েবসাইট অ্যাক্সেস করার সময় আরোপিত ভৌগলিক বিধিনিষেধ এড়াতে। এই ধরনের ক্ষেত্রে, ব্যবহারকারী যে নেটওয়ার্কে সংযোগ করতে চায় সেটি একটি ব্যক্তিগত নেটওয়ার্ক নয়, বরং এটি ইন্টারনেট।
অনেক VPN প্রোটোকল বছরের পর বছর ধরে তৈরি করা হয়েছে। এই প্রোটোকলগুলি সার্ভার এবং ক্লায়েন্টের মধ্যে যোগাযোগের জন্য বিভিন্ন টানেলিং প্রোটোকল এবং এনক্রিপশন অ্যালগরিদম ব্যবহার করে।
এই ধরনের একটি প্রোটোকল, যা সম্প্রতি ব্যাপকভাবে ব্যবহৃত হচ্ছে, তা হল ওয়্যারগার্ড. ওয়্যারগার্ড হল ওপেনভিপিএন, আইপিসেক-এর মতো পরিচিত ঐতিহ্যগতভাবে ব্যবহৃত ভিপিএন প্রোটোকলের তুলনায় হালকা, সহজ এবং আরও কার্যকারিতা। এটি ইতিমধ্যেই উইন্ডোজ, ম্যাক ওএস এবং লিনাক্স ডিস্ট্রিবিউশনের একটি বিশাল সংখ্যার জন্য প্রয়োগ করা হয়েছে। লিনাক্সে, এটি একটি কার্নেল মডিউল হিসাবে প্রয়োগ করা হয়। এটি উবুন্টু 20.04 এর অফিসিয়াল রিপোজিটরিতে পাওয়া যায়।
এই নিবন্ধে, আমরা দেখব কিভাবে উবুন্টু 20.04 এ একটি ওয়্যারগার্ড ভিপিএন সার্ভার এবং ক্লায়েন্ট সেট আপ করতে হয়।
স্থাপন
এই নিবন্ধটির জন্য, আমি উবুন্টু 20.04 লিনোড এবং উবুন্টু 20.04 এর সাথে আমার স্থানীয় মেশিনে ওয়্যারগার্ড ক্লায়েন্টে একটি ওয়্যারগার্ড সার্ভার সেট আপ করছি।
প্যাকেজ ওয়্যারগার্ড
ওয়্যারগার্ড সার্ভার এবং ক্লায়েন্ট উভয়ই ইনস্টল করে। নিম্নলিখিত কমান্ডটি চালান সার্ভার মেশিন এবং ক্লায়েন্ট মেশিন উভয়েই।
sudo apt ওয়্যারগার্ড ইনস্টল করুন
সার্ভার কনফিগারেশন
নিরাপত্তা কী
আমাদের পাবলিক/প্রাইভেট কী জোড়ার একটি সেট তৈরি করতে হবে ওয়্যারগার্ড সংযোগটি প্রমাণীকরণ এবং সুরক্ষিত করার জন্য। এটি নিম্নলিখিত কমান্ড ব্যবহার করে করা যেতে পারে:
sudo su cd /etc/wireguard umask 077 wg genkey | tee private_key | wg pubkey > public_key
মনে রাখবেন যে আমরা সুপার ইউজার হিসাবে কনফিগারেশনের সমস্ত কাজ করছি। কারণ হল যে ডিরেক্টরিতে অ্যাক্সেস /etc/wireguard
সাধারণ ব্যবহারকারীদের জন্য প্রতিরোধ করা হয়, এবং একটি সাধারণ ব্যবহারকারীর জন্য শুধুমাত্র সুডো বিশেষাধিকার দিয়ে ডিরেক্টরি অ্যাক্সেস অর্জন করা যায় না।
এর পরে, আমরা ফাইল তৈরির মাস্ক সেট করি 077
. এর মানে হল যে কোনো প্রক্রিয়ার মাধ্যমে যখনই এই ফোল্ডারে একটি নতুন ফাইল তৈরি করা হয়, তার অনুমতিগুলি স্বয়ংক্রিয়ভাবে 077 দিয়ে মাস্ক হয়ে যাবে। যেমন। যদি 777 অনুমতি সহ এই ফোল্ডারে একটি ফাইল তৈরি করা হয়, তবে এটি স্বয়ংক্রিয়ভাবে মাস্ক হয়ে যায় এবং অনুমতি কার্যকরভাবে 700 হয়ে যায়। এটি করা হয় যাতে শুধুমাত্র ফাইলটির মালিকের কাছে ফাইলটিতে সমস্ত অনুমতি থাকে এবং অন্য সবার কাছে কোনো অনুমতি নেই।
পরের লাইনে, আমরা পাবলিক/প্রাইভেট কী জোড়া তৈরি করি সার্ভারের জন্য। সেগুলো ফাইলে সংরক্ষিত থাকে ব্যক্তিগত_কী
এবং পাবলিক_কী
. কীগুলি দেখতে, চালান:
বিড়াল ব্যক্তিগত_কী বিড়াল পাবলিক_কি
ব্যক্তিগত কীটি অনুলিপি করুন, পরবর্তী ধাপে আমাদের এটির প্রয়োজন।
বিঃদ্রঃ: আপনার ব্যক্তিগত কী সর্বজনীনভাবে ভাগ করবেন না!
কনফিগারেশন ফাইল
ওয়্যারগার্ড সার্ভারের জন্য একটি কনফিগারেশন ফাইল তৈরি করা যাক। আপনি ফাইলের জন্য যেকোনো নাম নির্বাচন করতে পারেন। আমরা একটি ফাইল তৈরি করব wg0.conf
এই উদাহরণে।
vim wg0.conf
ফাইলে নিম্নলিখিত যোগ করুন।
[ইন্টারফেস] ঠিকানা = 10.20.43.1/24 SaveConfig = true ListenPort = 51190 PrivateKey = PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o -j মাস্কেরেড; ip6tables -A FORWARD -i wg0 -j স্বীকার করুন; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D ফরোয়ার্ড -i wg0 -j গ্রহন করুন; iptables -t nat -D POSTROUTING -o eth0 -j মাস্কেরেড; ip6tables -D FORWARD -i wg0 -j স্বীকার করুন; ip6tables -t nat -D POSTROUTING -o -j MASQUERADE
প্রাইভেট কী পেস্ট করুন যা আমরা পূর্বে উপরের কোডে 5 লাইনে কপি করেছিলাম।
আমাদের একটি ভিন্ন (ভার্চুয়াল) সাবনেটে ওয়্যারগার্ড কনফিগার করতে হবে সার্ভারের আইপি ঠিকানার চেয়ে। এখানে, আমি সার্ভারের জন্য 10.20.43.1 ব্যবহার করেছি এবং ক্লায়েন্টের জন্য 10.20.43.2 ব্যবহার করব। যেকোনো সাবনেট এখানে ব্যবহার করা যেতে পারে। সার্ভার এবং ইন্টারফেসের আইপি ঠিকানা পেতে, চালান:
ifconfig
সার্ভারের আইপি ঠিকানা নোট করুন। এটি ক্লায়েন্ট কনফিগারেশনের সময় প্রয়োজন।
সার্ভার দ্বারা ব্যবহৃত ইন্টারফেস, উপরের ছবিতে দেখা যায় eth0
. ব্যবহারকারীর নেটওয়ার্কের উপর ভিত্তি করে ইন্টারফেসের নাম ভিন্ন হতে পারে, এটি হতে পারে wlan0
বা wlp2s0
যদি ব্যবহারকারী একটি ওয়্যারলেস কার্ড ব্যবহার করে একটি ওয়াইফাই নেটওয়ার্কের সাথে সংযুক্ত থাকে।
প্রতিস্থাপন ভিতরে
পোস্টআপ
এবং পোস্টডাউন
আপনার ইন্টারফেসের সাথে; এই উদাহরণে এটা eth0
.পোস্টআপ
এবং পোস্টডাউন
সার্ভারটি যথাক্রমে শুরু এবং বন্ধ হওয়ার সময় কোন কমান্ডগুলি চালানো উচিত তা নির্দিষ্ট করতে নির্দেশাবলী ব্যবহার করা হয়। আমাদের উদাহরণে, আমরা ব্যবহার করি iptables
আইপি নিয়ম সেট করার জন্য কমান্ড যাতে সার্ভারের আইপি ঠিকানা ক্লায়েন্টদের দ্বারা ভাগ করা হয়। সার্ভার বন্ধ হয়ে গেলে নিয়মগুলি বাদ যাবে।
ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন। ভিম ব্যবহার করার সময়, টিপুন প্রস্থান, তারপর টাইপ করুন :wq
এবং টিপুন প্রবেশ করুন সংরক্ষণ এবং প্রস্থান করতে.
আপনি যদি একটি ব্যবহার করছেন ufw
সার্ভারে ফায়ারওয়াল, আমাদের VPN সার্ভার, 51190 এর জন্য পোর্টে UDP সংযোগের অনুমতি দিতে হবে।
ufw 51190/udp অনুমতি দেয়
পরিষেবা শুরু হচ্ছে
এখন কনফিগারেশন সম্পন্ন হলে, আমরা Wireguard VPN পরিষেবা শুরু করতে পারি।
সক্রিয় করতে পরিষেবাটি বুট করার সময় শুরু হবে, চালান:
systemctl wg-quick@wg0 সক্ষম করুন
উল্লেখ্য যে এখানে wg0
কনফিগারেশন ফাইলের নাম।
শুরুতেই পরিষেবা, চালান:
পরিষেবা wg-quick@wg0 শুরু
যাচাই করুন যে পরিষেবাটি সফলভাবে শুরু হয়েছে:
পরিষেবা wg-quick@wg0 স্ট্যাটাস
যে ইন্টারফেস যাচাই করুন আমরা আইপি কমান্ড ব্যবহার করে কনফিগারেশন ফাইল তৈরি করা শুরু করেছি।
ip a show wg0
ওয়্যারগার্ড VPN সার্ভার এখন সেট আপ এবং চলছে৷ এখন ক্লায়েন্ট কনফিগার করা যাক।
ক্লায়েন্ট কনফিগারেশন
ওয়্যারগার্ডের জন্য ক্লায়েন্ট কনফিগারেশন সার্ভার কনফিগারেশনের মতোই কমবেশি একই। আমরা ক্লায়েন্টের জন্য কী তৈরি করি এবং তারপর একটি কনফিগারেশন ফাইল তৈরি করি।
নিরাপত্তা কী
পাবলিক/প্রাইভেট কী জেনারেট করতে ক্লায়েন্টের জন্য জোড়া, চালান:
sudo su cd /etc/wireguard umask 077 wg genkey | tee ক্লায়েন্ট_প্রাইভেট_কী | wg pubkey > client_public_key
ক্লায়েন্টের জন্য পাবলিক এবং প্রাইভেট কী এখন ফাইলগুলিতে যথাক্রমে তৈরি হয় ক্লায়েন্ট_প্রাইভেট_কী
এবং ক্লায়েন্ট_পাবলিক_কী
.
তারা ব্যবহার করে তৈরি করা হয়েছে চেক করুন বিড়াল
আদেশ
cat client_private_key cat client_public_key
ক্লায়েন্টের জন্য কনফিগারেশন ফাইলে এটি যুক্ত করার জন্য প্রদর্শিত ব্যক্তিগত কীটি অনুলিপি করুন।
কনফিগারেশন ফাইল
কনফিগারেশন ফাইল তৈরি করুন আপনার ইচ্ছামত যেকোনো নাম দিয়ে। আমরা নাম দিয়ে এটি তৈরি করব wg0-ক্লায়েন্ট
এই উদাহরণের জন্য।
vim wg0-client.conf
নিম্নলিখিত কনফিগারেশন যোগ করুন.
[ইন্টারফেস] # আইপি ঠিকানা এবং ক্লায়েন্টের ঠিকানার ব্যক্তিগত কী = 10.20.43.2/24 ব্যক্তিগত কী = [পিয়ার] # সর্বজনীন কী, আইপি ঠিকানা এবং সার্ভারের পোর্ট PublicKey = এন্ডপয়েন্ট = :51190 অনুমোদিত আইপি = 0.0.0.0/0, : :/0
ক্লায়েন্টের জন্য সাবনেট ঠিকানা লিখুন। পূর্বে বর্ণিত হিসাবে, আমরা ব্যবহার করি 10.20.43.2
এই উদাহরণে ক্লায়েন্টের জন্য।
ক্লায়েন্ট ব্যক্তিগত কী যোগ করুন উপরের কনফিগারেশন কোডে 4 লাইনে পূর্ববর্তী ধাপে তৈরি করা হয়েছে।
'পিয়ার'-এর অধীনে, আমরা Wireguard VPN সার্ভার সম্পর্কে তথ্য যোগ করি আমরা সংযোগ করতে চাই।
সার্ভারের সর্বজনীন কী লিখুন। প্রবেশ করান সার্ভারের আইপি ঠিকানা, যা আমরা পূর্বে উল্লেখ করেছি এবং প্রদত্ত বিন্যাসে পোর্ট করেছি শেষপ্রান্ত. এটি সেই পোর্ট যা আমরা সার্ভার কনফিগারেশন ফাইলে উল্লেখ করেছি এবং যেটিতে সার্ভারে VPN পরিষেবা শুরু হয়েছে৷
অনুমোদিত আইপিগুলি প্রদত্ত (0.0.0.0/0) হিসাবে প্রবেশ করা উচিত যাতে ক্লায়েন্ট দ্বারা ব্যবহৃত ডায়নামিক পাবলিক আইপি-তে যেকোনো অনুরোধ সর্বদা VPN সার্ভারে ফরোয়ার্ড করা হয়।
ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন। ভিম ব্যবহার করার সময়, টিপুন প্রস্থান, তারপর টাইপ করুন :wq
এবং টিপুন প্রবেশ করুন সংরক্ষণ এবং প্রস্থান করতে.
ক্লায়েন্ট পরিষেবা সক্রিয় করুন প্রতিটি বুট দিয়ে চালানোর জন্য, এবং এটি শুরু করুন।
systemctl wg-quick@wg-client পরিষেবা wg-quick@wg-client শুরু সক্ষম করুন
যাচাই করুন যদি পরিষেবা শুরু হয়।
পরিষেবা wg-quick@wg-ক্লায়েন্ট স্ট্যাটাস
সার্ভারে পিয়ার যোগ করা হচ্ছে
এখন আমরা ভিপিএন সার্ভার এবং ক্লায়েন্ট আপ এবং চলমান আছে. যাইহোক, উভয়ের মধ্যে একটি সুরক্ষিত টানেল প্রতিষ্ঠিত হয় না যদি না আমরা সার্ভার এবং ক্লায়েন্টের মধ্যে একটি পিয়ার টু পিয়ার সংযোগ স্থাপন করি।
ফিরে যাও সার্ভারে প্রথম, ভিপিএন পরিষেবা বন্ধ করুন.
পরিষেবা wg-quick@wg0 stop
এর পরে, কনফিগারেশন ফাইলটি খুলুন পিয়ারের জন্য কনফিগারেশন যোগ করুন (ক্লায়েন্ট)।
vim /etc/wireguard/wg0.conf
যোগ করুন ফাইলের নিচের লাইনগুলো।
[পিয়ার] পাবলিক কী = অনুমোদিত আইপি = 10.20.43.2/32
এখন, VPN পরিষেবা আবার শুরু করুন.
পরিষেবা wg-quick@wg0 শুরু
এটাই! এটি ওয়্যারগার্ড ভিপিএন ক্লায়েন্ট এবং সার্ভার সেটআপের জন্য প্রয়োজনীয় সমস্ত কনফিগারেশন। এখন আমাদের VPN পরীক্ষা করা যাক।
ভিপিএন পরীক্ষা করা হচ্ছে
প্রথমে, ভিপিএন টানেল যোগাযোগ কাজ করে তা নিশ্চিত করতে ক্লায়েন্ট থেকে সার্ভারে একটি সাধারণ পিং করি। ক্লায়েন্টে নিম্নলিখিত চালান:
পিং 10.20.43.1
পরবর্তী, একটি ওয়েব ব্রাউজার খুলুন এবং যেকোনো ওয়েবসাইট খুলুন আপনি ক্লায়েন্ট মেশিন থেকে ইন্টারনেটের সাথে সংযোগ করতে সক্ষম কিনা তা পরীক্ষা করতে। আপনি কমান্ড লাইন ব্যবহার করে আপনার ইন্টারনেট সংযোগ পরীক্ষা করতে পারেন wget
.
wget
এখন, আমরা টানেল সংযোগ এবং ইন্টারনেট সংযোগ পরীক্ষা করেছি। যদি উভয়ই কাজ করে তবে আমাদের এখন নিশ্চিত করতে হবে যে ক্লায়েন্টের কাছে আসা সমস্ত ইন্টারনেট ট্র্যাফিক সার্ভারের মধ্য দিয়ে যাচ্ছে।
এর জন্য, আমাদের কেবল ইন্টারনেট দ্বারা দেখা ক্লায়েন্টের আইপি ঠিকানাটি পরীক্ষা করতে হবে। এটি করার একটি উপায় হল whatsmyip.org এ যাওয়া। অন্যথায় কমান্ড লাইন থেকে, আমরা কার্ল ব্যবহার করে আইপি ইনফো নামে আরেকটি অনুরূপ পরিষেবা জিজ্ঞাসা করতে পারি।
ক্লায়েন্ট মেশিনে নিম্নলিখিত চালান
কার্ল //ipinfo.io/ip
হ্যাঁ. এটি লিনোডের সর্বজনীন আইপি ঠিকানা যেখানে ভিপিএন সার্ভার হোস্ট করা হয়। এভাবেই ভিপিএন ব্যবহার করে বেনামী অর্জন করা হয়, যেহেতু ইন্টারনেট জুড়ে এখন ভিপিএন সার্ভারের আইপি দেখা যায় এবং আপনার কম্পিউটারের নয়।
উপসংহার
ওপেনভিপিএন-এর মতো ঐতিহ্যবাহী ভিপিএন সফ্টওয়্যারের তুলনায় ওয়্যারগার্ডের সবচেয়ে গুরুত্বপূর্ণ সুবিধাগুলির মধ্যে একটি হল সেটআপের সহজতা, যা সেট আপ করার জন্য উচ্চ স্তরের নেটওয়ার্কিং এবং রাউটিং জ্ঞান প্রয়োজন। যাইহোক, ওয়্যারগার্ডের জন্য বিস্তারিত অফিসিয়াল ডকুমেন্টেশনের অভাব রয়েছে যা আপনার ওয়্যারগার্ড সেটআপে ত্রুটি দেখা দিলে বা প্রত্যাশিতভাবে কাজ না করলে সমস্যা হতে পারে।
তবুও, আপনি যদি ইন্টারনেটে সুরক্ষিত যোগাযোগের জন্য একটি স্ব-হোস্টেড ভিপিএন চান তাহলে ওয়্যারগার্ড একটি চমৎকার পছন্দ। ওয়্যারগার্ড এবং এটি যে প্রোটোকল এবং প্রযুক্তি ব্যবহার করে সে সম্পর্কে আরও জানতে, আপনি অফিসিয়াল সাইটটি দেখতে পারেন।