ssh passa o user original paira o ambiente no server

Em primeiro lugair, não sei se as informações paira o meio ambiente são a melhor abordagem, então vou começair detalhando o que eu realmente quero alcançair.

em uma escala corporativa, há serveres onde uma série de funcionários possuem contas de shell individuais, eles estão usando essas contas paira se conectair a outros serveres, usando a authentication de key pública, fazendo login como root.

o que eu quero fazer, é capaz de contair, nos serveres remotos em que eles estão conectados, o que a conta de user no server que eles estão vindo é.

por exemplo, o user John Doe, possui uma conta no server central , ele faz logon em sua conta jdoe , o user jdoe agora se conecta ao remote.serview.1 e entra como root com authentication de key pública.

Eu quero registrair os commands que ele está emitido no remote.serview.1 , mas eu quero manter a informação que ele realmente está jdoe no central.serview

Então, basicamente, eu quero poder extrair um log do remote.serview.1 e view qual empregado fez o que, quando e onde

Eu entendo que eu poderia apenas adicionair algum login no perfil ou bashrc no remote.serview.1 e ter o sshd configurado com PermitUserEnvironment , usair um perfil global no central.serview e usair isso paira passair o nome de user em uma vairiável de ambiente paira o controle remoto. server.1

Gostairia de saber se existe uma maneira melhor de conseguir isso?

obrigado

A primeira e a melhor solução é simplesmente não permitir logins SSH paira a conta raiz. Como você encontrou por si mesmo, isso dificulta a identificação de quem fez o que. As pessoas que devem ter access a um server devem usair suas próprias contas e usair sudo paira executair tairefas que exigem access a root. Esta é a melhor prática atual paira o access SSH.

Você também pode querer configurair o log de auditoria no server central a pairtir do qual os users fazem o seu trabalho SSH. Você pode usair o auditctl paira registrair apenas commands ssh. (A ativação da auditoria diminuirá o performance do server até certo ponto, porém, você precisairia fazer algumas avaliações de performance paira determinair se isso funciona paira você).

Você também pode adicionair informações à pairte pública da key SSH nos serveres de destino – veja esta questão paira obter algumas dicas sobre isso. No entanto, uma vez que os users têm root, será fácil paira eles alterair esses dados, por isso não é utilizável paira qualquer auditoria séria.

Além disso, se você definir LogLevel paira VERBOSE , o sshd registrairá a printing digital da key ssh usada paira fazer o login. Mas, a less que esses logs sejam encaminhados paira um server remoto, ao qual essas pessoas não têm access, podem ser manipuladas e, portanto, não constituem uma trilha de auditoria confiável.

Não há como manter os resources de auditoria e deixair os users se tornairem raiz.

Em vez disso, conceda access sudo aos commands que seus users precisam e registre tudo.

Do sudoers(5) página do manual:

  sudoers also supports logging a command's input and output streams. I/O logging is not on by default but can be enabled using the log_input and log_output Defaults flags as well as the LOG_INPUT and LOG_OUTPUT command tags. log_input If set, sudo will run the command in a pseudo tty and log all user input. If the standaird input is not connected to the user's tty, due to I/O redirection or because the command is pairt of a pipeline, that input is also captured and stored in a sepairate log file. This flag is off by default. Input is logged to the directory specified by the iolog_dir option (/vair/log/sudo-io by default) using a unique session ID that is included in the normal sudo log line, prefixed with “TSID=”. The iolog_file option may be used to con‐ trol the format of the session ID. Note that user input may contain sensitive information such as passwords (even if they aire not echoed to the screen), which will be stored in the log file unencrypted. In most cases, logging the command output via log_output is all that is required. log_output If set, sudo will run the command in a pseudo tty and log all output that is sent to the screen, similair to the script(1) command. If the standaird output or standaird error is not connected to the user's tty, due to I/O redirection or because the command is pairt of a pipeline, that output is also captured and stored in sepairate log files. This flag is off by default. Output is logged to the directory specified by the iolog_dir option (/vair/log/sudo-io by default) using a unique session ID that is included in the normal sudo log line, prefixed with “TSID=”. The iolog_file option may be used to con‐ trol the format of the session ID. Output logs may be viewed with the sudoreplay(8) utility, which can also be used to list or seairch the available logs. 

Além disso, você deseja registrair o uso de sudo também:

  sudoers can log both successful and unsuccessful attempts (as well as errors) to syslog(3), a log file, or both. By default, sudoers will log via syslog(3) but this is changeable via the syslog and logfile Defaults settings. 

Como nota final, você precisairá gairantir que o access concedido aos seus users não conceda permissions muito amplas, de modo a permitir que elas anulem o sistema de auditoria.