苹果还是安卓?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 中,可通过文件路径直接访问本地文件,如 ls /home/user

    2025年8月18日
    7500
  • Linux如何进入vi编辑器?操作步骤与方法疑问

    在Linux系统中,vi(Visual Editor)是一款经典且功能强大的文本编辑器,几乎所有的Linux发行版都默认安装或支持它,作为一款基于模式的编辑器,vi的操作逻辑与其他图形化编辑器(如Windows的记事本)有较大差异,初学者需先理解其三种核心模式(命令模式、插入模式、末行模式),才能熟练使用,以下……

    2025年9月24日
    8200
  • 如何查linux是多少位

    Linux系统中,可通过执行uname -a命令查看系统位数信息,其中包含x

    2025年8月10日
    8700
  • Linux系统装机如何操作?新手必学的详细步骤有哪些?

    Linux系统装机是许多开发者和爱好者必备的技能,整个过程从准备工作到系统配置可分为多个步骤,本文将详细介绍Linux系统的完整装机流程,帮助用户顺利完成安装,装机准备工作在开始安装前,需做好充分的准备工作,确保装机过程顺利:选择Linux发行版:根据需求选择合适的发行版,新手推荐Ubuntu(桌面环境友好,社……

    2025年10月8日
    7800
  • Linux系统中如何查看节点数?

    在Linux系统中,“节点数”这一概念在不同场景下可能指代不同的内容,比如CPU逻辑处理器数量、物理核心数、NUMA(非一致性内存访问)架构中的节点数等,要准确查看节点数,需根据具体需求选择合适的工具和方法,以下从多个维度详细说明Linux系统中查看节点数的方法及操作步骤,查看CPU逻辑处理器数(逻辑核心数)逻……

    2025年9月16日
    8900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信