1. 安装ISC DHCP Server
首先确保系统安装了ISC DHCP Server(Debian默认DHCP服务软件包),通过以下命令安装:
sudo apt update && sudo apt install isc-dhcp-server
2. 配置DHCP核心安全参数
编辑主配置文件/etc/dhcp/dhcpd.conf,通过以下设置限制IP分配范围、缩短租约时间及定义可信客户端:
192.168.1.10-192.168.1.100),避免IP滥用;default-lease-time 600(默认10分钟)、max-lease-time 7200(最长2小时),减少非法客户端长期占用IP的风险;host指令为特定设备(如服务器、打印机)绑定MAC地址与固定IP,防止IP冲突:host server01 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.100;
}
3. 配置访问控制列表(ACL)
在dhcpd.conf中使用allow/deny语句限制客户端访问权限,仅允许可信网络或设备获取IP:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
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;
pool {
allow members of "trusted-clients"; # 仅允许trusted-clients中的客户端
}
}
acl "trusted-clients" {
192.168.1.0/24; # 可信网段
00:11:22:33:44:55; # 特定MAC地址
}
4. 启用DHCP Snooping(交换机端配置)
DHCP Snooping是防止DHCP欺骗的关键手段,需在接入交换机上开启:
ip dhcp snooping;ip dhcp snooping trust(如interface GigabitEthernet0/1下配置);5. 配置防火墙规则
使用ufw或iptables限制DHCP服务(UDP 67/68端口)的访问范围,仅允许可信网络访问:
sudo ufw allow from 192.168.1.0/24 to any port 67 proto udp # DHCP服务器端口
sudo ufw allow from 192.168.1.0/24 to any port 68 proto udp # DHCP客户端端口
sudo ufw enable # 启用防火墙
sudo iptables -A INPUT -p udp --dport 67 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 68 -s 192.168.1.0/24 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4 # 保存规则
6. 启用权威模式与日志记录
dhcpd.conf中添加authoritative;,拒绝非法DHCP请求(如伪造的IP/MAC地址),提升服务可靠性;log-facility local7;,将DHCP日志输出到/var/log/syslog,便于监控IP分配情况及排查异常:log-facility local7; # 日志记录到local7设施
7. 定期更新与维护
保持系统及DHCP软件包最新,及时修补安全漏洞:
sudo apt update && sudo apt upgrade -y
8. 监控与审计
定期检查DHCP租约文件/var/lib/dhcp/dhcpd.leases,确认IP分配是否符合预期;使用dhcp-lease-list命令查看当前租约状态:
sudo dhcp-lease-list --lease /var/lib/dhcp/dhcpd.leases
通过以上步骤,可有效增强Debian DHCP服务的安全性,防范IP欺骗、非法分配等常见攻击。