起因是这样的:
我在家里利用一个arm盒子搭了一个gitea服务,然后用于存放一些自己的项目,因为我家这边github经常连不上,甚至于有些时候梯子也连不上,然后又因为偶尔有需要不在家访问的需求,所以我拿另外一个公网服务器搭了个frp,为什么不直接把gitea搭在公网服务器上呢,因为公网带宽只有1M…然后这套方案已经运行很久了…
好,铺垫到这里…
然后前两天忽然发现我盒子和frp一直频繁断开,然后我通过查看frp日志发现一直有国外ip在通过frp连我gitea的ssh,很诡异,我服务器全都是禁用密码只有证书登录的,我看了一下gitea的docker镜像里的配置也是一样,按理说不应该,但还是一直有,而且一直连一直连,就导致我的frp一直断开一直重连,然后我的盒子不知道为什么性能也下降了…
然后我在公网服务器上采用了fail2ban通过匹配frp日志里的ip来拉黑,效果不好,配置没问题,也确实看到fail2ban和iptable里面都自动添加了黑名单了,但是frp日志里还是疯狂挑连接…拉黑了还能跳我实在是想不通…
我有去查这些IP,都是来自什么美国,意大利,匈牙利之类的外国IP,我就分别问通义千问和chatgpt3.5,他们给了我一堆在防火墙上加国家限制的…结果都不能用…
请教大家有没有实践有效的方案?
目前我倒是给nginx配置上maxmind的geoip的数据了,web服务通过nginx可以做到不让外国访问,但是gitea里的ssh是tcp连接,我只能想到用防火墙的方案拦截……可是目前没找到成功的……我折腾到凌晨3点半,现在4点半……我目前暂时把gitea的ssh关掉,只留https的了
希望大家不吝赐教
没记错的话宝塔防火墙能设置地区白名单/黑名单
我说一下我能想到的
一、你在外访问的需要应该也只有在办公室吧。你将办公室的ip段放入白名单基本可以了。你能这么样问,我想到的估计你办公室不是固定IP,那就将最近的几个IP段加入白名单,之前我试过,动态获取的IP也不会变的很大,基本在那几个IP段。例如获取的ip 140.139.40.23 ,我将 140.139.0.0/16 加入白名单。
二、针对那个端口默认drop,然后只允许全中国的IP访问。傻办法,但能用。
三、办公室有没有ddns,如果没有让管理员在路由器上面设置个,有自带不难。然后在服务器上面写个脚本,将解析的ip加入白名单。
四、或者在nginx上面设置个访问参数,然后访问就直接iptables将这个客户端ip拉白名单。有点复杂,我还是选择一或者三。
上面装宝塔能成事,但装宝塔还得给它内存以及承担它有可能bug导致的风险,所以我自己是没考虑。
这个有佬友发的,看有效果不
你只需要了解你经常使用的IP段,将其加入到白名单即可
嗯,我自己本人比较喜欢精简所以没装宝塔,不过还是谢谢,我会认真考虑是否引入宝塔
插个眼
我跟你看法一样,我个人也比较喜欢精简一些…所以也没装宝塔…关于在外面的场景你说的是对的,在外面还有一个就是偶尔出去玩,遇到项目上的bug,手机上查看git代码好心里有个底或者随便找台电脑赶紧改一下bug,不过这个场景大多采用http形式访问gitea,而http会通过nginx,nginx我已经配置好防止外国IP了。
太巧了!我觉得跟我的心路历程极为相似!我去试试他的方法!
ipset 确实可以加载IP库,在再其他地方导入IP地理库,加载进IPset分组就行
建议使用WireGuard搭建一个虚拟局域网连接,不要直接把端口暴露在公网上,WireGuard搭建比较方便,服务器端几行命令就配完了,手机或者电脑装个客户端就行。安全方面是使用密钥验证的,比Frp安全多了。教程可以看我的这篇(bing一下就能搜到): 【WireGuard/虚拟局域网/联机/低成本】使用WireGuard组建虚拟局域网联机的低成本可行方案
From #develop:qa to 开发调优