দুটি OpenVPN প্যাকেট পথের জন্য Shorewall জোন
এনক্রিপ্ট করা OpenVPN পরিবহনকে ডিক্রিপ্ট করা ক্লায়েন্ট ট্র্যাফিক থেকে আলাদা করুন, টানেলকে তার নিজের জোন দিন এবং ক্লায়েন্টের প্রয়োজনীয় একমাত্র পরিষেবাটি অনুমোদন করুন।
দুটি প্যাকেট প্রবাহ এমন একটি Shorewall গেটওয়ে অতিক্রম করে যা OpenVPN সমাপ্ত করে, এবং তাদের মধ্যে কেবল একটি এনক্রিপ্ট করা। প্রথমটি হলো ইন্টারনেটমুখী ইন্টারফেসে VPN লিসেনারের কাছে ক্লায়েন্টের পরিবহন। দ্বিতীয়টি হলো টানেল ইন্টারফেস ছেড়ে যাওয়া ডিক্রিপ্ট করা অনুরোধ, যা অফিস সার্ভার বা গেটওয়ের কোনো পরিষেবার দিকে যায়। নীতি সম্পাদনার আগে দুটিই মানচিত্রে রাখুন, কারণ প্রথমটির জন্য যথেষ্ট একটি নিয়ম দ্বিতীয়টির জন্য কিছুই করে না।
নীতি সম্পাদনার আগে দুটি প্রবাহ আঁকুন
প্রবাহগুলোকে উৎস, গন্তব্য, প্রোটোকল ও পোর্টসহ সারি হিসেবে লিখুন। বাইরের পথে উৎস হলো ক্লায়েন্টের পাবলিক ঠিকানা এবং গন্তব্য হলো গেটওয়ের লিসেনার পোর্ট; Shorewall এটিকে ইন্টারনেট-থেকে-ফায়ারওয়াল ট্র্যাফিক হিসেবে গণ্য করে। ভেতরের পথে উৎস হলো টানেল ঠিকানা পরিসর এবং গন্তব্য হলো অনুমোদিত পরিষেবা। একজন প্রশাসক দুটিই রক্ষণাবেক্ষণ করলেও দুই সারির মালিক আলাদা।
| Flow | Zone relationship | What to constrain |
|---|---|---|
| Encrypted OpenVPN transport | Internet to the firewall host | The listener's actual protocol and port |
| Decrypted request to a LAN service | VPN clients to the LAN zone | One approved server and service |
| Decrypted request to the gateway | VPN clients to the firewall host | Only the local services required |
| Request to another VPN client | VPN clients to VPN clients | Denied unless deliberately required |
কেবল তখনই একটি সারি যোগ করুন যখন অনুরোধটি গেটওয়ের নিজের ওপর শেষ হয়, যেমন রিজলভার বা ব্যবস্থাপনা প্রবেশাধিকার। হোস্টের ওপরের পরিষেবা ফরওয়ার্ডেড পথ নয়, হোস্ট-ইনপুট নীতি অনুসরণ করে। এই দুটিকে মেশানোর ফলেই সংকীর্ণ টানেল নিয়ম একটি প্রশাসনিক ইন্টারফেস উন্মুক্ত করে ফেলে।
টানেল জোন ও ইন্টারফেসের পরিধি নির্ধারণ করুন
রোড-ওয়ারিয়র জোনটি /etc/shorewall/zones-এ ঘোষণা করা হয়, টানেল ইন্টারফেসটি /etc/shorewall/interfaces-এ সংযুক্ত হয়, এবং বাইরের সংযোগটি /etc/shorewall/tunnels-এ বর্ণিত হয়। ইনস্টল করা সংস্করণের সিনট্যাক্সের সঙ্গে মিলিয়ে নিন, কারণ কলামের ক্রম ও অপশনের নাম প্রধান সংস্করণগুলোর মধ্যে বদলেছে। নির্দেশিকার উদাহরণের পোর্ট ডেমনটি প্রকৃতপক্ষে যে পোর্টে শোনে তার থেকে আলাদা পোর্ট অনুমোদনের কারণ নয়। শুধু সংখ্যা মিলে যাওয়ায় TCP ও UDP বিনিময়যোগ্য নয়।
নির্দেশিকা tun+ দিয়ে ইন্টারফেসগুলোকে দলবদ্ধ করে। একাধিক টানেলযুক্ত হোস্টে সেই ওয়াইল্ডকার্ড ভিন্ন বিশ্বাসস্তরের দ্বিতীয় VPN-কে একই জোনে রাখতে পারে। পরিধিটি প্রকৃতপক্ষে বিদ্যমান ইন্টারফেসের সঙ্গে মিলিয়ে পর্যালোচনা করুন, এবং হাতে ইন্টারফেসের নাম সম্পাদনার বদলে নামকরণ সংযোগ ব্যবস্থাপকের জীবনচক্রের অধীনে রাখুন।
ঐতিহাসিক নির্দেশিকায় অনেক পুরোনো OpenVPN কনফিগারেশন নমুনা রয়েছে, এবং এর ক্রিপ্টো পরামর্শ বর্তমান স্থাপনায় কপি করা উচিত নয়। বরং জোন ও প্রবাহের মডেলটি ধার করুন। ক্রিপ্টোগ্রাফিক ভিত্তি গেটওয়ের রক্ষণাবেক্ষণকৃত OpenVPN নীতি থেকে নিন।
আপনি যে পথটি শ্রেণিবদ্ধ করেছেন কেবল সেটিই অনুমোদন করুন
VPN জোন থেকে LAN-এ বিস্তৃত অনুমোদন শুরু করার চিত্র, চূড়ান্ত নীতি নয়। অনুমোদিত ক্লায়েন্ট উৎস, প্রকৃত পরিষেবা ঠিকানা, প্রোটোকল ও পোর্ট লিখুন। তারপর এর উপরের নিয়মগুলো এবং জোনের ডিফল্ট পড়ুন, কারণ সংকীর্ণ সংযোজন ইতিমধ্যে মিলে যাওয়া বিস্তৃত অনুমোদন বাতিল করে না। গেটওয়ে হোস্টের দিকে ট্র্যাফিক তার মধ্য দিয়ে ফরওয়ার্ড হওয়া ট্র্যাফিক থেকে আলাদা সম্পর্ক।
ক্লায়েন্ট-থেকে-ক্লায়েন্ট ট্র্যাফিকের নিজস্ব সিদ্ধান্ত দরকার। OpenVPN-এর client-to-client এবং Shorewall-এর routeback দুটিই ক্লায়েন্টরা একে অপরের কাছে পৌঁছাতে পারে কি না তা প্রভাবিত করে, এবং একটি LAN অ্যাপ্লিকেশন চালু করার জন্যই কোনোটি সক্রিয় করা উচিত নয়। পরীক্ষার আগে কোথায় বিচ্ছিন্নতা প্রয়োগ হবে তা ঠিক করুন।
উত্তর পথটি একই পরিকল্পনায় রাখুন। পরিষেবা বা তার রাউটারকে ট্র্যাফিক কীভাবে টানেল পরিসরে ফেরত দিতে হবে তা জানতে হবে, অথবা নকশাকে সচেতনভাবে এবং অভীষ্ট পরিধির মধ্যে উৎসটি রূপান্তর করতে হবে।
যাচাই করুন, তারপর দুই পথই প্রমাণ করুন
কিছু পুনরায় চালু করার আগে কনফিগারেশন যাচাই করুন, এবং নতুন নীতিটি ভুল হলে সেজন্য একটি স্বতন্ত্র প্রশাসনিক সেশন খোলা রাখুন।
shorewall check
পরিষ্কার যাচাইয়ের পর কনফিগারেশন প্রয়োগ করুন এবং Shorewall কী লোড করেছে তা ফিরে পড়ুন। এই পাঠগুলো ফাইল কী বলে মনে হয় তা নয়, চলমান নীতি বর্ণনা করে।
shorewall show zones
ip route get 192.168.10.20
একই ক্লায়েন্ট থেকে একটি নতুন অনুমোদিত এবং একটি সচেতনভাবে প্রত্যাখ্যাত অনুরোধ পরীক্ষা করুন। সফল OpenVPN হ্যান্ডশেক কেবল বাইরের বিনিময় প্রমাণ করে; অনুমোদিত পরিষেবা ও প্রত্যাখ্যাত সম্পদ আপনার অভীষ্ট ভেতরের নীতি প্রমাণ করে। তারপর ক্লায়েন্ট পুনঃসংযোগ করুন ও পুনরাবৃত্তি করুন, কারণ টানেল ইন্টারফেসের নাম ও ঠিকানা সেশনগুলোর মধ্যে বদলাতে পারে। ফলাফল ভিন্ন হলে নিয়ম প্রশস্ত করার বদলে জোনের পরিধি ঠিক করুন।