Security 通过IP和Nginx限制Gitlab访问

Security 通过IP和Nginx限制Gitlab访问,security,nginx,gitlab,Security,Nginx,Gitlab,我有一个运行在Nginx上的公共Gitlab安装,并且正在运行,我想限制它对IP地址白名单的访问 我尝试在nginx中添加一个基本限制,如下所示: location @gitlab { allow 127.0.0.1; allow XXX.XXX.XXX.XXX; deny all; ... } 它的工作原理是,只有允许的IP才能通过gitlab的web界面。 但是,当从这些允许的IP推送内容时,我遇到了以下错误: Pushing to http://my.se

我有一个运行在Nginx上的公共Gitlab安装,并且正在运行,我想限制它对IP地址白名单的访问

我尝试在nginx中添加一个基本限制,如下所示:

location @gitlab {
    allow 127.0.0.1;
    allow XXX.XXX.XXX.XXX;
    deny all;
    ...
}
它的工作原理是,只有允许的IP才能通过gitlab的web界面。 但是,当从这些允许的IP推送内容时,我遇到了以下错误:

Pushing to http://my.server:port/myrepo.git
POST git-receive-pack (451 bytes)
remote: GitLab: API is not accesible        
To http://my.server:port/myrepo.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://my.server:port/myrepo.git'
奇怪。我还尝试使用ngx_http_geo_模块,得到了相同的结果。 有人知道怎么做吗


谢谢

好的,在查看gitlab_error.log之后,我发现我还必须将服务器的公共IP列入白名单:

[error] 13629#0: *380 access forbidden by rule, client: YYY.YYY.YYY.YYY, server: my.server, request: "POST //api/v3/internal/allowed HTTP/1.1", host: "my.server:port"
最后,我的nginx配置如下所示,现在一切正常:

location @gitlab {
allow 127.0.0.1;
allow XXX.XXX.XXX.XXX;
allow YYY.YYY.YYY.YYY;
deny all;
...
}

就这么简单


我不知道这是一个bug还是什么,因为我正在使用一个旧的7.6版本的gitlab。我将很快运行一个更新,并将对此进行检查。

好的,在查看gitlab_error.log之后,我发现我还必须将服务器的公共IP列入白名单:

[error] 13629#0: *380 access forbidden by rule, client: YYY.YYY.YYY.YYY, server: my.server, request: "POST //api/v3/internal/allowed HTTP/1.1", host: "my.server:port"
最后,我的nginx配置如下所示,现在一切正常:

location @gitlab {
allow 127.0.0.1;
allow XXX.XXX.XXX.XXX;
allow YYY.YYY.YYY.YYY;
deny all;
...
}

就这么简单

我不知道这是一个bug还是什么,因为我正在使用一个旧的7.6版本的gitlab。我将很快运行更新,并将对此进行检查