사용자가 SSH를 통해 파일을 수정할 때 ausearch를 사용하여 사용자의 IP를 기록하려면 어떻게 해야 합니까?

사용자가 SSH를 통해 파일을 수정할 때 ausearch를 사용하여 사용자의 IP를 기록하려면 어떻게 해야 합니까?

우리 팀은 동일한 루트 비밀번호를 사용하여 개발 서버에 로그인합니다. 별도의 사용자 계정을 설정하지 않았습니다.

이제 파일 변경 사항에 대한 로그를 만들려고 하고 있으며 다른 작성자를 구별하고 싶지만 ausearch는 항상 사용자 이름을 반환합니다(따라서 항상 "루트") name_format=numeric. "루트" 대신 IP 주소.

답변1

참고: 이 질문은 다른 온라인 장소에서도 OP에 의해 질문되었습니다. 이것은 다른 위치에서 내 답변의 편집된 버전입니다. 여러 사용자가 루트로 직접 로그인하는 것이 바람직하지 않다는 점은 이미 여기서 다루었으므로 다시 논의할 필요가 없습니다.

내가 이해하는 바에 따르면, 기록된 각 작업이 수행된 IP 주소를 표시하기 위해 감사 로그를 얻는 방법을 묻는 것입니다. 귀하의 좌절감은 대부분의 감사 라인에 hostname및 필드가 없고 addr대부분 다음과 같은 소수의 감사 라인이 있다는 것입니다.

node=192.168.33.9 type=USER_START msg=audit(1422241281.664:263): pid=5912 uid=0 auid=1001 ses=18 msg='op=PAM:session_open acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/4 [...]

즉, 알 수 없는 값 hostnameaddr값이 있습니다.

Linux 감사 하위 시스템은 해당 항목을 관련 호스트 이름/IP 정보로 자동으로 채우지 않습니다. sshd와 같은 데몬은 어떤 방식으로든 감사에 이를 명시적으로 제공해야 합니다(sshd의 경우 PAM 호출을 통해).

node=192.168.33.9 type=CRED_ACQ msg=audit(1422240837.085:202): pid=5441 uid=0 auid=501 ses=18 msg='op=PAM:setcred acct="ratb" exe="/usr/sbin/sshd" hostname=canton.local addr=192.168.33.36 terminal=ssh res=success'

여러분이 즐겨 사용하는 편집기와 같은 사용자 수준 명령은 여러분이 어디에서 왔는지 상관하지 않기 때문에 전혀 그렇게 하지 않습니다.

ses모든 사람이 동일한 사용자로 직접 로그인하므로 개인 ("세션") 번호를 기록해야 합니다.USER_STARTsshd가 PAM을 통해 내보내는 감사 메시지를 확인한 다음 ses이를시스템콜추적하려는 활동에 대한 메시지. 예를 들어, 이는 위와 동일한 SSH 세션의 감사 추적 echo hi > tmp/testing.txt이므로 동일한 sesID(18)를 공유합니다.

node=192.168.33.9 type=PATH msg=audit(1422241924.835:341): item=1 name="tmp/testing.txt" inode=2631940 dev=08:22 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
node=192.168.33.9 type=PATH msg=audit(1422241924.835:341): item=0 name="tmp/" inode=2621477 dev=08:22 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
node=192.168.33.9 type=CWD msg=audit(1422241924.835:341):  cwd="/root"
node=192.168.33.9 type=SYSCALL msg=audit(1422241924.835:341): arch=c000003e syscall=2 success=yes exit=3 a0=bc62a8 a1=241 a2=1b6 a3=10 items=2 ppid=5913 pid=5921 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts4 ses=18 comm="bash" exe="/bin/bash" key=(null)

관련 정보