SSH "마지막 로그인"메시지는 어떻게 편집합니까?


16

오늘 Last login:의 메시지와 함께 인쇄 되는 정보 를 편집하고 싶지만 생성하고 반향하는 스크립트를 찾을 수 없습니다.

편집하기 쉬운 쉘 스크립트에서 정의되었거나 바이너리로 닫혀있는 위치는 어디입니까?


이것은 ServerFault 와 다릅니다 . ssh를 시작할 때 환영 메시지를 편집하려면 어떻게해야합니까? . "마지막 로그인"정보는 inside에서 인쇄 되지/etc/update-motd.d/ 않지만 대신 PrintLastLog플래그 를 설정하여 정의 되므로 메시지의 다른 부분과 같이 편집 할 수 없습니다.


이 정보는 파일 utmpwtmp파일에 저장됩니다 (배포, 체크인 /var/run/utmp또는 디렉토리 /var/log/utmp찾아보기에 따라 다름 /var). 이러한 파일은 텍스트로 저장되지 않지만 이진 파일로 저장되므로 파일을 편집하려면 특별한 도구가 필요합니다. utmp 파일은 각 사용자의 현재 로그인 상태를 추적합니다. wtmp 파일은 모든 로그인 및 로그 아웃 기록을 기록합니다. 편집하려면 특별한 도구가 필요하지만 실제로는 아무것도 찾을 수 없습니다.
phoops

답변:


14

인쇄 된 줄의 형식이 다음과 같이 컴파일 된 것처럼 보입니다 sshd.

[me@risby ~]$ ssh lory
Last login: Fri May 23 10:59:01 2014 from 2a01:2c0:e:300:7271:bcff:feac:445a
[me@lory ~]$ strings /usr/sbin/sshd | grep -i "last login"
Last login: %s
Last login: %s from %s

그 중 하나를 변경하기위한 구성 옵션을 볼 수 없으므로 소스를 편집하고 다시 컴파일해야합니다.

편집 : 제한적인 경우 http://www.openssh.org 에서 소스를 찾을 수 있습니다 . 그러나 OpenSSH 또는 플랫폼에 대해 사용하고 있다고 말하지 않으므로 더 구체적으로 설명하기가 어렵습니다. 리눅스 시스템이라면 일반적인 방법으로 배포판에 적합한 소스를 얻고 배포 판별 메커니즘을 통해 다시 컴파일하는 것이 훨씬 좋습니다.

하지만 실제로는, 당신은이 작업을 수행해서는 안 모두에서 당신은 유지하고 있어요 : 당신이 그렇게 할 매우 - 강력한 비즈니스 이유가없는 한 악몽 , 자신을 위해 보안에 민감한 패키지의 손으로 컴파일 된 버전으로 이동합니다.


소스 코드는 어디 sshd에서 찾을 수 있습니까?
IQAndreas

1
사실, 나는 소스와 함께 다른 것을 계획하고있었습니다. 나는 그들이 데이터를 분석하는 방법을보고 플래그를로 wtmp설정하고에 자신의 스크립트를 사용하여 "마지막 로그인"통지를 다시 작성하려고했습니다 . 유지 보수가 훨씬 쉽습니다. :)PrintLastLognoupdate-motd.d
IQAndreas 10

1
motd출력이 완전히 최신 상태가 아닌 경우가 자주 있습니다. 따라서 update-motd모든 로그인에서 실행되지 않을 수도 있습니다.
kasperd

@kasperd 크론 작업으로 10 분마다 업데이트됩니다. 이것은 인터넷에서 문자열을 검색하는 것과 같이 "느린"작업을 시도 할 경우에 도움이되므로 누군가 로그인 할 때마다 서버 속도가 느려지지 않습니다.
IQAndreas

3
"마지막 로그인"메시지는 사용자마다 다르며 motd 는 시스템 전체입니다. 메시지를 어떻게 다시 만들지 잘 모르겠습니다. 또한이 메시지를 실제로 읽고 가능한 한 정확하기를 원하는 사람들이 있습니다.
사이먼 리히터

5

마지막 로그인 정보는 이진 파일에 저장 /var/log/wtmp되거나 /var/log/utmp이진 파일입니다. sshd의 소스 코드를 보지 않으면 완전히 확신 할 수는 없지만 적절한 시스템 호출을 사용하여 해당 파일에서 정보를 검색 할 것으로 기대합니다

이 정보를 사용자 보안의 모든 부분 이후에 쉽게 변경할 수있는 방법을 찾지 못할 것 같습니다.


gory 세부 사항을 정말로 원한다면 다음에서 login_get_lastlog찾을 수있는 함수의 소스 코드를 봐야합니다 .loginrec.c


소스 코드 제안으로 인해 @lain +1-비록 그것이 까다로운 해결책이라고 생각하지는 않지만, 그가 필요로하는 것은 로컬 자식 미러입니다. 소스를 사용하는 Imho는 sysadms조차도 악마가 아닙니다.
peterh-Reinstate Monica

2

다른 해결책은 다음과 같이 motd 파일의 시작 부분에서 화면을 지우는 것입니다.

^[[H^[[2J
whatever was originally in the motd file here

참고 : 교체 ^[이스케이프 기호 (다음 키를 눌러 나노 편집기에서 생성 할 수 있습니다 : esc+ v+ esc)


-2

마지막 로그인 IP를 변경하려는 경우 일부 해결 방법이 있습니까?

예를 들어, 원격 제어 시스템에서 ssh에 다시 로그인하여 표시된 IP 주소를 "localhost"로 변경할 수 있습니다!

ssh >> ssh username @ localhost 를 통한 원격 로그인

마지막으로 기록 된 IP는 localhost입니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.