前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >服务器排查并封禁ip访问

服务器排查并封禁ip访问

作者头像
关忆北.
发布2023-10-11 09:39:19
6100
发布2023-10-11 09:39:19
举报
文章被收录于专栏:关忆北.
前言

购买的服务器难免会遇到被攻击的情况,当我们发现服务器状态异常时,可以通过连接当前服务器的ip排查一下,并对可疑ip进行封锁禁止。我们可以通过路由跟踪来查看可疑ip。以下是两种解决方案。

解决方案
iptables

netstat是一个用于监视网络连接和网络统计信息的命令行工具。通过ChatGPT我们可以了解到它有以下功能:

  1. 显示网络连接:netstat可以列出当前系统上的所有活动网络连接,包括TCP、UDP和UNIX域套接字。它显示本地地址和端口以及远程地址和端口之间的连接状态。
  2. 显示网络接口统计信息:netstat可以显示每个网络接口的统计信息,如接收和发送的数据包数量、错误数量、丢弃的数据包数量等。这对于监视网络接口的活动和性能非常有用。
  3. 显示路由表信息:netstat可以显示系统的IP路由表,包括目标网络、下一跳和接口之间的映射。这对于检查系统的路由配置和网络流量转发非常有用。
  4. 显示多播组信息:netstat可以显示系统上的多播组信息,包括多播组的成员和接口之间的映射关系。这对于监视和管理多播传输非常有用。
  5. 显示网络连接的PID和程序信息:netstat可以显示与网络连接相关的进程ID和程序名称。这对于确定哪个进程在使用特定的网络连接非常有用。

那么本次我们需要用到iptables的功能主要是1、2、3。

代码语言:javascript
复制
# 查看连接当前服务器的所有ip
netstat -nat

这样我们可以排查到连接到当前服务器的所有ip。攻击者往往通过击垮服务器的某些服务来达到数据破坏,并以此为要挟的目的。当然,MySQL服务便是这一现象的重灾区。所以,我们需要排查服务对应的端口连接数,查看连接是否异常。

假设我们的MySQL服务对应的端口是3306

代码语言:javascript
复制
netstat -nat|grep -i '3306'|wc -l

此时会返回当前端口的连接数:

更详细的数据可以使用命令:

代码语言:javascript
复制
netstat -nat|grep -i '3306'

查看那些ip正在访问指定端口:

代码语言:javascript
复制
netstat -tn | grep ':3306' | awk '{print $5}'

接下来可以通过统计nginx的数据访问量和数据访问次数来判断访问ip是否攻击ip。

请参考:

通过nginx日志统计一段时间内ip的访问次数进行排序&访问量统计

以上命令较多,我更建议使用可视化图形,即NextTrace工具

NextTrace

安装:

代码语言:javascript
复制
# Linux 一键安装脚本
bash <(curl -Ls https://raw.githubusercontent.com/sjlleo/nexttrace/main/nt_install.sh)

# GHPROXY 镜像(国内使用)
bash <(curl -Ls https://ghproxy.com/https://raw.githubusercontent.com/sjlleo/nexttrace/main/nt_install.sh)

# macOS brew 安装命令
brew tap xgadget-lab/nexttrace && brew install nexttrace

使用手册:

NextTrace How to Use

开始执行:

代码语言:javascript
复制
nexttrace 1.0.0.1

可以看到有一些境外ip在访问,我的服务器一般是作为我的开发环境来用,所以一般不会出现有境外ip访问的情况。那么我可以把这些ip视为攻击ip。

执行命令后,我们可以通过工具返回的MapTrace URL可视化的看到ip信息,点击访问即可。

找到攻击ip后,可以通过以下命令来禁止该ip的访问:

代码语言:javascript
复制
iptables -I INPUT -s ***.***.***.*** -j DROP

当需要解封ip时,需要使用:

代码语言:javascript
复制
iptables -D INPUT -s ***.***.***.*** -j DROP

再次查看访问当前服务器的ip:

代码语言:javascript
复制
nexttrace 1.0.0.1

可以看到境外ip已经消失不见了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 解决方案
    • iptables
      • NextTrace
      相关产品与服务
      云数据库 MySQL
      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档