苹果还是安卓?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

相关推荐

  • Linux5.8系统下如何正确挂载存储设备?步骤详解

    在Linux 5.8系统中,挂载是将存储设备(如硬盘、U盘、光盘等)的文件系统与目录树中某个节点关联的过程,使用户能够通过访问该目录来使用设备中的数据,挂载操作是Linux文件系统管理的核心功能之一,本文将详细介绍Linux 5.8下的挂载流程、常用命令及注意事项,挂载前的准备工作在挂载设备前,需完成以下准备工……

    2025年9月28日
    2000
  • Linux如何暂停进程并随时唤醒?

    进程挂起的作用释放CPU资源:暂停非紧急任务,让出CPU给高优先级进程,调试与排查:冻结进程状态以便检查资源占用(如strace跟踪),批量控制:暂停一组进程后再统一恢复(如脚本任务管理),挂起进程的4种方法方法1:快捷键挂起(前台进程)在终端中直接启动的进程(如ping baidu.com),按下 Ctrl……

    2025年8月7日
    4100
  • 如何实现linux计划任务

    Linux 中,通过 crontab 命令设置计划任务,编辑任务列表,指定

    2025年8月16日
    3100
  • Linux磁盘怎么删才不留后患?

    核心概念设备标识:Linux磁盘以设备文件形式存在(如 /dev/sda、/dev/nvme0n1),通过字母(sda, sdb…)或数字(nvme0n1p1)区分磁盘与分区,分区表:记录分区信息的结构(常见类型:MBR、GPT),删除磁盘需先清除分区表,数据擦除:仅删除分区表可恢复数据;彻底擦除需覆盖磁盘……

    2025年7月28日
    4300
  • linux如何测试io

    Linux 中,可使用 dd、fio、hdparm 等命令或工具来测试磁盘 I/O 性能,

    2025年8月19日
    3300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信