当前位置:文档之家› linux下dhcp服务器配置(很全)

linux下dhcp服务器配置(很全)

Linux下配置完整安全的DHCP服务器详解(1)一、建立DHCP服务器配置文件二、建立客户租约文件三、启动和检查DHCP服务器四、配置DHCP客户端五、DHCP配置常见错误排除六、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(参数):表明如何执行任务,是否要执行任务,或将3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始,主要内容包括见表3:注意:如果客户端使用的是视窗操作系统,不要选择"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 ""; #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;Linux下配置完整安全的DHCP服务器详解(2)二、建立客户租约文件运行DHCP服务器还需要一个名为dhcpd.leases 的文件,保持所有已经分发出去的IP 地址。

在Redhat Linux 发行版本中,该文件位于/var/lib/dhcp/ 目录中。

如果您通过RPM 安装ISC DHCP,那么该目录应该已经存在。

dhcpd.leases的文件格式为:一个典型的文件内容如下:注意lease 开始租约时间和lease 结束租约时间是格林威治标准时间(GMT),不是本地时间。

第一次运行DHCP服务器时dhcpd.leases是一个空文件,也不用手工建立。

如果不是通过RPM 安装ISC DHCP,或者dhcpd 已经安装,那么您应该试着确定dhcpd 将其lease 文件写到何处,并确保该文件存在。

也可以手工建立一个空文件:使用命令启动DHCP服务器:使用ps命令检查dhcpd进程:使用检查dhcpd运行的端口:通常网管员使用选择手工配置DHCP 客户,需要修改/etc/sysconfig/network 文件来启用联网;并修改/etc/sysconfig/network-scripts 目录中每个网络设备的配置文件。

在该目录中,每个设备都有一个叫做ifcfg-eth?的配置文件,eth?是网络设备的名称。

如eth0等。

如果你想在引导时启动联网,NETWORKING 变量必须被设为yes。

除了此处之外/etc/sysconfig/network 文件应该包含以下行:Linux下配置完整安全的DHCP服务器详解(3)发布时间:2005.05.19 17:56 来源:赛迪网作者:曹江华五、DHCP配置常见错误排除通常配置DHCP 服务器很容易,不过,在这里有一些技巧可以帮助您避免出现问题。

对服务器而言,要确保网卡正常工作,并具备广播功能。

对客户机而言,还要确保客户机的网卡正常工作。

最后,要考虑网络的拓扑,并考虑客户机向DHCP 服务器发出的广播消息是否会受到阻碍。

另外如果dhcpd进程没有启动,那么可以浏览syslog 消息文件来确定是哪里出了问题。

这个消息文件通常是/var/log/messages。

典型故障:1.DHCP服务器配置完成,没有语法错误。

但是网络中的客户机却没办法取得IP地址。

通常是Linux DHCP服务器沒有办法接收來自255.255.255.255 的DHCP 客户机的Request 封包造成的。

一般是Linux DHCP服务器的网卡没有设置具有MULTICAST功能。

为了让dhcpd(dhcp程序的守护进程)能够正常的和DHCP客户机沟通,dhcpd必须传送封包到255.255.255.255这个IP地址,但是有些Linux系统里255.255.255.255这个IP地址被用来做为监听区域子网域(local subnet)广播的IP地址,所以需要在路由表(routing table)里加入255.255.255.255以激活MULTICAST功能;使用命令:如果报告错误消息:255.255.255.255:Unkown host那么请先修改/etc/hosts加入一行:255.255.255.255 dhcp2. DHCP客户端程序和DHCP服务器不兼容由于Linux有许多发现版本,不同版本使用DHCP客户端程序和DHCP服务器也不相同。

Linux提供了四种DHCP客户端程序:pump, dhclient, dhcpxd, 和dhcpcd。

了解不同Linux发行版本的服务器端和客户端程序对于常见错误排除是必要的。

笔者曾经遇到过使用SuSE Linux 9.1 DHCP服务器和使用Mandrake Linux 9.0客户机不兼容的情况。

此时就必须更换客户端程序。

方法是先停止客户机的网络服务,卸载原程序,安装和服务器端兼容程序。

附表:主要Linux发行版使用的DHCP客户端。

Linux下配置完整安全的DHCP服务器详解(4)发布时间:2005.05.19 17:56 来源:赛迪网作者:曹江华六、DHCP服务器的安全1. 在指定网络接口启动DHCP服务器如果你的Linux系统连接了不止一个网络界面,但是你只想让DHCP 服务器启动其中之一,你可以配置DHCP 服务器只在那个设备上启动。

在/etc/sysconfig/dhcpd 中,把界面的名称添加到DHCPDARGS 的列表中:或者直接使用命令:这样对于带有两个网卡的防火墙机器,更加安全:一个网卡可以被配置成DHCP 客户来从互联网上检索IP 地址;另一个网卡可以被用作防火墙之后的内部网络的DHCP 服务器。

仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连接它的守护进程。

2. 让DHCP服务器在监牢中运行所谓"监牢"就是指通过chroot机制来更改某个软件运行时所能看到的根目录,即将某软件运行限制在指定目录中,保证该软件只能对该目录及其子目录的文件有所动作,从而保证整个服务器的安全。

这样即使出现被破坏或被侵入,所受的损失也较小。

将软件chroot化的一个问题是该软件运行时需要的所有程序、配置文件和库文件都必须事先安装到chroot目录中,通常称这个目录为chroot jail(chroot"监牢")。

如果要在"监牢"中运行dhcpd,而事实上根本看不到文件系统中那个真正的目录。

因此需要事先创建目录,并将dhcpd复制到其中。

同时dhcpd需要几个库文件,可以使用ldd(library Dependency Display 缩写)命令,ldd作用是显示一个可执行程序必须使用的共享库。

这意味着还需要在"监牢"中创建lib目录,并将库文件复制到其中。

手工完成这一工作是非常麻烦的,此时可以用jail软件包来帮助简化chroot"监牢"建立的过程。

(1)Jail软件的编译和安装Jail官方网站是:/ ,最新版本:1.9a。

(2)用jail创建监牢jail软件包提供了几个Perl脚本作为其核心命令,包括mkjailenv、addjailuser和addjailsw。

mkjailenv:创建chroot"监牢"目录,并且从真实文件系统中拷贝基本的软件环境。

addjailsw:从真实文件系统中拷贝二进制可执行文件及其相关的其它文件(包括库文件、辅助性文件和设备文件)到该"监牢"中。

addjailuser:创建新的chroot"监牢"用户。

首先停止目前dhcpd服务,然后建立chroot目录:#/sbin/service dhcpd start#mkjailenv /chroot/mkjailenvA component of Jail (version 1.9 for linux)http://www.gsyc.inf.uc3m.es/~assman/jail/Juan M. CasillasMaking chrooted environment into /chrootDoing preinstall()Doing special_devices()Doing gen_template_password()Doing postinstall()Done.下面的例子展示为"监牢"添加dhcpd程序的过程:# addjailsw /chroot/ -P /usr/sbin/dhcpdaddjailswA component of Jail (version 1.9 for linux)http://www.gsyc.inf.uc3m.es/~assman/jail/Juan M. CasillasGuessing dhcpd args(0)Warning: file /chroot//lib/tls/libc.so.6 exists. Overwritting itWarning: file /chroot//lib/ld-linux.so.2 exists. Overwritting it………Done.不用在意那些警告信息,因为jail会调用ldd检查dhcpd用到的库文件。

相关主题