Rob Turner 发布的文章

Devuan Linux 是 Debian 最新的复刻版本,是基于 Debian 的一个被设计为完全去除了 systemd 的版本。

Devuan 宣布于 2014 年底,并经过了一段活跃的开发。最新的发行版本是 beta2,发行代号为: Jessie (没错,和当前 Debian 的稳定版同名)。

当前稳定版的最后发行据说会在 2017 年初。如果想了解关于该项目的更多信息,请访问社区官网:https://devuan.org/

本文将阐述 Devuan 当前发行版的安装。在 Debian 上可用的大多数软件包在 Devuan 上也是可用的,这有利于用户从 Debian 到 Devuan 的无缝过渡,他们应该更喜欢自由选择自己的初始化系统。

系统要求

Devuan 和 Debian 类似,对系统的要求非常低。最大的决定性因素是,用户希望使用什么样的桌面环境。这篇指南假设用户将使用一个“俗气的”桌面环境,建议至少满足下面所示的最低系统要求:

  1. 至少 15GB 的硬盘空间;强烈鼓励有更大空间
  2. 至少 2GB 的内存空间;鼓励更多
  3. 支持 USB 或 CD/DVD 启动
  4. 网络连接;安装过程中将会从网上下载文件

Devuan Linux 安装

正如所有的指南一样,这篇指南假设你有一个 USB 驱动器,可作为安装媒介。注意,USB 驱动器应该有大约 4GB 或 8 GB 大,并且需要删除所有数据

作者在使用太大的 USB 驱动器遇到过问题,不过你的也许可以工作。无论如何,在接下来的一些步骤中,将导致 USB 驱动上的数据全部丢失

在开始准备安装之前,请先备份 USB 驱动器上的所有数据。这个可启动的 Linux USB 启动器要在另一个 Linux 系统上创建。

1、首先,从 https://devuan.org/ 获取最新发行版的 Devuan 安装镜像,或者,你也可以在 Linux 终端上输入下面的命令来获取安装镜像:

$ cd ~/Downloads
$ wget -c https://files.devuan.org/devuan_jessie_beta/devuan_jessie_1.0.0-beta2_amd64_CD.iso

2、上面的命令将会把安装镜像文件下载到用户的 Downloads 目录。下一步是把安装镜像写入 USB 驱动器中,从而启动安装程序。

为了写入镜像,需要使用一个在 Linux 中叫做 dd 的工具。首先,需要使用 lsblk 命令来定位硬盘名字:

$ lsblk

Find Device Name in Linux

找到 Linux 中的设备名字

USB 驱动器的名字为 /dev/sdc,现在,可以使用 dd 工具把 Devuan 镜像写入驱动器中:

$ sudo dd if=~/Downloads/devuan_jessie_1.0.0-beta2_amd64_CD.iso of=/dev/sdc

重点:上面的命令需要有 root 权限,你可以使用 sudo 或者以 root 用户登录来运行命令。同时,这个命令将会删除 USB 驱动器上的所有数据,所以请确保备份了需要的数据。

3、当镜像写入 USB 驱动器以后,把 USB 驱动器插入要安装 Devuan 的电脑上,然后从 USB 驱动器启动电脑。

从 USB 驱动器成功启动以后,将会出现下面所示的屏幕,你需要在 “Install” 和 “Graphical Install” 这两个选项间选择一个继续安装进程。

在这篇指南中,我将使用 “Graphical Install” 方式。

Devuan Graphic Installation

Devuan Graphic 安装

4、当安装程序启动到“本地化”菜单以后,将会提示用户选择键盘布局和语言。只需选择你想要的选项,然后继续安装。

Devuan Language Selection

Devuan 语言选择

Devuan Location Selection

Devuan 地区选择

Devuan Keyboard Configuration

Devuan 键盘配置

5、下一步是向安装程序提供主机名和该机器所属的域名。

需要填写一个唯一的主机名,但如果电脑不属于任何域,那么域名可以不填。

Set Devuan Linux Hostname

设置 Devuan Linux 的主机名

Set Devuan Linux Domain Name

设置 Devuan Linux 的域名

6、填好主机名和域名信息以后,需要提供一个 root 用户密码。

请务必记住这个密码,因为当你在这台 Devuan 机器上执行管理任务时需要提供这个密码。默认情况下, Devuan 不会安装 sudo 包,所以当安装完成以后,管理用户就是 root 用户。

Setup Devuan Linux Root User

设置 Devuan Linux Root 用户

7、下一步需要做的事情是创建一个非 root 用户。在任何可能的情况下,避免以 root 用户使用系统总是更好的。此时,安装程序将会提示你创建一个非 root 用户。

Setup Devuan Linux User Account

创建 Devuan Linux 用户账户

8、一旦输入 root 用户密码,提示非 root 用户已经创建好以后,安装程序将会请求通过 NTP 设置时钟

这时需要再次连接网络,大多数系统都需要这样。

Devuan Linux Timezone Setup

设置 Devuan Linux 的时区

9、下一步需要做的是系统分区。对于绝大多数用户来说,选择“Guided – use entire disk”就够了。然而,如果需要进行高级分区,就需要进行分区。

Devuan Linux Partitioning

Devuan Linux 分区

在上面点击 “continue” 以后,请确认分区更改,从而把分区信息写入硬盘。

10、分区完成以后,安装程序为 Devuan 安装一些基础文件。这个过程将会花费几分钟时间,直到系统开始配置网络镜像(软件库)才会停下来。当提示使用网络镜像时,通常点击 “yes”。

Devuan Linux Configure Package Manager

Devuan Linux 配置包管理器

点击 “yes” 以后将会给用户呈现一系列以国家分类的网络镜像。通常最好选择地理位置上离你的机器最近的镜像。

Devuan Linux Mirror Selection

Devuan Linux 镜像选择

Devuan Linux Mirrors

Devuan Linux 镜像

11、下一步是设置 Debian 传统的 “popularity contest”,它能够追踪已下载包的使用统计。

在安装过程中,可以在管理员首选项中启用或禁用该功能。

Configure Devuan Linux Popularity Contest

配置 Devuan Linux 的 Popularity Contest

12、在简单浏览仓库和一些包的更新以后,安装程序会给用户展示一系列软件包,安装这些包可以提供一个桌面环境、SSH 访问和其它系统工具。

Devuan 会列举出一些主流桌面环境,但应该指出的是,并不是所有的桌面在 Devuan 上均可用。作者在 Devuan 上成功使用过 Xfce 、LXDE 和 Mate(未来的文章将会探究如何从源代码安装这些桌面环境)。

如果想要安装别的桌面环境,不要勾选 “Devuan Desktop Environment” 复选框。

Devuan Linux Software Selection

Devuan Linux 软件选择

根据在上面的安装屏幕中选择的项目数,可能需要几分钟的时间来下载和安装软件。

当所有的软件都安装好以后,安装程序将会提示用户选择 grub 的安装位置。典型情况是选择安装在 /dev/sda 目录下。

Devuan Linux Grub Install

Devuan Linux 安装 grub 引导程序

Devuan Linux Grub Install Disk

Devuan Linux Grub 程序的安装硬盘

13、当 GRUB 程序成功安装到引导驱动器以后,安装程序将会提示用户安装已经完成,请重启系统。

Devuan Linux Installation Completes

Devuan Linux 安装完成

14、如果安装顺利完成了,那么系统要么启动到选择桌面环境,或者如果没有选择桌面环境的话,会启动到一个基于文本的控制台。

Devuan Linux Console

Devuan Linux 控制台。

这篇文章总结了最新版本的 Devuan Linux 的安装。在这个系列的下一篇文章将会阐述如何从源代码为 Devuan Linux 安装 Enlightenment 桌面环境。如果你有任何问题或疑问,请记得让我们知道。


作者简介:

作者是 Ball 州立大学的计算机系讲师,目前教授计算机系的所有 Linux 课程,同时也教授 Cisco 网络课程。他是 Debian 以及其他 Debian 的衍生版比如 Mint、Ubuntu 和 Kali 的狂热用户。他拥有信息学和通信科学的硕士学位,同时获得了 Cisco、EC 理事会和 Linux 基金会的行业认证。


via: http://www.tecmint.com/installation-of-devuan-linux/

作者:Rob Turner 译者:ucasFL 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Kali Linux 系统可以说是在安全测试方面最好的开箱即用的 Linux 发行版。Kali 下的很多工具软件都可以安装在大多数的 Linux 发行版中,Offensive Security 团队在 Kali 系统的开发过程中投入大量的时间精力来完善这个用于渗透测试和安全审计的 Linux 发行版。

Kali Linux 是基于 Debian 的面向安全的发行版本。该系统由于预安装了上百个知名的安全工具软件而出名。

Kali 甚至在信息安全领域还有一个含金量较高的认证叫做“ Kali 渗透测试 Pentesting with Kali ”认证。该认证的申请者必须在艰难的 24 小时内成功入侵多台计算机,然后另外 24 小时内完成渗透测试报告并发送给 Offensive Security 的安全人员进行评审。成功通过考试的人将会获得 OSCP 认证证书。

本安装指南及以后的文章主要是为了帮助个人熟悉 Kali Linux 系统和其中一些工具软件的使用。

请谨慎使用 Kali 下的工具,因为其中一些工具如果使用不当将会导致计算机系统损坏。请在合法的途径下使用所有 Kali 系列文章中所包含的信息。

系统要求

Kali 系统对硬件有一些最基本的要求及建议。根据用户使用目的,你可以使有更高的配置。这篇文章中假设读者想要把 kali 安装为电脑上唯一的操作系统。

  1. 至少 10GB 的磁盘空间;强烈建议分配更多的存储空间。
  2. 至少 512MB 的内存;希望有更多的内存,尤其是在图形界面下。
  3. 支持 USB 或 CD/DVD 启动方式。
  4. Kali Linux 系统 ISO 镜像下载地址 https://www.kali.org/downloads/

使用 dd 命令创建 USB 启动工具

该文章假设可使用 USB 设备来引导安装系统。注意尽可能的使用 4GB 或者 8GB 的 USB 设备,并且其上的所有数据将会被删除。

本文作者在使用更大容量的 USB 设备在安装的过程中遇到了问题,但是别的人应该还是可以的。不管怎么说,下面的安装步骤将会清除 USB 设备内的数据。

在开始之前请务必备份所有数据。用于安装 Kali Linux 系统的 USB 启动设备将在另外一台机器上创建完成。

第一步是获取 Kali Linux 系统 ISO 镜像文件。本指南将使用最新版的包含 Enlightenment 桌面环境的 Kali Linux 系统进行安装。

在终端下输入如下命令来获取这个版本的 ISO 镜像文件。

$ cd ~/Downloads
$ wget -c http://cdimage.kali.org/kali-2016.2/kali-linux-e17-2016.2-amd64.iso

上面两个命令将会把 Kali Linux 的 ISO 镜像文件下载到当前用户的 Downloads 目录。

下一步是把 ISO 镜像写入到 USB 设备中来启动安装程序。我们可以使用 Linux 系统中的 dd 命令来完成该操作。首先,该 USB 设备要在 lsblk 命令下可找到。

$ lsblk

Find Out USB Device Name in Linux

在 Linux 系统中确认 USB 设备名

确定 USB 设备的名字为 /dev/sdc,可以使用 dd 工具将 Kali 系统镜像写入到 USB 设备中。

$ sudo dd if=~/Downloads/kali-linux-e17-2016.2-amd64.iso of=/dev/sdc

注意:以上命令需要 root 权限,因此使用 sudo 命令或使用 root 账号登录来执行该命令。这个命令会删除 USB 设备中的所有数据。确保已备份所需的数据。

一旦 ISO 镜像文件完全复制到 USB 设备,接下来可进行 Kali Linux 系统的安装。

安装 Kali Linux 系统

1、 首先,把 USB 设备插入到要安装 Kali 操作系统的电脑上,然后从 USB 设备引导系统启动。只要成功地从 USB 设备启动系统,你将会看到下面的图形界面,选择“Install”或者“Graphical Install”选项。

本指南将使用“Graphical Install”方式进行安装。

Kali Linux Boot Menu

Kali Linux 启动菜单

2、 下面几个界面将会询问用户选择区域设置信息,比如语言、国家,以及键盘布局。

选择完成之后,系统将会提示用户输入主机名和域名信息。输入合适的环境信息后,点击继续安装。

Set Hostname for Kali Linux

设置 Kali Linux 系统的主机名

Set Domain for Kali Linux

设置 Kali Linux 系统的域名

3、 主机名和域名设置完成后,需要设置 root 用户的密码。请勿忘记该密码。

Set Root User Password for Kali Linux

设置 Kali Linux 系统用户密码

4、 密码设置完成之后,安装步骤会提示用户选择时区然后停留在硬盘分区界面。

如果 Kali Linux 是这个电脑上的唯一操作系统,最简单的选项就是使用“Guided – Use Entire Disk”,然后选择你需要安装 Kali 的存储设备。

Select Kali Linux Installation Type

选择 Kali Linux 系统安装类型

选择 Kali Linux 安装磁盘

5、 下一步将提示用户在存储设备上进行分区。大多数情况下,我们可以把整个系统安装在一个分区内。

Install Kali Linux Files in Partition

在分区上安装 Kali Linux 系统

6、 最后一步是提示用户确认将所有的更改写入到主机硬盘。注意,点确认后将会清空整个磁盘上的所有数据

Confirm Disk Partition Write Changes

确认磁盘分区更改

7、 一旦确认分区更改,安装包将会进行复制文件的安装过程。安装完成后,你需要设置一个网络镜像源来获取软件包和系统更新。如果你希望使用 Kali 的软件库,确保开启此功能。

Configure Kali Linux Package Manager

配置 Kali Linux 包管理器

8、 选择网络镜像源后,系统将会询问你安装 Grub 引导程序。再次说明,本文假设你的电脑上仅安装唯一的 Kali Linux 操作系统。

在该屏幕上选择“Yes”,用户需要选择要写入引导程序信息的硬盘引导设备。

Install GRUB Boot Loader

安装 Grub 引导程序

Select Partition to Install GRUB Boot Loader

选择安装 Grub 引导程序的分区

9、 当 Grub 安装完成后,系统将会提醒用户重启机器以进入新安装的 Kali Linux 系统。

Kali Linux Installation Completed

Kali Linux 系统安装完成

10、 因为本指南使用 Enlightenment 作为 Kali Linux 系统的桌面环境,因此默认情况下是启动进入到 shell 环境。

使用 root 账号及之前安装过程中设置的密码登录系统,以便运行 Enlightenment 桌面环境。

登录成功后输入命令startx进入 Enlightenment 桌面环境。

# startx

Start Enlightenment Desktop in Kali Linux

Kali Linux 下进入 Enlightenment 桌面环境

初次进入 Enlightenment 桌面环境时,它将会询问用户进行一些首选项配置,然后再运行桌面环境。

Kali Linux Enlightenment Desktop

Kali Linux Enlightenment 桌面

此时,你已经成功地安装了 Kali Linux 系统,并可以使用了。后续的文章我们将探讨 Kali 系统中一些有用的工具以及如何使用这些工具来探测主机及网络方面的安全状况。

请随意发表任何评论或提出相关的问题。


via: http://www.tecmint.com/kali-linux-installation-guide/

作者:Rob Turner 译者:rusking 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这第二篇 Kali Linux 文章中, 将讨论称为 ‘nmap‘ 的网络工具。虽然 nmap 不是 Kali 下唯一的一个工具,但它是最有用的网络映射工具之一。

Nmap, 是 Network Mapper 的缩写,由 Gordon Lyon 维护(更多关于 Mr. Lyon 的信息在这里: http://insecure.org/fyodor/) ,并被世界各地许多的安全专业人员使用。

这个工具在 Linux 和 Windows 下都能使用,并且是用命令行驱动的。相对于那些令人害怕的命令行,对于 nmap,在这里有一个美妙的图形化前端叫做 zenmap。

强烈建议个人去学习 nmap 的命令行版本,因为与图形化版本 zenmap 相比,它提供了更多的灵活性。

对服务器进行 nmap 扫描的目的是什么?很好的问题。Nmap 允许管理员快速彻底地了解网络上的系统,因此,它的名字叫 Network MAPper 或者 nmap。

Nmap 能够快速找到活动的主机和与该主机相关联的服务。Nmap 的功能还可以通过结合 Nmap 脚本引擎(通常缩写为 NSE)进一步被扩展。

这个脚本引擎允许管理员快速创建可用于确定其网络上是否存在新发现的漏洞的脚本。已经有许多脚本被开发出来并且包含在大多数的 nmap 安装中。

提醒一句 - 使用 nmap 的人既可能是善意的,也可能是恶意的。应该非常小心,确保你不要使用 nmap 对没有明确得到书面许可的系统进行扫描。请在使用 nmap 工具的时候注意!

系统要求

  1. Kali Linux (nmap 可以用于其他操作系统,并且功能也和这个指南里面讲的类似)。
  2. 另一台计算机,并且装有 nmap 的计算机有权限扫描它 - 这通常很容易通过软件来实现,例如通过 VirtualBox 创建虚拟机。

    1. 想要有一个好的机器来练习一下,可以了解一下 Metasploitable 2。
    2. 下载 MS2 :Metasploitable2
  3. 一个可以工作的网络连接,或者是使用虚拟机就可以为这两台计算机建立有效的内部网络连接。

Kali Linux – 使用 Nmap

使用 nmap 的第一步是登录 Kali Linux,如果需要,就启动一个图形会话(本系列的第一篇文章安装了 Kali Linux 的 Enlightenment 桌面环境)。

在安装过程中,安装程序将提示用户输入用来登录的“root”用户和密码。 一旦登录到 Kali Linux 机器,使用命令startx就可以启动 Enlightenment 桌面环境 - 值得注意的是 nmap 不需要运行桌面环境。

# startx

Start Desktop Environment in Kali Linux

在 Kali Linux 中启动桌面环境

一旦登录到 Enlightenment,将需要打开终端窗口。通过点击桌面背景,将会出现一个菜单。导航到终端可以进行如下操作:应用程序 -> 系统 -> 'Xterm' 或 'UXterm' 或 '根终端'。

作者是名为 'Terminator' 的 shell 程序的粉丝,但是这可能不会显示在 Kali Linux 的默认安装中。这里列出的所有 shell 程序都可用于使用 nmap 。

Launch Terminal in Kali Linux

在 Kali Linux 下启动终端

一旦终端启动,nmap 的乐趣就开始了。 对于这个特定的教程,将会创建一个 Kali 机器和 Metasploitable机器之间的私有网络。

这会使事情变得更容易和更安全,因为私有的网络范围将确保扫描保持在安全的机器上,防止易受攻击的 Metasploitable 机器被其他人攻击。

怎样在我的网络上找到活动主机

在此示例中,这两台计算机都位于专用的 192.168.56.0/24 网络上。 Kali 机器的 IP 地址为 192.168.56.101,要扫描的 Metasploitable 机器的 IP 地址为 192.168.56.102。

假如我们不知道 IP 地址信息,但是可以通过快速 nmap 扫描来帮助确定在特定网络上哪些是活动主机。这种扫描称为 “简单列表” 扫描,将 -sL参数传递给 nmap 命令。

# nmap -sL 192.168.56.0/24

Nmap - Scan Network for Live Hosts

Nmap – 扫描网络上的活动主机

悲伤的是,这个初始扫描没有返回任何活动主机。 有时,这是某些操作系统处理端口扫描网络流量的一个方法。

在我的网络中找到并 ping 所有活动主机

不用担心,在这里有一些技巧可以使 nmap 尝试找到这些机器。 下一个技巧会告诉 nmap 尝试去 ping 192.168.56.0/24 网络中的所有地址。

# nmap -sn 192.168.56.0/24

Nmap - Ping All Connected Live Network Hosts

Nmap – Ping 所有已连接的活动网络主机

这次 nmap 会返回一些潜在的主机来进行扫描! 在此命令中,-sn 禁用 nmap 的尝试对主机端口扫描的默认行为,只是让 nmap 尝试 ping 主机。

找到主机上的开放端口

让我们尝试让 nmap 端口扫描这些特定的主机,看看会出现什么。

# nmap 192.168.56.1,100-102

Nmap - Network Ports Scan on Host

Nmap – 在主机上扫描网络端口

哇! 这一次 nmap 挖到了一个金矿。 这个特定的主机有相当多的开放网络端口

这些端口全都代表着在此特定机器上的某种监听服务。 我们前面说过,192.168.56.102 的 IP 地址会分配给一台易受攻击的机器,这就是为什么在这个主机上会有这么多开放端口

在大多数机器上打开这么多端口是非常不正常的,所以赶快调查这台机器是个明智的想法。管理员可以检查下网络上的物理机器,并在本地查看这些机器,但这不会很有趣,特别是当 nmap 可以为我们更快地做到时!

找到主机上监听端口的服务

下一个扫描是服务扫描,通常用于尝试确定机器上什么服务监听在特定的端口

Nmap 将探测所有打开的端口,并尝试从每个端口上运行的服务中获取信息。

# nmap -sV 192.168.56.102

Nmap - Scan Network Services Listening of Ports

Nmap – 扫描网络服务监听端口

请注意这次 nmap 提供了一些关于 nmap 在特定端口运行的建议(在白框中突出显示),而且 nmap 也试图确认运行在这台机器上的这个操作系统的信息和它的主机名(也非常成功!)。

查看这个输出,应该引起网络管理员相当多的关注。 第一行声称 VSftpd 版本 2.3.4 正在这台机器上运行! 这是一个真正的旧版本的 VSftpd。

通过查找 ExploitDB,对于这个版本早在 2001 年就发现了一个非常严重的漏洞(ExploitDB ID – 17491)。

发现主机上上匿名 ftp 登录

让我们使用 nmap 更加清楚的查看这个端口,并且看看可以确认什么。

# nmap -sC 192.168.56.102 -p 21

Nmap - Scan Particular Post on Machine

Nmap – 扫描机器上的特定端口

使用此命令,让 nmap 在主机上的 FTP 端口(-p 21)上运行其默认脚本(-sC)。 虽然它可能是、也可能不是一个问题,但是 nmap 确实发现在这个特定的服务器是允许匿名 FTP 登录的

检查主机上的漏洞

这与我们早先知道 VSftd 有旧漏洞的知识相匹配,应该引起一些关注。 让我们看看 nmap有没有脚本来尝试检查 VSftpd 漏洞。

# locate .nse | grep ftp

Nmap - Scan VSftpd Vulnerability

Nmap – 扫描 VSftpd 漏洞

注意 nmap 已有一个 NSE 脚本已经用来处理 VSftpd 后门问题!让我们尝试对这个主机运行这个脚本,看看会发生什么,但首先知道如何使用脚本可能是很重要的。

# nmap --script-help=ftp-vsftd-backdoor.nse

Learn Nmap NSE Script Usage

了解 Nmap NSE 脚本使用

通过这个描述,很明显,这个脚本可以用来试图查看这个特定的机器是否容易受到先前识别的 ExploitDB 问题的影响。

让我们运行这个脚本,看看会发生什么。

# nmap --script=ftp-vsftpd-backdoor.nse 192.168.56.102 -p 21

Nmap - Scan Host for Vulnerable

Nmap – 扫描易受攻击的主机

耶!Nmap 的脚本返回了一些危险的消息。 这台机器可能面临风险,之后可以进行更加详细的调查。虽然这并不意味着机器缺乏对风险的抵抗力和可以被用于做一些可怕/糟糕的事情,但它应该给网络/安全团队带来一些关注。

Nmap 具有极高的选择性,非常平稳。 到目前为止已经做的大多数扫描, nmap 的网络流量都保持适度平稳,然而以这种方式扫描对个人拥有的网络可能是非常耗时的。

Nmap 有能力做一个更积极的扫描,往往一个命令就会产生之前几个命令一样的信息。 让我们来看看积极的扫描的输出(注意 - 积极的扫描会触发入侵检测/预防系统!)。

# nmap -A 192.168.56.102

Nmap - Complete Network Scan on Host

Nmap – 在主机上完成网络扫描

注意这一次,使用一个命令,nmap 返回了很多关于在这台特定机器上运行的开放端口、服务和配置的信息。 这些信息中的大部分可用于帮助确定如何保护本机以及评估网络上可能运行的软件。

这只是 nmap 可用于在主机或网段上找到的许多有用信息的很短的一个列表。强烈敦促个人在个人拥有的网络上继续以nmap 进行实验。(不要通过扫描其他主机来练习!)。

有一个关于 Nmap 网络扫描的官方指南,作者 Gordon Lyon,可从亚马逊上获得。

方便的话可以留下你的评论和问题(或者使用 nmap 扫描器的技巧)。


via: http://www.tecmint.com/nmap-network-security-scanner-in-kali-linux/

作者:Rob Turner 译者:DockerChen 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

动态主机控制协议 Dynamic Host Control Protocol (DHCP)给网络管理员提供了一种便捷的方式,为不断变化的网络主机或是动态网络提供网络层地址。其中最常用的 DHCP 服务工具是 ISC DHCP Server。DHCP 服务的目的是给主机提供必要的网络信息以便能够和其他连接在网络中的主机互相通信。DHCP 服务提供的信息包括:DNS 服务器信息,网络地址(IP),子网掩码,默认网关信息,主机名等等。

本教程介绍运行在 Debian 7.7 上 4.2.4 版的 ISC-DHCP-Server 如何管理多个虚拟局域网(VLAN),也可以非常容易应用到单一网络上。

测试用的网络是通过思科路由器使用传统的方式来管理 DHCP 租约地址的。目前有 12 个 VLAN 需要通过集中式服务器来管理。把 DHCP 的任务转移到一个专用的服务器上,路由器可以收回相应的资源,把资源用到更重要的任务上,比如路由寻址,访问控制列表,流量监测以及网络地址转换等。

另一个将 DHCP 服务转移到专用服务器的好处,以后会讲到,它可以建立动态域名服务器(DDNS),这样当主机从服务器请求 DHCP 地址的时候,这样新主机的主机名就会被添加到 DNS 系统里面。

安装和配置 ISC DHCP 服务器

1、使用 apt 工具用来安装 Debian 软件仓库中的 ISC 软件,来创建这个多宿主服务器。与其他教程一样需要使用 root 或者 sudo 访问权限。请适当的修改,以便使用下面的命令。(LCTT 译注:下面中括号里面是注释,使用的时候请删除,#表示使用的 root 权限)

# apt-get install isc-dhcp-server       [安装 the ISC DHCP Server 软件]
# dpkg --get-selections isc-dhcp-server     [确认软件已经成功安装]
# dpkg -s isc-dhcp-server           [用另一种方式确认成功安装]

Install ISC DHCP Server in Debian

2、 确认服务软件已经安装完成,现在需要提供网络信息来配置服务器,这样服务器才能够根据我们的需要来分发网络信息。作为管理员最起码需要了解的 DHCP 信息如下:

  • 网络地址
  • 子网掩码
  • 动态分配的地址范围

其他一些服务器动态分配的有用信息包括:

  • 默认网关
  • DNS 服务器 IP 地址
  • 域名
  • 主机名
  • 网络广播地址

这只是能让 ISC DHCP 服务器处理的选项中非常少的一部分。如果你想查看所有选项及其描述需要在安装好软件后输入以下命令:

# man dhcpd.conf

3、 一旦管理员已经确定了这台服务器分发的所有必要信息,那么是时候配置服务器并且分配必要的地址池了。在配置任何地址池或服务器配置之前,必须配置 DHCP 服务器侦听这台服务器上面的一个接口。

在这台特定的服务器上,设置好网卡后,DHCP 会侦听名称名为'bond0'的接口。请适根据你的实际情况来更改服务器以及网络环境。下面的配置都是针对本教程的。

Configure ISC DHCP Network

这行指定的是 DHCP 服务侦听接口(一个或多个)上的 DHCP 流量。修改主配置文件,分配适合的 DHCP 地址池到所需要的网络上。主配置文件在 /etc/dhcp/dhcpd.conf。用文本编辑器打开这个文件

# nano /etc/dhcp/dhcpd.conf

这个配置文件可以配置我们所需要的地址池/主机。文件顶部有 ‘ddns-update-style‘ 这样一句,在本教程中它设置为 ‘none‘。在以后的教程中会讲到动态 DNS,ISC-DHCP-Server 将会与 BIND9 集成,它能够使主机名更新指向到 IP 地址。

4、 接下来的部分是管理员配置全局网络设置,如 DNS 域名,默认的租约时间,IP地址,子网的掩码,以及其它。如果你想了解所有的选项,请阅读 man 手册中的 dhcpd.conf 文件,命令如下:

# man dhcpd.conf

对于这台服务器,我们需要在配置文件顶部配置一些全局网络设置,这样就不用到每个地址池中去单独设置了。

Configure ISC DDNS

我们花一点时间来解释一下这些选项,在本教程中虽然它们是一些全局设置,但是也可以单独的为某一个地址池进行配置。

  • option domain-name “comptech.local”; – 所有使用这台 DHCP 服务器的主机,都将成为 DNS 域 “comptech.local” 的一员
  • option domain-name-servers 172.27.10.6; DHCP 向所有配置这台 DHCP 服务器的的网络主机分发 DNS 服务器地址为 172.27.10.6
  • option subnet-mask 255.255.255.0; – 每个网络设备都分配子网掩码 255.255.255.0 或 /24
  • default-lease-time 3600; – 默认有效的地址租约时间(单位是秒)。如果租约时间耗尽,那么主机可以重新申请租约。如果租约完成,那么相应的地址也将被尽快回收。
  • max-lease-time 86400; – 这是一台主机所能租用的最大的租约时间(单位为秒)。
  • ping-check true; – 这是一个额外的测试,以确保服务器分发出的网络地址不是当前网络中另一台主机已使用的网络地址。
  • ping-timeout; – 在判断地址以前没有使用过前,服务器将等待 ping 响应多少秒。
  • ignore client-updates; 现在这个选项是可以忽略的,因为 DDNS 在前面已在配置文件中已经被禁用,但是当 DDNS 运行时,这个选项会忽略主机更新其 DNS 主机名的请求。

5、 文件中下面一行是权威 DHCP 所在行。这行的意义是如果服务器是为文件中所配置的网络分发地址的服务器,那么取消对该 权威关键字 authoritative stanza 的注释。

通过去掉关键字 authoritative 前面的 ‘#’,取消注释全局权威关键字。这台服务器将是它所管理网络里面的唯一权威。

Enable ISC Authoritative

默认情况下服务器被假定为不是网络上的权威服务器。之所以这样做是出于安全考虑。如果有人因为不了解 DHCP 服务的配置,导致配置不当或配置到一个不该出现的网络里面,这都将带来非常严重的连接问题。这行还可用在每个网络中单独配置使用。也就是说如果这台服务器不是整个网络的 DHCP 服务器,authoritative 行可以用在每个单独的网络中,而不是像上面截图中那样的全局配置。

6、 这一步是配置服务器将要管理的所有 DHCP 地址池/网络。简短起见,本教程只讲到配置的地址池之一。作为管理员需要收集一些必要的网络信息(比如域名,网络地址,有多少地址能够被分发等等)

以下这个地址池所用到的信息都是管理员收集整理的:网络 ID 172.27.60.0, 子网掩码 255.255.255.0 或 /24, 默认子网网关 172.27.60.1,广播地址 172.27.60.255.0 。

以上这些信息对于构建 dhcpd.conf 文件中新网络非常重要。使用文本编辑器修改配置文件添加新网络进去,这里我们需要使用 root 或 sudo 访问权限。

# nano /etc/dhcp/dhcpd.conf

Configure DHCP Pools and Networks

当前这个例子是给用 VMWare 创建的虚拟服务器分配 IP 地址。第一行显示是该网络的子网掩码。括号里面的内容是 DHCP 服务器应该提供给网络上面主机的所有选项。

第一行, range 172.27.60.50 172.27.60.254; 这一行显示的是,DHCP 服务在这个网络上能够给主机动态分发的地址范围。

第二行,option routers 172.27.60.1; 这里显示的是给网络里面所有的主机分发的默认网关地址。

最后一行, option broadcast-address 172.27.60.255; 显示当前网络的广播地址。这个地址不能被包含在要分发放的地址范围内,因为广播地址不能分配到一个主机上面。

必须要强调的是每行的结尾必须要用(;)来结束,所有创建的网络必须要在 {} 里面。

7、 如果要创建多个网络,继续创建完它们的相应选项后保存文本文件即可。配置完成以后如果有更改,ISC-DHCP-Server 进程需要重启来使新的更改生效。重启进程可以通过下面的命令来完成:

# service isc-dhcp-server restart

这条命令将重启 DHCP 服务,管理员能够使用几种不同的方式来检查服务器是否已经可以处理 dhcp 请求。最简单的方法是通过 lsof 命令来查看服务器是否在侦听67端口,命令如下:

# lsof -i :67

Check DHCP Listening Port

这里输出的结果表明 dhcpd(DHCP 服务守护进程)正在运行并且侦听67端口。由于在 /etc/services 文件中67端口的映射,所以输出中的67端口实际上被转换成了 “bootps”。

在大多数的系统中这是非常常见的,现在服务器应该已经为网络连接做好准备,我们可以将一台主机接入网络请求DHCP地址来验证服务是否正常。

测试客户端连接

8、 现在许多系统使用网络管理器来维护网络连接状态,因此这个设备应该预先配置好的,只要对应的接口处于活跃状态就能够获取 DHCP。

然而当一台设备无法使用网络管理器时,它可能需要手动获取 DHCP 地址。下面的几步将演示怎样手动获取以及如何查看服务器是否已经按需要分发地址。

ifconfig‘工具能够用来检查接口的配置。这台被用来测试的 DHCP 服务器的设备,它只有一个网络适配器(网卡),这块网卡被命名为 ‘eth0‘。

# ifconfig eth0

Check Network Interface IP Address

从输出结果上看,这台设备目前没有 IPv4 地址,这样很便于测试。我们把这台设备连接到 DHCP 服务器并发出一个请求。这台设备上已经安装了一个名为 ‘dhclient‘ 的DHCP客户端工具。因为操作系统各不相同,所以这个客户端软件也是互不一样的。

# dhclient eth0

Request IP Address from DHCP

当前 'inet addr:' 字段中显示了属于 172.27.60.0 网络地址范围内的 IPv4 地址。值得欣慰的是当前网络还配置了正确的子网掩码并且分发了广播地址。

到这里看起来还都不错,让我们来测试一下,看看这台设备收到新 IP 地址是不是由服务器发出的。这里我们参照服务器的日志文件来完成这个任务。虽然这个日志的内容有几十万条,但是里面只有几条是用来确定服务器是否正常工作的。这里我们使用一个工具 ‘tail’,它只显示日志文件的最后几行,这样我们就可以不用拿一个文本编辑器去查看所有的日志文件了。命令如下:

# tail /var/log/syslog

Check DHCP Logs

OK!服务器记录表明它分发了一个地址给这台主机 (HRTDEBXENSRV)。服务器按预期运行,给它充当权威服务器的网络分发了适合的网络地址。至此 DHCP 服务器搭建成功并且运行。如果有需要你可以继续配置其他的网络,排查故障,确保安全。

在以后的Debian教程中我会讲一些新的 ISC-DHCP-Server 功能。有时间的话我将写一篇关于 Bind9 和 DDNS 的教程,融入到这篇文章里面。


via: http://www.tecmint.com/install-and-configure-multihomed-isc-dhcp-server-on-debian-linux/

作者:Rob Turner 译者:ivo-wang 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出