VPS脚本如何屏蔽IP访问?_详解防火墙与脚本配置方法

如何使用VPS脚本屏蔽特定IP地址的访问?

屏蔽方法 适用系统 配置难度 持久性
iptables防火墙 Linux 中等 重启后失效
firewalld防火墙 CentOS/RHEL 简单 持久化配置
hosts文件屏蔽 所有系统 简单 持久化
Nginx屏蔽 Web服务器 中等 持久化
Apache屏蔽 Web服务器 中等 持久化

VPS脚本如何屏蔽IP访问?详解防火墙与脚本配置方法

在网络安全管理中,屏蔽恶意IP地址是保护VPS服务器的重要措施。通过脚本自动化屏蔽IP访问,可以有效防止DDoS攻击、暴力破解和恶意爬虫等安全威胁。

主要屏蔽方法概览

方法类型 实施工具 适用场景 效果范围
系统防火墙 iptables/firewalld 系统级防护 所有端口
应用层屏蔽 Nginx/Apache Web服务防护 HTTP/HTTPS
主机文件 /etc/hosts 简单域名屏蔽 域名解析
脚本自动化 Shell/Python 批量处理 灵活配置

详细操作步骤

步骤一:使用iptables防火墙屏蔽IP

操作说明:通过iptables命令直接添加规则屏蔽特定IP 使用工具提示:需要root权限执行
# 屏蔽单个IP地址
iptables -A INPUT -s 192.168.1.100 -j DROP

屏蔽IP段

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

查看当前规则

iptables -L INPUT -n --line-numbers

删除特定规则

iptables -D INPUT [规则编号]

步骤二:配置firewalld防火墙(CentOS/RHEL)

操作说明:使用firewalld的富规则功能屏蔽IP 使用工具提示:适用于CentOS 7及以上版本
# 添加屏蔽规则
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'

重载配置

firewall-cmd --reload

查看当前规则

firewall-cmd --list-rich-rules

步骤三:Nginx Web服务器IP屏蔽

操作说明:在Nginx配置文件中设置拒绝访问的IP 使用工具提示:修改后需要重启Nginx服务
# 在http或server块中添加
location / {
    deny 192.168.1.100;
    allow all;
}

或者使用include方式

include /etc/nginx/blockips.conf;

步骤四:创建自动化屏蔽脚本

操作说明:编写Shell脚本实现IP屏蔽的自动化管理 使用工具提示:建议设置定时任务定期更新屏蔽列表
#!/bin/bash

自动IP屏蔽脚本

BLOCK
FILE="/root/blockips.txt" LOGFILE="/var/log/sshauth.log"

从日志中提取失败登录IP并屏蔽

grep "Failed password" $LOG
FILE | awk '{print $11}' | sort | uniq -c | sort -nr | awk '$1 > 10 {print $2}' > $BLOCKFILE while read IP; do iptables -A INPUT -s $IP -j DROP echo "$(date): 屏蔽IP $IP" >> /var/log/ipblock.log done /etc/iptables/rules.v4

CentOS/RHEL

yum install iptables-services service iptables save

常见问题与解决方案

问题 原因 解决方案
屏蔽后自己无法访问 误屏蔽了自己的IP 先添加允许自己IP的规则,再设置默认DROP策略
规则重启后失效 未保存iptables规则 使用iptables-save保存规则,或改用firewalld
屏蔽IP过多影响性能 防火墙规则数量过多 使用IP段屏蔽,定期清理过期规则
屏蔽无效 规则顺序错误 检查规则顺序,确保DROP规则在ALLOW之前
服务无法启动 语法错误 检查配置文件语法,查看错误日志

通过上述方法和脚本,您可以有效地管理和屏蔽恶意IP地址,提升VPS服务器的安全性。建议定期审查屏蔽列表,确保不会误封正常用户的同时保持防护效果。

发表评论

评论列表