news 2026/4/18 16:29:28

内网穿透安全实践:FRP/花生壳环境下SSH防扫描策略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
内网穿透安全实践:FRP/花生壳环境下SSH防扫描策略

1. 为什么内网穿透下的SSH服务容易被盯上?

最近帮朋友处理了一台服务器被入侵的问题,现象特别典型:通过花生壳做了内网穿透暴露SSH端口,结果不到两周就被植入了挖矿病毒。查看日志才发现,每天有上千次暴力破解尝试,最终某个弱密码账户被攻破。这种情况在使用FRP/花生壳等工具时尤为常见,主要原因有三点:

首先,自动化扫描工具会全网探测开放端口。黑客们用工具批量扫描公网IP段,发现22端口开放就会记录到目标列表。我曾在测试环境用tcpdump抓包,新开的SSH服务30分钟内就会收到扫描请求。

其次,内网穿透使服务暴露在公网。FRP/花生壳的本质是将内网服务映射到公网地址,这和直接把服务器放在公网没有本质区别。有次我在阿里云ECS上部署FRP服务端,24小时后就看到auth.log里出现大量Invalid user记录。

最后,默认配置存在安全隐患。很多人在内网习惯用密码登录,密码强度也不高。更危险的是,有些团队为了方便共享,会使用通用账户(比如dev/ops/admin)。去年处理过一个案例,攻击者用admin:admin123这个组合就突破了防线。

2. 从日志中发现攻击痕迹

2.1 关键日志文件定位

当发现服务器异常时,我第一个检查的就是/var/log/auth.log(CentOS系在/var/log/secure)。这里有组典型日志:

Jul 10 08:15:22 hostname sshd[12345]: Invalid user oracle from 203.0.113.45 Jul 10 08:15:23 hostname sshd[12347]: Failed password for root from 203.0.113.45 Jul 10 08:15:25 hostname sshd[12349]: Accepted publickey for user1 from 192.168.1.100

注意三个关键信息:

  1. Invalid user说明攻击者在枚举常见用户名
  2. Failed password表明正在尝试暴力破解
  3. 成功登录会显示Accepted及认证方式(如publickey)

2.2 日志分析实战技巧

用这些命令可以快速分析攻击态势:

# 统计攻击IPTOP10 grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | head # 提取所有尝试过的用户名 grep "Invalid user" /var/log/auth.log | awk '{print $8}' | sort | uniq -c # 实时监控新攻击(tail -f相当于Windows的"跟踪日志") tail -f /var/log/auth.log | grep --color -E "Failed|Invalid"

有次我用这个方法发现某个IP在尝试500多个用户名,立即用iptables封禁了该地址段:

iptables -A INPUT -s 203.0.113.0/24 -j DROP

3. 防火墙:第一道防线配置策略

3.1 基础防护规则

在FRP服务器或花生壳主机上,建议配置这些防火墙规则(以iptables为例):

# 只允许特定IP访问SSH(比如运维跳板机) iptables -A INPUT -p tcp --dport 22 -s 192.168.1.200 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP # 限制连接频率(每分钟最多3次新连接) iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

如果是云服务商,记得在安全组里同步设置。有次我在AWS上漏配安全组,iptables规则形同虚设。

3.2 地域封锁实践

通过IP库可以屏蔽高风险地区,这里推荐ipset工具:

# 创建国家IP集合 ipset create china hash:net ipset add china 1.0.1.0/24 # ...(需导入完整中国IP段) # 应用规则:非中国IP拒绝SSH连接 iptables -A INPUT -p tcp --dport 22 -m set ! --match-set china src -j DROP

注意:花生壳免费版不支持自定义防火墙,需要升级商业版;FRP则完全自主可控。

4. 密钥认证:彻底告别密码爆破

4.1 密钥生成与部署

生成ED25519密钥对(比RSA更安全更快):

ssh-keygen -t ed25519 -C "your_email@example.com"

将公钥部署到服务器:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host

然后在/etc/ssh/sshd_config中强制启用密钥认证:

PasswordAuthentication no PubkeyAuthentication yes

记得测试后再重启服务:

systemctl restart sshd

4.2 穿透环境特殊配置

针对FRP/花生壳的特殊场景,可以区分内外网策略:

Match Address 192.168.1.100 # 花生壳内网终端IP PasswordAuthentication no AllowUsers user1 user2

这个配置的意思是:从内网终端IP过来的连接,只允许指定用户且必须用密钥登录。其他IP(如直连内网)可以保持密码登录。

5. 高级防护:Fail2ban动态封禁

5.1 安装与基础配置

Ubuntu下安装:

sudo apt install fail2ban

配置文件/etc/fail2ban/jail.local

[sshd] enabled = true maxretry = 3 bantime = 1d findtime = 1h

这会封禁1小时内失败3次的IP,封禁24小时。

5.2 针对穿透优化

对于花生壳日志格式,需要自定义过滤器:

[sshd] logpath = /var/log/auth.log failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from <HOST>

我曾在某企业环境用这个规则,一周内自动封禁了800+恶意IP。

6. 监控与应急响应

6.1 实时告警设置

配置logwatch每日发送日志摘要:

sudo apt install logwatch echo "/usr/sbin/logwatch --output mail --mailto admin@example.com" >> /etc/cron.daily/

或者用更现代的Prometheus+Grafana方案监控SSH登录次数。

6.2 入侵应急检查清单

如果怀疑已被入侵,立即执行:

  1. ps auxf检查异常进程
  2. 查看crontab -l/etc/crontab
  3. 检查/tmp等目录是否有可疑文件
  4. netstat -antp查看异常连接

有次帮客户排查,发现攻击者在/usr/lib/systemd/system下植入恶意service文件,差点漏检。

7. 花生壳与FRP的特殊注意事项

花生壳用户要注意:

  • 免费版无法自定义端口,建议搭配云防火墙使用
  • 商业版支持访问控制,可设置IP白名单
  • 定期检查穿透IP是否变化

FRP用户建议:

  • 修改默认的7000/bind_port等端口
  • 启用token认证
  • 为不同服务分配独立子域名

最近帮某团队优化FRP配置时,发现他们还在用默认端口和空token,相当于大门敞开。调整后扫描量直接归零。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 16:29:26

从抛硬币到投资组合:独立事件期望方差可加性在现实中的3个应用场景

从抛硬币到投资组合&#xff1a;独立事件期望方差可加性在现实中的3个应用场景 概率论中关于独立随机变量的期望和方差可加性定理&#xff0c;看似抽象难懂&#xff0c;实则蕴含着强大的现实解释力。这个数学工具能帮助我们量化不确定性、评估风险叠加效应&#xff0c;并在复杂…

作者头像 李华
网站建设 2026/4/18 16:22:41

5分钟掌握Adobe-GenP 3.0:突破Adobe CC通用补丁的核心技术

5分钟掌握Adobe-GenP 3.0&#xff1a;突破Adobe CC通用补丁的核心技术 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe通用补丁工具Adobe-GenP 3.0作为目前最强…

作者头像 李华
网站建设 2026/4/18 16:19:55

如何快速掌握TMSpeech:Windows实时语音识别终极指南

如何快速掌握TMSpeech&#xff1a;Windows实时语音识别终极指南 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 想在Windows电脑上实现实时语音转文字&#xff1f;TMSpeech正是你需要的免费开源工具&#xff01;这款…

作者头像 李华