휴대폰이나 노트북과 같은 원격 시스템에 연결하고 명령을 실행하기 위해 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
하고 .INFO
VERBOSE
그런 다음 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