服务器白名单在哪里设置?新手如何找到配置入口?

小白
预计阅读时长 12 分钟
位置: 首页 服务器 正文

服务器白名单的设置位置取决于您使用的操作系统、服务器软件或云服务平台,不同环境下的白名单配置方式差异较大,以下将分场景详细介绍常见的服务器白名单设置方法,帮助您快速定位并完成配置。

服务器白名单在哪里设置?新手如何找到配置入口?

操作系统层面的白名单设置

Linux系统防火墙(iptables/firewalld)

对于基于Linux的服务器,操作系统自带的防火墙工具是控制访问权限的第一道防线。

  • iptables(适用于CentOS 7及以下版本):
    白名单可通过iptabless(源IP)和j ACCEPT规则实现,仅允许IP为168.1.100168.1.101的设备访问SSH端口(22):

    iptables A INPUT p tcp dport 22 s 192.168.1.100 j ACCEPT
    iptables A INPUT p tcp dport 22 s 192.168.1.101 j ACCEPT
    iptables A INPUT p tcp dport 22 j DROP  # 拒绝其他IP

    规则需保存至/etc/sysconfig/iptables或使用service iptables save持久化。

  • firewalld(适用于CentOS 7+/RHEL/Fedora):
    通过rich rulesdirect规则实现白名单,添加允许的IP到SSH服务:

    firewallcmd permanent addrichrule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
    firewallcmd reload

    或使用addsource直接允许IP访问所有开放端口,需结合zone参数指定区域(如public)。

Windows系统防火墙

Windows Server可通过高级安全防火墙配置白名单:

  1. 打开“高级安全Windows Defender防火墙”,点击“入站规则”。
  2. 右键选择“新建规则”,选择“自定义”→“所有程序”。
  3. 在“协议和端口”中指定协议(如TCP)和端口(如3389 for RDP)。
  4. 在“作用域”中,将“远程IP地址”设置为“下列IP地址”,并添加允许的IP段(如168.1.0/24)。
  5. 规则操作选择“允许连接”,命名后启用。

服务器软件层面的白名单设置

Web服务器(Apache/Nginx)

  • Apache
    通过.htaccess或虚拟主机配置文件结合mod_authz_host模块实现,仅允许特定IP访问目录:

    <Directory /var/www/private>
      Require ip 192.168.1.100 192.168.1.101
      Require all denied
    </Directory>

    修改后需重启Apache服务(systemctl restart httpd)。

    服务器白名单在哪里设置?新手如何找到配置入口?

  • Nginx
    使用allowdeny指令,限制访问/admin路径:

    location /admin {
      allow 192.168.1.100;
      allow 192.168.1.101;
      deny all;
    }

    配置完成后执行nginx s reload生效。

数据库服务器(MySQL/PostgreSQL)

  • MySQL
    mysql.user表中直接限制主机权限,仅允许168.1.%网段的用户admin登录:

    UPDATE mysql.user SET Host='192.168.1.%' WHERE User='admin';
    FLUSH PRIVILEGES;

    或创建新用户时指定主机:CREATE USER 'readonly'@'192.168.1.100' IDENTIFIED BY 'password';

  • PostgreSQL
    修改pg_hba.conf文件,添加白名单规则。

    host    all             all             192.168.1.100/32          md5
    host    all             all             192.168.1.101/32          md5

    重启PostgreSQL服务(systemctl restart postgresql)后生效。

SSH服务

  • Linux SSH:编辑/etc/hosts.allow/etc/hosts.deny(需安装tcp_wrappers)。

    # /etc/hosts.allow
    sshd: 192.168.1.100, 192.168.1.101
    # /etc/hosts.deny
    sshd: ALL
  • Windows SSH:通过Windows防火墙规则或第三方工具(如OpenSSH的sshd_config中的AllowUsers指令)实现。

    服务器白名单在哪里设置?新手如何找到配置入口?

云服务平台的白名单设置

阿里云ECS

在ECS控制台的“安全组”中配置:

  1. 创建安全组,添加入站规则。
  2. 在“授权对象”中输入允许的IP地址或安全组ID。
  3. 选择协议和端口(如TCP/22),优先级设置为“1”(最高优先级)。

AWS EC2

通过“安全组(Security Group)”实现:

  1. 进入EC2控制台,选择目标安全组。
  2. 添加入站规则,源(Source)设置为“自定义IP”,输入允许的IP段(如168.1.0/24)。
  3. 确认规则后自动保存。

腾讯云CVM

在“安全组”配置中:

  1. 创建安全组规则,选择“授权IP”模式。
  2. 输入允许的IP地址,指定端口和协议。
  3. 支持批量导入IP列表(如通过CSV文件)。

注意事项

  1. 测试优先:配置前确保当前IP在白名单中,避免因误操作导致无法访问。
  2. 最小权限原则:仅开放必要的端口和IP,减少安全风险。
  3. 日志监控:定期检查防火墙或服务日志,识别未授权访问尝试。
  4. 动态IP处理:若客户端IP可能变化,可使用IP段或域名解析(如*.example.com)。

相关问答FAQs

Q1: 白名单和黑名单有什么区别?如何选择?
A: 白名单(允许列表)仅明确授权的IP/用户可访问,安全性更高但配置严格;黑名单(拒绝列表)阻止特定IP,其他默认允许,适合已知威胁场景,建议对核心服务(如数据库、管理后台)使用白名单,对公共接口(如网站)使用黑名单+防火墙组合策略。

Q2: 修改白名单后无法立即生效怎么办?
A: 首先检查配置语法是否正确(如Nginx的nginx t、MySQL的mysql u root e "SELECT * FROM mysql.user"),确认服务已重启(如systemctl restart firewalld),云平台需等待15分钟规则同步,若仍无效,可能是缓存问题(如清除浏览器缓存或重启服务器实例)。

-- 展开阅读全文 --
头像
服务器如何设置USB启动?详细步骤与注意事项
« 上一篇 2025-12-12
服务器内存和磁盘空间不足会影响网站速度吗?
下一篇 » 2025-12-12
取消
微信二维码
支付宝二维码

最近发表

动态快讯

网站分类

标签列表

目录[+]