Linux DHCP服务器安全设置与加固清单
一 基础加固
sudo apt update && sudo apt upgrade isc-dhcp-server;变更前后做好配置与回滚预案。sudo chmod 640 /etc/dhcp/dhcpd.conf && sudo chown root:dhcpd /etc/dhcp/dhcpd.confsudo chmod 640 /var/lib/dhcp/dhcpd.leases && sudo chown dhcpd:dhcpd /var/lib/dhcp/dhcpd.leases/etc/default/isc-dhcp-server,设置 INTERFACESv4="eth0"(按实际接口名调整)。dhcpd.conf 中加入 option log-facility local7;,并在 /etc/rsyslog.conf 增加 local7.* /var/log/dhcpd.log,随后重启 rsyslog 与 dhcpd 使配置生效。dhcpd.conf 中加入 ping-check on; ping-timeout 2;。default-lease-time 600; max-lease-time 7200;(可按访客网络、办公网等分区设置不同值)。二 访问控制与地址治理
allow known-clients; deny unknown-clients;,并为关键主机做 MAC 绑定(静态分配):
host important-client { hardware ethernet 00:1a:2b:3c:4d:5e; fixed-address 192.168.1.100; }range 精确限定可用地址段;在汇聚/接入交换机侧可按 VLAN/端口 限制可接入设备数量,避免地址池被耗尽。三 防火墙与网络协同
sudo firewall-cmd --add-service=dhcp --permanent && sudo firewall-cmd --reloadsudo ufw allow 67/udp; sudo ufw allow 68/udpsudo iptables -A INPUT -p udp -s 192.168.1.0/24 --dport 67 -j ACCEPTsudo iptables -A INPUT -p udp -s 192.168.1.0/24 --dport 68 -j ACCEPTsudo iptables -A INPUT -p udp --dport 67 -j DROPsudo iptables -A INPUT -p udp --dport 68 -j DROP四 监控审计与应急响应
dhcpd 日志写入 /var/log/dhcpd.log,结合 rsyslog 或 SIEM 做关键字告警(如频繁 DISCOVER/REQUEST、异常 MAC OUI、未知客户端)。sudo tcpdump -ni eth0 -vv udp port 67 or udp port 68 定位异常 DHCP 报文来源与行为。dhcpd.conf 与租约文件变更、核对绑定表与 ARP 表一致性、验证防火墙规则命中与日志完整性;对“地址池接近耗尽、异常仿冒服务器、报文洪泛”等场景制定处置预案并演练。五 最小化配置示例
# /etc/dhcp/dhcpd.conf 片段(示例网段 192.168.1.0/24)
option domain-name "example.com";
option domain-name-servers 192.168.1.2, 192.168.1.3;
option routers 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
ping-check on;
ping-timeout 2;
option log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
allow known-clients;
deny unknown-clients;
host important-client {
hardware ethernet 00:1a:2b:3c:4d:5e;
fixed-address 192.168.1.100;
}
}
# 注意:在 /etc/default/isc-dhcp-server 中设置 INTERFACESv4="eth0"
/etc/rsyslog.conf 增加 local7.* /var/log/dhcpd.log,重启 rsyslog 与 dhcpd。sudo ufw allow 67/udp; sudo ufw allow 68/udp)。