插件窝 干货文章 Linux DHCP安全设置:如何保护DHCP服务

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

DHCP sudo dhcpd 879    来源:    2025-05-05

Linux DHCP安全设置指南

DHCP服务是网络基础设施的重要组成部分,但也可能成为攻击目标。以下是保护Linux DHCP服务的综合安全措施:

1. 使用最新版本的DHCP服务器软件

# 对于ISC DHCP服务器
sudo apt update && sudo apt upgrade isc-dhcp-server

# 对于dnsmasq
sudo apt update && sudo apt upgrade dnsmasq

2. 配置文件和目录权限

# 设置配置文件权限
sudo chmod 640 /etc/dhcp/dhcpd.conf
sudo chown root:dhcpd /etc/dhcp/dhcpd.conf

# 设置租约文件权限
sudo chmod 640 /var/lib/dhcp/dhcpd.leases
sudo chown dhcpd:dhcpd /var/lib/dhcp/dhcpd.leases

3. 网络接口绑定

/etc/default/isc-dhcp-server中指定服务监听的接口:

INTERFACESv4="eth0"
INTERFACESv6=""

4. 日志监控

# 配置日志记录
sudo nano /etc/dhcp/dhcpd.conf

添加:

log-facility local7;

然后在/etc/rsyslog.conf中添加:

local7.* /var/log/dhcpd.log

5. 启用地址冲突检测

ping-check on;
ping-timeout 2;

6. 限制租约范围

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 domain-name-servers 8.8.8.8, 8.8.4.4;
}

7. MAC地址绑定(静态分配)

host important-client {
  hardware ethernet 00:1a:2b:3c:4d:5e;
  fixed-address 192.168.1.50;
}

8. 启用DHCP Snooping(交换机层面)

这不是DHCP服务器本身的设置,但应在网络交换机上配置:

switch(config)# ip dhcp snooping
switch(config)# ip dhcp snooping vlan 10
switch(config)# interface fastEthernet 0/1
switch(config-if)# ip dhcp snooping trust

9. 防火墙规则

# 允许DHCP请求
sudo iptables -A INPUT -i eth0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT

# 拒绝其他所有DHCP流量
sudo iptables -A INPUT -p udp --dport 67:68 -j DROP

10. 使用DHCPv6防护

# 在dhcpd6.conf中
deny unknown-clients;

11. 定期审计

# 检查异常租约
sudo grep -i "unusual" /var/log/dhcpd.log

# 检查配置更改
sudo aide --check

12. 考虑使用DHCP Failover

# 主服务器配置
failover peer "dhcp-failover" {
  primary;
  address 192.168.1.2;
  port 647;
  peer address 192.168.1.3;
  peer port 647;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;
  split 128;
  load balance max seconds 3;
}

# 从服务器配置
failover peer "dhcp-failover" {
  secondary;
  address 192.168.1.3;
  port 647;
  peer address 192.168.1.2;
  peer port 647;
  max-response-delay 60;
  max-unacked-updates 10;
  load balance max seconds 3;
}

13. 使用SELinux/AppArmor

# 检查SELinux状态
sudo sestatus

# 如果启用,确保DHCP有正确的上下文
sudo restorecon -Rv /etc/dhcp
sudo restorecon -Rv /var/lib/dhcpd

通过实施这些安全措施,您可以显著提高DHCP服务的安全性,防止常见的攻击如DHCP欺骗、耗尽攻击和中间人攻击。