温馨提示×

Linux DHCP安全设置:如何保护DHCP服务器

小樊
40
2025-11-16 10:30:07
栏目: 云计算

Linux DHCP服务器安全加固清单

一 基础加固

  • 保持软件与系统为最新,及时修补漏洞:例如使用包管理器更新 ISC DHCP Server(isc-dhcp-server)
  • 严格配置文件与租约文件权限:
    • /etc/dhcp/dhcpd.conf:chmod 640,root:dhcpd
    • /var/lib/dhcp/dhcpd.leases:chmod 640,dhcpd:dhcpd
  • 仅监听内网接口:在 /etc/dhcp/dhcpd.conf 中设置 INTERFACESv4=“eth0”(按实际接口名调整)。
  • 启用详细日志并落盘:在 dhcpd.conf 加入 option log-facility local7;,在 /etc/rsyslog.conf 增加 local7. /var/log/dhcpd.log*,随后重启 rsyslog 并监控 /var/log/dhcpd.log
  • 启用地址冲突检测:在 dhcpd.conf 加入 ping-check on; ping-timeout 2;,降低 IP 冲突与欺骗风险。

二 配置与访问控制

  • 精细化子网与地址池:在 /etc/dhcp/dhcpd.conf 明确定义 subnet、range、routers、subnet-mask、domain-name-servers 等,避免宽松或默认配置。
  • 合理租约时间:例如 default-lease-time 600; max-lease-time 7200;,在风险较高环境可适当缩短以降低被滥用窗口。
  • 关键设备静态绑定(MAC 绑定):
    • host important-client { hardware ethernet 00:1a:2b:3c:4d:5e; fixed-address 192.168.1.100; }
  • 最小化选项暴露:仅下发必要选项,避免不必要的 domain-name-servers 等,降低客户端侧被滥用风险。
  • 防火墙仅放行 DHCP 流量:
    • 入站放行:iptables -A INPUT -p udp --dport 67:68 -j ACCEPT
    • 其他来源丢弃:iptables -A INPUT -p udp --dport 67:68 -j DROP
  • 按网段限制来源(可选):仅允许内网网段请求,例如 -s 192.168.1.0/24

三 交换机与二层防护

  • 启用 DHCP Snooping:全局开启后,将上联/合法 DHCP 服务器所在端口设为 信任,其余接入端口为 非信任,非信任端口的 DHCP 响应报文将被丢弃,阻断伪装服务器。
  • 防范 DHCP 饿死/报文洪泛:在 Snooping 基础上启用 DHCP 报文速率检测上送速率限制,超出阈值的报文直接丢弃。
  • 绑定表校验与防伪造:基于 DHCP Snooping 绑定表校验 DHCP 续租/释放报文合法性,不匹配则丢弃,降低伪造风险。
  • 防中间人:结合 DAI(动态 ARP 检测) 与 Snooping 绑定表,只有 IP/MAC/VLAN/端口一致的 ARP 报文才被转发。
  • 接入数量控制:在 Snooping 中配置 每接口/每设备最大 DHCP 客户端数量,达到上限后拒绝新申请,缓解资源耗尽。

四 监控审计与维护

  • 持续更新与补丁:定期更新 Linux 系统与 DHCP 软件,修复已知漏洞。
  • 日志集中与审计:持续监控 /var/log/dhcpd.log,关注异常 DISCOVER/OFFER/REQUEST/ACK 频率、非法 MAC/IP 组合、异常租约等。
  • 定期巡检与演练:周期性审计 dhcpd.conf 与租约文件,进行配置备份与恢复演练,确保故障时可快速重建服务。

五 快速配置示例

  • /etc/dhcp/dhcpd.conf(示例)
    option log-facility local7;
    default-lease-time 600;
    max-lease-time 7200;
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.100 192.168.1.200;
      option routers 192.168.1.1;
      option subnet-mask 255.255.255.0;
      option domain-name-servers 8.8.8.8, 8.8.4.4;
      ping-check on;
      ping-timeout 2;
    
      host important-client {
        hardware ethernet 00:1a:2b:3c:4d:5e;
        fixed-address 192.168.1.100;
      }
    }
    
  • 日志与权限
    • /etc/rsyslog.conf:local7.* /var/log/dhcpd.log
    • chmod 640 /etc/dhcp/dhcpd.conf; chown root:dhcpd /etc/dhcp/dhcpd.conf
    • chmod 640 /var/lib/dhcp/dhcpd.leases; chown dhcpd:dhcpd /var/lib/dhcp/dhcpd.leases
  • 防火墙(示例)
    • iptables -A INPUT -p udp --dport 67:68 -j ACCEPT
    • iptables -A INPUT -p udp --dport 67:68 -j DROP
  • 接口绑定
    • /etc/dhcp/dhcpd.conf:INTERFACESv4=“eth0”
  • 交换机侧(示例)
    • ip dhcp snooping
    • ip dhcp snooping vlan 10
    • interface GigabitEthernet0/0/1 → ip dhcp snooping trust
    • 可选:ip dhcp snooping limit rate …(按厂商语法配置速率限制)

0