LINUX 第十二天 学习笔记

一、学习内容提炼

9.2 远程控制服务

9.2.2 安全密钥验证
加密是对信息进行编码和解码的技术,它通过一定的算法(密钥)将原本可以直接阅读的明文信息转换成密文形式。密钥即是密文的钥匙,有私钥和公钥之分。在传输数据时,如果担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样,只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将其破译为明文信息。

一言以蔽之,在生产环境中使用密码进行口令验证终归存在着被暴力破解或嗅探截获的风险。如果正确配置了密钥验证方式,那么sshd服务程序将更加安全。我们下面进行具体的配置,其步骤如下。

第1步:在客户端主机中生成“密钥对”。
在这里插入图片描述
在这里插入图片描述

第2步:把客户端主机中生成的公钥文件传送至远程主机:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第3步:对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。记得在修改配置文件后保存并重启sshd服务程序。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.2.3 远程传输命令 不支持断点续传
scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令,其格式为“scp [参数] 本地文件 远程帐户@远程IP地址:远程目录”。

与第2章讲解的cp命令不同,cp命令只能在本地硬盘中进行文件复制,而scp不仅能够通过网络传送数据,而且所有的数据都将进行加密处理。例如,如果想把一些文件通过网络从一台主机传递到其他主机,这两台主机又恰巧是Linux系统,这时使用scp命令就可以轻松完成文件的传递了。scp命令中可用的参数以及作用如下表所示。
在这里插入图片描述
在使用scp命令把文件从本地复制到远程主机时,首先需要以绝对路径的形式写清本地文件的存放位置。如果要传送整个文件夹内的所有数据,还需要额外添加参数-r进行递归操作。然后写上要传送到的远程主机的IP地址,远程服务器便会要求进行身份验证了。当前用户名称为root,而密码则为远程服务器的密码。如果想使用指定用户的身份进行验证,可使用用户名@主机地址的参数格式。最后需要在远程主机的IP地址后面添加冒号,并在后面写上要传送到远程主机的哪个文件夹中。只要参数正确并且成功验证了用户身份,即可开始传送工作。
在这里插入图片描述
此外,还可以使用scp命令把远程主机上的文件下载到本地主机,其命令格式为“scp [参数] 远程用户@远程IP地址:远程文件 本地目录”。
在这里插入图片描述

9.3 不间断会话服务

大家在学习sshd服务时,不知有没有注意到这样一个事情:当与远程主机的会话被关闭时,在远程主机上运行的命令也随之被中断。

如果我们正在使用命令来打包文件,或者正在使用脚本安装某个服务程序,中途是绝对不能关闭在本地打开的终端窗口或断开网络链接的,甚至是网速的波动都有可能导致任务中断,此时只能重新进行远程链接并重新开始任务。还有些时候,我们正在执行文件打包操作,同时又想用脚本来安装某个服务程序,这时会因为打包操作的输出信息占满用户的屏幕界面,而只能再打开一个执行远程会话的终端窗口,时间久了,难免会忘记这些打开的终端窗口是做什么用的了。

screen是一款能够实现多窗口远程控制的开源服务程序,简单来说就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。用户还可以使用screen服务程序同时在多个远程会话中自由切换,能够做到实现如下功能。
会话恢复:即便网络中断,也可让会话随时恢复,确保用户不会失去对远程会话的控制。
多窗口:每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能看到之前的操作记录。
会话共享:当多个用户同时登录到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享。

在RHEL 7系统中,没有默认安装screen服务程序,因此需要配置Yum仓库来安装它。首先将虚拟机的CD/DVD光盘选项设置为“使用ISO镜像文件”,并选择已经下载好的系统镜像,如图所示。
在这里插入图片描述
然后,把光盘设备中的系统镜像挂载到/media/cdrom目录。
在这里插入图片描述
然后,使用Vim文本编辑器创建Yum仓库的配置文件
在这里插入图片描述
接着,使用Yum仓库来安装screen服务程序
在这里插入图片描述
9.3.1 管理远程会话
screen命令能做的事情非常多:可以用-S参数创建会话窗口;用-d参数将指定会话进行离线处理;用-r参数恢复指定会话;用-x参数一次性恢复所有的会话;用-ls参数显示当前已有的会话;以及用-wipe参数把目前无法使用的会话删除,等等。
在这里插入图片描述
在日常的生产环境中,其实并不是必须先创建会话,然后再开始工作。可以直接使用screen命令执行要运行的命令,这样在命令中的一切操作也都会被记录下来,当命令执行结束后screen会话也会自动结束。
在这里插入图片描述

9.3.2 会话共享功能
screen命令不仅可以确保用户在极端情况下也不丢失对系统的远程控制,保证了生产环境中远程工作的不间断性,而且它还具有会话共享、分屏切割、会话锁定等实用的功能。其中,会话共享功能是一件很酷的事情,当多个用户同时控制主机的时候,它可以把屏幕内容共享出来,也就是说每个用户都可以看到相同的内容。(screen -x)

screen的会话共享功能的流程拓扑如图所示。
在这里插入图片描述

=============================================================

第10章 使用Apache服务部署静态网站

10.1 网站服务程序
平时访问的网站服务就是Web网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务。如图10-1所示,Web网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的Web服务器会通过HTTP(超文本传输协议)或HTTPS(安全超文本传输协议)把请求的内容传送给用户。

目前能够提供Web网络服务的程序有IIS、Nginx和Apache等。其中,IIS(Internet Information Services,互联网信息服务)是Windows系统中默认的Web服务程序,这是一款图形化的网站管理工具,不仅可以提供Web网站服务,还可以提供FTP、NMTP、SMTP等服务。

2004年10月4日,为俄罗斯知名门户站点而开发的Web服务程序Nginx横空出世。Nginx程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市场,但Nginx最被认可的还当是系统资源消耗低且并发能力强,因此得到了国内诸如新浪、网易、腾讯等门户站的青睐。将在第20章讲解Nginx服务程序

Apache服务程序可以运行在Linux系统、UNIX系统甚至是Windows系统中,支持基于IP、域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全Socket层(SSL),能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持。

Apache程序作为老牌的Web服务程序,一方面在Web服务器软件市场具有相当高的占有率,另一方面Apache也是RHEL 7系统中默认的Web服务程序

首先,把光盘设备中的系统镜像挂载到/media/cdrom目录,并使用Vim文本编辑器创建Yum仓库的配置文件(同第九章)

然后,使用yum命令安装Apache服务程序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.2 配置服务文件参数
在Linux系统中配置httpd服务,其实就是修改服务的配置文件,因此,还需要知道这些配置文件的所在位置以及用途,httpd服务程序的主要配置文件及存放位置如表所示。
在这里插入图片描述
在httpd服务程序的主配置文件中,存在三种类型的信息:注释行信息、全局配置、区域配置,如图所示。
在这里插入图片描述
学习第4章时已经接触过注释信息,因此这里主要讲解全局配置参数与区域配置参数的区别。顾名思义,全局配置参数就是一种全局性的配置参数,可作用于对所有的子站点,既保证了子站点的正常访问,也有效减少了频繁写入重复参数的工作量。区域配置参数则是单独针对于每个独立的子站点进行设置的。
在httpd服务程序主配置文件中,最为常用的参数如表10-2所示。
在这里插入图片描述
DocumentRoot参数用于定义网站数据的保存路径,其参数的默认值是把网站数据存放到/var/www/html目录中;而当前网站普遍的首页面名称是index.html,因此可以向/var/www/html目录中写入一个文件,替换掉httpd服务程序的默认首页面,该操作会立即生效。
在这里插入图片描述
在默认情况下,网站数据是保存在/var/www/html目录中,而如果想把保存网站数据的目录修改为/home/wwwroot目录,该怎么操作呢?且看下面实验。
在这里插入图片描述
10.3 SELinux安全子系统
SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。RHEL 7系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。

SELinux安全子系统能够从多方面监控违法行为:
对服务程序的功能进行限制(SELinux域限制可以确保服务程序做不了出格的事情);
对文件资源的访问限制(SELinux安全上下文确保文件资源只能被其所属的服务程序进行访问)。

可以把“SELinux域”和“SELinux安全上下文”称为是Linux系统中的双保险,系统内的服务程序只能规规矩矩地拿到自己所应该获取的资源,这样即便黑客入侵了系统,也无法利用系统内的服务程序进行越权操作。但是,非常可惜的是,SELinux服务比较复杂,配置难度也很大,加之很多运维人员对这项技术理解不深,从而导致很多服务器在部署好Linux系统后直接将SELinux禁用了;这绝对不是明智的选择。

SELinux服务有三种配置模式:
enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
permissive:遇到服务越权访问时,只发出警告而不强制拦截。
disabled:对于越权的行为不警告也不拦截。

本书中的所有实验都是在强制启用安全策略模式下进行的,虽然在禁用SELinux服务后确实能够减少报错几率,但这在生产环境中相当不推荐。建议大家检查一下自己的系统,查看SELinux服务主配置文件中定义的默认状态。如果是permissive或disabled,建议赶紧修改为enforcing。

SELinux服务的主配置文件中,定义的是SELinux的默认运行状态,可以将其理解为系统重启后的状态,因此它不会在更改后立即生效。
在这里插入图片描述
可以使用getenforce命令获得当前SELinux服务的运行模式,为了确认上文实验中打开网站显示的是httpd服务程序的默认首页面确实是因为SELinux而导致的,可以用setenforce [0|1]命令修改SELinux当前的运行模式(0为禁用,1为启用)。注意,这种修改只是临时的,在系统重启后就会失效。
在这里插入图片描述
继续分析:
上文实验中提到,将网站数据保存路径的参数从/var/www/html改为/home/wwwroot后网站打开后显示的是httpd服务程序的默认首页面,之前的章节中讲到/home目录是用来存放普通用户的家目录数据,而现在,httpd提供的网站服务却要去获取普通用户加目录中的数据,这显然违反了SELinux的监管原则。
现在,我们把SELinux服务恢复到强制启用安全策略模式,然后分别查看原始网站数据的保存目录与当前网站数据的保存目录是否拥有不同的SELinux安全上下文值:
在这里插入图片描述
在文件上设置的SELinux安全上下文是由用户段、角色段以及类型段等多个信息项共同组成的。其中,用户段system_u代表系统进程的身份,角色段object_r代表文件目录的角色,类型段httpd_sys_content_t代表网站服务的系统文件。由于SELinux服务实在太过复杂,现在大家只需要简单熟悉SELinux服务的作用就可以。

semanage命令:
semanage命令用于管理SELinux的策略,格式为“semanage [选项] [文件]”。

SELinux服务极大地提升了Linux系统的安全性,将用户权限牢牢地锁在笼子里。semanage命令不仅能够像传统chcon命令那样—设置文件、目录的策略,还可以管理网络端口、消息接口(这些新特性将在本章后文中涵盖)。使用semanage命令时,经常用到的几个参数及其功能如下所示:
-l参数用于查询;
-a参数用于添加;
-m参数用于修改;
-d参数用于删除。
在这里插入图片描述

10.4 个人用户主页功能
如果想在系统中为每位用户建立一个独立的网站,通常的方法是基于虚拟网站主机功能来部署多个网站。但这个工作会让管理员苦不堪言(尤其是用户数量很庞大时),而且在用户自行管理网站时,还会碰到各种权限限制,需要为此做很多额外的工作。其实,httpd服务程序提供的个人用户主页功能完全可以胜任这个工作。该功能可以让系统内所有的用户在自己的家目录中管理个人的网站,而且访问起来也非常容易。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有时,网站的拥有者并不希望直接将网页内容显示出来,只想让通过身份验证的用户访客看到里面的内容,这时就可以在网站中添加口令功能了。
在这里插入图片描述

二、笔记截图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

发布了19 篇原创文章 · 获赞 0 · 访问量 224

猜你喜欢

转载自blog.csdn.net/qq_30358029/article/details/100123391