你坐在那里盯着电脑,疑惑为什么Internet连接速度越来越慢,希望从网络运营商一贯的闪烁其词中获得足够多的信息。或者,你是一位孤独的IT职员,供职于一家小公司,之所以得到这份工作仅仅是因为你知道交换机和集线器的差异而已,现在你却被别人认为已经掌握了所有问题的答案。或者,你确实对于网络技术颇感兴趣,想要学习更多知识,并立志以此作为职业。或者,你已经具备了丰富的知识,只是需要弥补某些知识漏洞。但是你发现,网络是这样一门学科:有着大量参考资料,而这些资料通常不是以清晰、连贯、有用的顺序编排的,往往阅读大量材料只是为了明白该按哪个按钮。.
为了把事情变得更有趣,你可能需要将Linux和Windows主机整合起来。如果你想要挑选一本书,可以描述如何完成特定任务的详细步骤,清晰阐释所需的命令和配置,而且不会用那些杂乱无章、漫无边际的理论和晦涩难懂的RFC来考验你的耐心,那么这本书就是为你编写的。
读者对象
理想情况下,你也许要有一些Linux经验。你应该知道如何安装和卸载程序、浏览文件系统、管理文件权限以及创建用户和组。你应该了解一些TCP/IP和以太网的基础知识、IPv4与IPv6、LAN、WAN、子网、路由器、防火墙、网关、交换机、集线器以及布线等,如果你完全是从头开始,那么有一大堆介绍性的入门书可以加速你对基础知识的学习。
如果你尚不具备基本的Linux经验,我建议先去读《Linux Cookbook》(O’Reilly)。《Linux Cookbook》(我是该书作者)是本书的姐妹篇。它涵盖了安装和卸载软件、用户账号管理、跨平台文件和打印机共享、跨平台用户验证、运行服务器程序(例如邮件、Web、DNS)、备份和恢复、系统急救和修复、硬件发现、配置X Windows、远程管理,以及更多实用的主题。
家庭办公(SOHO)用户还能在本书中发现一些有用的章节,而且任何想要学习Linux网络的人都能通过两台普通PC和一些廉价的网络硬件来实践本书中介绍的所有内容。
本书内容
本书共分为19章和3个附录:
第1章,Linux网络概述
本章是关于计算机网络的高级概览,涵盖布线、路由与交换、网卡、不同类型的Internet服务以及网络架构和性能的基础知识。
第2章,建立基于单板计算机的Linux网关
在本章中,我们被引入令人着迷而且适应各种环境的路由板Linux世界,比如基于Soekris和PC Engine的产品,并且较之那些贵出数倍的商业产品,本章介绍了如何基于此类小板卡的Linux,为你提供更强的功能和更大的灵活性。
第3章,搭建Linux防火墙
学习使用Linux强大的iptables包过滤器来保护你的网络。本章案例全面介绍了边界防火墙、单机防火墙、让服务穿越NAT(Network Address Translation,网络地址转换)、阻止对内部服务的外部访问、加密穿越防火墙的远程访问,以及如何在生产系统上正式部署之前安全地测试新防火墙等内容。
第4章,建立Linux无线接入点
你可以使用Linux和一块路由板(或者任何普通PC机),按需定制一个安全、强大、功能完整的无线接入点,包括先进的验证和加密、名称服务、路由和桥接等各项功能。
第5章,建立基于Asterisk的VoIP服务器
本章深入剖析了革命性的流行VoIP服务器Asterisk的相关内部细节。当然,近来出现的每个产品都有了漂亮、可以点击的iPBX系统管理图形用户界面,不过你还是需要理解其内涵。本章向你展示如何从头开始安装Asterisk和配置Asterisk:怎样创建用户分机和语音邮件、管理定制的欢迎提示和消息、广播语音邮件、规划电话、安装电子接线员、与PSTN(Public Switched Telephone Network,公共交换电话网络)集成、实现纯VoIP、管理用户等等。
第6章,使用Linux路由
Linux的网络栈简直就是一个发电厂,它包含了高级路由的能力。这里介绍的案例有搭建基于Linux的路由器、计算子网(准确而且无痛苦)、将不受欢迎的访问者引入黑洞、使用静态和动态路由以及监控那些繁忙的小路由器等。
.第7章,使用SSH进行安全远程管理
OpenSSH是非常安全的SSH协议的一个实现,令人惊奇而且极为有用。它支持传统的基于口令的登录、无需口令的公钥登录,以及经不可信任的网络进行安全数据传输。你会学到如何完成所有工作,还有如何安全地登录你的远程系统,以及如何加固和保护OpenSSH本身。
第8章,使用跨平台远程图形桌面
OpenSSH运行平滑流畅,可提供文本控制台,还能为运行图形应用程序提供安全的X Window隧道。另有多种优秀的程序(FreeNX、rdesktop和VNC)可作为功能上的补充,比如远程帮助台、可选的远程桌面以及作为Windows终端服务器的Linux等。你可以用一个键盘和一台显示器控制多台计算机,甚至还能通过让多位用户查看或参与同一个远程会话进行班级教学。
第9章,使用OpenVPN建立安全的跨平台虚拟专用网
似乎每个人都想要一个安全、用户友好的VPN(Virtual Private Network,虚拟专用网)。但是关于VPN究竟是什么尚存有一些疑惑,大量商业产品并非真正的VPN,而只是针对有限服务提供可访问的SSL门户而已。OpenVPN是一个真正基于SSL的VPN产品,需要所有端点受信任,而且利用高级方法来保护连接并保持其得到安全加密保护。OpenVPN包括Linux、Solaris、Mac OS X、OpenBSD、FreeBSD和NetBSD等多种客户端,所以它是你的一站式VPN解决方案商店。你将学会如何创建和管理自己的PKI(Public Key Infrastructure,公钥基础设施),这对于轻松管理OpenVPN至关重要。而且你还能学会如何安全地测试OpenVPN,如何设置服务器,以及如何连接客户端等。
第10章,建立Linux PPTP VPN服务器
本章涵盖了为Windows和Linux客户端建立并配置Linux PPTP VPN服务器,如何给Windows客户端打补丁以使它们获得所需的加密支持,如何与活动目录集成,以及如何让PPTP穿越iptables防火墙等相关内容。
第11章,在混合Linux/Windows的局域网中使用Samba进行卓点登录
使用Samba作为Windows NT4类型的域控制器,可以提供一个灵活、可靠、廉价的网络客户端验证机制。你将学会如何从一个Windows域控制器迁移到Linux上的Samba;如何将Windows用户迁移至Samba,将Linux客户端与活动目录集成;如何连接客户端等。
第12章,使用OpenLDAP提供集中式网络目录服务
LDAP目录是一种优秀的机制,可基于它来构建网络目录服务。本章展示了如何从头开始搭建一个OpenLDAP目录、如何测试、如何变更、如何寻找内容、如伺通过灵巧索引加速查询以及如何调优以获得最佳性能。
第13章,使用Nagios监控网络
Nagios是一个极佳的网络监控系统,它聪明地利用标准Linux命令来监控服务和主机,而且还能在发现问题时即刻报警。状态报告以漂亮的彩色图形HTML页面显示,可以在Web浏览器中查看。学习监控基本的系统健康状况以及通用服务,如DNS、Web和邮件服务器,还有如何进行安全的远程Nagios管理等。
第14章,使用MRTG监控网络
MRTG是一个基于SNMP的网络监控程序,所以理论上它可适用于监控任何支持SNMP的设备或服务。学习如何监控硬件和服务以及如何寻找所需的SNMP信息来创建定制监控点。
第15章,认识IPv6
无论是否已做好准备,IPv6已经在路上了,而且它终将替代IPv4。通过在本地网络和Internet上运行IPv6来赶上潮流,了解为何那些很长的IPv6地址实际上比IPv4地址更容易管理,学习如何使用基于IPv6的SSH,以及如何自动配置非DHCP客户端。
第16章,建立新系统自动网络安装服务
Fedora Linux及其所有同类发行版(Red Hat、CentOS、Mandriva、PC Linux OS等),还有Debian Linux与其衍生发行版(Ubuntu、Mepis、Knoppix等)都包括了创建和克隆定制安装以及通过网络部署新系统的相关实用程序。所以,你可以插入一台PC,然后在若干分钟内就能将其重新安装并投入使用。本章描述了如何使用普通安装ISO映像文件来进行Fedora的网络安装,还有如何高效地创建和维护完全本地的Debian镜像。
第17章,通过串行控制台管理Linux服务器
当以太网失效时,串行控制台将会拯救这个世界,无论是通过本地还是远程方式。另外,路由器和管理交换机常常通过串行控制台被管理。学习如何设置任何一台Linux计算机,使其接受串行连接,以及如何使用任何Linux、Mac OS X或Windows PC作为串行终端。你还将学会如何管理拨号服务器以及如何通过串行链路上传文件。
第18章,运行Linux拨号服务器
尽管已是现代社会,拨号网络却依然那么重要,我们离全球普及宽带还比较遥远。本章介绍了建立基于拨号的Internet连接共享、按需拨号、使用cron安排定期拨号会话以及建立多个拨号账户等相关内容。
第19章,网络故障诊断
Linux包含种类丰富、功能强大的网络问题诊断和修复工具。你将会学到ping的深层奥秘,如何使用tcpdump和Wireshark搭线窃听,如何诊断名称和邮件服务器的问题,如何发现网络上所有的主机,如何追踪问题的根源以及如何搭建一台中央日志服务器。你还会学到大量不为人知但却非常强大的实用程序,比如fping、httping、arping和mtr,以及如何将一台普通旧笔记本改造成为必备的便携网络诊断和修复工具。
附录一,参考文献
计算机网络是一个广泛而又复杂的话题,所以这里提供了一份图书和其他参考资料列表,它们会告诉你哪些知识是需要知道的。
附录二,网络术语词汇表
不知道这是什么意思?可在此查阅。
附录三,Linux内核编译参考
随着Linux内核持续扩张其体积和功能,编译内核时将所有不需要的模块排除在外往往非常有用。学习如何以Fedora方式、Debian方式以及源码方式编译定制的内核。
本书包含的主题
本书同时涵盖了老式和新奇的技术。过去老旧的东西包括通过串行控制台进行系统管理、拨号网络、建立Internet网关、VLAN、多种方式的远程安全访问、路由与流量控制。新奇技术包括建立自己的Asterisk iPBX、无线连接、跨平台远程图形桌面、新系统的自动网络安装、混合Linux和Windows局域网的单点登录以及IPv6基础等。另外,还有关于监控、报警和故障诊断的相关章节。
本书所使用的Linux发行版
即便没有数千至少也有数百种Linux发行版:Live发行版存在于从名片式CD、U盘、CD到DVD等所有类型的可引导介质,大型通用发行版,针对防火墙、路由器和老式PC的小型特别发行版,多媒体发行版,科学研究专用发行版,集群发行版,运行Windows应用程序的发行版,超级安全的发行版。几乎没有办法穷尽所有种类,而对于疲惫的作者来说,幸运的是,Linux世界大致可以分为两个阵营:Red Hat Linux和Debian Linux。两者均是重要而又流行的发行版,它们都已经发展出大量的衍生和克隆版本。
在本书中,Red Hat世界以Fedora Linux为代表,它由Red Hat赞助,是自由社区驱动的发行版。Fedora免费发行,核心版本只包含自由软件,与Red Hat Enterprise Linux(RHEL)相比其发布周期更快。RHEL的发布周期是18个月,稳定性和预见性是其设计目标,而且没有免费版本,尽管已有大量免费的克隆版本存在。克隆版本都是从RHEL SRPM编译,只是移除了Red Hat商标。一些基于RHEL的发行版包括CentOS、White Box Linux、Lineox、White Box Enterprise Linux、Tao Linux和Pie Box Linux。..
另外,还有一堆Red Hat衍生产品可以选择,比如Mandriva和PC Linux OS。针对Fedora的方法适用于所有这些版本,当然,也许你会发现一些文件名、文件位置和软件包名方面的小差异。
基于Debian的发行版说起来要数倍于此处所列的:Ubuntu、Kubuntu、Edubuntu、Xandros、Mepis、Knoppix、Kanotix与Linspire,不可尽数。尽管所有这些发行版都有它们各自的增强和改进特性,但aptitude或Synaptic软件包管理仍然普遍适用于它们。
下载与反馈
尽管我与伟大的O’Reilly团队付出了诸多努力,但毫无疑问,本书还是可能存在不少缺陷、错误和遗漏之处。请将你的反馈和建议发送至netcookbook@bratgrrl.com,以便我们把第二版做得更好。请访问http://www.oreilly.com/catalog/9780596102487获取最新的勘误、更新,还可以下载本书中所使用的脚本。
关于中文译本的任何反馈,请发送电子邮件给译者:fengliang@zhidaofenzi.com(译者博客:http://hutuworm.blogspot.com)。欢迎各位读者就教指正!
排版约定
斜体(Italic)
用于路径名、文件名、程序名、Internet地址(如域名和URL)以及本书定义的新术语。
等宽字(Constant Width)
用于程序的输出内容以及示例中的名称和关键词。
等宽斜体字(Constant Width Italic),
用于显示命令语法中可替换的参数或者选项。
等宽黑体字(Constant Width Bold)
用于需要逐字输入的命令,以及程序代码和配置文件中强调的部分。
可以由普通用户输入的Unix/Linux命令是以常规提示符起始的,以$结尾。必须由root用户输入的命令则由“root”提示符起始,以#结尾。平时,为了避免以root登录,应尽可能使用sudo命令。两种提示符都会标明用户名、当前主机和当前工作目录(例如:root@xena:/var/llibtftpboot#)。
使用代码示例
本书可以帮助你完成任务。一般来说,你可以在你的程序和文档中使用本书的代码。你无需联系我们获得相关授权,除非你正准备重新发布其中大部分代码。例如,使用本书中的多段代码编写一个程序无需获得许可,但出售或者发行O’Reilly的示例CD则需获得许可;通过引用本书内容和示例代码回答问题无需获得许可,但将本书中大部分示例代码用于你的产品文档则需获得许可。
我们感谢你标示出处,但不要求必须如此。标示出处通常包括题名、作者、出版者和ISBN。例如:“Linux Networking Cookbook,by Carla Schroder.Copyright 2008 O’Reilly Media,Inc.,978-0-596-10248-7”。
如果你感觉使用示例代码的方式可能超出了上述许可范围,请与我们联系:
permissions@oreilly.com
评论和问题
请将与本书相关的评论和问题发送给出版者:
美国:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
100035北京市西城区西直门南大街2号成铭大厦C座807室
奥莱利技术咨询(北京)有限公司
我们为本书建立了网页,列出勘误、样例和任何附加的信息。你可以访问:
http://www.oreilly.com/catalog/9780596102487(原版书)
http://www.oreilly.com.cn/book.php?bn=978-7-5641-1520-3(中文版)
关于本书的评论或者技术问题,发送电子邮件给:
bookquestions@oreilly.com
info@mail.oreilly.com.cn
获得关于我们的图书、会议、资源中心以及O’Reilly Network的信息,可访问网站:
httP://www.oreilly.com
http://www.oreilly.com.cn
致谢
编写这样一本书,需要整个团队的倾力付出。其中特别要感谢我的编辑Mike Loukides。这需要持续的耐心、敏锐的感觉、良好的品味、不懈的毅力以及大量惊人的尖端技能来完成这样一部书。真地很棒,谢谢你。此外,还要感谢:
James Lopeman
Dana Sibera
Kristian Kielhofner
Ed Sawicki
Dana Sibera
Gerald Carter
Michell Murrain
Jamesha Fisher
Carol Williams
Rudy Zijlstra
Maria Blackmore
Meredydd Luff
Devdas Bhagat
Akkana Peck
Valorie Henson
Jennifer Scalf
Sander Marechal
Mary Gardiner
Conor Daly
Alvin Goats
Dragan Stanojevic-Nevidljvl ...