vsftpd:500 OOPS:prctl PR_SET_SECCOMPが失敗しました


8

に問題がありvsftpdます。FileZilla経由でFTPサーバーに接続すると、エラーが発生します。

500 OOPS:prctl PR_SET_SECCOMP failed
エラー:重大なエラー
エラー:サーバーに接続できませんでした

私もファイルマネージャー経由で接続しようとしましたが、機能していないようです。他のすべてのサーバーに問題なく接続できるので、サーバーに関連する問題であると確信しています。

Ubuntu 14.04をVPSDime VPSで実行しています。vsftpdバージョン3.0.2。エラーは更新または構成の変更後に発生しませんでしたが、Webサイトで作業していたときにエラーが発生し始めました。エラーが発生する前に問題なく動作していました。

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有効になっていないときに発生する可能性があります。しかし、「ウェブサイトで作業」している間、それはほとんど変わりません。

prctlmanページからの引用:

PR_SET_SECCOMP(Linux 2.6.23以降)

呼び出しスレッドにセキュアコンピューティング(seccomp)モードを設定して、使用可能なシステムコールを制限します。seccompモードはを介して選択されarg2ます。(seccomp定数は、<linux/seccomp.h>

...

arg2セットにSECCOMP_MODE_FILTER許可する(Linux 3.5以降)システムコールは、ARG3で渡さバークレーパケットフィルタへのポインタによって定義されています。この引数はへのポインタstruct sock_fprogです。任意のシステムコールとシステムコール引数をフィルタリングするように設計できます。このモードは、カーネルがCONFIG_SECCOMP_FILTER有効に設定されている場合にのみ使用できます。


不十分な回避策として、seccompモードを有効にしないようにvsftpdを構成できます。

seccomp_sandbox=noオプションを使用しますvsftpd.conf

オプションは文書化されていないようです。


うまくいきました。これを行うことで何か複雑なことがあるかどうか知っていますか?seccompとは何ですか?
Xweque 2015


2
ありがとう、私にとってもうまくいきました。どうして突然このような問題が発生したのかしら。Ubuntu 14.04とカーネル2.6.32でOVH仮想サーバーを使用しています。
ミゲルエルメレンデロ2015

@MiguelElMerenderoとまったく同じ問題、同じ設定があり、それで解決しました。どうもありがとう!
Bigood、2015

0

一部のLinuxカーネル(特に6.5以降のRHEL / Centos 6.x)でvfstpdからのこのエラーが発生する理由は、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ユーザーが書き込み可能なルートアクセスをできないように設計されたセキュリティ対策です。この問題を解決するには、2つの主なオプションがあります。

書き込み可能なユーザールートアクセスの許可

最も簡単な方法は、/ etc / vsftpd.confファイルをもう一度変更して、特定の設定を1つ有効にすることです。

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.