Linux下配置完整安全的DHCP服务器详解4811.docx
-
资源ID:63483489
资源大小:39.65KB
全文页数:14页
- 资源格式: DOCX
下载积分:10金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
Linux下配置完整安全的DHCP服务器详解4811.docx
DHCPP是动态态主机配配置协议议。这个个协议用用于向计计算机自自动提供供IP地址,子网掩掩码和路路由信息息。网络络管理员员通常会会分配某某个范围围的IP地址来来分发给给局域网网上的客客户机。当当设备接接入这个个局域网网时,它它们会向向 DHHCP服服务器请请求一个个 IPP地址。然然后DHCCP服务器器为每个个请求的的设备分分配一个个地址,直直到分配配完该范范围内的的所有 IPP地址为为止。已已经分配配的IP地址必必须定时时地延长长借用期期。这个个延期的的过程称称作leaasinng,确保保了当客客户机设设备在正正常地释释放IP地址之之前突然然从网络络断开时时被分配配的地址址可以归归还给服服务器。本本文以Reddhatt Liinuxx 9.0为例,介介绍如何何建立一一个完整整和安全全的DHCCP服务器器。一、建立立DHCCP服务器器配置文文件可以以使用Reddhatt Liinuxx 9.0自身携携带rpm包安装装。安装装结束后后, DDHCPP端口监监督程序序 dhhcpdd配置文文件是/ettc目录中中的名为为dhccpd.connf的文件件。下面面手工建建立/ettc/ddhcppd.cconff文件。/ettc/ddhcppd.cconff通常包包括三部部分:paraametterss、decclarratiionss、opttionn。1.DHHCP配置文文件中的的parrameeterrs(参数数):表表明如何何执行任任务,是是否要执执行任务务,或将将哪些网网络配置置选项发发送给客客户。主要要内容见见表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地址的要求。2. DDHCPP配置文文件中的的decclarratiionss(声明明):用用来描述述网络布布局、提提供客户户的IP地址等等。主要要内容见见表2:声明解释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. DDHCPP配置文文件中的的opttionn(选项项):用用来配置置DHCCP可选参参数,全全部用opttionn关键字字作为开开始,主主要内容容包括见见表3:选项解释subnet-mask为客户端设定子网掩码。domain-name为客户端指明DNS名字。domain-name-servers为客户端指明DNS服务器IP地址。host-name为客户端指定主机名称。routers为客户端设定默认网关。broadcast-address为客户端设定广播地址。ntp-server为客户端设定网络时间服务器IP地址。timeoffset为客户端设定和格林威治时间的偏移时间,单位是秒。注意意:如果果客户端端使用的的是视窗窗操作系系统,不不要选择择"hoost-namme"选项,即即不要为为其指定定主机名名称。下面面是一个个笔者使使用的DHCCP配置文文件,这这是一个个类网网络,共共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; max-lease-time 43200; host ns hardware ethernet 52:54:AB:34:5B:09;#运行DHCP的网络接口的MAC地址# fixed-address 192.168.1.9; 二、建立立客户租租约文件件运行行DHCCP服务器器还需要要一个名名为 dhhcpdd.leeasees的文文件,保保持所有有已经分分发出去去的 IPP地址。在在Reddhatt Liinuxx发行版版本中,该该文件位位于 /vvar/libb/dhhcp/目录中中。如果果您通过过 RPPM安装 ISSC DDHCPP,那么么该目录录应该已已经存在在。dhhcpdd.leeasees的文件件格式为为:Leases addressstatement一个典典型的文文件内容容如下: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 "%content%01%content%00%content%00350240%206" #用来验证客户机的UID标示# client-hostname "cjh1" #客户机名称# 注意意leaase开开始租约约时间和和leaase结结束租约约时间是是格林威威治标准准时间(GMT),不不是本地地时间。第一一次运行行DHCCP服务器器时dhccpd.leaasess是一个个空文件件,也不不用手工工建立。如如果不是是通过 RPPM安装 ISSC DDHCPP,或者 dhhcpdd 已经经安装,那那么您应应该试着着确定 dhhcpdd将其 leeasee文件写写到何处处,并确确保该文文件存在在。也可可以手工工建立一一个空文文件:#touch /var/lib/dhcp/dhcpd.leases 三、启启动和检检查DHCCP服务器器使用用命令启启动DHCCP服务器器:#service dhcpd start 使用用ps命令检检查dhccpd进程:#ps -ef | grep dhcpdroot 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpdroot 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd 使使用检查查dhccpd运行的的端口:# netstat -nutap | grep dhcpdudp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd四、配置置DHCCP客户端端通常网网管员使使用选择择手工配配置 DHHCP客客户,需需要修改改 /eetc/syssconnfigg/neetwoork文文件来启启用联网网;并修修改 /eetc/syssconnfigg/neetwoork-scrriptts目录录中每个个网络设设备的配配置文件件。在该该目录中中,每个个设备都都有一个个叫做 iffcfgg-etth?的配置置文件,eth?是网网络设备备的名称称。如ethh0等。如如果你想想在引导导时启动动联网,NETTWORRKINNG变量量必须被设为 yees。除了此此处之外外/ettc/ssyscconffig/nettworrk文件件应该包包含以下下行:NETWORKING=yesDEVICE=eth0BOOTPROTO=dhcpONBOOT=yes五、DHHCP配置常常见错误误排除通常常配置DHCCP服务器器很容易易,不过过,在这这里有一一些技巧巧可以帮帮助您避避免出现现问题。对对服务器器而言,要要确保网网卡正常常工作,并并具备广广播功能能。对客客户机而而言,还还要确保保客户机机的网卡卡正常工工作。最最后,要要考虑网网络的拓拓扑,并并考虑客客户机向向 DHHCP服服务器发发出的广广播消息息是否会会受到阻阻碍。另另外如果果dhccpd进程没没有启动动,那么么可以浏浏览 syysloog消息息文件来来确定是是哪里出出了问题题。这个个消息文文件通常常是 /vvar/logg/meessaagess。典型型故障:1.DHHCP服务器器配置完完成,没没有语法法错误。但但是网络络中的客客户机却却没办法法取得IP地址。通常常是Linnux DHCCP服务器器沒有办办法接收收來自2555.2555.2255.2555的 DHHCP客客户机的的Reqquesst封包包造成的的。一般般是Linnux DHCCP服务器器的网卡卡没有设设置具有有MULLTICCASTT功能。为为了让dhccpd(dhccp程序的的守护进进程)能够正正常的和和DHCCP客户机机沟通,dhccpd必须传传送封包包到2555.2555.2255.2555这个IP地址,但但是有些些Linnux系统里2555.2555.2255.2555这个IP地址被被用来做做为监听听区域子子网域(loccal subbnett)广播播的IP地址,所所以需要要在路由由表(rouutinng ttablle)里加加入2555.2555.2255.2555以激活MULLTICCASTT功能;使用命令令:route add -host 255.255.255.255 dev eth0如果果报告错错误消息息:2555.2555.2255.2555:Unkkownn hoost 那么么请先修修改/ettc/hhostts加入一一行:255.2555.2555.2255 dhccp 2. DDHCPP客户端端程序和和DHCCP服务器器不兼容容由于于Linnux有许多多发现版版本,不不同版本本使用DHCCP客户端端程序和和DHCCP服务器器也不相相同。Linnux提供了了四种DHCCP客户端端程序:pummp, dhcclieent, dhhcpxxd,和和dhccpcdd。了解解不同Linnux发行版版本的服服务器端端和客户户端程序序对于常常见错误误排除是是必要的的。笔者者曾经遇遇到过使使用SuSSE LLinuux 99.1 DHCCP服务器器和使用用Manndraake Linnux 9.00客户机机不兼容容的情况况。此时时就必须须更换客客户端程程序。方方法是先先停止客客户机的的网络服服务,卸卸载原程程序,安安装和服服务器端端兼容程程序。附附表:主主要Linnux发行版版使用的的DHCCP客户端端。 发行版本 缺省 DHCP客户端 可选 DHCP客户端 DHCP客户端启动脚本 附加配置文件Red Hat Linux 9.0dhclient无/sbin/ifup/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0Debian Linux 3.0dhclient无/sbin/ifup/etc/network/interfaces/etc/dhclient.confMandrake Linux 9.1dhclientdhcpcd, dhcpxd, pump/sbin/ifup/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0/etc/dhclient-eth0.confSuSE Linux 9.1dhcpcddhclient/sbin/ifup-dhcp/etc/sysconfig/network/dhcp/etc/sysconfig/network/ifcfg-eth0六、DHHCP服务器器的安全全1.在指指定网络络接口启启动DHCCP服务器器如果果你的Linnux系统连连接了不不止一个个网络界界面,但但是你只只想让 DHHCP服服务器启启动其中中之一,你你可以配配置 DHHCP服服务器只只在那个个设备上上启动。在 /etc/sysconfig/dhcpd中,把界面的名称添加到 DHCPDARGS的列表中:DHCPDARGS=eth0或者者直接使使用命令令:Echo "DHCPDARGS=eth0" >> /etc/ sysconfig/dhcpd 这这样对于于带有两两个网卡卡的防火火墙机器器,更加加安全:一个网网卡可以以被配置置成 DHHCP客客户来从从互联网网上检索索 IPP地址;另一个个网卡可可以被用用作防火火墙之后后的内部部网络的的 DHHCP服服务器。仅仅指定连连接到内内部网络络的网卡卡使系统统更加安安全,因因为用户户无法通通过互联联网来连连接它的的守护进进程。2.让DDHCPP服务器器在监牢牢中运行行所谓谓"监牢"就是指指通过chrroott机制来来更改某某个软件件运行时时所能看看到的根根目录,即即将某软软件运行行限制在在指定目目录中,保保证该软软件只能能对该目目录及其其子目录录的文件件有所动动作,从从而保证证整个服服务器的的安全。这这样即使使出现被被破坏或或被侵入入,所受受的损失失也较小小。将软软件chrroott化的一一个问题题是该软软件运行行时需要要的所有有程序、配配置文件件和库文文件都必必须事先先安装到到chrroott目录中中,通常常称这个个目录为为chrroott jaail(chrroott"监牢")。如如果要在在"监牢"中运行dhccpd,而事事实上根根本看不不到文件件系统中中那个真真正的目目录。因因此需要要事先创创建目录录,并将将dhccpd复制到到其中。同同时dhccpd需要几几个库文文件,可可以使用用ldd(libbrarry DDepeendeencyy Diispllay缩写)命命令,ldd作用是是显示一一个可执执行程序序必须使使用的共共享库。ldd dhcpd libc.so.6 => /lib/tls/libc.so.6 (0x42000000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)style='font-family:宋体'>这意意味着还还需要在在"监牢"中创建lib目录,并并将库文文件复制制到其中中。手工工完成这这一工作作是非常常麻烦的的,此时时可以用用jaiil软件包包来帮助助简化chrroott"监牢"建立的的过程。(1)JJaill软件的的编译和和安装Jaill官方网网站是:,最新新版本:1.99a。#Wget #tar xzvf jail.tar.gz; cd jail/src#make; make install (2)用jaiil创建监监牢jaill软件包包提供了了几个Perrl脚本作作为其核核心命令令,包括括mkjaaileenv、adddjaiilusser和adddjaiilsww。mkjaaileenv:创建chrroott"监牢"目录,并并且从真真实文件件系统中中拷贝基基本的软软件环境境。adddjaiilsww:从真真实文件件系统中中拷贝二二进制可可执行文文件及其其相关的的其它文文件(包包括库文文件、辅辅助性文文件和设设备文件件)到该该"监牢"中。adddjaiilusser:创建建新的chrroott"监牢"用户。首先先停止目目前dhccpd服务,然然后建立立chrroott目录:#/sbin/service dhcpd start#mkjailenv /chroot/mkjailenvA component of Jail (version 1.9 for linux)Juan M. Casillas Making chrooted environment into /chroot Doing preinstall() Doing special_devices() Doing gen_template_password() Doing postinstall()Done. 下下面的例例子展示示为"监牢"添加dhccpd程程序的过过程:# addjailsw /chroot/ -P /usr/sbin/dhcpdaddjailswA component of Jail (version 1.9 for linux)Juan M. Casillas Guessing dhcpd args(0)Warning: file /chroot/lib/tls/libc.so.6 exists. Overwritting itWarning: file /chroot/lib/ld-linux.so.2 exists. Overwritting itDone. 不不用在意意那些警警告信息息,因为为jaiil会调用ldd检查dhccpd用到的的库文件件。而几几乎所有有基于共共享库的的二进制制可执行行文件都都需要上上述的几几个库文文件。接接下来将将dhccpd的相关关文件拷拷贝到"监牢"中:# mkdir -p /chroot/dhcp/etc# cp /etc/dhcpd.conf /chroot/dhcp/etc/# mkdir -p /chroot/dhcp/var/state/dhcp# touch /chroot/dhcp/var/state/dhcp/dhcp.leases重新新启动dhccpd:rootwww root# /chroot/usr/sbin/dhcpd 使用用ps命令检检查dhccpd进程:#ps -ef | grep dhcpdroot 2402 1 0 14:25 ? 00:00:00 /chroot/usr/sbin/dhcpd root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd 注意此此时进程程名称已已经改变变,使用用检查dhccpd运行的的端口:# netstat -nutap | grep dhcpdudp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd 端端口号没没有改变变。现在在dhccpd已经成成功运行行在"监牢"中。到到此为止止一个这这样,一一个完整整和安全全的 DHHCP服务器器就完成成了。