首先通过以下命令安装ISC DHCP服务器(Ubuntu默认仓库中的稳定版本):
sudo apt update && sudo apt install isc-dhcp-server -y
编辑主配置文件/etc/dhcp/dhcpd.conf,定义IP地址池、网关、DNS等核心参数(示例):
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; # DNS服务器
default-lease-time 600; # 默认租期(10分钟)
max-lease-time 7200; # 最大租期(2小时)
}
指定DHCP服务器监听的网络接口(编辑/etc/default/isc-dhcp-server):
INTERFACESv4="eth0"(仅允许指定接口接收DHCP请求,减少攻击面)。
攻击场景:攻击者通过大量虚假请求耗尽DHCP地址池,导致合法用户无法获取IP。
防范措施:
dhcpd.conf中缩小range参数的IP段(如仅分配100-200个地址),避免过度分配;攻击场景:攻击者搭建非法DHCP服务器,向客户端分配错误网关/DNS,实施中间人攻击。
防范措施:
攻击场景:攻击者伪造MAC地址发送大量DHCP请求,或截获ARP通信篡改网络参数。
防范措施:
dhcpd.conf中通过host语句限制特定MAC地址的访问(示例):host trusted-device {
hardware ethernet 00:1A:2B:3C:4D:5E; # 允许的MAC地址
fixed-address 192.168.1.150; # 分配固定IP
}
使用ufw(Uncomplicated Firewall)限制DHCP服务的访问范围,仅允许内网客户端访问UDP 67端口(DHCP服务端口):
sudo ufw allow from 192.168.1.0/24 to any port 67 proto udp # 仅允许192.168.1.0/24网段访问
sudo ufw reload # 重新加载防火墙规则
若需更高安全性,可通过IPsec或TLS加密DHCP通信(需额外配置证书与密钥),防止报文被截获篡改。
定期更新Ubuntu系统与DHCP服务器软件,修复已知安全漏洞:
sudo apt update && sudo apt upgrade -y # 更新所有软件包
启用DHCP服务日志,通过journalctl或logwatch工具监控异常请求(如大量重复请求、非法MAC地址):
sudo systemctl status isc-dhcp-server # 查看服务运行状态
sudo journalctl -u isc-dhcp-server -f # 实时查看日志
定期备份/etc/dhcp/dhcpd.conf(核心配置文件)与/var/lib/dhcp/dhcpd.leases(地址租约文件),防止数据丢失:
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak # 备份配置文件
sudo cp /var/lib/dhcp/dhcpd.leases /var/lib/dhcp/dhcpd.leases.bak # 备份租约文件
通过以上步骤,可显著提升Ubuntu DHCP服务器的安全性,有效防范常见攻击并保障网络稳定性。实际部署时需根据网络环境调整参数(如地址池范围、信任端口),并参考最新官方文档优化配置。