Examinar as modificações do arquivo no ssh no Linux

2

Eu queria monitorar todas as modificações feitas no arquivo no servidor Linux

Em algumas pesquisas, encontrei a ferramenta de auditoria que instalei e configurei usando os seguintes comandos

yum install audit # installation
/etc/init.d/auditd start # started service
auditctl -w /root/file-name -p war -k password-file # configured rule to audit file 
ausearch -f /root/file-name # Command to search modifications

Registrou todas as modificações feitas no arquivo específico

Tudo foi bom até eu me deparar com o seguinte

Caso 1: eu excluí o arquivo que estou monitorando usando a auditoria do servidor usando o seguinte comando

rm -rf /root/file-name

Foi gravado da seguinte forma type=SYSCALL msg=audit(1540222267.321:1057): arch=c000003e syscall=2 success=yes exit=3 a0=7ffe22abf91a a1=941 a2=1b6 a3=7ffe22abed70 items=2 ppid=21053 pid=42458 auid=14628 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=5 comm="touch" exe="/bin/rm" key="password-file"

Caso 2: eu excluí o arquivo de um servidor remoto usando o seguinte comando

ssh cl14470 "echo 'rm -rf /root/chaithu'|sudo su - root"

Foi gravado da seguinte forma type=SYSCALL msg=audit(1540222588.196:1118): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=ce70c0 a2=0 a3=7fff52a6af40 items=2 ppid=42520 pid=42533 auid=14628 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=9 comm="rm" exe="/bin/rm" key="password-file"

Agora o ponto que me confunde é porque tty é registrado como nenhum quando eu executei o comando remotamente

Eu pesquisei na Web sobre isso, mas infelizmente não consegui encontrar nada que eliminasse minha confusão

Alguém poderia me explicar por que foi registrado como tty = (nenhum) no caso 2

    
por chaitanya gudur 22.10.2018 / 20:18

1 resposta

6

Porque é assim que o comando foi executado - sem qualquer controle tty.

Você não transmitiu nenhuma opção -t para ssh e ssh não aloca um pseudo-terminal por padrão quando é chamado com argumentos, como no seu caso. ( ssh cl14470 "echo ..." ).

Este é o comportamento padrão, conforme descrito no ssh(1) manpage:

When the user's identity has been accepted by the server, the server either executes the given command in a non-interactive session or, if no command has been specified, logs into the machine and gives the user a normal shell as an interactive session. All communication with the remote command or shell will be automatically encrypted.

If an interactive session is requested ssh by default will only request a pseudo-terminal (pty) for interactive sessions when the client has one. The flags -T and -t can be used to override this behaviour.

Portanto, ssh só alocará um pseudo-terminal na máquina remota por padrão se a) for executado sem argumento (s) de 'comando' < strong> eb) o stdin do cliente ssh na máquina local é um tty.

A opção -t está forçando ssh a alocar uma pseudo-tty e a opção -T está forçando-a a não alocar uma, independentemente de outros fatores.

    
por 22.10.2018 / 20:54