百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

服务器特定端口阻断国外IP攻击

liebian365 2025-02-09 13:08 10 浏览 0 评论

故事:弄了个便宜的VPS,搞了个内网穿透。把家里虚机、NAS、服务器之类的映射出来,想着没事的时候摸摸鱼,也不用担心单位的监管,耽误我好前程。结果这两天总结写完了没啥大事了,摸鱼兴致正高的时候,发现远程桌面登不上了。翻翻找找是被我虚机里安全软件把frpc地址给加黑名单了,给阻断了。放出来没几分钟又死翘翘了,这就不爽了。反正是摸鱼,那就改摸瓜吧,顺藤摸瓜。简单把把脉,其实就是VPS上,开的frps服务一直被攻击,一直在爆破我虚机的密码。所以表征导致我远程桌面登录不上。翻了一下VPS上的日志,每分钟IP连接100多次,都是国外的IP。话说不是把我这服务器当成啥重点目标了吧。小卡拉米,眼睛是瘸的。耽误我摸鱼我上火生气。索性就摸完瓜,拿刀劈开吧。

解决思路:其实吧,肯花钱的话,这事很简单,我就不在这叨叨了。但是这摸鱼的家伙什,没必要花钱,该省省该花花,勤俭的作风不能丢。VPS上用的Linux,用脚本基本能解决90%的问题。思路也简单,就是找个地方,抄作业把国内IP地址弄出来,然后添加到iptables就可以了。话不多说,上成品。

脚本:

#!/bin/bash

# 定义要保护的端口列表
ports="22 123 200"

echo "开始下载APNIC数据文件..."
# 下载APNIC数据
wget -q -O delegated-apnic-latest http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
if [ $? -eq 0 ]; then
    echo "APNIC数据文件下载成功。"
else
    echo "APNIC数据文件下载失败。请检查网络连接。"
    exit 1
fi

echo "开始生成允许中国IP访问指定端口范围的规则..."
# 清空并生成规则文件
> china_ips_allow_rules.sh

# 生成允许中国IP访问的规则
for port in $ports; do
    awk -F '|' -v port="$port" 'BEGIN { OFS = " " } 
        /CN\|ipv4/ {
            cidr = 32 - int(log($5)/log(2));
            print "iptables -A INPUT -p tcp --dport", port, "-s", $4"/"cidr, "-j ACCEPT"
        }' delegated-apnic-latest >> china_ips_allow_rules.sh
done

if [[ -s china_ips_allow_rules.sh ]]; then
    echo "允许规则生成完成。以下是生成的规则:"
    cat china_ips_allow_rules.sh
else
    echo "允许规则生成失败,请检查APNIC数据文件格式。"
    exit 1
fi

echo "开始备份当前iptables规则..."
# 备份当前iptables规则
iptables-save > iptables_backup.txt
if [ $? -eq 0 ]; then
    echo "当前iptables规则备份成功,备份文件为 iptables_backup.txt。"
else
    echo "当前iptables规则备份失败。"
    exit 1
fi

echo "开始清空INPUT链中关于指定端口范围的现有规则..."
for port in $ports; do
    # 获取所有针对指定端口和TCP协议的规则编号
    rule_numbers=$(iptables -L INPUT --line-numbers -n | grep "tcp dpt:$port" | awk '{print $1}' | tac)
    for rule_number in $rule_numbers; do
        iptables -D INPUT $rule_number
        if [ $? -eq 0 ]; then
            echo "已删除端口 $port 的INPUT链规则编号 $rule_number。"
        else
            echo "删除端口 $port 的INPUT链规则编号 $rule_number 失败。"
        fi
    done
done

echo "开始加载允许中国IP访问的规则..."
# 加载允许中国IP访问的规则
chmod +x china_ips_allow_rules.sh
./china_ips_allow_rules.sh
if [ $? -eq 0 ]; then
    echo "允许中国IP访问的规则加载成功。"
else
    echo "允许中国IP访问的规则加载失败。"
    exit 1
fi

echo "开始添加拒绝其他所有IP访问指定端口范围的规则..."
for port in $ports; do
    iptables -A INPUT -p tcp --dport $port -j DROP
    if [ $? -eq 0 ]; then
        echo "已添加拒绝其他IP访问端口 $port 的规则。"
    else
        echo "添加拒绝其他IP访问端口 $port 的规则失败。"
    fi
done

# 检查并创建 /etc/iptables 目录
if [ ! -d /etc/iptables ]; then
    mkdir -p /etc/iptables
fi

echo "开始保存iptables规则..."
# 保存iptables规则
iptables-save > /etc/iptables/rules.v4
if [ $? -eq 0 ]; then
    echo "iptables规则已保存到 /etc/iptables/rules.v4。"
else
    echo "iptables规则保存失败。"
    exit 1
fi

echo "开始重新加载iptables规则..."
# 重新加载iptables规则
iptables-restore < /etc/iptables/rules.v4
if [ $? -eq 0 ]; then
    echo "iptables规则重新加载成功。"
else
    echo "iptables规则重新加载失败。"
    exit 1
fi

#echo "删除临时下载的APNIC数据文件..."
# 删除临时下载的APNIC数据文件
#rm -f delegated-apnic-latest
#echo "临时APNIC数据文件已删除。"

使用方法:

我的VPS是ubuntu 2204,iptables v1.8.7。不是这个环境的,可能运行时候会有乱七八糟的问题,到时候自己查一下资料修改一下命令参数。

自己建个.sh的文件,把内容贴进去。想保护的端口,自己在第四行写一下,格式是,独立的端口空格就可以,连续的端口使用“:”。比如1-100的端口,可以写成“1:100”。

给脚本加个运行权限chmod +x jiaoben.sh。然后使用root权限执行。sudo ./脚本.sh。

提醒:

1、国内目前IP段10000多条,也就是会加入10000多条的规则到防火墙中,脚本运行会比较久,CPU直接干冒烟,业务忙的时候最好别动,服务器瘫了不要自己哭鼻子。

2、脚本中我加了删除原来防火墙规则的功能,但是跑起来很慢。我建议索性iptable -F,把原来规则清空。这个也是酌情,有别的规则的就一下也给清空了,到时候找不回来不要自己哭鼻子。

3、APNIC数据会定期更新,可以自己加定时任务,这个自己搞定吧。

OK了,就白白这么多,搞这么一次,日志中基本上干净了,没啥乱七八糟的了。可以身心愉快的摸鱼了。

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: