如何在 Gitlab 中找出给定推送事件的 IP 地址

How to find out IP address of a given push event in Gitlab

在 Gitlab 中冒充其他用户非常容易。有关详细信息,请参阅 this topic

可以通过检查存储库的 "Activity" 日志来找出哪个用户执行了推送。但出于审计目的,我还想知道完成推送的 IP 地址。在 Gitlab 中可以吗 CE/EE?

您应该可以从 production.log 文件中找到 IP 地址。

通过 HTTP(S) 完成的推送

可以查看nginx的访问日志(nginx/gitlab_access.log):

192.168.21.150 - johndoe [19/Dec/2016:08:05:58 +0100] "POST /TEST/test.git/git-receive-pack HTTP/1.1" 200 52 "-" "git/2.9.2.windows.1

通过 SSH 完成推送

您可以检查 gitlab-shell 日志 (gitlab-shell/gitlab-shell.log)。这样你就可以找到推送的时间:

I, [2016-12-19T07:34:08.173561 #3560] INFO -- : gitlab-shell: executing git command for user with key key-417.

然后您可以检查标准 SSH 日志以查找 IP 地址:/var/log/auth.log/var/log/secure:

Dec 19 07:34:08 gitlab-hostname sshd[3563]: Accepted publickey for git from 192.168.21.151 port 40864 ssh2: RSA 32:ea:2d:e2:47:ac:fc:50:84:16:e2:16:57:b0:5c:2d