vsftpd: 500 OOPS: prctl PR_SET_SECCOMP ব্যর্থ হয়েছে


8

আমি একটি সমস্যা আছে vsftpd। আমি যখন ফাইলজিলার মাধ্যমে আমার এফটিপি সার্ভারের সাথে সংযোগ করি তখন ত্রুটিটি পাই:

500 OOPS: prctl PR_SET_SECCOMP ব্যর্থ হয়েছে
ত্রুটি: গুরুতর ত্রুটি
ত্রুটি: সার্ভারের সাথে সংযোগ করতে পারেনি

আমি আমার ফাইল ম্যানেজারের মাধ্যমেও সংযোগ দেওয়ার চেষ্টা করেছি এবং এটি কার্যকর বলে মনে হচ্ছে না। আমি কোনও সমস্যা ছাড়াই আমার অন্যান্য সমস্ত সার্ভারের সাথে সংযোগ করতে পারি তাই আমি নিশ্চিত যে এটি একটি সার্ভার সম্পর্কিত সমস্যা।

আমি একটি ভিপিএসডাইম ভিপিএসে উবুন্টু 14.04 চালাচ্ছি। vsftpdসংস্করণ 3.0.2। আপডেট বা কনফিগারেশনের পরিবর্তনের পরে ত্রুটিটি ঘটেনি তবে আমি যখন কোনও ওয়েবসাইটে কাজ করছিলাম তখন ত্রুটিটি শুরু হয়েছিল; আমার ত্রুটি হওয়ার আগে এটি ঠিকঠাক কাজ করছিল।

আমি vsftpdআমার সিস্টেমটি পুনরায় চালু করেছি, পুনরায় চালু করেছি এবং আপডেট করেছি। কোন ধারনা?

উত্তর:


17

বার্তাটি ইঙ্গিত দেয় যে prctl(PR_SET_SECCOMP, ...)কলটি ব্যর্থ হয়েছে।

ret = prctl(PR_SET_SECCOMP, 2, &prog, 0, 0);
if (ret != 0)
{
  die("prctl PR_SET_SECCOMP failed");
}

এটি ঘটতে পারে যখন আপনার কার্নেলটি CONFIG_SECCOMP_FILTERসক্ষম না করে থাকে । আপনি "ওয়েবসাইটে কাজ করার সময়" তবে এটি খুব কমই বদলে যেতে পারে।

prctlম্যান পৃষ্ঠা থেকে উদ্ধৃতি :

PR_SET_SECCOMP (লিনাক্স ২..2.২৩ থেকে)

উপলব্ধ সিস্টেম কলগুলিকে সীমাবদ্ধ করতে কলিং থ্রেডের জন্য সুরক্ষিত কম্পিউটিং (সেকম্পম্প) মোড সেট করুন। এর মাধ্যমে সেকম্পম্প মোড নির্বাচন করা হয়েছে arg2। (সেকম্পম্প ধ্রুবকগুলি এখানে সংজ্ঞায়িত করা হয়<linux/seccomp.h>

...

(লিনাক্স 3.5.৩ থেকে) arg2সেট করার সাথে সাথে SECCOMP_MODE_FILTERঅনুমোদিত কল কলগুলি একটি পয়েন্টার দ্বারা সংজ্ঞায়িত করা হয় বার্কলে প্যাকেট ফিল্টারটিতে আরজি 3-এ উত্তীর্ণ হয়। এই যুক্তি একটি পয়েন্টার struct sock_fprog; এটি স্বেচ্ছাসেবী সিস্টেম কল এবং সিস্টেম কল আর্গুমেন্টগুলি ফিল্টার করার জন্য ডিজাইন করা যেতে পারে। এই মোডটি কেবল তখনই উপলভ্য হয় যখন কার্নেল CONFIG_SECCOMP_FILTERসক্ষম করার সাথে কনফিগার করা থাকে ।


দুর্বল কাজের হিসাবে, আপনি সেকম্পম্প মোডটি সক্ষম না করার জন্য vsftpd কনফিগার করতে পারেন ।

seccomp_sandbox=noবিকল্পটি ব্যবহার করুন vsftpd.conf

বিকল্পটি নথিভুক্ত বলে মনে হচ্ছে না।


ধন্যবাদ যে কাজ করেছে। আপনি কি জানেন যে এটি করতে কোনও সমস্যা হতে পারে কিনা? সেকম্পম্প কী?
Xweque


2
ধন্যবাদ, এটি আমার জন্যও কাজ করেছিল। আমি ভাবছি কেন আমার এ ধরণের সমস্যা আছে? আমি উবুন্টু 14.04 এবং কার্নেল ২.6.৩২ সহ একটি ওভিএইচ ভার্চুয়ালাইজড সার্ভার ব্যবহার করছি।
মিগুয়েল এল মেরেনেন্ডো

আমার ঠিক একই সমস্যা ছিল, @ মিগুয়েলএলমিরেন্ডোরোর চেয়ে একই কনফিগারেশন এবং এটি এটিকে সমাধান করেছে। অনেক ধন্যবাদ!
বিগুড

0

ভিএফএসপিপিডি থেকে এই ত্রুটিটি কেন কিছু লিনাক্স কার্নেলগুলিতে দেখা যায় (বিশেষত আরএইচইএল / সেন্টোস x.০ থেকে .5.৫ এর পরে) ভার্ফ্টপিডি সূত্রে নিম্নলিখিত অনুমান,

https://github.com/dagwieers/vsftpd/blob/master/seccompsandbox.c#L642


  ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0);
  if (ret != 0)
  {
    if (errno == EINVAL)
    {
      /* Kernel isn't good enough. */
      return;
    }
    die("prctl PR_SET_NO_NEW_PRIVS");
  }

  if (!tunable_seccomp_sandbox)
  {
    return;
  }
[ ... ]
  ret = prctl(PR_SET_SECCOMP, 2, &prog, 0, 0);
  if (ret != 0)
  {
    die("prctl PR_SET_SECCOMP failed");
}

With https://rhn.redhat.com/errata/RHSA-2015-0864.html Redhat added:

Note: the fix for this issue is the kernel part of the overall fix, and introduces the PR_SET_NO_NEW_PRIVS functionality and the related SELinux exec transitions support.

This breaks vsftpd's assumption above that any kernel which supports PR_SET_NO_NEW_PRIVS also supports PR_SET_SECCOMP mode 2.

vsftpd silently ignores the EINVAL from the first prctl() but fails with the shown error message on the second.

The configuration parameter Martin Prikryl mentioned above is merely making it exit cleanly just after the (now-successful) first prctl(), পুরানো কার্নেলের আগে / এ থাকা অবস্থায়, এই কলটিতে এটি পরিষ্কার / নিঃশব্দে উপস্থিত হয়েছিল।


0
Response:    500 OOPS: vsftpd: refusing to run with writable root inside chroot()

"500 OOPS" ত্রুটি vsftpd রিটার্ন হ'ল একটি সুরক্ষা পরিমাপ যা ডিফল্টরূপে FTP ব্যবহারকারীদের জন্য লিখিতযোগ্য রুট অ্যাক্সেস রোধ করতে ডিজাইন করা হয়েছিল। এই সমস্যাটি সমাধান করার জন্য দুটি প্রধান বিকল্প উপলব্ধ।

লিখনযোগ্য ব্যবহারকারী-রুট অ্যাক্সেসের অনুমতি দিচ্ছে

সবচেয়ে সহজ পদ্ধতিটি হ'ল /etc/vsftpd.conf ফাইলটি আবার পরিবর্তন করতে হবে এবং একটি নির্দিষ্ট সেটিংস সক্ষম করতে হবে:

nano /etc/vsftpd.conf

ফাইলটি সম্পাদনা করুন যাতে এটি নিম্নলিখিতগুলির সাথে সাদৃশ্যপূর্ণ:

# Allow users to write to their root directory
allow_writeable_chroot=YES

https://uk.godaddy.com/help/how-to-set-up-an-ftp-server-on-ubuntu-1404-12301

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