ঝামেলামুক্ত OpenVPN
অনেক কাজেই আমাদের ভিপিএন দরকার হয়। নিরাপত্তা এবং গোপনীয়তার কথা চিন্তা করলে পেইড অথবা ফ্রি ভিপিএন থেকে নিজের হোস্ট করা ভিপিএন ব্যবহার করাই ভালো।
কেনো Docker দিয়ে ওপেনভিপিএন?
ভিপিএন ব্যবহার করার জন্য ডকার ব্যবহার করতেই হবে এমন কোনও কথা নেই। কিন্তু ডকার কিছু বাড়তি সুবিধা এনে দেয়, যেমন ফাইলসিস্টেমে ওপেনভিপন এর ফাইল, কনফিগারেশন দিয়ে কোনও কিছু পরিবর্তন করতে হয় না। কোনো কারণে ভিপিএন দরকার না পড়লে ডকার কন্টেনার ডিলিট করে দিলেই ঝামেলা শেষ!
যেভাবে সার্ভার সেটআপ হবে
সিস্টেমে অবশ্যই ডকার ইনস্টল থাকা লাগবে। রুট এক্সেস না থাকলেও চলবে।
এবার দেখা যাক কিভাবে চটজলদি নিজের লিনাক্স সার্ভারে docker দিয়ে ওপেনভিপিএন সেটআপ করা যায়। প্রথমে সার্ভারের লিনাক্স শেলে ডকার ভলিউম এর জন্য একটা নাম দিতে হবে।
1
OVPN_DATA="ovpn-data"
এবার এই ডাটা ভলিউম জেনারেট করি।
1
docker volume create --name $OVPN_DATA
এইবার কনফিগারেশন ফাইল জেনারেট করা লাগবে। এই জন্য দুটো কম্যান্ড লাগবে।
1 2
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
প্রথম কমান্ডে VPN.SERVERNAME.COM এর জায়গায় নিজের সার্ভারের পাবলিক আইপি অথবা ডোমেইন যেটা পয়েন্ট করা আছে সেটাই দিতে হবে। এর পরের কম্যান্ড রান করার পর একটা passprase দিতে হবে, যা পরবর্তী ধাপে লাগবে।
OpenVPN প্রসেস স্টার্ট করি
1
docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn
মাল্টিপল ডিভাইস থেকে ব্যবহারের জন্য আমাদের একাধিক ক্লায়েন্ট সার্টিফিকেট জেনারেট করাই ভালো। তাহলে পরবর্তীতে নতুন করে জেনারেট করা লাগবে না।
1
docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass
এইখানে CLIENTNAME -এর জায়গায় নিজের মন মতো নাম দিতে হবে, সেটা ডিভাইস নাম হতে পরে, ক্রাশ এর নামও হতে পারে 😉। একাধিক ডিভাইসের জন্য আলাদা CLIENTNAME দিয়ে কম্যান্ড তা বার বার রান করা লাগবে।
যতগুলো ক্লায়েন্ট সার্টিফিকেট জেনারেট করলাম, ঠিক ততো গুলোই ক্লায়েন্ট সার্টিফিকেট ফাইল এক্সপোর্ট করতে হবে। এক্সপোর্ট করার সময় CLIENTNAME নাম পরিবর্তন করে নিজের ডিভাইস নাম দিতে হবে ।
1
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn
সার্টিফিকেট লোকাল ডিভাইসে ডাউনলোড করা
ক্লায়েন্ট ফাইল জেনারেট করা শেষ। এইবার লোকাল ডিভাইসে ডাউনলোড করার পালা। আমরা SCP দিয়ে ফাইল ডাউনলোড করতে পারি।
তার আগে সার্ভারে দেখা লাগবে pwd
কম্যান্ড দিয়ে, কোন ডাইরেক্টরিতে ফাইল গুলো আমরা জেনারেট করেছিলাম, ধরলাম pwd
কমান্ডের আউটপুট /root/
। এইবার লোকাল ডিভাইস থেকে পরবর্তী SCP কম্যান্ড দিয়ে ফাইলগুলো ডাউনলোড করতে হবে।
|
|
কানেক্ট করা
ওপেনভিপিএন সার্টিফিকেট দিয়ে কানেক্ট করার জন্য অফিসিয়াল এবং থার্ড পার্টি অনেক সফটওয়্যার আছে। যেমন লিনাক্স ডিভাইস থেকে কানেক্ট করার জন্য আমাদের প্রথমে ওপেনভিপিএন প্যাকেজ ইনস্টল করতে হবে।
|
|
এরপরের কম্যান্ড দিয়ে ভিপিয়েনে কানেক্ট করতে হবে।
|
|
ডকার কন্টেনার রিবুটেবল করা
আমাদের এখনকার সেটাপে সার্ভার রিস্টার্ট দিলে ওপেনভিপিএন কন্টেনার নিজ থেকে স্টার্ট হবে না। এই প্রবলেম ফিক্স করার জন্য আমাদের প্রথমে কন্টেনার আইডি জানতে হবে।
|
|
এরপর কন্টেনার আইডি কপি করে নিচের কম্যান্ড রান করতে হবে।
|
|
xyzcontainerid এর জায়গায় কন্টেনার আইডি দিতে হবে। এরপর থেকে সার্ভার রিস্টার্ট দিলে আমাদের এই কন্টেনার নিয়ে চিন্তা করতে হবে না।
ক্রেডিট
- ছবি: প্রিভেকস্ট্যাসি এর তোলা আনস্প্ল্যাশ থেকে
- সোর্স কোড: https://github.com/kylemanna/docker-openvpn