使用iptables设置保护青龙端口,避免被爆破

2024-10-03 09:23:49 浏览数 (3)

简介

使用DOCKER创建青龙容器后,偶尔会遇到被人恶意扫描爆破青龙账号的情况,虽然青龙自身限制了试错频率,爆破成功的几率不大,但是看到后台有人试图登录的信息还是心里不爽。所以研究了一下怎么禁止其他人访问青龙端口。

探索

由于是通过docker暴露的端口,iptables处理INPUT规则前就把网络请求转给DOCKER的虚拟网卡了, 所以普通iptables禁止端口访问的设置是没有效果的。 翻看了网上不少文章,方式方法也五花八门,但很多方法都不简单或者不完美。试了其中几种,发现一个既简单又完美的方法,记录下来以备以后使用。

方案一

仅禁止特定IP访问,其他IP均允许访问

服务器执行下面代码即可

代码语言:javascript复制
iptables -I DOCKER-USER -s 被禁止访问的IP -p tcp -m conntrack --ctorigdstport 5700 --ctdir ORIGINAL -j DROP

方案二

仅放行特定IP访问,其他IP均禁止访问

下列代码都是在宿主机执行。 一定要先执行禁止命令,再执行放行命令,否则放行命令不会生效。

禁止访问青龙端口

执行下面代码,以禁止所有IP访问青龙的5700端口:

代码语言:javascript复制
iptables -I DOCKER-USER -p tcp -m conntrack --ctorigdstport 5700 --ctdir ORIGINAL -j DROP
为自己开放青龙端口

执行下面的代码,给自己的IP放行:

代码语言:javascript复制
iptables -I DOCKER-USER -s 218.12.0.0/16 -p tcp -m conntrack --ctorigdstport 5700 --ctdir ORIGINAL -j ACCEPT
iptables -I DOCKER-USER -s 39.144.0.0/16 -p tcp -m conntrack --ctorigdstport 5700 --ctdir ORIGINAL -j ACCEPT
iptables -I DOCKER-USER -s 132.145.89.22/32 -p tcp -m conntrack --ctorigdstport 5700 --ctdir ORIGINAL -j ACCEPT

说明:前两条命令是分别给我手机联通和移动网络放行的,因为手机的网络IP是随机的,但是一般前缀不变,IP后面设置/16子网,可以保证只要手机没出本地区,IP前半部分地址没变,就都可以访问。 第三条命令是给我一个VPS的IP开放端口的,如果遇到以外,还可以通过该VPS中转访问青龙页面。因为是固定IP,所以子网是/32,只放行这一个IP。 如果只放行一个IP(段),执行一条命令即可。

完毕后执行下面命令保存IPTABLES规则:

代码语言:javascript复制
service iptables save

清除登陆错误次数

如果青龙已经被人扫的不能登陆了(需要等很久后才能登陆),可以进入宿主机执行下面命令清除青龙的登陆错误次数。

代码语言:javascript复制
docker exec -it qinglong ql resetlet

0 人点赞