vsftpd: 500 OOPS: prctl PR_SET_SECCOMP विफल


8

मेरे पास एक मुद्दा है vsftpd। जब मैं FileZilla के माध्यम से अपने FTP सर्वर से जुड़ता हूं तो मुझे त्रुटि मिलती है:

500 OOPS: prctl PR_SET_SECCOMP विफल
: त्रुटि गंभीर त्रुटि
: सर्वर से कनेक्ट नहीं हो सका

मैंने अपने फ़ाइल प्रबंधक के माध्यम से भी कनेक्ट करने की कोशिश की है और यह कार्य नहीं करता है। मैं अपने सभी अन्य सर्वरों को बिना किसी समस्या के कनेक्ट कर सकता हूं इसलिए मुझे यकीन है कि यह सर्वर से संबंधित समस्या है।

मैं एक VPSDime VPS पर Ubuntu 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.6.23)

उपलब्ध सिस्टम कॉल को सीमित करने के लिए, कॉलिंग थ्रेड के लिए सुरक्षित कंप्यूटिंग (सेकंड) मोड सेट करें। Seccomp मोड के माध्यम से चुना जाता है arg2। (Seccomp स्थिरांक में परिभाषित किए गए हैं<linux/seccomp.h>

...

arg2सेट के साथ SECCOMP_MODE_FILTER(लिनक्स 3.5 के बाद से) अनुमति दी गई सिस्टम कॉल को एक सूचक द्वारा बर्कले पैकेट फ़िल्टर को आरजी 3 में पारित किया गया है। यह तर्क एक सूचक है struct sock_fprog; यह मनमाने ढंग से सिस्टम कॉल और सिस्टम कॉल तर्क को फ़िल्टर करने के लिए डिज़ाइन किया जा सकता है। यह मोड तभी उपलब्ध होता है जब कर्नेल को CONFIG_SECCOMP_FILTERसक्षम के साथ कॉन्फ़िगर किया गया हो ।


खराब वर्कअराउंड के रूप में, आप vsftpd को कॉन्फ़िगर करने के लिए seccomp मोड को सक्षम नहीं कर सकते हैं ।

में seccomp_sandbox=noविकल्प का उपयोग करें vsftpd.conf

विकल्प का दस्तावेजीकरण प्रतीत नहीं होता है।


धन्यवाद कि काम किया। क्या आप जानते हैं कि ऐसा करने से कोई जटिलता हो सकती है? Seccomp क्या है?
Xweque


2
धन्यवाद, यह मेरे लिए भी काम किया। मुझे आश्चर्य है कि मुझे अचानक इस तरह की समस्या क्यों है। मैं Ubuntu 14.04 और कर्नेल 2.6.32 के साथ एक OVH वर्चुअलाइज्ड सर्वर का उपयोग कर रहा हूं।
मिगुएल एल मेरेंडरो

मुझे वास्तव में एक ही समस्या थी, @MiguelElMerendero की तुलना में समान कॉन्फिगर, और इसने इसे हल किया। बहुत धन्यवाद!
बिग्रेड

0

Vfstpd से यह त्रुटि कुछ लिनक्स कर्नेल में होती है (सबसे उल्लेखनीय आरएचईएल / सेंटोस 6.x इसके बाद 6.5 से) vsftpd के स्रोतों में निम्नलिखित धारणा है।

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 रिटर्न डिफ़ॉल्ट रूप से एफ़टीपी उपयोगकर्ताओं के लिए उपयुक्त रूट एक्सेस को रोकने के लिए डिज़ाइन किया गया सुरक्षा उपाय है। इस समस्या को हल करने के लिए दो मुख्य विकल्प उपलब्ध हैं।

अनुमति देने योग्य उपयोगकर्ता-रूट पहुँच

सरलतम विधि /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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.