পিং আইসিএমপি ওপেন সকেট: ভিজারভারে অপারেশনটির অনুমতি নেই


14

আমি বেশ কয়েকটি ভার্চুয়াল মেশিনের সাহায্যে একটি ভিজার পরিবেশ চালু করছি। একটি একক ভিএম এর নিম্নলিখিত সমস্যা রয়েছে:

$ ping 8.8.8.8
ping: icmp open socket: Operation not permitted

$ ls -l $(which ping)
-rwsr-xr-x 1 root root 30736 2007-01-31 00:10 /bin/ping

$ whoami
root

$ mount
/dev/hdv1 on / type ufs (defaults)
none on /proc type proc (0)
none on /tmp type tmpfs (size=16m,mode=1777)
none on /dev/pts type devpts (gid=5,mode=620)

$ uname -a
Linux v-web1 2.6.27.55-vs2.3.0.36.9 #1 SMP Tue Apr 28 11:35:00 CEST 2015 i686 GNU/Linux

নোট করুন যে হোস্ট মেশিনের পাশাপাশি সেখানে অন্য সমস্ত ভিএম হোস্টেটে, পিং ঠিকঠাক কাজ করে।

আমাকে সাহায্য করার জন্য কারও কি কোন ধারণা আছে?


হয় /bin/pingঅন্য মেশিনে সেট uid? টিসিপি / আইপি সঠিকভাবে এই ভিএম-তে সেট আপ করা আছে? অন্যান্য জিনিস কি ডিএনএস, ট্রেস্রোলেট, এইচটিটিপি এর মতো কাজ করে?
— ডেভিড শোয়ার্জ

2
আপনি কি আইপুটিলস-পিং পুনরায় ইনস্টল করার চেষ্টা করেছিলেন?
— নাবিল বোরেন

অন্য একটি তথ্য দরকারী হতে পারে: এটি একটি উচ্চ উত্পাদনশীল মেশিন যা প্রতি সেকেন্ডে প্রায় 5 থেকে 7 অ্যাক্সেস সহ অ্যাপাচি চালিত হয় - সুতরাং নেটওয়ার্ক কনফিগারেশনটি পরিবর্তন করার কোনও ধারণা নেই। এটি গত রাতে একটি নতুন হার্ডওয়্যারে চলে গেছে এবং তার পর থেকে মুনিন দেখায় যে পিং কাজ করছেন না।
— রেক্সকোগিটানস

উত্তর:


12

টিএল; ডিআর সংস্করণ: পুনরায় ইনস্টল করুন iputils-ping

আমি অনলাইনে দেখেছি যেখানে এটি ব্যবহার করার পরামর্শ দেওয়া হয়েছে

chmod u+s $( which ping );

তবে এটি ব্যবহারকারীর প্রিলোড এবং বন্যাকে পরিবর্তন করার অনুমতি দেবে। যার ফলশ্রুতিতে কোনও ব্যবহারকারী আপনার স্থানীয় মেশিন বা অন্য কোনও মেশিন বা আপনার নেটওয়ার্ককে পরিষেবা অস্বীকার করতে সক্ষম হতে পারে।

@ নাবিল-বুরেনের পরামর্শে আমি চেষ্টা করেছিলাম , পুনরায় ইনস্টল করে iputils-pingযা আমার জন্য সমস্যাটি সমাধান করেছে এবং এসইউডি বিট সেট নেই।

username@server:~$ ls -l $( which ping );
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping

যদি SID বিট সেট করা থাকে তবে এটির মতো দেখাবে

username@server:~$ ls -l $( which ping );
-rwsr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping

আপনি যদি ইতিমধ্যে রুট হন তবে SID রুট বাইনারিগুলি খুব বেশি পরিবর্তন হবে না।
— ফ্যালকন মোমোট

@ ফ্যালকনমোট, আমি সমাধানটি যুক্ত করেছি।
— রেক্সকোটিটানস

ইপিটিলগুলি পুনরায় ইনস্টল করা (তার আগে / পরে একই সংস্করণ) সেন্টোস 7 এ আমার জন্য কাজ করেছিল। এর আগে, গেটক্যাপ / বিন / পিং কোনও দক্ষতা সেট দেখায় নি। পুনরায় ইনস্টল করার পরে, getcap /bin/pingফিরে /bin/ping = cap_net_admin,cap_net_raw+p। এখন প্রশ্ন হ'ল এটি কেন ক্ষমতা হারিয়েছে। rpm --verify iputilsপিং, আরপিং এবং ক্লকডিফ সমস্ত দেখায় যে ক্যাপ সেটিংস পরিবর্তন হয়েছে (পুনরায় ইনস্টলের আগে)।
— জুয়ান

আমার ক্ষেত্রে এটি ডাম্প চিত্র থেকে পুনরুদ্ধারের পরে ফাইলের ক্ষমতা হারিয়ে ফেলেছে। এছাড়াও unix.com/unix- for-advanced-and-expert-users/… দেখুন । সেক্ষেত্রে তারা টার ব্যবহার করত। আমার ক্ষেত্রে, আমি সেই সমস্ত ফাইল বৈশিষ্ট্যগুলি (অ্যাটর্স, ক্ষমতা, অ্যাক্সেস ইত্যাদি) ডাম্প / পুনরুদ্ধার করার আশা করছিলাম। আমি অবাক হয়েছি এটি না, তাই আমি এটি পুনরুত্পাদন করতে পারি কিনা তা আমাকে দেখতে হবে (এবং তারপরে সম্ভবত কোনও বাগ লগ করতে পারেন)।
— জুয়ান

1

সমাধানটি হল হোস্ট মেশিনে কাঁচা সকেটের অনুমতি দেওয়ার জন্য লিনাক্স সিস্টেম ক্যাপাবিলাইটগুলি সেট করা।

যেহেতু এটি খুব ভি সার্ভারের নির্দিষ্ট সমস্যা তাই সমাধানটি হল একটি সিঙ্গল-লাইনের ফাইলটি তৈরি করা /etc/vservers/VMNAME/bcapabilities:

NET_RAW

এবং ভিএম পুনরায় বুট করুন।


1
"এবং আপনি কীভাবে এটি সম্পাদন করবেন?" সম্পূর্ণ উত্তর হিসাবে দরকারী হবে।
— ILMostro_7

4 বছর পরে, আমি আমার কাছে গ্রহণযোগ্য উত্তর পরিবর্তন করেছি, কারণ এটি সত্যই উত্তরটি উত্তর দেয়। এটি ভি-সার্ভার সমস্যা এবং পিং এক্সিকিউটেবলের ফাইল মোডের সাথে কিছুই করার নেই।
— রেক্সকোগিটানস

1

দুঃখিত আমি মন্তব্য করতে পারি না। আমি একটি ন্যূনতম ইনস্টলেশনের মাধ্যমে একটি ওয়ার্কিং সিস্টেমের সংরক্ষণাগার সংগ্রহ করার পরে এই সমস্যাটি আমাকে আঘাত করেছে।

উপরের সমস্ত উত্তর কাজ করে। তবে @ নাবিল বুরেন এবং @ লিংক্স প্রস্তাবিত একটিটি সুরক্ষার পক্ষে অগ্রাধিকারপ্রাপ্ত। @ রেক্সকোজিটানদের মন্তব্যের জবাব দেওয়ার জন্য, আমি এখানে আইপুটিলস-পিং.পোস্টিনস্ট (/ var / lib / dpkg / তথ্য / ...) থেকে উদ্ধৃতি দিচ্ছি

if command -v setcap > /dev/null; then
    if setcap cap_net_raw+ep /bin/ping; then
        chmod u-s /bin/ping
    else
        echo "Setcap failed on /bin/ping, falling back to setuid" >&2
        chmod u+s /bin/ping
    fi
else
    echo "Setcap is not installed, falling back to setuid" >&2
    chmod u+s /bin/ping
fi

যা মূলত iputils-ping কনফিগার করার সময় বলেছে, প্রথমে সেটক্যাপ চেষ্টা করুন তারপরে যদি chmod u + s ব্যবহার করতে ব্যর্থ হয়। এজন্য iputils-ping কাজগুলি পুনরায় ইনস্টল করা।


1
তাই এই কাজ করবে: setcap cap_net_raw + + EP / বিন / পিং
— rlf

এটি আমার মন্তব্য নয়, আমার নিজের প্রশ্নের উত্তর ছিল। কনটেইনার থেকে সমস্যাটি সমাধান করা যায় না, সুতরাং পোস্ট ইনস্টল করা হুক যাই হোক না কেন তা অর্থহীন।
— রেক্সকোটিটানস

প্রকৃতপক্ষে, setcap cap_net_raw+p $(which ping)রুট এটি ঠিক করে দেয়। এই ব্লগ পোস্টে একটি সম্পূর্ণ ব্যাখ্যা আছে: লিনাক্স সক্ষমতা এবং পিং
— mivk
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.