苹果还是安卓?2025年惊人结果揭晓

在Linux系统中,指定IP访问是提升服务器安全性的重要手段,可防止未授权访问、抵御网络攻击,并精确控制服务访问权限,以下是三种主流实现方法,根据实际需求选择:


使用iptables防火墙(推荐)

原理:通过内核级防火墙规则过滤流量,支持端口级控制。
适用场景:全局网络访问控制(如SSH、Web服务)。
操作步骤

  1. 允许特定IP访问SSH(22端口)

    sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 22 -j DROP  # 禁止其他IP访问
  2. 允许IP段访问Web服务(80端口)

    sudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT
  3. 保存规则(避免重启失效)

    sudo iptables-save > /etc/iptables/rules.v4  # Debian/Ubuntu
    sudo service iptables save                  # CentOS/RHEL

验证命令sudo iptables -L -n -v
注意:错误配置可能导致无法远程连接,建议先在本地测试。


通过TCP Wrappers(hosts.allow/hosts.deny)

原理:基于服务的轻量级访问控制,依赖libwrap库(如sshd, vsftpd)。
适用场景:支持TCP Wrappers的服务。
操作步骤

  1. 编辑配置文件

    sudo nano /etc/hosts.deny

    添加:

    ALL: ALL  # 默认拒绝所有访问
  2. 添加允许的IP

    sudo nano /etc/hosts.allow

    按需添加规则:

    sshd: 192.168.1.100      # 允许单个IP访问SSH
    vsftpd: 192.168.1.0/24   # 允许IP段访问FTP

生效方式:规则实时生效,无需重启服务。
验证:尝试从非授权IP访问服务(如ssh user@服务器IP)。


服务自身配置(以Nginx/SSH为例)

Nginx指定IP访问

sudo nano /etc/nginx/sites-available/default

server段添加:

location / {
    allow 192.168.1.100;
    allow 10.0.0.0/8;
    deny all;  # 拒绝其他IP
}

重启服务:sudo systemctl restart nginx

SSH服务指定IP

sudo nano /etc/ssh/sshd_config

添加:

AllowUsers *@192.168.1.100   # 仅允许该IP登录AllowGroups admin@192.168.1.0/24

重启服务:sudo systemctl restart sshd


注意事项

  1. 优先级问题
    • iptables规则自上而下匹配,首条匹配规则生效。
    • TCP Wrappers中hosts.allow优先级高于hosts.deny
  2. 备份配置
    修改前备份文件(如cp /etc/iptables/rules.v4 ~/backup/)。
  3. 多级防护
    重要服务建议组合使用iptables+服务配置(如Nginx+iptables)。
  4. IPv6支持
    iptables需用ip6tables,TCP Wrappers支持IPv6地址格式(如[2001:db8::1])。

常见问题解决

  • 误封自己IP:通过本地控制台删除规则或使用IP白名单工具临时解锁。
  • 服务不生效
    • 检查服务是否支持TCP Wrappers:ldd /usr/sbin/sshd | grep libwrap
    • 确认iptables未禁用(systemctl status iptables)。
  • 规则冲突:使用iptables -L --line-numbers查看规则顺序,必要时调整。

引用说明参考Linux官方文档(iptables、TCP Wrappers)及Nginx/OpenSSH配置手册,确保方法可靠性,实际部署请结合系统版本测试(如CentOS 7+或Ubuntu 20.04+)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8902.html

(0)
酷番叔酷番叔
上一篇 2025年7月27日 17:30
下一篇 2025年7月27日 17:53

相关推荐

  • Linux中如何累加时间?命令与脚本操作方法详解

    在Linux系统中,时间累加是常见的需求,例如计算多个任务的总耗时、日志文件中的时间戳总和,或不同时间段的累加结果,Linux提供了多种工具和方法实现时间累加,涵盖命令行、脚本和编程语言场景,本文将详细介绍这些方法,命令行工具实现时间累加使用date处理时间戳累加时间戳(Unix时间,从1970-01-01 0……

    2025年10月4日
    10500
  • Linux挂载如何快速轻松完成?

    挂载前的准备工作识别设备使用 lsblk 或 fdisk -l 命令查看可用设备:lsblk # 显示块设备(如 /dev/sdb1)sudo fdisk -l # 查看设备详情注:设备名通常为 /dev/sdX1(X为字母,1为分区号),创建挂载点挂载点是一个空目录,用于访问设备内容:sudo mkdir……

    2025年7月18日
    15800
  • Linux设备驱动操作如何掌握?关键步骤与实践指南

    Linux设备驱动是内核与硬件设备之间的核心桥梁,负责抽象硬件细节,为上层应用提供统一的设备访问接口,驱动开发需遵循内核编程规范,涉及模块机制、设备模型、中断处理、内存管理等关键技术,其操作流程可拆解为环境搭建、框架设计、功能实现、资源管理及调试优化等步骤,环境搭建与基础准备开发Linux设备驱动需配置内核开发……

    2025年10月4日
    11100
  • Linux装XP选虚拟机还是双系统?

    虚拟机安装(推荐)优势:安全、便捷、不破坏现有系统,适合大多数用户,工具:Oracle VirtualBox(免费开源)准备工作:合法XP安装镜像(ISO文件)及有效产品密钥(需自行准备正版授权),确保Linux系统有至少15GB可用空间,2GB以上内存,步骤详解:安装VirtualBoxUbuntu/Debi……

    2025年7月9日
    14200
  • Linux设备驱动如何编写?关键步骤与注意事项有哪些?

    Linux设备驱动是内核与硬件交互的核心组件,负责直接操作硬件设备并为上层应用提供统一的访问接口,编写Linux设备驱动需要深入理解内核机制、硬件工作原理及内核编程规范,以下从开发环境准备、核心步骤、关键代码结构及调试方法等方面详细说明,开发环境准备编写设备驱动前需搭建完整的开发环境,包括:内核源码:需与目标系……

    2025年8月30日
    10800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信