ক্রুট পরিবেশে আমি কীভাবে পিং কমান্ডটি ব্যবহার করতে পারি?
$ ping 8.8.8.8
ping: icmp open socket: Operation not permitted
বর্তমানে আমি সেন্টও ব্যবহার করছি, তবে আদর্শভাবে এমন একটি সমাধান অবশ্যই পাওয়া উচিত যা সমস্ত আঁটিযুক্ত পরিবেশে কাজ করে।
ক্রুট পরিবেশে আমি কীভাবে পিং কমান্ডটি ব্যবহার করতে পারি?
$ ping 8.8.8.8
ping: icmp open socket: Operation not permitted
বর্তমানে আমি সেন্টও ব্যবহার করছি, তবে আদর্শভাবে এমন একটি সমাধান অবশ্যই পাওয়া উচিত যা সমস্ত আঁটিযুক্ত পরিবেশে কাজ করে।
উত্তর:
লিনাক্সের অধীনে, ping
রুট হিসাবে চালানো দরকার (কারণ এটি কোনও কাঁচা আইপি সকেটকে বাঁধতে হবে; সাধারণ ব্যবহারকারীরা কেবল ইউডিপি এবং টিসিপি করতে পারেন)। এটি নির্ধারিত মূল হতে ডিজাইন করা হয়েছে। দেখে মনে হচ্ছে আপনার ক্রোটটিতে অনুলিপি নির্ধারিত মূল নয়। অনুমতিগুলি ঠিক করুন:
chown root:root /bin/ping; chmod u+srwx,go=rx /bin/ping
নোট করুন যে ক্রুটে অন্যান্য কমান্ড থাকতে পারে যা নির্দিষ্টভাবে su
এবং সেটউইড (বা সেটগিড) হওয়া দরকার sudo
।
নোট করুন যে এই জবাবগুলি কারাগারের মতো আরও বিধিনিষেধযুক্ত কিছু নয়, একটি ক্রুট হিসাবে ধরেছে।
chmod 4755 /bin/ping
,।
যেমন উল্লেখ করা হয়েছে, ping
একটি কাঁচা আইপি সকেট বাঁধতে অনুমতি প্রয়োজন। প্রথাগতভাবে setuid
স্বাভাবিক ব্যবহারকারীদের এটি ব্যবহার করার অনুমতি দিতে ব্যবহার করা হয়েছে। তবে, ক্ষমতাগুলি (পসআইএক্সএক্স 1003.1 ই, ক্ষমতা (7)) ব্যবহার করে, সম্ভাব্য দুর্বলতার সুরক্ষা পরিণতি সীমাবদ্ধ করে ন্যূনতম সামর্থ্যগুলি বেছে বেছে বেছে সক্ষম করা যেতে পারে enabled
ping
সক্ষমতা প্রয়োজন CAP_NET_RAW
। ধরুন যে বাইনারি যাওয়ার পথটি হল /usr/bin/ping
, সরঞ্জামটি ব্যবহার করে দক্ষতা সেট করা যেতে পারে setcap
:
setcap cap_net_raw+ep /usr/bin/ping
getcap
ফলাফলটি পরীক্ষা করতে ব্যবহার করুন :
getcap /usr/bin/ping
আউটপুট যেমন কিছু হতে হবে
/ usr / বিন / পিং = ক্যাপ_নেট_আরও + এপি
এবং ping
এখন কাজ করা উচিত।