网络服务器成功连接的分析

《鸟哥的Linux私房菜——服务器架设篇(第3版)》第一篇服务器搭建前的进修专区,在本篇服务器搭建前的进修专区当中,我们会介绍简单的网络基础,包含硬件的选择与布线、在 Linux 中连上 Internet 的方法,以及在 Linux 发生无法连接Internet的问题时简易的查验方法。本节为网络服务器成功连接的分析。

1.2 搭建服务器的基本流程

虽然不同的服务器提供的服务并不相同,而且每种服务的原理也不见得都一样,不过,每种服务器由规划、搭建到后续的安全维护,其实整个流程是大同小异的。下面我们就来一项一项地进行分析。

1.2.1 网络服务器成功连接的分析

下面我们就针对整个服务器的简易搭建流程来做一个分析,以明确为什么了解操作系统的基础对于服务器的维护是相当重要的呢?首先,到底我们是如何连接到服务器的? 连接到服务器要取得什么资源?我们先以如下图示(见图1-1)来做个简单的说明。

先来理解一下,到底我们连接到服务器想要得到什么?举例来说,你连接到 Youtube 想要看视频,所以对方就提供视频数据流给你;你连接到 Yahoo 想要看新闻,所以对方就提供新闻的文本文件给你;你连接到无名小站想要看图片,对方将图片文件发送给你;你连接到Facebook 想要去偷菜,对方就参考你之前留下来的记录,从数据库里面将你的记录检索出来传送给你。看到没有,你连接到服务器,重点在取得服务器上的数据,而一般数据的存在就是使用文件!那你有没有权限取得?最终是与该文件系统的设置有关啦!

图1-1 通过网络连接至服务器所需经过的各项环节

图1-1显示的是:首先,客户端到服务器的网络要能够连通,等到客户端访问到服务器后,会先由服务器的防火墙判断该连接能否放行,等到放行之后才能使用到服务器软件的功能。而该功能又需要通过 SELinux 这个细节权限配置的项目后,才能够读取到文件系统。但能不能读到具体文件呢?这又跟文件系统的权限(rwx)有关!上述的每个部分都要能够成功,否则就无法顺利读取数据。

所以,根据上面的流程我们大概可以将整个连接分为几个部分,包括:网络、服务器本身、内部防火墙软件设置、各项服务配置文件、细节权限的 SELinux 以及最重要的文件权限。下面就分别来谈谈每一个部分。

1. 网络:了解网络基础知识与所需服务的通信协议

既然要搭建服务器,首先当然需要了解一下因特网。因为不管是哪种操作系统,若想要与因特网连接,首先要求掌握网络基础知识。举例来说,“子网”是经常会谈到的概念,当你发现一个配置为 192.168.1.0/255.255.255.0 的项目时,知道那是什么鬼东西吗? 如果不知道的话,呵呵!绝对无法配置好网络服务的,另外,为何你需要服务器?当然是想要达成某项网络服务。举例来说,传输文件可以用 FTP,那 WWW 可以传输文件吗?网上邻居可以传输吗?每个网络服务的用途为何?哪个在传输文件方面比较方便? 对于客户或老板来说,我们所搭建的服务能否满足他们的需求等等,这都需要了解,否则你将一头雾水啊!因此这部分你就需要了解:

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

各网络服务所对应的通信协议的工作原理,以及实现各通信协议的具体应用程序。

2. 服务器本身:了解搭建网络服务器的目的以配合主机的安装规划

想要搭建服务器吗?那…搭建什么样的服务器?这个服务器要不要对 Internet 开放?这个服务要不要对客户提供访问账号?要不要针对不同的访问账号进行,例如磁盘容量、可用空间与可用系统资源进行限制?如果要进行各项资源的限制,那服务器操作系统应该要如何安装与设置?问题很多吧!所以,只有首先了解你所需要搭建服务器的各项预期功能之后,后续的规划才能陆续出炉。不过,如果配置服务器只是为了“练功”而已,呵呵!那就不需要考虑太多了。

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

网络服务软件是需要运行在操作系统上面的,所以需要对操作系统基本的管理与操作技术有一个掌握!包括软件如何安装与删除,如何管理系统的计划任务,如何根据服务器的服务目的规划文件系统,如何让文件系统具有可扩展性(LVM 之类),系统如何管理各项服务的启动,系统的开机流程是什么,系统出错时,该如何进行快速复原等,这些都是需要了解的。

4. 内部防火墙设置:管理系统的可共享资源

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

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

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

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

服务器软件如何设置。

服务器软件如何启动;如何设置自动开机启动;如何观察启动的端口。

服务器软件激活失败如何排错;如何查看日志;如何通过日志进行除错。

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

服务器的设置修改是否有相关的日志;相关日志是否要定期分析。

服务器所提供或共享的数据有无定期备份;如何定期自动备份或远程备份。

6. 细节权限设置:包括 SELinux 与文件权限

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

在上述的服务器搭建流程中,其实除了第 5 点之外,其他步骤在各种服务器的设置过程中都需要了解。而且都是一样的内容。因此,这些基础如果学会了,最终,你只要知道第 5 点里面那个软件的基本设置,你的服务器一下子就可以设置完成了。所以说,基础学习很重要。