RHCE笔记(部分)

第十二章  通过SSL 封装的Web服务 通过加密保护Apache的安全  rhce RHCE6 rhce考试 rhce培训    

正常情况下,我们在访问服务器的时候,所有的数据都是明文的,但有的时候比如我们在访问支付宝或者网银的时候,如果说数据还是明文的话,那么久很危险。我们希望所有的数据都是加密的,可是使用ssl来解决这个问题,即平时所见到的https。

    之前我们就说过,对称加密算法的缺点是密钥不好传输,我们可以结合非对称加密算法。但非对称加密算法也不是很安全,因为私钥和实体之间没有一个必然的联系,为了解决这个问题CA就应运而生了。    

     CA是大家都信任的证书颁发中心,一家企业首先要生成一对密钥,然后把自己的公约、数字签名、以及很多的个人信息比如营业执照等等发到CA去验证,如果说CA审核通过了,CA会给你颁发一个证书,这个证书其实就是公约,只不过这个公约有了CA的数字签名,客户再验证这个企业的数字签名的时候,就要用这个CA颁发的这个证书,而不是直接使用这个企业的公约。在验证之前,首先要确认这个证书的合法性。    

     下面我们来看一下https整个的工作流程,这里我们用访问支付宝来举例:     当我们在访问支付宝的时候,发送一个请求过去的时候,支付宝网站会发送一个证书给过来,此时我们的客户端收到这个证书之后,会验证这个证书的合法性,因为我们浏览器里集成了很多个CA的证书。

RHCE笔记(部分)

       如果给支付宝签名的CA没有在浏览器里,那么我们的浏览器就会提醒不是不可信任的证书。如果给支付宝签名的CA出现在浏览器里了话,就不会有任何提示。然后客户端会和服务器进行协商协商所有的加密方法和算法,协商完了后,客户端会生成一个对称密钥,然后用支付宝的证书把这个对称密钥加密发送给支付宝,因为支付宝有证书所对应的私钥,所以可以解密,并得到对称加密的密钥。那么以后客户端和支付宝之间所有的通信都被这个对称密钥进行加密。

                       。 安装Apache Web服务器的证书并启用 SSL 封装

        如果我们想在服务器上启用ssl的话,我们要先安装mod_ssl RHCE笔记(部分)

安装完之后在/etc/httpd/conf.d里面有ssl.conf。 RHCE笔记(部分)

这个文件是证书文件,在实际中是由CA颁发过来的。 RHCE笔记(部分)

这个文件是服务器的私钥。可以把证书和私钥放在任何地方,只要在这个文件里面指定路径就可以了,但是推荐大家放到一个安全的地方,并设置好权限。

     在我们的实验中,我们只要一个私钥和一个证书就可以了。我们可以在另外的一台机器上用openssl模拟出来一个CA,然后在本机生成一堆密钥,然后到CA里面去签名,那么我们就有了一个证书,这个场景大家回去自己练习。

     我们这里用使用openssl自带的文件生成一个证书和私钥,仅仅来模拟,如下: RHCE笔记(部分) RHCE笔记(部分)

这里就生成了一个ca.key和ca.crt就是一个私钥和一个证书(我们是通过简洁的方式实现的,略过了到CA申请的过程)。下面我们要再ssl.conf里面指定密钥和证书的位置。

RHCE笔记(部分)

 

我们现在已经正确的指定了证书和密钥的位置。现在可以重启服务器:

RHCE笔记(部分)

这里面已经报警了,告诉我们不安全,我们可以点击“我已充分了解可能的风险”

RHCE笔记(部分)

现在就可以访问了。

我们现在所做的https,会对服务器中所有的站点都起作用。但是我们只想对某个目录来做https,比如在/var/www/html/中有一个目录pay,我们希望凡是访问这里面的东西都要进行https,不进行https就不能访问。

首先在ssl.conf里全局的把ssl引擎关掉,那这样所有的虚拟主机都不能再使用https,然后我们编辑httpd.conf里面,对某个虚拟主机单独启用:

RHCE笔记(部分)

 

下面顺便看一下ssh隧道:

现在还原所有的,我们希望除了自身之外谁都不能访问本机的http:

RHCE笔记(部分)

现在就实现了只允许本机能访问我的http,其他主机都不行

RHCE笔记(部分)

其他机器现在访问不了,但有的时候我们就得要访问,比如我们要做测试,必须要访问怎么办?

如果我们能使用ssh访问到web服务器的话,那么我们可以利用ssh建立一条从本机到web服务的隧道,本地任意选择一个非著名端口(只要大于1024就行)比如5000端口和web服务的ssh的80连接。在本地我向自己的5000端口发送一个http的请求,目的地址是127.0.0.1,因为有个管子连接到web服务器,所以这个请求通过这个管子(隧道)传输到web服务器上,而web服务器一看是自己来访问的,就把结果显示出来了,但是结果再通过隧道传回。

建立隧道:

RHCE笔记(部分)

但我们发现却连接过去了,这样不好,我们应该这样连接:

RHCE笔记(部分)

现在隧道已经建立了,但是是在后台的,我们所做的操作都会发送到后台:

RHCE笔记(部分)

RHCE笔记(部分)

 

 

 

 

 

第十三章   Web 服务器其他配置

首先安装:

RHCE笔记(部分)

daemon: httpd    配置文件: /etc/httpd/conf/httpd.conf

httpd 的端口号是:80,首先要在防火墙中打开这个端口

查看服务器类型:

RHCE笔记(部分)

开始修改配置文件:

RHCE笔记(部分)

RHCE笔记(部分)

order后面allow和deny的顺序很重要,写在后面的将成为默认的。

下面的allow from 和deny from先写哪个无所谓,当发生冲突的时候,默认的生效。

个人主页:

RHCE笔记(部分)

在tom的家目录里创建public_html,chmod o+rx /home/tom

RHCE笔记(部分)

RHCE笔记(部分)

很多时候我们不会再用户名前面加上~的,我们只要做一个软连接:

RHCE笔记(部分)

RHCE笔记(部分)

现在没有~也是可以访问的。

RHCE笔记(部分)

我们的首页默认是index.html就是由上面的这个命令决定的。

有的时某个目录的安全性比较高,不希望别人随意的访问。那么我们可以设置密码。

在任意的一个目录里生成密码文件,命令如下:

RHCE笔记(部分)

如果这个文件不存在的话,要加-c就是create的意思。

现在我们的目录和.htpasswd没有必然的联系,我们还要在/var/www/html/ooxx里写一个文件.htaccess,内容如下:

RHCE笔记(部分)

然后看效果:

RHCE笔记(部分)

下面我们来看一下CGI,CGI全程是通用网关接口。

RHCE笔记(部分)

这句话的意思是,当在地址栏里面出现/cgi-bin/的时候,那么访问的是/var/www/cgi-bin/里面的东西,举个例子好理解:

首先到/var/www/cgi-bin/里用perl写一个脚本test.pl

RHCE笔记(部分)

开始通过浏览器浏览:

RHCE笔记(部分)

当你发送请求的时候,服务器收到后,会执行这个脚本,然后把结果返回。

RHCE笔记(部分)

 

指明了服务器的编码是utf-8,所以你使用的一些软件比如discuz(用来搭建论坛的著名程序),就要使用utf8的版本 ,如果你使用GBK的版本的就会产生乱码。

RHCE笔记(部分)

支持的语言。

 

配置基于名称的虚拟主机

很多时候一台服务器可能会跑很多的站点,所以我们要配置虚拟主机,虚拟主机有两种,一种是基于主机名的虚拟主机,第二种是基于IP地址的虚拟主机。

所谓基于主机名的虚拟主机,就是所有的站点都用同一个IP,配置如下:

RHCE笔记(部分)

上图是默认的,如果我们要启用基于主机名的虚拟主机的话,首先要启用基于主机名的虚拟主机的功能:

RHCE笔记(部分)

开始定义虚拟主机:

RHCE笔记(部分)

如上图定义了两个虚拟主机, 原来还有一个,但是如果你定义了虚拟主机的话那么必须要把原来的那个站点也加到虚拟主机里来,如果没有加的话,那么就访问不了了。

整体效果如下:

RHCE笔记(部分)

RHCE笔记(部分)

RHCE笔记(部分)

RHCE笔记(部分)

RHCE笔记(部分)

如果没有某个站点能 解析出来正确的ip,但是没有写在虚拟主机里,那么就会访问第一个虚拟主机(我们的例子是baidu):

RHCE笔记(部分)

基于主机名的虚拟主机到此结束。

下面我们来看一下基于ip的虚拟主机,所谓的基于ip地址的虚拟主机,就是同一台服务器上跑了多个站点,每个站点的ip是不一样的,这就要求我们的服务器要有多个ip:

我们首先给我们的网卡定义几个别名:

RHCE笔记(部分)

RHCE笔记(部分)

首先我们要关闭RHCE笔记(部分)

刚才说了, 这个是启用基于主机名的虚拟主机用的。

定义虚拟主机:

RHCE笔记(部分)

我们来测试一下效果:

RHCE笔记(部分)

RHCE笔记(部分)

RHCE笔记(部分)

RHCE笔记(部分)

类似这样的就是基于ip地址的虚拟主机。

 

 

 

 

 

第十四章  基本 SMTP 配置

基本电子邮件发送

SMTP:简单邮件传输协议

大家记住,在RHEL6里默认的MTA是postfix,而不是sendtail,默认情况下面已经安装过了,而且已经正常的可以使用了。但是,他监听的只是自身的回环接口。

RHCE笔记(部分)

daemon: postfix  配置文件:/etc/postfix/main.cf和/etc/postfix/master.cf,我们主要修改的是第一个文件。

。 配置Postfix 以从网络接收关于系统管理任务的电子邮件

刚才已经说了,postfix默认只对自身提供服务,如果想对外提供服务的话,我们要修改main.cf

RHCE笔记(部分)

默认只监听localhost端口,我们要把这行注释掉,然后把all的那行注释去点:

RHCE笔记(部分)

重启服务:

RHCE笔记(部分)

现在我们的服务器就可以对外提供服务了。

首先了解一下main.cf的结构,里面的结构是: key = value ,设置变量差不多,如果想再次引用key的话,要用 $key这种格式。 再给key赋值的时候,可以赋多个值,多个值用空格或者,隔开。

在写配置文件的时候,每行必须要从开头开始写,不能有空格,否则的话会认为是上一行的延续。

在postfix里面已经默认有了很多值,可以使用 postconf -d来查看:

RHCE笔记(部分)

可以看出来一共有600多项默认值,格式如上图。

如果想查看非默认值的话: postconf -n

如果我们要修改某个参数的话,可以修改配置文件也可以直接使用postconf -e命令:比如:

RHCE笔记(部分)

通过命令来修改的话,配置文件也会跟着改的。

RHCE笔记(部分)

为什么我的配置文件还没有做任何的更还,他就能把myhostname设置为server1.example.com了呢?

是因为如果没有明确配置的话,系统会调用gethostname()这个函数获得我们的主机名当myhostname的值。

下面我们就来看一下常见的几个参数:

myhostname  没有直接的作用,就是为了提供一些变量让其他参数调用。

mydomain  如果没有明确赋值的话 ,mydomain会取myhostname第一个点后面的值

RHCE笔记(部分)

mydomain也没有一个直接的作用,也是让其他参数调用。

RHCE笔记(部分)

mydestionation : 刚才已经说了,MTA收到邮件之后首先会判断一下收件人是不是他自身的一个用户,就是根据收件人@后面的部分是否出现在了mydestionation里面了。

当前mydestination的取值里面RHCE笔记(部分)

分别代表: server1.example.com     localhost.example.com    localhost

所以当收到一封邮件的时候,如果收件人是xx@example.com 的话,那么笨服务器会不会把当它当成本地的邮件呢?不会把他当成本地的邮件,即不会投递。

RHCE笔记(部分)

RHCE笔记(部分)

RHCE笔记(部分)

RHCE笔记(部分)

myorigin: 用来设置当我们发邮件的时候, @后面应该是什么样子的。当我们发邮件的时候发件人应该是 root@server1.example.com, 但是显得不专业, 我们可以把@后面的主机名换成域名。

RHCE笔记(部分)

当tom收到邮件的时候,看到收件人是root@server1.example.com,他就感觉root很不专业。

RHCE笔记(部分)

RHCE笔记(部分)

此时的发件人就是root@example.com了。

这样可以做伪装。

RHCE笔记(部分)

这个是用来设置访问控制的,如果值是class的话,那么和同类的地址都可以使用我服务,比如我是c类地址,那么所有的c类地址都能使用,不管他是什么地址,只要是c类的。

如果是subnet的话,就可以设置具体的哪个网段,如果是host的话,就可以设置具体的 哪台主机。

RHCE笔记(部分)

relayhost用来设置转发的地址,比如我收到一封邮件,我不投递,而是把他转发到其他的MTU上去的话,那么久能用到relayhost这个参数,比如:

RHCE笔记(部分)

当我收到邮件的时候,会把这封邮件转发给server2.example.com这台MTA。加上中括号的意思是不让他解析。

下面来看别名:

当给张三发一封邮件的时候,服务器会把邮件转发给李四。

首先编辑/etc/aliases,在最后一行写:

RHCE笔记(部分)

冒号左边是别名,也就是假名字不存在的用户,冒号右边是真是存在的用户, 多个用户的话,用,隔开。上图的意思是,如果给admin发一封邮件,那么实际收到的bob,tom,root。这样我们可以做邮件的群发。

编辑完后要执行:

RHCE笔记(部分)

RHCE笔记(部分)

在别名的位置,即使admin是存在的,那么他也是收不到邮件的。

所有的邮件都保存在:

RHCE笔记(部分)

 

 

 

相关新闻

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

                                                                                                                                    RHCE9学习指南连载,点击阅读