当前位置: 首页 > news >正文

怎么限制某些IP访问服务器?

您可以通过多种方式限制特定IP地址访问您的服务器,以下是几种常见的方法:

1. 使用防火墙限制IP访问

Linux系统 (iptables)

# 阻止单个IP
iptables -A INPUT -s 192.168.1.100 -j DROP# 阻止IP段
iptables -A INPUT -s 192.168.1.0/24 -j DROP# 允许特定IP访问SSH(22端口)
iptables -A INPUT -s 203.0.113.5 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP# 保存规则(根据系统不同)
iptables-save > /etc/sysconfig/iptables  # CentOS/RHEL
iptables-save > /etc/iptables/rules.v4   # Debian/Ubuntu

Linux系统 (ufw - Ubuntu)

sudo ufw deny from 192.168.1.100
sudo ufw allow from 203.0.113.5 to any port 22

Linux系统 (firewalld - CentOS/RHEL)

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
firewall-cmd --reload

Windows系统

  1. 打开"高级安全Windows防火墙"

  2. 创建入站规则

  3. 选择"阻止连接"并指定要阻止的IP地址

2. 使用TCP Wrappers (Linux)

编辑/etc/hosts.deny文件:

sshd: 192.168.1.100
sshd: 192.168.1.0/24

编辑/etc/hosts.allow文件允许特定IP:

sshd: 203.0.113.5

3. 在服务配置中限制IP

SSH服务

编辑/etc/ssh/sshd_config

AllowUsers *@203.0.113.5
DenyUsers *@192.168.1.100

然后重启SSH服务:systemctl restart sshd

Nginx Web服务器

nginx

location / {deny 192.168.1.100;deny 192.168.1.0/24;allow 203.0.113.5;allow all;
}

Apache Web服务器

apache

<Directory "/var/www/html">Require all grantedRequire not ip 192.168.1.100Require not ip 192.168.1.0/24
</Directory>

4. 使用云服务商的安全组/ACL

AWS安全组

  1. 在EC2控制台选择安全组

  2. 编辑入站规则,添加拒绝规则

Azure网络安全组

  1. 在网络安全组中添加入站安全规则

  2. 设置源IP和操作(拒绝)

阿里云安全组

  1. 在ECS控制台配置安全组规则

  2. 添加拒绝特定IP访问的规则

5. 使用Fail2Ban自动阻止恶意IP

# 安装Fail2Ban
sudo apt install fail2ban  # Debian/Ubuntu
sudo yum install fail2ban  # CentOS/RHEL# 配置(编辑/etc/fail2ban/jail.local)
[DEFAULT]
bantime = 1h
maxretry = 3[sshd]
enabled = true

注意事项

  1. 修改防火墙规则前,确保不会把自己锁在服务器外

  2. 对于生产环境,建议先在测试环境验证规则

  3. 使用iptables -L -nufw status检查当前规则

  4. 定期审查IP限制列表,移除不再需要的限制

  5. 考虑使用IP黑名单和白名单结合的方式管理访问

以上方法可以根据您的具体需求和服务器环境选择使用或组合使用。

http://www.dtcms.com/a/266435.html

相关文章:

  • 版本控制器SVN
  • React Native屏幕适配的艺术:px2dp从像素完美到跨平台优雅布局之详细篇
  • Flink TiDB CDC 环境配置与验证
  • RESTful API 安装使用教程
  • 用Python解锁图像处理之力:从基础到智能应用的深度探索
  • 项目前置知识技术点功能用例:C++11中的bind
  • 浏览器(Chrome /Edge)高效使用 - 内部命令/快捷键/启动参数
  • Excel 如何进行多条件查找或求和?
  • BLDC电机-运动控制---stm32时钟树定时器SYSTICKRTC的学习
  • HTTP 压缩
  • JavaScript与HTML:Web开发的双翼
  • 使用 C# 发送电子邮件(支持普通文本、HTML 和附件)
  • 基于SpringBoot+Vue的高校心理健康服务平台(AI心理分析、websocket即时通讯)
  • 【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(4)神经网络中的重要组件
  • 自动驾驶感知模块的多模态数据融合:时序同步与空间对齐的框架解析
  • [开源]微软 PowerToys 获 0.92 版本更新:新增系统托盘图标开 / 关功能、改进 Command Palette
  • RabbitMQ 4.1.1初体验
  • NeighborGeo:基于邻居的IP地理定位(四)
  • 攻防世界-Reverse-insanity
  • 通用业务编号生成工具类(MyBatis-Plus + Spring Boot)详解 + 3种调用方式
  • 基于 ETL 工具实现人大金仓数据库的数据迁移与整合实操指南
  • 设计模式之代理模式--数据库查询代理和调用日志记录
  • Unity-MMORPG内容笔记-其三
  • FastAPI 返回 422 Unprocessable Entity
  • 【Linux操作系统 | 第十篇】Linux组管理实践 ---土匪和警察的游戏
  • 【代码复现】YOLO11复现全流程+自定义数据集训练测试
  • 双系统如何做接口认证-V1
  • RabbitMQ 高级特性之重试机制
  • 大流量业务云主机选型:AWS、Oracle、DigitalOcean、Linode、阿里云深度对比
  • 硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!