1、简述常见加密算法及常见加密算法原理,最好使用图例解说
加密算法类型:对称加密、非对称加密、单向加密、密钥交换
1.1对称加密
加密和解密使用同一个密钥,但其安全性依赖于密钥而非算法;
特性:(1)加密和解密使用同一密钥(2)将明文分隔成固定大小的块,逐个进行加密。
缺点:密钥过多、密钥分发
1.2非对称加密
采用公钥加密,私钥解密。
私钥(private key):只允许个人使用,不得泄露给他人
公钥(public key):公开给所有人获取,都可以使用。
公钥是从私钥提取而来的,使用公钥加密的数据,必须要使用与之配对的私钥解密,反之亦然。
作用:(1)身份认证,私钥拥有者用自己的私钥加密数据后发给他人,他人只能用与之对应的公钥解密,若解密成功,则可以证明该段数据确实是私钥拥有者发送的。
(2)密钥交换:私钥拥有者在于对方通信时,对方可以先获得私钥拥有者的公钥,然后用该公钥加密数据后发给私钥拥有者,即可实现数据的保密传输,其他人即使获取到数据也无法解密。
(3)数据加密
算法:RSA DSA ELGamal
特性:(1)密钥长度较大,有512bits 、2048bits、4096bits
(2)、加密解密分别使用密钥对儿中的密钥相对进行、
(3)常见于数据签名和密钥交换
1.3、单向加密:只能加密,不能解密,因为解密的过程是一个二次加密的过程,主要是提取数据的特征码。
特性:(1)定长输出:无论原来的数据是多大级别的,提取后的特征码都是定长的
(2)雪崩效应:数据的微小改变,将导致特征码的巨大变化。
(3 )不可逆转
常见算法有:MD5:128bits定长输出 SHA1:160bits定长输出
SHA256 SHA384 SHA512
用处:(数据完整性)(系统账号密码校验)
1.4密钥交换,IKE(Internet Key Exchange):双方通过密钥交换来实现数据的加密和解密;密钥交换有两种:
公钥加密:将数据用公钥加密后传输给对方解密,这种方式还是有可能被他人获取,因此不太安全。
DH:(Deffie-Helman):双方共有一些参数,共同协商加密算法,除此之外还要有自己的私有参数以确保加密后的隐蔽性。
2、搭建apache或者nginx并使用自签证书实现https访问,自签名证书的域名自拟
2.1建立私有CA:
1、生成私钥文件:/etc/pki/CA/private/cakey.pem
#(umask 077;openssl genrsa -out /etc/pki/CA/cakey.pem 2048)
2、生成自签证书:
#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
3、提供辅助文件
#touch /etc/pki/CA/index.txt
#echo 01 > /etc/pki/CA/serial
2.2搭建Apache服务:
1)安装httpd:yum install httpd -y
2)启动httpd服务:service httpd start
创建相关文件夹
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl
2.3生成私钥文件(需要签发证书的主机进行)
[root@jacklin ssl]# (umask 077;openssl genrsa -out httpd.key)
生成证书签署请求:
# openssl req -new -key httpd.key -out httpd.csr -days 365
生成后使用scp命令传输至签发证书的主机:
[root@jacklin ssl]# scp httpd.csr root@192.168.1.103:/tmp
接下来CA主机验证请求者的信息,通过后给其签署证书
输入上图所示命令,最后输入y确认即可
最后一步:
将签好的证书发送给原主机:
[root@localhost CA]# scp certs/httpd.crt root@192.168.1.107:/etc/httpd/ssl/
然后删除httpd.csr文件,避免信息泄露。
至此,证书签署完毕
3、简述DNS服务器原理,并搭建主-辅服务器
DNS是Domain Name System的简称,DNS的主要作用是将主机名解析成IP地址。它是分布式,分层次的主机名管理架构。通过配置DNS服务器地址,主机不需要知道要访问的主机的IP地址,只需要知道要访问的主机名即可访问该主机。
DNS解析主机IP地址的流程:假设我们找的主机名为www.taobao.com:
1、本地主机先查询本地的hosts文件(/etc/hosts),看看是否有对应的主机名与IP地址,若有,则直接根据对应关系解析;若没有,则执行第二步;
2、到本机指定的DNS服务器(设为NS1)的本地缓存查询是否有相应的ip地址与主机名。若有则反馈给客户端,若没有则执行第三步操作;
3、NS1将请求发送给/服务器,此时根服务器将.com服务器(设为NS2)的主机地址发给NS1,并告知NS1通过NS2寻找www.taobao.com;
4、NS1找到NS2后,NS2将taobao.com(设为NS3)的服务器地址发给NS1,并告知NS1通过该主机进行查找;
5、NS1找到NS3服务器,NS3在本地查询得到www.taobao.com所对应的ip地址,并将ip地址返回给NS1
6、NS1将得到的地址先存储在本地DNS缓存当中,然后再将结果返回给客户端主机。
DNS是一个网络服务,因此其对应的端口为53号,通常其以udp这个快速的数据传输协议来查询的,但是一旦没办法查询到完整信息,它会再次以tcp/ip协议重新查询。因此DNS服务在启动的时候会同时开启tcp协议和udp协议的53号端口。
DNS解析当中域名的解析记录信息称为DNS数据库,这个数据库又分为正解和反解,正解是从主机到ip地址的解析,反解正好相反。每个域名对应的解析记录称为zone。
搭建主服务器
一、先安装DNS服务器软件
NDS软件包名为bind。还有其他相关的软件包名字,有bind-libs(与bind相关的库文件)、bind-utils(客户端的相关命令),centos6和7直接使用yum命令安装bind主程序包即可,因为相关软件程序包都已经集成在bind中。
使用 # yum -y install bind
二、配置相关的配置文件
DNS的配置文件由很多个。其中:
/etc/named.conf,/etc/named.rfc1912.zones:为主配置文件;
/var/named/:该目录下的文件为DNS数据库文件,所有的域文件都放在里面。
/etc/rc.d/init.d/named:为DNS的服务脚本;
编辑/etc/ named.conf或者/etc/named.rfc1912.zones文件,这里选择编辑后者;添加区域名为magedu.com以及反向解析区域1.168.192.in-addr.arpa。
定义好zone以后,分别编辑/var/named/magedu.com.zone 这个正向解析库文件以及192.168.1.zone这个反向区域文件。如下:
三:然后修改解析库文件的属组、属主权限以及检查是否有语法错误并重启服务
1)#chown named:named /var/named/magedu.com /var/named/1.168.192.in-addr.arpa
#chown o=--- /var/named/magedu.com /var/named/1.168.192.in-addr.arpa
上面两条命令同时设置两个文件的属组属主为named,其他用户没有权限。
2)检查主配置文件及数据库配置文件是否有语法错误。
# named-checkconf /etc/named.conf
# named-checkzone magedu.com /var/named/magedu.com.zone
# named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.zone
出现ok说明配置没问题
四:测试DNS服务能否进行解析
如上图所示,正解和反解都能成功解析,说明配置成功,这个环节可以多测试几个域名和ip。
至此,主DNS服务器配置成功。
接下来配置从DNS服务器
一、主服务器需要在bind主配置文件中/etc/named.conf的zone中定义设置允许哪些从服务器来同步信息:
二、主服务器还需要分别的正向和反向的解析库文件当中添加ns解析记录。
配置完检查是否有语法错误,并重载服务,使用
#rdnc reload
在从服务器主配置文件当中添加zone
检查无语法错误后执行:rdnc reload
检验从dns服务器是否能解析域名和ip地址
至此,成功搭建主从DNS服务器,可把我牛逼坏了,叉会儿腰!
4、搭建并实现智能DNS