鸟哥的Linux私房菜:服务器架设篇(第三版) 其他

鸟哥的Linux私房菜:服务器架设篇(第三版)

内容简介

目前有关Linux架站的书籍大多只教导读者如何架设服务器,很少针对服务器的维护与管理,以及发生问题时的应对策略加以说明,以至于一旦服务器遭受攻击,眼见的就是一场手忙脚乱。因此,作者先从系统基础以及网络基础讲起,再谈到网络攻击与防火墙防护主机后,才进入服务器的架设。

本书共分为四篇:

第一篇,服务器搭建前的进修专区,主要介绍架设服务器之前必须具备的基本知识,看完这一篇,不论您的Linux是以何种方式进行Internet连接,都将不成问题;

第二篇,主机的简易安全防护措施,这一篇鸟哥将告诉您如何保护您的主机,以及如何养成良好的操作习惯,使您的主机能够百毒不侵,安然渡过一次次的考验;

第三篇,局域网内常见服务器的搭建,介绍内部网络经常使用的远程连接服务(SSH、VNC、XRDP),网络参数设置服务(DHCP、NTP),网络磁盘服务(Samba、NFS、iSCSI),以及代理服务器等服务。其中SSH密钥系统,对于异地备份更是相当有帮助,您不能错过;

第四篇,常见因特网服务器的搭建,介绍DNS、WWW、FTP及Mail Server等常见的服务。

作者简介

鸟哥,“台湾成功大学”环境工程系博士,在就读期间由于研究需要,接触到Linux操作系统,叉因实验室交接传承的需要而搭建了“鸟哥的Linux私房菜”网站(俗称鸟站),因个人喜好碎碎念(琐碎熏复)的特质,因此,鸟站文章风格就此成形。曾任台湾多家知名Linux教育中心讲师,目前于台湾昆山科技大学资讯传播系教授Linux相关课程。专长是Linux操作系统、网站规划与维护、网络安全,兴趣是写作与阅读,研究方向是网络整合应用。

目录

第一篇 服务器搭建前的进修专区
第1章 搭建服务器前的准备工作
1.1 Linux 的功能
1.1.1 用 Linux 搭建服务器需要的能力
1.1.2 搭建服务器难不难呢
1.2 搭建服务器的基本流程
1.2.1 网络服务器成功连接的分析
1.2.2 一个常见的服务器设置案例分析
1.2.3 系统安全与备份处理
1.3 自我评估是否已经具备服务器搭建的能力
第2章 网络的基本概念
2.1 网络
2.1.1 什么是网络
2.1.2 计算机网络组成组件
2.1.3 计算机网络的范围
2.1.4 计算机网络协议:OSI 七层协议
2.1.5 计算机网络协议:TCP/IP
2.2 TCP/IP 的网络接口层的相关协议
2.2.1 广域网使用的设备
2.2.2 局域网使用的设备——以太网
2.2.3 以太网络的传输协议:CSMA/CD
2.2.4 MAC 的封装格式
2.2.5 MTU(最大传输单位)
2.2.6 集线器、交换器与相关机制
2.3 TCP/IP 的网络层相关数据包与数据
2.3.1 IP 数据包的封装
2.3.2 IP 地址的组成与分级
2.3.3 IP 的种类与取得方式
2.3.4 Netmask、子网与 CIDR(Classless Interdomain Routing)
2.3.5 路由概念
2.3.6 观察主机路由:Route
2.3.7 IP 与 MAC:网络接口层的 ARP 与 RARP 协议
2.3.8 ICMP 协议
2.4 TCP/IP 的传输层相关数据包与数据
2.4.1 面向连接的可靠的 TCP 协议
2.4.2 TCP 的三次握手
2.4.3 无连接的 UDP 协议
2.4.4 网络防火墙与 OSI 七层协议
2.5 连上 Internet 前的准备事项
2.5.1 IP地址、主机名与DNS系统
2.5.2 连上 Internet 的必要网络参数
2.6 重点回顾
2.7 参考数据与延伸阅读
第3章 局域网架构简介
3.1 局域网的连接
3.1.1 局域网的布线规划
3.1.2 网络设备选购建议
3.2 本书使用的内部连接网络参数与通信协议
3.2.1 网络联机参数与通信协议
3.2.2 Windows 个人计算机网络配置范例
第4章 连接 Internet
4.1 Linux 连接 Internet 前的注意事项
4.1.1 Linux 的网卡
4.1.2 编译网卡驱动程序(Option)
4.1.3 Linux 网络相关配置文件
4.2 连接 Internet 的设置方法
4.2.1 手动配置固定 IP 参数
4.2.2 自动取得 IP 参数(DHCP 方法,适用 Cable Modem、IP 路由器的环境)
4.2.3 ADSL 拨号上网(适用 ADSL 拨号以及光纤接入)
4.3 无线网络——以笔记本电脑为例
4.3.1 无线网络所需要的硬件:AP、无线网卡
4.3.2 关于 AP 的设置:网络安全方面
4.3.3 利用无线网卡开始连接
4.4 常见问题说明
4.4.1 内部网络使用某些服务(如 FTP、POP3)所遇到的连接延迟问题
4.4.2 域名无法解析的问题
4.4.3 默认网关的问题
4.5 重点回顾
4.6 参考数据与延伸阅读
第5章 Linux 中常用的网络命令
5.1 设置网络参数的命令
5.1.1 手动/自动配置IP 参数与启动/关闭网络接口:ifconfig、ifup、ifdown
5.1.2 修改路由:route
5.1.3 网络参数综合命令:ip
5.1.4 无线网络:iwlist, iwconfig
5.1.5 DHCP客户端命令:dhclient
5.2 网络排错与查看命令
5.2.1 两台主机的两点沟通:ping
5.2.2 两主机间各节点分析:traceroute
5.2.3 查看本机的网络连接与后门:netstat
5.2.4 检测主机名与 IP 的对应:host、nslookup
5.3 远程连接命令与即时通信软件
5.3.1 终端机与 BBS 连接:telnet
5.3.2 FTP 连接软件:ftp、lftp
5.3.3 图形接口的即时通信软件:Pidgin(gaim 的延伸)
5.4 文字接口网页浏览
5.4.1 文字浏览器:links
5.4.2 文字接口下载器:wget
5.5 数据包捕获功能
5.5.1 文字接口数据包捕获器:tcpdump
5.5.2 图形接口数据包捕获器:wireshark
5.5.3 任意启动 TCP/UDP 数据包的端口连接:nc、netcat
5.6 重点回顾
5.7 参考数据与延伸阅读
第6章 Linux 网络排错
6.1 无法连接网络的原因分析
6.1.1 硬件问题:网线、网络设备、网络布线等
6.1.2 软件问题:IP 参数设置、路由设置、服务器与防火墙设置等
6.1.3 问题的处理
6.2 处理流程
6.2.1 步骤1:网卡工作确认
6.2.2 步骤2:局域网内各项连接设备检测
6.2.3 步骤3:取得正确的 IP 参数
6.2.4 步骤4:确认路由表的规则
6.2.5 步骤5:主机名与 IP 查询的 DNS 错误
6.2.6 步骤6:Linux 的 NAT 服务器或 IP 路由器出问题
6.2.7 步骤7:Internet 的问题
6.2.8 步骤8:服务器的问题
6.3 参考数据与延伸阅读
第二篇 主机的简易安全防护措施
第7章 网络安全与主机基本防护:限制端口、网络升级与SELinux
7.1 网络数据包连接进入主机的流程
7.1.1 数据包进入主机的流程
7.1.2 常见的攻击手法与相关保护
7.1.3 主机能执行的保护操作:软件更新、减少网络服务、 启动 SELinux
7.2 网络自动升级软件
7.2.1 如何进行软件升级
7.2.2 CentOS 的 yum 软件更新、镜像站点使用的原理
7.2.3 yum 的功能:安装软件组、全系统更新
7.2.4 挑选特定的镜像站点:修改 yum 配置文件与清除 yum 缓存
7.3 限制连接端口(Port)
7.3.1 什么是Port
7.3.2 端口的查看:netstat、nmap
7.3.3 端口与服务的启动/关闭及开机时状态设定
7.3.4 安全性考虑——关闭网络服务端口
7.4 SELinux 管理原则
7.4.1 SELinux 的工作模式
7.4.2 SELinux 的启动、关闭与查看
7.4.3 SELinux Type 的修改
7.4.4 SELinux 策略内的规则布尔值修订
7.4.5 SELinux 日志文件记录所需的服务
7.5 被攻击后的主机修复工作
7.5.1 网管人员应具备的技能
7.5.2 主机受攻击后恢复的工作流程
7.6 重点回顾
7.7 参考数据与延伸阅读
第8章 路由的概念与路由器设置
8.1 路由
8.1.1 路由表产生的类型
8.1.2 一个网卡绑多个 IP:IP Alias 的测试用途
8.1.3 重复路由的问题
8.2 路由器配置
8.2.1 什么是路由器与 IP 路由器
8.2.2 何时需要路由器
8.2.3 静态路由的路由器
8.3 动态路由器架设
8.4 特殊状况——路由器两边界面是同一个IP网段:ARP Proxy
8.5 重点回顾
8.6 参考数据与延伸阅读
第9章 防火墙与 NAT 服务器
9.1 认识防火墙
9.1.1 关于本章的一些提醒事项
9.1.2 为何需要防火墙
9.1.3 Linux 系统上防火墙的主要类别
9.1.4 防火墙的一般网络布线示意
9.1.5  防火墙的使用限制
9.2 TCP Wrappers
9.2.1 哪些服务有支持
9.2.2 /etc/hosts.{allow|deny} 的设置方式
9.3 Linux 的数据包过滤软件:iptables
9.3.1 不同 Linux 内核版本的防火墙软件
9.3.2 数据包进入流程:规则顺序的重要性
9.3.3 iptables 的表格(table)与链(chain)
9.3.4 本机的 iptables 语法
9.3.5 IPv4 的内核管理功能:/proc/sys/net/ipv4/*
9.4 设置单机防火墙的一个实例
9.4.1 规则草拟
9.4.2 实际设置
9.5 NAT 服务器的设置
9.5.1 什么是 NAT? SNAT? DNAT?
9.5.2 最简单的 NAT 服务器:IP 分享功能
9.5.3 iptables 的额外内核模块功能
9.5.4 在防火墙后端的网络服务器上做DNAT 设置
9.6 重点回顾
9.7 参考数据与延伸阅读
第10章 申请合法的主机名
10.1 为何需要主机名
10.1.1 主机名的由来
10.1.2 重点在合法授权
10.1.3 申请静态还是动态 DNS 主机名
10.2 注册一个合法的主机名
10.2.1 静态 DNS 主机名注册(以 Hinet 为例)
10.2.2 动态 DNS 主机名注册(以 no-ip 为例)
10.3 重点回顾
10.4 参考数据与延伸阅读
第三篇 局域网内常见服务器的搭建
第11章 远程连接服务器 SSH / XDMCP / VNC /XRDP
11.1 远程连接服务器
11.1.1 什么是远程连接服务器
11.1.2 有哪些可供登录的类型
11.2 文字接口连接服务器: SSH 服务器
11.2.1 连接加密技术简介
11.2.2 启动 SSH 服务
11.2.3  SSH 客户端连接程序——Linux 用户
11.2.4  SSH 客户端连接程序——Windows 用户
11.2.5  SSHD 服务器详细配置
11.2.6 制作不用密码可立即登录的SSH用户
11.2.7 简易安全设置
11.3 最原始图形接口:XDMCP服务的启用
11.3.1  X Window 的 Server/Client 架构与各组件
11.3.2 设定 GDM 的 XDMCP 服务
11.3.3 用户系统为 Linux 的登录方式
11.3.4 用户系统为 Windows 的登录方式: Xming
11.4 华丽的图形接口:VNC 服务器
11.4.1 默认的 VNC 服务器
11.4.2  VNC 的客户端连接软件
11.4.3  VNC 搭配本机的 XDMCP 画面
11.4.4 开机就启动 VNC Server 的方法
11.4.5 同步的 VNC :可以通过图示同步教学
11.5 仿真的远程桌面系统:XRDP 服务器
11.6  SSH 服务器的高级应用 357
11.6.1 在非标准端口启动 SSH(非 Port 22)
11.6.2 以 rsync 进行同步镜像备份
11.6.3 通过SSH通道加密原本无加密的服务
11.6.4 以SSH通道配合 X Server 传递图形界面
11.7 重点回顾
11.8 参考数据与延伸阅读
第12章 网络参数管理者:DHCP服务器
12.1 DHCP 的工作原理
12.1.1 DHCP 服务器的用途
12.1.2 DHCP 协议的工作方式
12.1.3 何时需要架设 DHCP 服务器
12.2 DHCP 服务器端的配置
12.2.1 所需软件与文件结构
12.2.2 主要配置文件 /etc/dhcp/dhcpd.conf 的语法
12.2.3 一个局域网的 DHCP 服务器设置案例
12.2.4 DHCP 服务器的启动与观察
12.2.5 内部主机的 IP 对应
12.3 DHCP 客户端的设置
12.3.1 客户端是 Linux
12.3.2 客户端是 Windows
12.4 DHCP 服务器端的高级查看与使用
12.4.1 检查租约文件
12.4.2 让大量 PC 都具有固定 IP 的脚本
12.4.3 使用 ether-wake 实现远程自动开机(remote boot)
12.4.4 DHCP 与 DNS 的关系
12.5 重点回顾
12.6 参考数据与延伸阅读
第13章 文件服务器之一:NFS 服务器
13.1 NFS的由来与功能
13.1.1 什么是 NFS(Network File System)
13.1.2 什么是 RPC(Remote Procedure Call)
13.1.3 NFS 启动的 RPC daemons
13.1.4 NFS 的文件访问权限
13.2 NFS Server 端的配置
13.2.1 所需要的软件
13.2.2 NFS 的软件结构
13.2.3 /etc/exports 配置文件的语法与参数
13.2.4 启动 NFS
13.2.5 NFS 的连接查看
13.2.6 NFS 的安全性
13.3 NFS 客户端的设置
13.3.1 手动挂载 NFS 服务器共享的资源
13.3.2 客户端可处理的挂载参数与开机挂载
13.3.3 无法挂载的原因分析
13.3.4 自动挂载 autofs 的使用
13.4 案例演练
13.5 重点回顾
13.6 参考数据与延伸阅读
……
第22章 邮件服务器:Postfix
22.1 邮件服务器的功能与工作原理
22.1.1 电子邮件的功能与问题
22.1.2 Mail server 与 DNS 之间的关系
22.1.3 邮件传输所需要的组件(MTA、MUA、MDA)以及相关协议
22.1.4 用户收信时服务器端所提供的相关协议: MRA
22.1.5 Relay 与认证机制的重要性
22.1.6 电子邮件的数据内容
22.2 MTA 服务器:Postfix基础设定
22.2.1 Postfix 的开发
22.2.2 所需要的软件与软件结构
22.2.3 一个邮件服务器的设定案例
22.2.4 让 Postfix 可监听 Internet 来收发邮件
22.2.5 邮件发送流程与收信、Relay 等重要概念
22.2.6 设定邮件主机权限与过滤机制:/etc/postfix/access
22.2.7 设定邮件别名: /etc/aliases、~/.forward
22.2.8 查看邮件队列信息:postqueue、mailq
22.2.9 防火墙设置
22.3 MRA 服务器:dovecot 设定
22.3.1 基础的 POP3/IMAP 设定
22.3.2 加密的 POP3s/IMAPs 设定
22.3.3 防火墙设置
22.4 MUA 软件:客户端的收发邮件软件
22.4.1 Linux mail
22.4.2 Linux mutt
22.4.3 好用的跨平台(Windows/Linux X)软件:Thunderbird
22.5 邮件服务器的高级设定
22.5.1 邮件过滤一:用 postgrey 进行非正规Mail server 的垃圾邮件过滤
22.5.2 邮件过滤二:关于黑名单的过滤机制
22.5.3 邮件过滤三:基础的邮件过滤机制
22.5.4 非信任来源的 Relay:开放 SMTP 身份认证
22.5.5 非固定 IP 邮件服务器的福音:relayhost
22.5.6 其他设置小技巧
22.6 重点回顾
22.7 参考数据与延伸阅读

感悟与笔记

网络:了解网络基础知识与所需服务之通讯协议

既然要架设服务器,首先当然得要了解一下因特网。因为不管是哪种操作系统,若想要与因特网联机,这个网络基础就得了解。

举例来说,『网域』是经常会谈到的概念,当你发现一个设定为 192.168.1.0/255.255.255.0 时,晓得那是什么鬼东西吗? 如果不知道的话,呵呵!绝对无法设定好网站的啦!另外,为何你需要服务器?当然是想要达成某项网络服务。 举例来说,传输档案可以用 FTP,那 WWW 可以传递档案吗?网芳可以传递吗?各有何用处?哪个比较方便? 对于客户或老板来说,我们所设定的服务能否满足他们的需求等等,这都需要了解,否则你将一头雾水啊!

因此这部份你就得要了解:

基本的网络基础知识:包括以太网络硬件与协议、TCP/IP、网络联机所需参数等;

各网络服务所对应的通讯协议原理,以及各通讯协议所需对应的软件。

服务器本身:了解架网络服务器之目的以配合主机的安装规划

想要架设服务器吗?那...架什么服务器?这个服务器要不要对 Internet 开放?这个服务要不要针对客户提供相关账号? 要不要针对不同的客户账号进行例如磁盘容量、可活动空间与可用系统资源进行限制?如果要进行各项资源的限制,那服务器操作系统应该要如何安装与设定?问题很多吧!所以,先了解你要的服务器服务目的之后,后续的规划才能陆续出炉。不过,如果架站只是为了『练功』而已,呵呵!那就不需要考虑太多了~

服务器本身:了解操作系统的基本操作

网络服务软件是需要建置在操作系统上面的,所以基本的操作系统操作就得要了解才行啊!包括软件如何安装与移除?如何让系统进行例行的工作管理?如何依据服务器服务之目的规划文件系统?如何让文件系统具有未来扩充性 (LVM 之类)? 系统如何管理各项服务之启动?系统的开机流程为何?系统出错时,该如何进行快速复原等等,这都需要了解的呢!

内部防火墙设定:管理系统的可分享资源

一部主机可以拥有多种服务器软件的运作,而很多 Linux distributions 出厂的默认值就已经开放很多服务给 Internet 使用了,不过这些服务可能并不是你想要开放的呢。我们在了解网络基础与所需服务的目的之后,接下来就是透过防火墙来规范可以使用本服务器服务的用户,以让系统在使用上拥有较佳的控管情况。 此外,不管你的防火墙系统设定的再怎么严格,只要是你要开放的服务,那防火墙对于该服务就没有保护的效果。因此,那个重要的在线更新软件机制就一定要定期进行!否则你的系统将会非常非常的不安全!

服务器软件设定:学习设定技巧与开机是否自动执行

刚刚第一点就提到我们得要知道每种服务所能达成的功能,如此一来才能够架设你所需要的服务的网站。 那你所需要的服务是由哪个软件达成的?同一个服务可否有不同的软件?每种软件可以达成的目的是否相同? 依据所需要的功能如何设定你的服务器软件?架设过程中如果出现错误,你该如何观察与除错? 可否定期的分析服务器相关的登录信息,以方便了解该服务器的使用情况与错误发生的原因? 能否通知多个用户进行联机测试,以取得较佳的服务器设定值?所以这里你可能就得要知道:

软件如何安装、如何查询相关配置文件所在位置;

服务器软件如何设定?

服务器软件如何启动?如何设定自动开机启动?如何观察启动的埠口?

服务器软件激活失败如何除错?如何观察登录档?如何透过登录档进行除错?

透过客户端进行联机测试,如果失败该如何处理?联机失败的原因是服务器还是防火墙?

服务器的设定修改是否有建立日志?登录档是否有定期分析?

服务器所提供或分享的数据有无定期备份?如何定期自动备份或异地备份?

细部权限设定:包括 SELinux 与档案权限

等到你的服务器全部设定妥当,最后你所提供的档案数据权限却是给了『 000 』的权限分数, 那鸟哥很肯定的说,大家都无法读到你所提供的数据啊...!此外,新的 distributions 都建议你要启动 SELinux ,那是什么咚咚? 如果你的数据放置于非正规的目录,那该如何处理 SELinux 的问题?又如何让档案具有保密性或共享性 (档案权限概念与ACL等) 等等,这也都是需要厘清的观念喔!

Copyright © 2021-2022 知识猫. All Rights Reserved.