vsftpd: 500 OOPS: prctl PR_SET_SECCOMP non riuscito


8

Ho un problema con vsftpd. Quando mi collego al mio server FTP tramite FileZilla ricevo l'errore:

500 OOPS: prctl PR_SET_SECCOMP non riuscito
Errore: errore critico
Errore: impossibile connettersi al server

Ho provato a connettermi anche tramite il mio file manager e non sembra funzionare. Posso connettermi a tutti gli altri miei server senza problemi, quindi sono certo che si tratta di un problema relativo al server.

Eseguo Ubuntu 14.04 su un VPSDime VPS. vsftpdversione 3.0.2. L'errore non si è verificato dopo un aggiornamento o una modifica della configurazione ma l'errore ha iniziato a verificarsi quando stavo lavorando su un sito Web; funzionava bene prima che avessi l'errore.

Ho riavviato, riavviato vsftpde aggiornato il mio sistema. Qualche idea?

Risposte:


17

Il messaggio indica che la prctl(PR_SET_SECCOMP, ...)chiamata non è riuscita.

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

Può succedere quando il kernel non ha CONFIG_SECCOMP_FILTERabilitato. Ma questo non può cambiare mentre "lavori sul sito Web".

Citazione dalla prctlpagina man :

PR_SET_SECCOMP (da Linux 2.6.23)

Impostare la modalità di elaborazione sicura (seccomp) per il thread chiamante, per limitare le chiamate di sistema disponibili. La modalità seccomp è selezionata tramite arg2. (Le costanti seccomp sono definite in<linux/seccomp.h>

...

Con arg2impostato su SECCOMP_MODE_FILTER(da Linux 3.5) le chiamate di sistema consentite sono definite da un puntatore a un filtro pacchetti Berkeley passato in arg3. Questo argomento è un puntatore a struct sock_fprog; può essere progettato per filtrare le chiamate di sistema arbitrarie e gli argomenti delle chiamate di sistema. Questa modalità è disponibile solo se il kernel è configurato con CONFIG_SECCOMP_FILTERabilitato.


Come soluzione alternativa scadente, è possibile configurare vsftpd per non abilitare la modalità seccomp .

Utilizzare l' seccomp_sandbox=noopzione in vsftpd.conf.

L'opzione non sembra essere documentata.


Grazie ha funzionato. Sai se ci possono essere delle complicazioni nel fare questo? Che cos'è seccomp?
Xweque,


2
Grazie, ha funzionato anche per me. Mi chiedo come mai ho questo tipo di problema. Sto usando un server virtualizzato OVH con Ubuntu 14.04 e kernel 2.6.32.
Miguel El Merendero,

Ho avuto esattamente lo stesso problema, la stessa configurazione di @MiguelElMerendero e l'ho risolto. Grazie molto!
Bigood,

0

Il motivo per cui questo errore di vfstpd si verifica in alcuni kernel Linux (in particolare RHEL / Centos 6.x dalla 6.5 in poi) è il seguente presupposto nelle fonti di 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(), mentre prima / sui kernel più vecchi, usciva in modo pulito / silenzioso durante quella chiamata.


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

L'errore "500 OOPS" restituito da vsftpd è una misura di sicurezza progettata per impedire l'accesso root scrivibile per gli utenti FTP per impostazione predefinita. Per risolvere questo problema sono disponibili due opzioni principali.

Consentire l'accesso alla radice dell'utente scrivibile

Il metodo più semplice è modificare nuovamente il file /etc/vsftpd.conf e abilitare un'impostazione particolare:

nano /etc/vsftpd.conf

Modifica il file in modo che sia simile al seguente:

# 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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.