কোনও প্রক্রিয়াটি কোনও ট্যাপ ইন্টারফেসের সাথে সংযুক্ত থাকলে কীভাবে জানবেন?


9

আমি মাঝে মাঝে ট্যাপ ইন্টারফেসের সাথে মেশিনে আসি (যেমন, যখন কেভিএম চলছে)। ট্যাপ ইন্টারফেসের সাথে কোন প্রক্রিয়া সংযুক্ত রয়েছে তা আমি কীভাবে জানতে পারি?


আমার সন্দেহ হয় আপনি এটি দিয়ে করতে পারেন nmapতবে আমি কীভাবে সৎ হতে হবে তা নিশ্চিত নই।
অ্যালেক্স চেম্বারলাইন

উত্তর:


2

এটি আমার অবাক করে দিয়েছিল এবং আমার লিনাক্স কার্নেলের উত্সটি দেখেছি (আমি ধরে নিচ্ছি আপনার প্রশ্নটি লিনাক্স সম্পর্কে)।

এটি প্রত্যাশার চেয়ে উত্তরটি আরও কঠিন appears এই টিএন / ট্যাপ এপিআই টিউটোরিয়াল পৃষ্ঠাটি কিছু অন্তর্দৃষ্টি দেয় । মূলত, আপনার প্রোগ্রামটি /dev/net/tunএটি খুলতে এবং প্রেরণ করে একটি নতুন TUN / TAP ডিভাইস বরাদ্দ করে TUNSETIFF ioctl। যদি সবকিছু ঠিকঠাক হয় তবে একটি ইন্টারফেস তৈরি করা হয়, কার্নেল আপনাকে এর নাম এবং একটি ফাইল বর্ণনাকারী দেয় এবং আপনি এটি পরিচালনা করেন।

এখানে দুটি ক্যাচ রয়েছে:

  1. কার্নেল প্রসেসের পিআইডি সংরক্ষণ করে না যা আইওসিটিএল প্রেরণ করেছে struct tun_struct(টিউএন এবং ট্যাপ মূলত একই ডেটা কাঠামো ভাগ করে নিয়েছে)।
  2. একটি প্রক্রিয়া একটি ইন্টারফেসকে অবিরাম হিসাবে চিহ্নিত করতে পারে, এর ফাইল বিবরণী বন্ধ করে এবং এরপরে এটিকে একটি সাধারণ নেটওয়ার্ক ইন্টারফেস হিসাবে ব্যবহার করতে পারে।

অনুশীলনে, আমি সন্দেহ করি 2 খুব বেশি ঘটে না। কোনও openvpnপ্রক্রিয়া পরীক্ষা করে lsofজানা যায় যে এটি এখনও তার ফাইল বিবরণীটি ট্যাপ ডিভাইসে খোলা হয়েছে এবং স্পষ্টতই এটি ব্যবহার করছে, তবে যেহেতু /dev/net/tunএক ধরণের মাল্টিপ্লেক্সিং ডিভাইস /dev/ptmx, তাই আপনি lsofবর্তমানে টিএন / ট্যাপ ডিভাইসটি কী প্রসেসগুলি ব্যবহার করছেন তা অনুসন্ধান করতে আপনি ব্যবহার করতে পারেন , কোন প্রক্রিয়া কোন ডিভাইসটি ব্যবহার করছে তা আপনি জানতে পারবেন না।

অন্তর্নিহিত সমস্যা সমাধানের তির্যক উপায় রয়েছে। ওপেনভিপিএন-এর জন্য, আমি একটি টানেল সেটআপ স্ক্রিপ্ট ব্যবহার করি যা tunX/ tapXডিভাইসগুলির নামকরণ করে আরও বর্ণনামূলক নাম যা ওপেনভিপিএন কনফিগারেশন ফাইলের বেসনাম অন্তর্ভুক্ত করে। সুতরাং, /etc/openvpn/foo.confএকটি vpn-fooডিভাইস বাড়ে । তারপরে আমি ওপেনভিভিপিএন প্রক্রিয়াটি এটির ইন্টারফেসের সাথে সম্পর্কিত করতে পারি। যদিও কিউমু / কেভিএম দিয়ে এখনও এটি করতে হয়নি।


ঠিক আছে. আমি আরও সন্দেহ করছিলাম যে "মাল্টিপ্লেক্সিং" / ডিভ / নেট / টুন আমাদের কোন টেপ ইন্টারফেসটি ঠিক কোন প্রক্রিয়াতে সংযুক্ত রয়েছে তা জানতে বাধা দিতে পারে।
ব্যবহারকারী368507

5

প্রতিটি ফাইল বর্ণনাকারীর একটি / 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এটি খুঁজে পাওয়া সহজ হওয়া উচিত যা ভিএম পিড এবং একটি ইন্টারফেসের সাথে মিল রয়েছে।
দিমিত্রি এস।

1

ফ্রিবিএসডি বা অন্য কোনও বিএসডি ডেরিভেটিভে:

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ওপেনভিপিএন দ্বারা নির্মিত ডিভাইস - তবে কেন পার্থক্য হওয়া উচিত তা আমি দেখছি না।
অ্যালেক্সিয়াস

এটি ফ্রিবিএসডি বা অন্য কোনও বিএসডি ডেরাইভেটিভ সম্পর্কে।
কেওয়ার 24
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.