আমি মাঝে মাঝে ট্যাপ ইন্টারফেসের সাথে মেশিনে আসি (যেমন, যখন কেভিএম চলছে)। ট্যাপ ইন্টারফেসের সাথে কোন প্রক্রিয়া সংযুক্ত রয়েছে তা আমি কীভাবে জানতে পারি?
আমি মাঝে মাঝে ট্যাপ ইন্টারফেসের সাথে মেশিনে আসি (যেমন, যখন কেভিএম চলছে)। ট্যাপ ইন্টারফেসের সাথে কোন প্রক্রিয়া সংযুক্ত রয়েছে তা আমি কীভাবে জানতে পারি?
উত্তর:
এটি আমার অবাক করে দিয়েছিল এবং আমার লিনাক্স কার্নেলের উত্সটি দেখেছি (আমি ধরে নিচ্ছি আপনার প্রশ্নটি লিনাক্স সম্পর্কে)।
এটি প্রত্যাশার চেয়ে উত্তরটি আরও কঠিন appears এই টিএন / ট্যাপ এপিআই টিউটোরিয়াল পৃষ্ঠাটি কিছু অন্তর্দৃষ্টি দেয় । মূলত, আপনার প্রোগ্রামটি /dev/net/tun
এটি খুলতে এবং প্রেরণ করে একটি নতুন TUN / TAP ডিভাইস বরাদ্দ করে TUNSETIFF
ioctl
। যদি সবকিছু ঠিকঠাক হয় তবে একটি ইন্টারফেস তৈরি করা হয়, কার্নেল আপনাকে এর নাম এবং একটি ফাইল বর্ণনাকারী দেয় এবং আপনি এটি পরিচালনা করেন।
এখানে দুটি ক্যাচ রয়েছে:
struct tun_struct
(টিউএন এবং ট্যাপ মূলত একই ডেটা কাঠামো ভাগ করে নিয়েছে)।অনুশীলনে, আমি সন্দেহ করি 2 খুব বেশি ঘটে না। কোনও openvpn
প্রক্রিয়া পরীক্ষা করে lsof
জানা যায় যে এটি এখনও তার ফাইল বিবরণীটি ট্যাপ ডিভাইসে খোলা হয়েছে এবং স্পষ্টতই এটি ব্যবহার করছে, তবে যেহেতু /dev/net/tun
এক ধরণের মাল্টিপ্লেক্সিং ডিভাইস /dev/ptmx
, তাই আপনি lsof
বর্তমানে টিএন / ট্যাপ ডিভাইসটি কী প্রসেসগুলি ব্যবহার করছেন তা অনুসন্ধান করতে আপনি ব্যবহার করতে পারেন , কোন প্রক্রিয়া কোন ডিভাইসটি ব্যবহার করছে তা আপনি জানতে পারবেন না।
অন্তর্নিহিত সমস্যা সমাধানের তির্যক উপায় রয়েছে। ওপেনভিপিএন-এর জন্য, আমি একটি টানেল সেটআপ স্ক্রিপ্ট ব্যবহার করি যা tunX
/ tapX
ডিভাইসগুলির নামকরণ করে আরও বর্ণনামূলক নাম যা ওপেনভিপিএন কনফিগারেশন ফাইলের বেসনাম অন্তর্ভুক্ত করে। সুতরাং, /etc/openvpn/foo.conf
একটি vpn-foo
ডিভাইস বাড়ে । তারপরে আমি ওপেনভিভিপিএন প্রক্রিয়াটি এটির ইন্টারফেসের সাথে সম্পর্কিত করতে পারি। যদিও কিউমু / কেভিএম দিয়ে এখনও এটি করতে হয়নি।
প্রতিটি ফাইল বর্ণনাকারীর একটি / proc / pid / fdinfo / num এন্ট্রি থাকে, যেমন:
# cat /proc/24332/fdinfo/28
pos: 0
flags: 0104002
mnt_id: 18
iff: tap0123acdc-66
সুতরাং, ইন্টারফেস নামের সাথে, আপনি পিডটি পেতে পারেন:
# egrep -l iff:.*tap0123acdc-66 /proc/*/fdinfo/* 2>/dev/null|cut -d/ -f3
24332
% sudo bash -c 'grep -l iff:.*vnet0 /proc/*/fdinfo/* 2>/dev/null | cut -d/ -f3'
4143
% pgrep qemu
4143
আউটপুটে একটি নেম প্যারামিটার প্রদর্শিত হয়েছে তা প্রদত্ত ps -ef
, উদাহরণস্বরূপ qemu-system-x86_64 -enable-kvm -name debian-8
এটি খুঁজে পাওয়া সহজ হওয়া উচিত যা ভিএম পিড এবং একটি ইন্টারফেসের সাথে মিল রয়েছে।
ফ্রিবিএসডি বা অন্য কোনও বিএসডি ডেরিভেটিভে:
ifconfig tap0
ইন্টারফেসের সাথে কোন প্রক্রিয়াটি সংযুক্ত রয়েছে তা আপনাকে দেখাতে হবে:
tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80000<LINKSTATE>
ether 58:9c:fc:10:8f:2b
groups: tap
media: Ethernet autoselect
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
Opened by PID 2672
ifconfig
দেখায় না। মনে মনে, এগুলি tap
ওপেনভিপিএন দ্বারা নির্মিত ডিভাইস - তবে কেন পার্থক্য হওয়া উচিত তা আমি দেখছি না।
nmap
তবে আমি কীভাবে সৎ হতে হবে তা নিশ্চিত নই।