我正在运行 nginx 反向代理,以便能够在防火墙后面运行多个服务器。我注意到我的 (Kerio) 邮件服务器的错误日志中充满了“从 < nginx 的本地 ip > 登录失败”,我想知道如何设置它以便获取尝试登录的人/机器人的远程 IP,以便我可以使用该信息自动阻止这些地址(例如)?
这是我当前的配置:
server {
listen 8443 ssl http2;
server_name mail.domain.com;
location / {
proxy_set_header Host $host;
proxy_pass https://<internal ip>/;
client_max_body_size 0;
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
proxy_read_timeout 3600;
send_timeout 3600;
}
}
添加以下几行,结果将更加相同:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
答案1
X-Forwarded-For 是您需要的功能,它将添加包含原始客户端 IP 的 http 标头。从您所说的内容来看,Kerio 应用程序忽略了这一点,只在日志中使用源 IP(即 nginx)。也许有一个可以在应用程序上配置的选项可以分析和使用它。
答案2
刚刚发现我的邮件服务器(Kerio)对反向代理转发的信息没有任何作用,所以我唯一能做的就是希望进行更新。