Maneira apropriada de jail user assim shell não fecha imediatamente

0

Tentando usar o jailkit no Centos7. Eu instalei por fonte e também usei o RPM no link e obtive os mesmos resultados. Estou seguindo principalmente o link , no entanto, também observei muitos outros documentos.

Etapa 1: criando a cadeia. Devo também incluir jk_lsh ? Mais sobre isso depois. Além disso, não é grande coisa, mas você recomenda usar a opção -k para criar links em vez de copiá-los? Note que vários arquivos não existiam.

[root@mybox ~]# jk_init -v -j /home/jail basicshell editors extendedshell netutils ssh sftp scp | grep 'do not exist'
Source file(s) /lib/libnsl.so.1 do not exist
Source file(s) /lib/libnss*.so.2 do not exist
Source file(s) /etc/bash.bashrc do not exist
Source file(s) /usr/lib/locale/en_US.utf8 do not exist
Source file(s) /etc/vimrc do not exist
Source file(s) /etc/joe do not exist
Source file(s) /etc/bash.bashrc do not exist
Source file(s) /usr/lib/locale/en_US.utf8 do not exist
Source file(s) /usr/share/mc do not exist
Source file(s) /etc/vimrc do not exist
Source file(s) /etc/joe do not exist
Source file(s) /lib/libnss_dns.so.2 do not exist
Source file(s) /usr/lib/sftp-server do not exist
Source file(s) /usr/lib/misc/sftp-server do not exist
Source file(s) /usr/libexec/sftp-server do not exist
Source file(s) /usr/lib/openssh/sftp-server do not exist
Source file(s) /usr/lib/sftp-server do not exist
Source file(s) /usr/lib/misc/sftp-server do not exist
Source file(s) /usr/libexec/sftp-server do not exist
Source file(s) /usr/lib/openssh/sftp-server do not exist
[root@mybox ~]#

Etapa 2: Adicionando usuário à cadeia. Não é possível adicionar um usuário porque /usr/sbin/jk_lsh não foi adicionado. Eu posso adicioná-lo usando jk_init ou especificar o shell para o usuário usando -s /bin/bash (o que parece apropriado, pois mais tarde será necessário alterá-lo). Eu tentei os dois.

[root@mybox ~]# jk_jailuser -m -v -j /home/jail testuser1
invalid shell, /home/jail/usr/sbin/jk_lsh does not exist
enter jail directory: /home/jail
invalid shell, /home/jail/usr/sbin/jk_lsh does not exist
enter jail directory: ^C
aborted..
[root@mybox ~]#
# add jk_lsh and jail users...
[root@mybox ~]# cat /etc/passwd | grep testuser
testuser1:x:1002:1002::/home/jail/./home/testuser1:/usr/sbin/jk_chrootsh
testuser2:x:1003:1003::/home/jail/./home/testuser2:/usr/sbin/jk_chrootsh
[root@mybox ~]# cat /home/jail/etc/passwd
root:x:0:0:root:/root:/bin/bash
testuser1:x:1002:1002::/home/testuser1:/usr/sbin/jk_lsh
testuser2:x:1003:1003::/home/testuser2:/bin/bash
[root@mybox ~]#

Etapa 3: Faça login como novo usuário. Tentando fazer logon como testuser1 ou testuser2, o shell é fechado imediatamente.

[root@mybox ~]# tail -6 /var/log/secure
Sep  7 14:12:24 mybox sshd[2615]: Accepted password for testuser1 from 11.22.333.444 port 62008 ssh2
Sep  7 14:12:24 mybox sshd[2615]: pam_unix(sshd:session): session opened for user testuser1 by (uid=0)
Sep  7 14:12:24 mybox sshd[2615]: pam_unix(sshd:session): session closed for user testuser1
Sep  7 14:12:36 mybox sshd[2623]: Accepted password for testuser2 from 11.22.333.444 port 62009 ssh2
Sep  7 14:12:36 mybox sshd[2623]: pam_unix(sshd:session): session opened for user testuser2 by (uid=0)
Sep  7 14:12:37 mybox sshd[2623]: pam_unix(sshd:session): session closed for user testuser2
[root@mybox ~]#

Minha solução alternativa de Hack: Ao instalar a partir da origem e usando jk_init -k .. , executei jk_cp -v -f -j /home/jail /bin/bash antes de adicionar um usuário, impedindo que o shell fosse fechado imediatamente. Não tenho certeza porque isso é necessário, ou se o sinalizador -k ou a necessidade de fazer a partir da fonte fez a alteração. Independentemente disso, parece que a necessidade de fazer esse passo provavelmente é uma solução ruim.

Problema do último ano: Não é grande coisa, mas também recebe esses erros ao atualizar:

[root@mybox ~]# jk_update -j /home/jail -d
ERROR:  while scannign dir /home/jail/lib/: No such file or directory
ERROR:  while scannign dir /home/jail/opt/: No such file or directory
[root@mybox ~]#

Minha pergunta: Qual é a maneira correta de prender um usuário para que o shell não feche imediatamente?

    
por user1032531 07.09.2017 / 17:03

1 resposta

0

Você pode tentar isso, é fácil de usar.

você pode configurar um usuário para a prisão em apenas 3 etapas.

1. add user to system
2. create a jail with jail-shell command.
3. set user into jail with jail-shell command.

Aqui está a ferramenta: link

OBSERVAÇÃO: eu sou o desenvolvedor dessa ferramenta, então isso é um pouco de autopromoção.

Nick Peng = pymumu

    
por 19.09.2017 / 11:19