কয়েক মাস আগে আমার সঠিক প্রশ্নটি রয়েছে, তবে অতিরিক্ত হিসাবে, আমি যদি সম্ভব হয় তবে আইপিভি 6 সংযোগ রাখতে চাইতাম। আপনি সার্ভারফল্টে আমার প্রশ্নে আগ্রহী হতে পারেন:
আমার সার্ভারে ব্যবহারের জন্য কেবলমাত্র একটি এনআইসি ("নেটওয়ার্ক ইন্টারফেস") ছিল। আমার সেটআপে, নেটওয়ার্কম্যানেজার পর্যাপ্ত ছিল না কারণ আইপিভি 6 সমর্থন করার জন্য আমার একটি কাস্টম স্ক্রিপ্ট চালানো দরকার। সরলতার জন্য তবে আমি এখানে নেটওয়ার্কম্যানেজারটি ব্যবহার করব এবং আইপিভি 6 সমর্থন বাদ দেব।
প্রথমত, প্রমাণীকরণ পদ্ধতি সম্পর্কে কেবল কোনও সিদ্ধান্ত নিন। আমি নিরাপদ শংসাপত্র পদ্ধতিটি ব্যবহার করব যা এসএসএলের মতো কাজ করে: হ্যান্ডশেকের সময় একটি সাধারণ গোপনীয়তা বেছে নেওয়া হয় যা অধিবেশনটির জন্য ব্যবহৃত হবে। অন্যান্য পদ্ধতিগুলি একটি শেয়ার কী; একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড।
সার্ভার
1. প্রস্তুত
প্রথমে ওপেনভিএনপি সার্ভারটি ইনস্টল করুন। এটি যেমন সহজ sudo apt-get install openvpn
। কঠিন অংশটি এটি কনফিগার করছে। কনফিগারেশন উপস্থিত /etc/openvpn
।
2. প্রমাণীকরণ কনফিগার করুন
নিজের এবং তার ক্লায়েন্টদের সনাক্ত করার জন্য সার্ভারের শংসাপত্রের প্রয়োজন। এই শংসাপত্রগুলি একটি সিএ (সাধারণ কর্তৃপক্ষ) থেকে পুনরুদ্ধার করা হয়। শংসাপত্র তৈরি এবং সম্পর্কিত ব্যক্তিগত কীগুলি যে কোনও মেশিনে করা যেতে পারে, এটি সার্ভারে করতে হবে না। আপনি যদি সত্যিই ভৌতিক হয়ে থাকেন তবে আপনার এটি এমন কোনও মেশিনে করা উচিত যা কোনও নেটওয়ার্কের সাথে সংযুক্ত না থাকে এবং শংসাপত্র স্থানান্তর করার জন্য একটি মেমরি স্টিক ব্যবহার করা উচিত।
সার্ভারের জন্য একটি সিএ এবং শংসাপত্র তৈরি করুন
আপনার সিএর ব্যক্তিগত কী আপোস না হয়ে গেলে এই পদক্ষেপটি একবারে করতে হবে। সেক্ষেত্রে বৈধ শংসাপত্র তৈরি করা যেতে পারে যা সার্ভার দ্বারা গৃহীত হবে, যার ফলে সুরক্ষা লঙ্ঘন হবে।
সরকারী ডকুমেন্টেশন মধ্যে প্রশাসন কি দাড়ায় /etc/openvpn
। আমি সবকিছুকে রুট হিসাবে চালানোর পক্ষে খুব বড় অনুরাগী নই, তাই আমি এটি অন্য একটি ডিরেক্টরিতে রেখে দেব।
প্রশাসনিক ডিরেক্টরি তৈরি করুন এবং এতে ফাইলগুলি অনুলিপি করে চালনা করুন:
mkdir ~/openvpn-admin
cd ~/openvpn-admin
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ ./easy-rsa
cd easy-rsa
vars
প্রয়োজন অনুসারে ডিফল্টগুলি সম্পাদনা করুন , উদাহরণস্বরূপ সেটিংস KEY_SIZE=2048
কারণ আপনি অদ্ভুত।
ভেরিয়েবলগুলি লোড করুন এবং চালনা করে কী ডিরেক্টরিটি তৈরি করুন:
. vars
যদি আপনি কোনও ত্রুটি পান তবে তা No ... openssl.cnf file could be found
Further invocations will fail
চালান ln -s openssl-1.0.0.cnf openssl.cnf
, আবার . vars
again
এটি যদি এই সিএ ব্যবহার করে আপনার প্রথমবার হয়, কী পরিবেশটি প্রস্তুত করুন। আপনি যদি পূর্বে তৈরি সিএ বজায় রাখতে চান তবে এই কমান্ডটি চালাবেন না এটি করার জন্য আপনাকে নতুন স্থাপনার প্রয়োজন হবে ca.crt
।
./clean-all
- এক্সিকিউট করে সিএ তৈরি করুন
./build-ca
। আপনি যে কোনও বিবরণ চান তা পূরণ করতে পারেন তবে নোট করুন যে ক্লায়েন্টরা সার্ভারের সাথে সংযোগ স্থাপন করার সময় লগ ফাইলগুলিতে এই তথ্যটি দৃশ্যমান হবে। এটি ফাইলগুলি ca.key
এবং ca.crt
সাবফোল্ডারে তৈরি করবে keys
। ca.key
ফাইলটি সমস্ত পরিস্থিতিতে গোপন রাখুন । এটি করতে ব্যর্থতা কী সহ যে কেউ আপনার সার্ভারের সাথে সংযোগ স্থাপনের অনুমতি দেবে।
- যদি আপনার পূর্ববর্তী শংসাপত্রটি হারিয়ে বা মেয়াদোত্তীর্ণ হয়ে থাকে তবে আপনাকে পুরানোটি প্রথমে বাতিল করতে হবে
./revoke-full server
। অন্যথায় আপনি একটি ডাটাবেস ত্রুটি পাবেন।
চালিয়ে সার্ভারের জন্য শংসাপত্র তৈরি করুন:
./build-key-server server
যখন কোনও পাসওয়ার্ডের জন্য জিজ্ঞাসা করা হচ্ছে, আপনি সার্ভারটি প্রতিবার শুরু হওয়ার পরে পাসওয়ার্ডটি প্রবেশ করতে রাজি না হলে (খালি প্রস্তাবিত নয়) এটিকে খালি ছেড়ে দিন। শংসাপত্রটি স্বাক্ষর করে এবং এটি প্রতিশ্রুতি দেওয়ার বিষয়ে নিশ্চিত করুন। ডিরেক্টরিতে দুটি নতুন ফাইল উপস্থিত হবে keys
: server.key
এবং server.crt
।
ডিএইচ এবং ব্যবহার করুন tls-auth এর জন্য প্রস্তুত
ডিফি-হেলম্যান প্যারামিটারগুলি ব্যবহার করে তৈরি করুন :
./build-dh
প্রতি কঠোর টিপস , ব্যবহার tls-auth
। তার জন্য, ভাগ করে নেওয়া গোপন কীটি ব্যবহার করে তৈরি করুন:
openvpn --genkey --secret ta.key
ফলস্বরূপ ফাইল ( ta.key
) অবশ্যই ক্লায়েন্টগুলিতে বিতরণ করা উচিত, তবে আপনার এটি সর্বজনীনভাবে রাখা উচিত নয়।
ক্লায়েন্টদের জন্য শংসাপত্র তৈরি করুন
প্রতিটি ক্লায়েন্টের জন্য, এই পদক্ষেপগুলি পুনরাবৃত্তি করা উচিত:
যে ডিরেক্টরিতে আপনি আপনার সিএ এবং সার্ভার শংসাপত্র তৈরি করেছেন তা প্রবেশ করুন:
cd ~/openvpn-admin/easy-rsa
আপনি যদি ইতিমধ্যে একটির কারণে সিএ তৈরির পদক্ষেপটি এড়িয়ে যান তবে আপনাকে প্রথমে ভেরিয়েবলগুলি লোড করতে হবে:
. vars
- যদি আপনি নতুন শংসাপত্র তৈরি করে থাকেন কারণ পুরানোগুলি হারিয়ে গেছে বা মেয়াদোত্তীর্ণ হয়ে গেছে , আপনাকে প্রথমে পুরানোটিকে বাতিল করতে হবে
./revoke-full you
। অন্যথায় আপনি একটি ডাটাবেস ত্রুটি পাবেন।
ক্লায়েন্ট শংসাপত্র you.key
এবং এর সম্পর্কিত শংসাপত্র তৈরি করুন you.crt
:
./build-key you
CommonName
অনন্য হওয়া উচিত। পাসওয়ার্ডটি খালি ছেড়ে দিন যদি আপনি কে.ডি. ব্যবহার করেন তবে এটি এখন পর্যন্ত 10.10 হিসাবে সমর্থন করে না। সার্ভার শংসাপত্রের প্রজন্মের মতোই, শংসাপত্রটিতে স্বাক্ষর করে পরিবর্তনগুলি প্রতিশ্রুতি দিন।
৩. ওপেনভিপিএন পরিষেবা সেটআপ করুন
ডিফল্টরূপে, সংযোগ গ্রহণ করার সময় ওপেনভিপিএন রুট হিসাবে চালিত হয়। মন্দ ইন্টারনেট থেকে পরিষেবাটি যদি অ্যাক্সেসযোগ্য হয় তবে একটি ভাল ধারণা নয়।
ওপেনভিপিএন এর জন্য উত্সর্গীকৃত ব্যবহারকারী তৈরি করুন, বলুন openvpn
:
sudo useradd openvpn
ফাইল কপি server.key
, server.crt
, ca.crt
এবং dh1024.pem
(অথবা dh2048.pem
আপনি মূল আকার পরিবর্তন করেছি হলে) মধ্যে কী ডিরেক্টরি থেকে /etc/openvpn
। 400 এর অনুমতি (কেবলমাত্র মালিকের জন্য পঠনযোগ্য) ঠিক আছে।
sudo cp ~/openvpn-admin/easy-rsa/keys/{server.key,server.crt,ca.crt,dh*.pem} /etc/openvpn
sudo chmod 400 /etc/openvpn/{server.key,server.crt,ca.crt}
ফাইলটি অনুলিপি করুন ta.key
:
sudo cp ~/openvpn-admin/easy-rsa/ta.key /etc/openvpn
sudo chmod 400 /etc/openvpn/ta.key
ফাইলটি তৈরি করুন /etc/openvpn/server.conf
এবং এর মধ্যে পরবর্তী লাইনগুলি রাখুন:
proto udp
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth ta.key 0
# Compress data to save bandwidth
comp-lzo
user openvpn
group openvpn
persist-key
persist-tun
# Logs are useful for debugging
log-append openvpn-log
verb 3
mute 10
এটিতে উপযুক্ত অনুমতিগুলি সেট করুন, এটি গোপনের দরকার নেই তবে আমি কনফিগারেশনের বিশদটি ফাঁস না করা পছন্দ করি:
sudo chmod 640 /etc/openvpn/server.conf
৪. সার্ভার শেষ হচ্ছে
আপনি যদি সার্ভারে শংসাপত্র তৈরি করে থাকেন তবে এটি এনক্রিপ্ট করা বা এটি সার্ভার থেকে সরিয়ে নেওয়া ভাল ধারণা। যে কোনও ক্ষেত্রে, হারাবেন না ca.key
এবং server.key
। প্রথম ক্ষেত্রে অন্যরা আপনার সার্ভারের সাথে সংযোগ রাখতে সক্ষম হবে। পরবর্তীকালে, একটি এমআইটিএম সম্ভব হয়।
মক্কেল
সার্ভার আইপি ঠিকানা ছাড়াও, সার্ভার প্রশাসকের নিম্নলিখিত ফাইলগুলি হস্তান্তর করা উচিত:
ca.crt
: শংসাপত্র যাচাই করার জন্য
server.crt
: সার্ভারটি যাচাই করার জন্য এবং এর সাথে যোগাযোগ করার জন্য
ta.key
: সুরক্ষা জোরদার করার জন্য
you.crt
: সার্ভারের সাথে নিজেকে সনাক্ত করতে
you.key
: এটি আপনার পাসওয়ার্ডের মতো, ফাইল অনুমতিগুলি 400 টি হওয়া উচিত (কেবলমাত্র মালিকের জন্য কেবল পঠনযোগ্য)
1. ইনস্টলেশন
ওপেনভিপিএন এবং নেটওয়ার্ক ম্যানেজার প্লাগইন ইনস্টল করুন (কেডিএ এবং জিনোমের জন্য উপযুক্ত):
sudo apt-get install openvpn network-manager-openvpn
network-manager-openvpn
মহাবিশ্বের ভাণ্ডারে রয়েছে।
2. কনফিগারেশন
নিয়ন্ত্রণ প্যানেলে, নিম্নলিখিত বিবরণগুলি ব্যবহার করুন:
- গেটওয়ে: সার্ভারের আইপি ঠিকানা
- প্রকার: "শংসাপত্রগুলি (টিএলএস)" (জিনোম) বা "এক্স .509 শংসাপত্র" (কেডিএ)
- সিএ শংসাপত্র: পথে
ca.crt
- ব্যবহারকারীর শংসাপত্র: পথে
you.crt
- প্রাইভেট কী: পথে
you.key
এ উন্নত :
- গেটওয়ে পোর্ট: স্বয়ংক্রিয় (1194) (পরিবর্তন করার দরকার নেই)
- LZO ডেটা সংক্ষেপণ ব্যবহার করুন: সক্ষম
- টিসিপি সংযোগ ব্যবহার করুন: অক্ষম
- ট্যাপ ডিভাইস ব্যবহার করুন: সক্ষম
- সাইফার: ডিফল্ট
- এইচএমএসি প্রমাণীকরণ: ডিফল্ট
- টিএলএস-প্রমাণীকরণ ব্যবহার করুন: সক্ষম করা
কী ফাইলের পথটি নির্দিষ্ট করুন ta.key
এবং এতে "কী দিকনির্দেশ" সেট করুন 1
।
- ( টুডো - এটি পরীক্ষা করে দেখুন ) সার্ভারটি ডিফল্ট গেটওয়েতে ধাক্কা দেয় যাতে সমস্ত ট্র্যাফিক ভিপিএন সংযোগের ওপরে যায়। শেষবার আমি যাচাই করেছি, নেটওয়ার্ক-ম্যানেজার-ওপেনভিপিএন প্লাগইন এটি করেনি।
আপনি যদি নেটওয়ার্কম্যানেজারকে কাজ করতে না পারেন বা এটি ব্যবহার করতে না চান তবে ফাইলগুলি ( ca.crt
, ...) এতে /etc/openvpn
রেখে ফাইলটি তৈরি /etc/openvpn/client.conf
করুন:
client
dev tap
proto udp
# replace 1.2.3.4 by your server IP
remote 1.2.3.4 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert you.crt
key you.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
user nobody
group nogroup
verb 3
mute 20
আপনি যদি বুট সময় এই ভিপিএন সক্ষম করতে না চান /etc/default/openvpn
তবে পরবর্তী লাইনটি সম্পাদনা করুন এবং এটিকে অপসারণ করে অসুবিধা করুন #
:
#AUTOSTART="none"
এই সংযোগটি শুরু করতে, চালান:
sudo /etc/init.d/openvpn start client
client
আপনার কনফিগারেশন ফাইলটির নাম না থাকলে নাম পরিবর্তন করা উচিত client.conf
। উদাহরণ: আপনি যদি নিজের কনফিগারেশন ফাইলটির নাম দিয়েছেন তবে আপনাকে safe.conf
চালনা করতে হবে sudo /etc/init.d/openvpn start safe
।
ওপেনভিপিএন বন্ধ করতে, আপনাকে চালাতে হবে:
sudo /etc/init.d/openvpn stop