Ubuntu系统中,DHCP服务的安全设置需围绕基础配置加固、访问控制、加密通信、攻击防护及监控审计五大维度展开,以下是具体步骤:
安装ISC DHCP服务器
通过APT包管理器安装最新稳定版本的ISC DHCP服务器:
sudo apt update && sudo apt install isc-dhcp-server -y 配置DHCP参数
编辑/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小时 } 指定监听接口
编辑/etc/default/isc-dhcp-server文件,明确DHCP服务器仅监听物理接口(如eth0),避免监听虚拟接口(如docker0):
INTERFACESv4="eth0" # 替换为实际使用的接口名称(可通过`ip a`命令查看) 启动服务并设置开机自启
启动DHCP服务并配置开机自动启动:
sudo systemctl restart isc-dhcp-server sudo systemctl enable isc-dhcp-server 配置防火墙规则
使用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 绑定MAC地址
在dhcpd.conf中通过host语句限制仅特定MAC地址能获取IP地址(适用于固定设备场景):
host printer { hardware ethernet 00:1A:2B:3C:4D:5E; # 设备MAC地址 fixed-address 192.168.1.50; # 分配固定IP } 禁用不必要的服务
关闭DHCP服务器的远程管理功能(如dhcpd的远程控制端口),避免暴露额外攻击面。
使用TLS/SSL加密通信
通过配置dhcpd的tls选项,启用DHCP通信加密(需提前生成证书):
# 在dhcpd.conf中添加(需替换为实际证书路径) tls-server-cert "/etc/dhcp/dhcpd.crt"; tls-server-key "/etc/dhcp/dhcpd.key"; tls-ca-cert "/etc/dhcp/ca.crt"; 注:需提前使用
openssl生成自签名证书或申请CA签名证书。
启用DHCP身份验证
在dhcpd.conf中配置共享密钥,确保只有授权客户端能获取IP地址:
shared-network secure_net { key "dhcp_key" { algorithm hmac-md5; secret "your_secure_secret_key"; # 强密码(至少12位,含大小写、数字、符号) } 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; # 客户端需配置相同key才能获取IP } } DHCP饿死攻击
在交换机上启用DHCP Snooping功能(需交换机支持),仅允许信任接口(连接DHCP服务器的接口)发送DHCP响应,阻止非法DHCP服务器耗尽地址池:
# 交换机配置示例(Cisco交换机) interface GigabitEthernet0/1 ip dhcp snooping trust # 标记为信任接口 ip dhcp snooping vlan 10 # 启用VLAN 10的DHCP Snooping MAC地址欺骗
结合交换机的端口安全功能,限制每个端口仅允许绑定特定MAC地址(如一台PC对应一个MAC),防止伪造MAC地址获取多个IP:
# 交换机配置示例 interface GigabitEthernet0/2 switchport mode access switchport port-security maximum 1 # 限制1个MAC地址 switchport port-security violation restrict # 违规时丢弃流量并告警 IP源守卫
在交换机上启用IP Source Guard,绑定IP与MAC地址,阻止非法设备伪造IP地址发送流量:
# 交换机配置示例 interface GigabitEthernet0/3 ip verify source port-security # 开启IP源守卫 定期更新系统与软件
保持Ubuntu系统和isc-dhcp-server软件包为最新版本,修复已知安全漏洞:
sudo apt update && sudo apt upgrade -y 监控日志与告警
使用journalctl查看DHCP服务日志,或通过logwatch、fail2ban工具分析异常行为(如频繁的DHCP请求):
sudo journalctl -u isc-dhcp-server -f # 实时查看DHCP日志 sudo fail2ban-client status dhcpd # 检查fail2ban对DHCP的防护状态 备份配置文件
定期备份dhcpd.conf和网络接口配置文件,防止配置丢失或被篡改:
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak sudo cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.bak 通过以上步骤,可有效提升Ubuntu DHCP服务的安全性,防范常见的DHCP攻击(如饿死攻击、仿冒服务器攻击、MAC地址欺骗等),保障网络环境的稳定与可靠。