vsftpd: 500 OOPS: prctl PR_SET_SECCOMP ล้มเหลว


8

vsftpdฉันมีปัญหากับ เมื่อฉันเชื่อมต่อกับเซิร์ฟเวอร์ FTP ของฉันผ่าน FileZilla ฉันได้รับข้อผิดพลาด:

500 OOPS: prctl PR_SET_SECCOMP ล้มเหลว
ข้อผิดพลาด: ข้อผิดพลาดที่สำคัญข้อผิด
พลาด: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์

ฉันพยายามเชื่อมต่อผ่านตัวจัดการไฟล์ของฉันด้วยและดูเหมือนจะไม่ทำงาน ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์อื่นของฉันทั้งหมดโดยไม่มีปัญหาดังนั้นฉันมั่นใจว่าเป็นปัญหาที่เกี่ยวข้องกับเซิร์ฟเวอร์

ฉันใช้ Ubuntu 14.04 ใน VPSDime VPS รุ่น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 (ตั้งแต่ Linux 2.6.23)

ตั้งค่าโหมด secure computing (seccomp) สำหรับเธรดการโทรเพื่อ จำกัด การโทรของระบบที่พร้อมใช้งาน โหมด seccomp arg2ถูกเลือกผ่าน (ค่าคงที่ seccomp ถูกกำหนดไว้<linux/seccomp.h>

...

ด้วยการarg2ตั้งค่าเป็นSECCOMP_MODE_FILTER(ตั้งแต่ Linux 3.5) การเรียกใช้ระบบที่อนุญาตถูกกำหนดโดยตัวชี้ไปยัง Berkeley Packet Filter ที่ส่งผ่านใน arg3 อาร์กิวเมนต์นี้เป็นตัวชี้ไปที่struct sock_fprog; มันสามารถออกแบบมาเพื่อกรองการโทรของระบบโดยพลการและข้อโต้แย้งการโทรของระบบ โหมดนี้จะใช้ได้เฉพาะเมื่อเคอร์เนลถูกกำหนดค่าด้วยการCONFIG_SECCOMP_FILTERเปิดใช้งาน


เป็นวิธีแก้ปัญหาที่น่าสงสารคุณสามารถกำหนดค่า vsftpd ไม่ได้เปิดใช้งานโหมด seccomp

ใช้ตัวเลือกในseccomp_sandbox=novsftpd.conf

ดูเหมือนว่าตัวเลือกจะไม่ถูกทำเป็นเอกสาร


ขอบคุณที่ใช้งานได้ คุณรู้หรือไม่ว่าอาจมีภาวะแทรกซ้อนจากการทำเช่นนี้? seccomp คืออะไร
Xweque


2
ขอบคุณมันใช้ได้สำหรับฉันด้วย ฉันสงสัยว่าทำไมฉันถึงมีปัญหาแบบนี้อย่างน่าเบื่อ ฉันใช้เซิร์ฟเวอร์เสมือน OVH กับ Ubuntu 14.04 และเคอร์เนล 2.6.32
Miguel El Merendero

ฉันมีปัญหาเดียวกันทุกประการ config เดียวกันกับ @MiguelElMerendero และแก้ไขได้ ขอบคุณมาก!
Bigood

0

สาเหตุที่ทำให้เกิดข้อผิดพลาดจาก vfstpd นี้เกิดขึ้นในเมล็ด Linux บางตัว (โดยเฉพาะอย่างยิ่ง RHEL / Centos 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 ส่งคืนเป็นการวัดความปลอดภัยที่ออกแบบมาเพื่อป้องกันการเข้าถึงรูทแบบเขียนได้สำหรับผู้ใช้ FTP โดยค่าเริ่มต้น เพื่อแก้ไขปัญหานี้มีสองตัวเลือกหลัก

การอนุญาตให้ผู้ใช้ root เข้าถึงได้

วิธีที่ง่ายที่สุดคือการแก้ไขไฟล์ /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.