Adiciona entrada personalizada em 'last' / 'lastlogin'

0

Estou usando um pacote chamado sslh que desmultiplexa vários protocolos da porta 443 para ssh, https e openvpn. Porque eu não posso usar transparência por várias razões, mas eu quero registrar os ip's que fizeram o login.

Eu fiz este script que recupera o ip da sessão atual do usuário:

#!/bin/bash
port=$(lsof -P -p $(ps --no-headers -fp $$ | awk '{print $3}') | grep ESTABLISHED | awk '{print $9}' | sed 's/.*:.*://g')
pid=$(lsof -P -p $(pidof sslh | sed 's/ / -p /g') -n | grep ESTABLISHED | awk '{print $2 " " $9}' | grep '127.0.0.1' | grep "\:${port}->" | awk '{print $1}')
ip=$(lsof -P -n -p $pid | grep ESTABLISHED | grep -v "127.0.0.1" | awk '{print $9}' | sed 's/.*->//g' | sed 's/:.*//g')

# what now? what to do with ${ip} ?

Agora, sempre que um usuário faz login, eu corro o script e ele vê:

Last login: Thu Feb 1 23:15:38 2018 from 127.0.0.1

Isso está certo porque preciso modificar 127.0.0.1 para ${ip} .

Como posso fazer isso? Por isso, será exibido, por exemplo, se a sessão anterior ${ip} for igual a 11.22.33.44 :

Last login: Thu Feb 1 23:15:38 2018 from 11.22.33.44

    
por Gizmo 01.02.2018 / 23:57

0 respostas