本文详细介绍Linux下配置完整安全的DHCP服务器详解
DHCP是动态主机配置协议.这个协议用于向计算机自动提供IP地址,子网掩码和路由信息。网络管理员通常会分配某个范围的IP地址来分发给局域网上的客户机。当设备接入这个局域网时,它们会向 DHCP 服务器请求一个 IP 地址。然后DHCP服务器为每个请求的设备分配一个地址,直到分配完该范围内的所有 IP 地址为止。已经分配的IP地址必须定时地延长借用期。这个延期的过程称作leasing,确保了当客户机设备在正常地释放IP地址之前突然从网络断开时被分配的地址可以归还给服务器。本文以Redhat Linux 9.0为例,介绍如何建立一个完整和安全的DHCP服务器。
一、建立DHCP服务器配置文件
可以使用Redhat Linux 9.0自身携带rpm包安装。安装结束后, DHCP 端口监督程序 dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件。/etc/dhcpd.conf通常包括三部分:parameters、declarations 、option。
1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。主要内容见表1
| 参数 | 解释 |
| ddns-update-style | 配置DHCP-DNS 互动更新模式。 |
| default-lease-time | 指定确省租赁时间的长度,单位是秒。 |
| max-lease-time | 指定最大租赁时间长度,单位是秒。 |
| hardware | 指定网卡接口类型和MAC地址。 |
| server-name | 通知DHCP客户服务器名称。 |
| get-lease-hostnames flag | 检查客户端使用的IP地址。 |
| fixed-address ip | 分配给客户端一个固定的地址。 |
| authritative | 拒绝不正确的IP地址的要求。 |
| 声明 | 解释 |
| shared-network | 用来告知是否一些子网络分享相同网络。 |
| subnet | 描述一个IP地址是否属于该子网。 |
| range 起始IP 终止IP | 提供动态分配IP 的范围。 |
| host 主机名称 | 参考特别的主机。 |
| group | 为一组参数提供声明。 |
| allow unknown-clients ﹔deny unknown-client | 是否动态分配IP给未知的使用者。 |
| allow bootp;deny bootp | 是否响应激活查询。 |
| allow booting﹔deny booting | 是否响应使用者查询。 |
| filename | 开始启动文件的名称,应用于无盘工作站。 |
| next-server | 设置服务器从引导文件中装如主机名,应用于无盘工作站。 |
3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始,主要内容包括见表3:
| 选项 | 解释 |
| subnet-mask | 为客户端设定子网掩码。 |
| domain-name | 为客户端指明DNS名字。 |
| domain-name-servers | 为客户端指明DNS服务器IP地址。 |
| host-name | 为客户端指定主机名称。 |
| routers | 为客户端设定默认网关。 |
| broadcast-address | 为客户端设定广播地址。 |
| ntp-server | 为客户端设定网络时间服务器IP地址。 |
| time-offset | 为客户端设定和格林威治时间的偏移时间,单位是秒。 |
注意:如果客户端使用的是视窗操作系统,不要选择"host-name"选项,即不要为其指定主机名称。
下面是一个笔者使用的DHCP配置文件,这是一个C类网络,共126个IP地址可以分配的例子。读者可以复制后使用,注意红色部分是必须要修改的。
| ddns-update-style interim; ignore client-updates; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option domain-name-servers 192.168.1.3; option domain-name "www.cao.com"; #DNS名称# option domain-name-servers 192.168.1.3; option time-offset -18000; range dynamic-bootp 192.168.1.128 192.168.1.255; default-lease-time 21600; max-lease-time 43200; host ns { hardware ethernet 52:54:AB:34:5B:09;#运行DHCP的网络接口的MAC地址# fixed-address 192.168.1.9; } } |
二、建立客户租约文件
运行DHCP服务器还需要一个名为 dhcpd.leases 的文件,保持所有已经分发出去的 IP 地址。在Redhat Linux 发行版本中,该文件位于 /var/lib/dhcp/ 目录中。如果您通过 RPM 安装 ISC DHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:
| Leases address {statement} |
一个典型的文件内容如下:
| lease 192.168.1.255 { #DHCP服务器分配的IP地址# starts 1 2005/05/02 03:02:26; # lease 开始租约时间# ends 1 2005/05/02 09:02:26; # lease 结束租约时间# binding state active; next binding state free; hardware ethernet 00:00:e8:a0:25:86; #客户机网卡MAC地址# uid " |