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

相关推荐

  • 占用TCP端口8080如何终止?

    端口占用的原理端口分类0-1023:系统特权端口(需root权限),如HTTP(80)、SSH(22),1024-49151:用户端口,供普通应用程序使用,49152-65535:动态/私有端口,占用本质进程通过调用bind()系统调用绑定IP和端口,再通过listen()进入监听状态,手动占用端口的步骤方法1……

    2025年6月22日
    3400
  • linux如何配置bgp

    Linux上配置BGP,需使用相关网络配置工具(如BIRD、FRR等

    2025年8月10日
    1400
  • Linux日志查看有哪些高效技巧?

    核心日志位置Linux日志通常存储在 /var/log 目录:系统日志:/var/log/syslog(Debian/Ubuntu)或 /var/log/messages(RHEL/CentOS)认证日志:/var/log/auth.log(记录登录、sudo操作)内核日志:/var/log/kern.log应……

    2025年6月22日
    3600
  • 安装命令该选哪个发行版?

    安装命令因Linux发行版而异:Debian/Ubuntu使用apt install,Red Hat/CentOS用yum install或dnf install,Arch/Manjaro用pacman -S,openSUSE则用zypper install。

    2025年8月7日
    1800
  • Linux如何创建目录符号链接?

    符号链接(软链接)与硬链接的区别类型符号链接(Soft Link)硬链接(Hard Link)适用对象目录和文件均可仅限文件(不支持目录)存储原理存储目标路径的引用(类似快捷方式)直接指向文件的物理数据块(inode)跨文件系统支持 ✔️不支持 ❌删除原目标链接失效 ❌链接仍有效 ✔️(数据不删除)创建命令ln……

    2025年6月21日
    3800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信