每次 dhcp 服务启动时,它不仅会监听 0.0.0.0:67,还会监听 0.0.0.0:PORT,其中 PORT 是一个随机数。
有谁知道这种行为从何而来?
root@OpenWrt:/# netstat -ntapue
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 10.0.16.1:22 0.0.0.0:* LISTEN 898/sshd
netstat: /proc/net/tcp6: No such file or directory
udp 0 0 10.0.16.1:514 0.0.0.0:* 922/syslog-ng
udp 0 0 0.0.0.0:60738 0.0.0.0:* 1290/dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 1290/dhcpd
udp 0 0 10.0.16.1:69 0.0.0.0:* 974/tftpd-hpa
netstat: /proc/net/udp6: No such file or directory
我的配置是:
# dhcpd.conf
ddns-updates off;
authoritative;
# don't let clients modify their own A records
ignore client-updates;
default-lease-time 3600;
max-lease-time 86400;
option domain-name "lan";
option domain-name-servers 212.24.188.130, 212.24.188.131;
subnet 10.0.16.0 netmask 255.255.255.0 {
host marvin
{ hardware ethernet 48:5D:11:2F:22:31;
fixed-address 10.0.16.202; }
range 10.0.16.207 10.0.16.209;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.16.255;
option routers 10.0.16.1;
deny unknown-clients;
next-server 10.0.16.1;
filename "pxelinux.0";
}
答案1
在 google 中搜索后发现这是一种错误:
https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/1176046
在启动板上还有一个指向所建议解决方案的链接(使用 ./configure 脚本的额外选项从源代码构建包):
http://forums.debian.net/viewtopic.php?f=10&t=95273
我已经检查了 ISC DHCPD 的最新稳定版本(4.2.5-P1)和开发版本(4.2.6b1 和 4.3.0b1)的发行说明,这个错误似乎尚未得到修复。
为了让 OpenWRT 使用自定义选项从源代码重建包,您需要使用适合您路由器架构的交叉编译器构建您自己的 opkg 包,甚至重建整个 OpenWRT 映像:http://wiki.openwrt.org/doc/devel/packages
因此,为了解决安全问题,我建议您使用防火墙阻止除需要之外的所有端口(22、67、69、514)。