PowerScale OneFS: Erro recebido após o upgrade "500 OOPS: Vsftpd: Recusa-se a executar com raiz gravável dentro do chroot"
Summary: Após um upgrade ou patch, quando o usuário do FTP se conecta a um servidor FTP do PowerScale, ele falha com a mensagem de erro "500 OOPS: Vsftpd: Recusando-se a correr com raiz gravável dentro de chroot()." ...
Symptoms
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Cause
O problema ocorre após o upgrade do OneFS para uma versão que contenha upgrade vsftpd:
- 8.2.2_GA-RUP_2023-06 e posterior
- 9.1.0.29 e posterior
- 9.2.1.23 e posteriores
- 9.4.0.14 e posterior
- 9.5.0.4 e posterior
- 9.6.0.0 e posterior
Por exemplo, o vsftpd O pkg é atualizado a partir de vsftpd-ssl-2.3.4vsftpd-ssl-3.0.5.
Mais detalhes estão no vsftpd home page oficial no https://security.appspot.com/vsftpd/Changelog.txt
- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life. - Add new config setting "allow_writeable_chroot" to help people in a bit of a spot with the v2.3.5 defensive change. Only applies to non-anonymous.
O problema é que o diretório raiz do usuário FTP é gravável. O comando chroot O limite é usado, o que não é permitido na atualização recente. O comando chroot O diretório no qual os usuários estão bloqueados não deve ser gravável.
Resolution
Há duas opções para resolver esse problema:
- Opção 1: Remova as permissões de gravação no diretório raiz do usuário.
chroot diretório:
#chmod a-w /home/user
- Opção 2: Contorne as verificações mais fortes adicionando as definições de configuração abaixo ao
vsftpdArquivo de configuração global ou arquivo de configuração de usuário individual:
allow_writeable_chroot=YES
No cluster do OneFS, é recomendável fazer uma cópia do
vsftpd Configuração para /ifs/data/Isilon_Support/. Por exemplo:
# cp -av /etc/mcp/templates/vsftpd.conf /ifs/data/Isilon_Support/vsftpd.conf.bakEm seguida, usando o editor do VI, adicione a seguinte linha a
/etc/mcp/templates/vsftpd.conf "
allow_writeable_chroot=YES"
Outra opção em vez de usar o editor VI é usar o comando echo para acrescentar uma linha ao mesmo arquivo:
# echo "allow_writeable_chroot=YES" >> /etc/mcp/templates/vsftpd.conf
Aguarde alguns segundos e, em seguida, verifique se o arquivo foi atualizado para todos os nós e se a soma de verificação do arquivo md5 é consistente.
# isi_for_array -s md5 /etc/mcp/templates/vsftpd.conf
Aqui está uma reprodução rápida do problema e as etapas para corrigi-lo:
-
Faça log-in em um cluster do PowerScale executando o OneFS 9.4.0.14. Abaixo está o diretório base do usuário FTP:
test2-fxq5rm3-1# ls -ld /ifs/home/warmsvcisiftp
drwx------ 2 warmsvcisiftp Isilon Users 264 Jun 13 02:50 /ifs/home/warmsvcisiftp
-
O login do usuário FTP apresenta falha com a mensagem de erro:
test2-fxq5rm3-1# ftp localhost
Trying 127.0.0.1:21 ...
Connected to localhost.
220-PowerScale OneFS 9.4.0.14
220
Name (localhost:root): warmsvcisiftp
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
ftp: Login failed
ftp>
-
There are two options to address this issue depending on your workflow and concerns:
- Opção 1: Remova as permissões de gravação do diretório raiz do usuário:
test2-fxq5rm3-1# chmod a-w /ifs/home/warmsvcisiftp
test2-fxq5rm3-1# ls -ld /ifs/home/warmsvcisiftp
dr-x------ 2 warmsvcisiftp Isilon Users 264 Jun 13 02:50 /ifs/home/warmsvcisiftp
test2-fxq5rm3-1# ftp localhost
Trying 127.0.0.1:21 ...
Connected to localhost.
220-PowerScale OneFS 9.4.0.14
220
Name (localhost:root): warmsvcisiftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bye
221 Goodbye.
- Opção 2: Contorne a verificação de segurança:
test2-fxq5rm3-1# chmod u+w /ifs/home/warmsvcisiftp
test2-fxq5rm3-1# ls -ld /ifs/home/warmsvcisiftp
drwx------ 2 warmsvcisiftp Isilon Users 264 Jun 13 02:50 /ifs/home/warmsvcisiftp
test2-fxq5rm3-1# echo "allow_writeable_chroot=YES" >> /etc/mcp/templates/vsftpd.conf
test2-fxq5rm3-1# isi_for_array -s md5 /etc/mcp/templates/vsftpd.conf
test2-fxq5rm3-1: MD5 (/etc/mcp/templates/vsftpd.conf) = 4920beaff65c3bfa09bd18582c2fbcf8
test2-fxq5rm3-2: MD5 (/etc/mcp/templates/vsftpd.conf) = 4920beaff65c3bfa09bd18582c2fbcf8
test2-fxq5rm3-3: MD5 (/etc/mcp/templates/vsftpd.conf) = 4920beaff65c3bfa09bd18582c2fbcf8
test2-fxq5rm3-1# ftp localhost
Trying 127.0.0.1:21 ...
Connected to localhost.
220-PowerScale OneFS 9.4.0.14
220
Name (localhost:root): warmsvcisiftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bye
221 Goodbye.