গেটওয়েতে OpenVPN ক্লায়েন্টের ট্রাফিক কোথায় দেখবেন
রাউট করা VPN গেটওয়ে প্যাকেটগুলির জন্য সকেট না খুলেই সেগুলি ফরওয়ার্ড করে। ফ্লো কোথায় চলে তার উপর নির্ভর করে conntrack, সীমিত টানেল ক্যাপচার বা প্রক্সি লগ বেছে নিন।
সংযুক্ত ক্লায়েন্ট কোন গন্তব্যে পৌঁছাচ্ছে তা জানতে চান, তাই VPN সার্ভারে একটি শেল খুলে ss টাইপ করেন। দরকারি কিছু দেখা যায় না, এবং টানেল ভাঙা এই সিদ্ধান্তটি একটু বেশি সহজেই এসে পড়ে। রাউট করা OpenVPN গেটওয়ে ক্লায়েন্টের প্যাকেট ফরওয়ার্ড করে; এটি তাদের TCP সংযোগ শেষ করে না এবং তাদের জন্য সকেটও রাখে না। প্রমাণ অন্য কোথাও থাকে, আর সেই জায়গাটি নির্ভর করে টানেল ছাড়ার পরে ট্রাফিক কীভাবে হ্যান্ডেল হয় তার উপর।
আপনি কোন বিন্যাস দেখছেন তা ঠিক করুন
দুটি সাধারণ আকার সম্পূর্ণ ভিন্ন প্রমাণ দেয়। রাউটিং গেটওয়ে ডিক্যাপসুলেট করে, ফরওয়ার্ড করে এবং সম্ভবত সোর্স-NAT করে, তাই ক্লায়েন্টের সংযোগ স্থানীয় সকেট ছাড়াই প্রান্ত থেকে প্রান্ত পর্যন্ত টিকে থাকে।
প্রক্সি ট্রাফিক শেষ করে: এটি সংযোগ গ্রহণ করে, তারপর নিজের আপস্ট্রিম সংযোগ খোলে। সেই বিন্যাসে একটি অনুরোধের জন্য দুটি সংযোগ থাকে, আর তাদের মধ্যে সম্পর্ক কেবল প্রক্সির নিজের রেকর্ডে থাকে। এগুলির মধ্যে কোনটি আপনি স্থাপন করেছেন তা জানলে ঠিক হয় আপনি কার্নেলের ফ্লো অবস্থা পড়বেন না অ্যাপ্লিকেশন লগ।
বেশিরভাগ বিভ্রান্তি আসে অনুমান থেকে। টুল বাছার আগে আকার নিশ্চিত করুন। প্রথমে সার্ভার কনফিগারেশনে প্রক্সি নির্দেশিকা আছে কি না পড়ুন, কারণ এর উপস্থিতি পরের প্রতিটি ধাপ বদলে দেয়। এটি ছাড়া প্যাকেটের পথ রাউটিং, আর কার্নেলের ফ্লো অবস্থাই আপনার প্রমাণ।
প্রথমে ঠিকানাকে একটি সেশনের সঙ্গে বাঁধুন
সার্ভারের সেশন অবস্থা থেকে শুরু করুন এবং ক্লায়েন্টের বর্তমান অভ্যন্তরীণ ঠিকানা চিহ্নিত করুন। পুলের ঠিকানা পুনর্ব্যবহৃত হয়, তাই ঠিকানা একা একটি লিজ, ব্যক্তি নয়।
সময় ও প্রমাণিত পরিচয় একসঙ্গে লিখে রাখুন, এবং ওই ক্লায়েন্টের পিছনে পুরো একটি ল্যান লুকিয়ে আছে কি না খেয়াল করুন। দূর প্রান্ত যদি একটি সাবনেট রাউট করে, আপনি যে অভ্যন্তরীণ ঠিকানা দেখেন তা মূল হোস্ট বা অনূদিত হতে পারে।
ip -4 addr show dev tun0
journalctl -u [email protected] --since '-10 min' | tail -n 40এই জোড়া একসঙ্গে দুটি প্রশ্নের উত্তর দেয়: টানেল ইন্টারফেস কোন প্রিফিক্স পরিবেশন করে, এবং আপনার আগ্রহের সময়কালে কোন সেশন সক্রিয় ছিল। কোনও ফ্লো এন্ট্রি ব্যাখ্যা করার আগে এটি করুন, কারণ ভুল সেশনের সঙ্গে যুক্ত বিশ্বাসযোগ্য টিউপল কোনও প্রমাণ না থাকার চেয়েও খারাপ।
রাউটিং গেটওয়েতে ফ্লো টেবিল পড়ুন
ঠিকানা ও সময়কাল নির্ধারিত হলে, ট্র্যাক করা সংযোগের শুধু-পড়ার তালিকা দেখায় গেটওয়ে এর জন্য কী ফরওয়ার্ড করছে। মূল সোর্সে ফিল্টার করুন যাতে পুরো টেবিল না পড়েন।
sudo conntrack -L -p tcp -f ipv4 --orig-src 10.8.0.37প্রতিটি এন্ট্রিতে দুটি টিউপল থাকে, মূল ও উত্তর, যেগুলি একই ফ্লোর দুই দিক, দুটি অ্যাপ্লিকেশন নয়। সোর্স-NAT পথে মূল টিউপল টানেল ঠিকানা ধরে রাখে, আর উত্তর দিক অনূদিত গেটওয়ে ঠিকানা দেখায়, এবং ঠিক এ কারণেই আউটপুট প্রথম নজরে ভুল দেখায়।
তালিকাটিকে ইতিহাস নয়, জীবন্ত অবস্থা হিসেবে ধরুন। ছোট ফ্লো ইতিমধ্যে শেষ হয়ে যেতে পারে, ট্র্যাক না করা ট্রাফিক কখনও দেখা যায় না, আর ভিন্ন নেটওয়ার্ক নেমস্পেস ভিন্ন টেবিল দেখায়। conntrack রেফারেন্স ফিল্টার ও দুই-দিকের আউটপুট নথিভুক্ত করে।
পাঠ যাচাই করতে একটি সীমিত ক্যাপচার
আপনি যেখানে তাকিয়ে আছেন সেখানে টানেল ইন্টারফেস দেখা গেলে, একটি সীমিত ক্যাপচারই ঠিক করে দেয় আপনি চিহ্নিত করা প্যাকেটগুলি তারেই তারে আছে কি না। ফিল্টার সরু আর প্যাকেট সীমা ছোট রাখুন।
sudo tcpdump -ni tun0 -nn -c 50 'host 10.8.0.37 and tcp'টাইমস্ট্যাম্প, প্রোটোকল ও পোর্ট ফ্লো এন্ট্রির সঙ্গে এবং পরীক্ষা হিসেবে করা অনুরোধের সঙ্গে মিলিয়ে দেখুন। NAT-এর পরে নেওয়া ক্যাপচার কেবল গেটওয়ের পাবলিক ঠিকানা দেখায়, অথচ টানেলের দিক হয়তো এখনও ক্লায়েন্টের ঠিকানা দেখায়, আর এই পার্থক্য অসঙ্গতি নয়, তথ্য।
ইন্টারফেস কিছু না দেখলে, ক্লায়েন্ট নিষ্ক্রিয় এই সিদ্ধান্তে আসার আগে ডেটা পথ পরীক্ষা করুন: ক্লায়েন্ট-থেকে-ক্লায়েন্ট ট্রাফিক এবং কিছু অফলোড পথ আপনি যে বিন্দু দেখছেন তা কখনও অতিক্রম করে না।
প্রক্সি লগ, এবং আপনি যা দেখেছেন তার সীমা
পথে প্রক্সি থাকলে তার আপস্ট্রিম সকেটগুলি সকেট টেবিলে দেখা যায়, কিন্তু সেগুলি VPN ক্লায়েন্টের সঙ্গে এক-এক মেলে না, বিশেষত পুলিং বা মাল্টিপ্লেক্সিংয়ের সঙ্গে। ক্লায়েন্ট পরিচয়, গন্তব্য, টাইমস্ট্যাম্প এবং এটি যে অনুরোধ শনাক্তকরণ লিপিবদ্ধ করে তা মেলাতে প্রক্সির কনফিগার করা লেনদেন লগ ব্যবহার করুন।
প্রতিটি অনুরোধ ডিফল্টে লগ হয় ধরে নেওয়ার বদলে স্থাপিত সংস্করণের লগিং কনফিগারেশন পরীক্ষা করুন।
পরিশেষে, পরিধি সম্পর্কে নির্দিষ্ট থাকুন। গন্তব্য ঠিকানা ও পোর্ট মেটাডেটা, কোনও URL নয় এবং পৃষ্ঠার বিষয়বস্তুও নয়, কারণ ভিতরের HTTPS সেশন টানেল নির্বিশেষে নিজের সুরক্ষা রাখে। আপনি কী পর্যবেক্ষণ করেছেন, কোন পর্যবেক্ষণ বিন্দু থেকে এবং কোন সময়ে তা জানান।