SSH 액세스 시도 로깅

SSH 액세스 시도 로깅

휴대폰이나 노트북과 같은 원격 시스템에 연결하고 명령을 실행하기 위해 openssh를 사용하여 우분투 서버를 구성했습니다. 문제는... 아마 이런 사람이 나뿐만이 아닐 것입니다.

서버에 대한 모든 로그인 시도를 알 수 있는 방법이 있습니까?

답변1

Ubuntu 서버에서는 파일에서 누가 언제 어디서 로그인했는지 확인할 수 있습니다 /var/log/auth.log. 거기에서 다음과 같은 항목을 찾을 수 있습니다.

May  1 16:17:02 owl CRON[9019]: pam_unix(cron:session): session closed for user root
May  1 16:17:43 owl sshd[9024]: Accepted publickey for root from 192.168.0.101 port 37384 ssh2
May  1 16:17:43 owl sshd[9024]: pam_unix(sshd:session): session opened for user root by (uid=0)

답변2

Red Hat 기반 배포판(예: Fedora/CentOS/RHEL)에서는 파일에서 로그인한 사용자를 확인할 수 있습니다 /var/log/secure.

더 자세히 알아보려면 다음 슈퍼유저 Q&A를 읽어보세요.SSH 액세스 시도를 어떻게 기록하고 SSH 사용자가 내 서버에서 수행한 작업을 추적합니까?.

답변3

Ubuntu의 기본 구성은 SSH 로그인을 /var/log/auth파일에 기록하는 것이 아닙니다. 이것이 INFO로깅 수준입니다.

로그 파일에 로그인 시도를 포함하려면 /etc/ssh/sshd_config루트로 또는 sudo를 사용하여 파일 을 편집 LogLevel하고 .INFOVERBOSE

그런 다음 sshd 데몬을 다시 시작하십시오.

sudo service rsyslog restart

이후 SSH 로그인 시도가 이 /var/log/auth.log파일에 기록됩니다.

답변4

내 제안은 다음을 사용하는 것입니다.심사. 이것은Linux 커널의 감사 하위 시스템을 사용하여 로깅제 생각에는 진지하게 생각한다면 그렇게 하는 것이 올바른 방법이라고 생각합니다. 귀하가 사용해야 하는 {보안 관련} 질문의 성격을 고려하여폴리아크릴아미드게다가. 기본 수준에는 다음과 같은 항목만 있습니다.심사그리고폴리아크릴아미드설치 후에는 자동으로 모든 성공 및 실패 SSH 시도가 audit.log 파일에 기록되어야 합니다. 따라서 아무것도 구성할 필요가 없습니다.심사그리고폴리아크릴아미드설치하다. 나는 SLES를 직접 알고 있습니다. RHEL 및 기타 항목에 베팅합니다.기업Linux 버전도 유사하게 작동합니다.

http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html

생성된 원시 감사 로그에서심사다음과 같은 것을 사용하여 aureport필터링 할 수 있습니다.심사매뉴얼 페이지에서 텍스트 파서를 작성하거나 VI를 사용하여 키워드를 검색하십시오.

/var/log/audit/audit.log이는 Linux 서버에 SSH로 연결하는 파일에 대한 예외입니다.

node=shark type=CRED_DISP msg=audit(1480622612.317:2211277): user pid=117768 uid=0 auid=23456 ses=2201 msg='op=PAM:setcred acct="ron" exe="/usr/sbin/sshd" (hostname=abc415.mycompany.us, addr=172.16.152.5, terminal=ssh res=success)'
  • 위에서 내 서버 이름은 다음과 같습니다.상어.
  • 이와 같은 많은 줄이 audit.log에 있으며 이 줄이 다음을 기반으로 하길 원합니다.exe="/usr/sbin/sshd"
  • SSH를 통해 연결한 계정의 uid는 auid 값입니다(이 경우 23456).
  • auid와 연결된 사용자 계정의 이름은 acct="ron"으로 지정됩니다.
  • 대부분의 경우 감사 시스템은 연결을 시도하는 시스템의 DNS 호스트 이름을 기록하지만 항상 해당 IP 주소를 가지고 있습니다.
  • 항목 날짜는 시대 시간이므로 이와 같은 방식으로 변환해야 하며 date --date @1480622612.317결과는 Thu Dec 1 15:03:32 EST 2016내 서버에 SSH로 접속할 때입니다.

res=failed이러한 IP 주소와 호스트 이름을 조사하여 시도된 사용자 이름으로 어떤 시스템이 연결을 시도하고 있는지 확인하려는 경우 . 분명히 성공적인 SSH는 시스템에서 무슨 일이 일어나고 있는지 이해하려고 노력할 것입니다. 예를 들어 동료 bob이 매일 같은 책상에 앉아 있습니다. 예를 들어, 오전 2시에 거기에 있었다면 호스트 이름=bobscomputer, IP 주소=192.168.5.5; 어제 Bob의 사용자 이름이 IP 주소 10.10.5.6에서 성공적인 SSH 시도를 한 것을 확인하면 Bob과 함께 조사하는 것이 가장 좋습니다. 다른 사람이 해킹할 수도 있나요? 얼마 지나지 않아 su는 Bob의 계정에서 감사 로그를 가져오려고 시도합니까?

중복된 콘텐츠가 표시되면 res=failed누군가 가 귀하의 루트 계정으로 SSH를 시도하고 auid=0있는 것이며 귀하가 SSHD의 IP 주소를 사용하여 변경하는 경우입니다.acct=root/etc/hosts.deny

관련 정보