yisier / nps

在 0.26.10 版本的基础上修改而来的
https://ehang.io/nps/documents
GNU General Public License v3.0
1.95k stars 245 forks source link

TCP隧道+nginx反代时如何获取真实IP #38

Closed UntaggedRui closed 1 year ago

UntaggedRui commented 1 year ago

原因:使用nps将公网服务器的9000端口转发到内网的远程桌面。但是运行一段时间后就会发现有一个IP再不断的爆破这个900端口,参考大量的非法url 攻击的方式,想尝试在nps外面加nginx,在nginx里面使用allow和deny来对IP进行处理。我的配置目前如下,

stream{
    upstream windows{
        hash $remote_addr consistent;
        server  127.0.0.1:9000 max_fails=3 fail_timeout=10s;
    }
    server{
        listen 8000;
        proxy_connect_timeout 20s;
        proxy_timeout 5m;
        proxy_pass windows;
    }
}

但是这样在npc客户端中显示的访问ip永远都是127.0.0.1,假如再次有非法IP爆破端口我无法知道他的真实ip。 问题:如果使用nginx的反代方式,如何知道爆破方的真实IP? 或者nps有什么方法可以限制或者允许指定IP吗?(因为使用的人较复杂,所以只通过一个IP或者一个IP cidr无法满足要求,需要支持多个IP cidr的设置)

yisier commented 1 year ago

v0.26.12.1

新增:在管理面板中新增客户端时,可以配置多个黑名单IP,用于防止被肉鸡扫描端口或被恶意攻击。

UntaggedRui commented 1 year ago

感谢