1、详细描述一次加密通讯的过程,结合图示最佳。
SSL安全套接层协议,使用公钥和私钥组合,加密网页和服务器之间传输的数据。
OIS模型中介于应用层和传输层之间,
表示层:SSL握手协议(协商密钥)
会话层:SSL记录协议(定义传输格式)
握手过程如下:
(1)SSL客户端通过Client Hello消息将它支持的SSL版本、加密算法、密钥交换算法、MAC算法等信息发送给SSL
服务器。
(2)SSL服务器确定本次通信采用的SSL版本和加密套件,并通过Server Hello消息通知给SSL客户端。如果SSL服
务器允许SSL客户端在以后的通信中重用本次会话,则SSL服务器会为本次会话分配会话ID,并通过Server Hello消息发送给SSL客户端。
(3)SSL服务器将携带自己公钥信息的数字证书通过Certificate消息发送给SSL客户端。
(4)SSL服务器发送Server Hello Done消息,通知SSL客户端版本和加密套件协商结束,开始进行密钥交换。
(5)SSL客户端验证SSL服务器的证书合法后,利用证书中的公钥加密SSL客户端随机生成的premaster secret,
并通过Client Key Exchange消息发送给SSL服务器。
(6)SSL客户端发送Change Cipher Spec消息,通知SSL服务器后续报文将采用协商好的密钥和加密套件进行加密
和MAC计算。
(7)SSL客户端计算已交互的握手消息(除Change Cipher Spec消息外所有已交互的消息)的Hash值,利用协商
好的密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给SSL服务器。SSL服
务器利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且
MAC值验证成功,则证明密钥和加密套件协商成功。
(8)同样地,SSL服务器发送Change Cipher Spec消息,通知SSL客户端后续报文将采用协商好的密钥和加密套件
进行加密和MAC计算。
(9)SSL服务器计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加MAC值、
加密等),并通过Finished消息发送给SSL客户端。SSL客户端利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。
2、描述创建私有CA的过程,以及为客户端发来的证书请求进行办法证书。
创建ca证书申请及签署步骤:
1 生成申请请求:
2 RA核验
3 CA签署
4 获取证书
具体创建CA证书如下:
openssl的默认配置文件:/etc/pki/tls/openssl.cnf
1 创建所需要的的文件
cd /etc/pki/CA
touch index.txt
echo 01 > serial
2 ca自签证书
生成私钥:(umask 077;openssl genrsa -out private/cakey.pem 2048)
提取公钥:openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem
-new:生成新的证书签署请求
-x509:专用于CA自签证书
-key:生成请求时用到的私钥文件
-days:证书的有效期,默认单位是天
-out:公钥的保存路径
回车之后的交互输入信息
国家
省份
城市
公司名,组织名
部门名
服务器名字
邮件地址
发证过程:
a 用到证书的主机生成证书请求
b 把请求文件传输给ca
c ca签署
d 发送证书给服务器
以hhtps为例:
cd /etc/httpd
mkdir ssl
cd ssl
生成客户端私钥:(umask 077;openssl genrsa -out http.key 2048)
提取客户端公钥:openssl req -new -key http.key -days 365 -out httpd.csr
回车之后的交互输入信息
国家
省份
城市
公司名,组织名
部门名
服务器名字
邮件地址
httpd.csr并不是证书,只是是证书请求,需要把这个请求给ca服务器验证
上传给CA服务器:scp httpd.scr root@服务器ip:/tmp
ca服务器:
cd /tmp
ls
openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
把验证通过的证书发送给客户端:scp /etc/pki/CA/certs/httpd.crt 客户端ip:/etc/httpd/ssl/
3、搭建一套DNS服务器,负责解析magedu.com域名(自行设定主机名及IP)
(1)、能够对一些主机名进行正向解析和逆向解析;
正向解析:
1 编辑主配置文件
vim /etc/named.conf
listen-on port 53 { any; };表示监听本地IP的53端口,允许所用地址访问本地53端口
allow-query{ any; };允许所有地址查询
recursion yes;是否递归,如果是no那么这台DNS服务器将不会递归解析,yes或注释掉不写,表是允许,默认是允许
一般把dnssec选项改no,注释也是默认的开启
dnssec-enable no;
dnssec-validation no;
2 编辑区域配置文件:
vim /etc/named.rfc1912.zones
//加入一个新的需要解析的区域:
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
3 编辑区域解析库文件
//新的解析库文件一般都是需要自己手动创建
cd /var/named/ 区域解析库文件目录
vim magedu.com.zone 创建解析库文件,此文件名和区域配置文件中的名应该一致,并添加解析数据
$TTL 1D
$ORIGIN magedu.com.
@ IN SOA ns1.magedu.com. admin.magedu.com. (
20161017001
1H
5M
7D
1D
)
IN NS ns1
IN NS ns2
IN MX 10 mx1
ns1 IN A 192.168.2.110
ns2 IN A 192.168.2.111
mx1 IN A 192.168.2.112
www IN A 192.168.2.113
ftp IN A 192.168.2.114
修改解析库文件权限和属组:
#chmod 640 magedu.com.zone
#chown :named magedu.com.zone
4 测试
检查配置文件是否存在错误:
[root@localhost named]# named-checkconf
[root@localhost named]# named-checkzone "magedu.com" magedu.com.zone
zone magedu.com/IN: loaded serial 2981147817
OK
重启服务器:
[root@localhost named]# service named restart
Stopping named: . [ OK ]
Starting named:
测试:
# dig -t A www.magedu.com @192.168.2.110
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.magedu.com @192.168.2.110
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23132
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.magedu.com.INA
;; ANSWER SECTION:
www.magedu.com.86400INA192.168.2.113
;; AUTHORITY SECTION:
magedu.com.86400INNSns2.magedu.com.
magedu.com.86400INNSns1.magedu.com.
;; ADDITIONAL SECTION:
ns1.magedu.com.86400INA192.168.2.110
ns2.magedu.com.86400INA192.168.2.111
;; Query time: 1 msec
;; SERVER: 192.168.2.110#53(192.168.2.110)
;; WHEN: Fri Oct 28 05:51:23 2016
;; MSG SIZE rcvd: 116
反向解析:
1 编辑区域配置文件:
//加入一个新的需要反向解析的网络地址区域:
zone "2.168.192.in-addr.arpa" IN {
type master;
file "2.168.192.zone";
};
2 编辑反向区域解析库文件:
cd /var/named/
vim 2.168.192.zone
$TTL 1D
$ORIGIN 2.168.192.in-addr.arpa.
@ IN SOA ns1.magedu.com. admin.magedu.com. (
20161018001
1H
5M
7D
1D
)
IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
110 IN PTR ns1.magedu.com.
111 IN PTR ns2.magedu.com.
112 IN PTR mail.magedu.com.
113 IN PTR www.magedu.com.
114 IN PTR ftp.magedu.com.
修改解析库文件权限和属组:
#chmod 640 2.168.192.zone
#chown :named 2.168.192.zone
3 测试:
检查配置文件是否存在错误:
[root@localhost named]# named-checkconf
[root@localhost named]# named-checkzone "2.168.192.in-addr.arpa" 2.168.192.zone
zone 2.168.192.in-addr.arpa/IN: 2.168.192.in-addr.arpa/MX 'mail.magedu.com' (out of zone) has no addresses records (A or AAAA)
zone 2.168.192.in-addr.arpa/IN: loaded serial 2981148817
OK
重新加载服务:
[root@localhost named]# rndc reload
server reload successful
测试:
[root@localhost named]# dig -x 192.168.2.114 @192.168.2.110
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -x 192.168.2.114 @192.168.2.110
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6316
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;114.2.168.192.in-addr.arpa.INPTR
;; ANSWER SECTION:
114.2.168.192.in-addr.arpa. 86400 INPTRftp.magedu.com.
;; AUTHORITY SECTION:
2.168.192.in-addr.arpa.86400INNSns1.magedu.com.
2.168.192.in-addr.arpa.86400INNSns2.magedu.com.
;; ADDITIONAL SECTION:
ns1.magedu.com.86400INA192.168.2.110
ns2.magedu.com.86400INA192.168.2.111
;; Query time: 0 msec
;; SERVER: 192.168.2.110#53(192.168.2.110)
;; WHEN: Fri Oct 28 06:07:26 2016
;; MSG SIZE rcvd: 140
(2)、对子域cdn.magedu.com进行子域授权,子域负责解析对应子域中的主机名;
1 在父域解析库文件中增加子域的NS和A记录
vim vim magedu.com.zone
IN NS ns1.cdn
IN NS ns2.cdn
ftp IN A 192.168.2.114
ns1.cdn IN A 192.168.2.109
ns2.cdn IN A 192.168.2.100
2 子域服务器:
yum -y install bind
vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
recursion yes;
dnssec-enable no;
dnssec-validation no;
3 编辑区域配置文件:
# vim /etc/named.rfc1912.zones
zone "cdn.magedu.com" IN {
type master;
file "cdn.magedu.com";
};
zone "magedu.com" IN {
type forward;
forward only;
forwarders { 192.168.2.110; };
};
4 编辑子域解析库文件:
[root@mageedu named]# vim /var/named/cdn.magedu.com
$TTL 1D
$ORIGIN cdn.magedu.com.
@ IN SOA ns1.cdn.magedu.com. admin.cdn.magedu.com.(
2016110201
1H
10M
3D
1D )
IN NS ns1
IN NS ns2
IN MX 10 mail
ns1 IN A 192.168.2.109
ns2 IN A 192.168.2.100
www IN A 192.168.2.10
ftp IN A 192.168.2.11
mail IN A 192.168.2.12
mail1 IN CNAME mail
* IN A 192.168.2.109
5 测试:
[root@mageedu named]# named-checkconf
[root@mageedu named]# named-checkzone "cdn.magedu.com" cdn.magedu.com
zone cdn.magedu.com/IN: loaded serial 2016110201
OK
[root@mageedu named]# service named restart
Stopping named: [ OK ]
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
子域解析:
[root@mageedu named]# dig -t A www.cdn.magedu.com @192.168.2.109
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.cdn.magedu.com @192.168.2.109
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30310
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.cdn.magedu.com.INA
;; ANSWER SECTION:
www.cdn.magedu.com.86400INA192.168.2.10
;; AUTHORITY SECTION:
cdn.magedu.com.86400INNSns1.cdn.magedu.com.
cdn.magedu.com.86400INNSns2.cdn.magedu.com.
;; ADDITIONAL SECTION:
ns1.cdn.magedu.com.86400INA192.168.2.109
ns2.cdn.magedu.com.86400INA192.168.2.100
;; Query time: 0 msec
;; SERVER: 192.168.2.109#53(192.168.2.109)
;; WHEN: Mon Oct 24 15:06:57 2016
;; MSG SIZE rcvd: 120
父域解析:
[root@mageedu named]# dig -t A www.magedu.com @192.168.2.109
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.magedu.com @192.168.2.109
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53661
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
;; QUESTION SECTION:
;www.magedu.com.INA
;; ANSWER SECTION:
www.magedu.com.85257INA192.168.2.113
;; AUTHORITY SECTION:
magedu.com.85257INNSns2.magedu.com.
magedu.com.85257INNSns2.cdn.magedu.com.
magedu.com.85257INNSns1.magedu.com.
magedu.com.85257INNSns1.cdn.magedu.com.
;; ADDITIONAL SECTION:
ns1.cdn.magedu.com.86400INA192.168.2.109
ns2.cdn.magedu.com.86400INA192.168.2.100
ns1.magedu.com.85257INA192.168.2.110
ns2.magedu.com.85257INA192.168.2.111
(3)、为了保证DNS服务系统的高可用性,请设计一套方案,并写出详细的实施过程
1 借助主从DNS系统可实现快速有效的灾备切换操作,提升系统切换操作的效率,简化灾备切换流程。
2 dnc服务器使用缓存,降低服务器消耗;
3 考虑安全性因素,DNS系统的部署遵循内外分开的原则,对于内部DNS系统与Internet保持隔离;
4 智能DNS应用模式,以实现应用多点接入,跨数据中心的负载分流等功能;
4、请描述一次完整的http请求处理过程;
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:
1. 建立TCP连接
在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,
该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。
HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,
因此,首先要建立TCP连接,一般TCP连接的端口号是80。
2. Web浏览器向Web服务器发送请求命令
一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET/sample/hello.jsp HTTP/1.1。
3. Web浏览器发送请求头信息
浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了
一空白行来通知服务器,它已经结束了该头信息的发送。
4. Web服务器应答
客户机向服务器发出请求后,服务器会客户机回送应答, HTTP/1.1 200 OK ,应答的第一部分是协议的版本
号和应答状态码。
5. Web服务器发送应答头信息
正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求
的文档。
6. Web服务器向浏览器发送数据
Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以
Content-Type应答头信息所描述的格式发送用户所请求的实际数据。
7. Web服务器关闭TCP连接
一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其
头信息加入了这行代码:
Connection:keep-alive
TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为
每个请求建立新连接所需的时间,还节约了网络带宽。
5、httpd所支持的处理模型有哪些,他们的分别使用于哪些环境。
prefork:(预派生,生成一个请求,过1秒再生成一个请求,再过一秒生成2个,然后按照指数方式生成。)
多进程模型,每个进程响应一个请求;
一个主进程:负责生成子进程及回收子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处
理;
n个子进程:每个子进程处理一个请求;
工作模型:会预先生成几个空闲进程,随时等待用于响应用户请求;最大空闲和最小空闲;
(一个请求一个进程,稳定可靠,性能差)
worker:多进程多线程模型,每线程处理一个用户请求;
一个主进程:负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
多个子进程:每个子进程负责生成多个线程;
每个线程:负责响应用户请求;
并发响应数量:m*n
m:子进程数量
n:每个子进程所能创建的最大线程数量;
(web生成多个进程,每个进程生成多个线程,一个请求用一个线程,多个线程共享一个资源,效率高,但写入
时会造成竞争)
event:事件驱动模型,多进程模型,每个进程响应多个请求;
一个主进程 :负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
子进程:基于事件驱动机制直接响应多个请求;
(基于事件一个进程处理多个请求)httpd-2.2: 仍为测试使用模型;httpd-2.4:event可生产环境中使用;
event :机制解释。内部并没有什么线程来为每一个连接创建一个独立的处理逻辑。但在其内部是基于事件
驱动的机制(当请求到来的时候,请求需要等待的时候,请求找了一个内存空间记录状态 ,I/O完成时,会
继续进行操作)
6、建立httpd服务器(基于编译的方式进行),要求:
提供两个基于名称的虚拟主机:
(a)www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access;
(b)www2.stuX.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;
(c)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;
(d)通过www1.stuX.com/server-status输出httpd工作状态相关信息,且只允许提供帐号密码才能访问(status:status);
编译前先准备系统的开发环境: [root@magedu /]#yum -y groupinstall "Development tools" "Server Platform Development" 创建一个下载目录,用于下载所需软件:(apache需要的依赖pcre,apr及apr-util) [root@magedu /]# mkdir /lamp [root@magedu /]# cd /lamp/ [root@magedu lamp]# wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz [root@magedu lamp]# wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz [root@magedu lamp]# wget http://ncu.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz 编译安装Apache: 1 编译安装apr: [root@magedu lamp]# tar zxf apr-1.5.2.tar.gz [root@magedu lamp]# cd apr-1.5.2 [root@magedu apr-1.5.2]# ./configure --prefix=/usr/local/apr [root@magedu apr-1.5.2]# make && make install 2 编译安装arp-util [root@magedu lamp]# tar -zxf apr-util-1.5.4.tar.gz [root@magedu lamp]# cd apr-util-1.5.4 [root@magedu apr-util-1.5.4]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@magedu apr-util-1.5.4]#make && make install
3 编译安装pcre [root@magedu lamp]# tar -zxf pcre-8.39.tar.gz [root@magedu lamp]# cd pcre-8.39 [root@magedu pcre-8.39]# ./configure --enable-utf8 [root@magedu pcre-8.39]#make && make install 4 安装Apache [root@magedu lamp]# tar -zxf httpd-2.4.23.tar.gz [root@magedu lamp]# cd httpd-2.4.23 [root@magedu httpd-2.4.23]#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=worker [root@magedu httpd-2.4.23]## make && make install 检测是否安装成功: [root@magedu httpd-2.4.23]# /usr/local/apache/bin/httpd -v Server version: Apache/2.4.23 (Unix) Server built: Nov 3 2016 07:41:40
把apache服务加到系统service里面去: [root@magedu httpd]# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd [root@magedu httpd]# vim /etc/rc.d/init.d/httpd 修改httpd,在文件头加入如下内容: # chkconfig: 345 85 15(第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)) [root@magedu apr-1.5.2]# chkconfig --add httpd [root@magedu apr-1.5.2]# chkconfig httpd on [root@magedu apr-1.5.2]# chkconfig --list httpd httpd 0:off1:off2:on3:on4:on5:on6:off [root@magedu apr-1.5.2]# service httpd restart [root@magedu apr-1.5.2]# ss -tunl Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 128 :::80 :::*
配置虚拟主机: [root@magedu ~]# vim /etc/httpd/httpd.conf #DocumentRoot "/usr/local/apache/htdocs" Include /etc/httpd24/extra/httpd-vhosts.conf [root@magedu ~]# vim /etc/httpd/extra/httpd-vhosts.confServerAdmin admin.stuX.com DocumentRoot "/web/vhosts/www1/" ServerName www1.stuX.com ServerAlias www.dummy-host.example.com ErrorLog "/var/log/httpd/www1.err" CustomLog "/var/log/httpd/www1.access" common Require all granted
ServerAdmin admin.stuX.com DocumentRoot "/web/vhosts/www2/" ServerName www2.stuX.com ErrorLog "/var/log/httpd/www2.err" CustomLog "/var/log/httpd/www2.access" common [root@magedu ~]# mkdir -p /web/vhost/{www1,www2} [root@magedu ~]# echo "www1.test" > /web/vhost/www1/index.html && echo "www2.test" /web/vhost/www2/index.html [root@magedu ~]# service httpd restartRequire all granted
测试: [root@magedu ~]# vim /etc/hosts 192.168.2.105 www1.stuX.com 192.168.2.105 www2.stuX.com [root@magedu ~]# curl www1.stuX.com www1.test [root@magedu ~]# curl www2.stuX.com www2.test 修改第一个虚拟主机: [root@magedu ~]# /usr/local/apache/bin/htpasswd -m -c /usr/local/apache/.htpasswd status New password: Re-type new password: Adding password for user status [root@magedu ~]# vim /etc/httpd/extra/httpd-vhosts.confServerAdmin admin.stuX.com DocumentRoot "/web/vhosts/www1/" ServerName www1.stuX.com ServerAlias www.dummy-host.example.com ErrorLog "/var/log/httpd/www1.err" CustomLog "/var/log/httpd/www1.access" common Require all granted
SetHandler server-status AuthType Basic AuthName "Only for status" AuthUserFile "/usr/local/apache/.htpasswd" Require valid-user [root@magedu ~]# service httpd restart 测试: 测试客户端也要修改hosts文件
7、为第6题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
(1)要求使用证书认证,证书中要求使用的国家(CN)、州(HA)、城市(ZZ)和组织(MageEdu);
(2)设置部门为Ops,主机名为www2.stuX.com,邮件为[email protected];
自建CA: 1 创建所需文件 [root@magedu ~]# cd /etc/pki/CA/ [root@magedu CA]# touch index.txt [root@magedu CA]# touch serial [root@magedu CA]# echo 01 > serial 2 ca自签证书 [root@magedu CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048) Generating RSA private key, 2048 bit long modulus [root@magedu CA]# openssl req -new -x509 -key private/cakey.pem -days 7300 -out cacert.pem You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. -----
Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:HA Locality Name (eg, city) [Default City]:ZZ Organization Name (eg, company) [Default Company Ltd]:MageEdu Organizational Unit Name (eg, section) []:Ops Common Name (eg, your name or your server's hostname) []:www2.stuX.com Email Address []:[email protected] 3 httpd生成私钥,创建证书签署请求,然后由CA签署 [root@magedu CA]# mkdir /usr/local/apache/ssl [root@magedu CA]# (umask 077; openssl genrsa -out /usr/local/apache/ssl/http.key 2048) Generating RSA private key, 2048 bit long modulus [root@magedu ssl]# openssl req -new -key http.key -days 365 -out httpd.csr [root@magedu ssl]# scp httpd.csr -P 6006 [email protected]:/tmp [root@localhost CA]# openssl ca -in /tmp/httpd.csr -out certs/httpd.crt -days 365 [root@localhost CA]# scp certs/httpd.crt 192.168.2.105:/usr/local/apache/ssl/
4 httpd置文件修改 [root@magedu httpd]# vim /etc/httpd/httpd.conf LoadModule ssl_module modules/mod_ssl.so #开启 Include /etc/httpd24/extra/httpd-ssl.conf #开启 LoadModule socache_shmcb_module modules/mod_socache_shmcb.so#开启 [root@magedu httpd]# vim /etc/httpd/extra/httpd-ssl.conf# General setup for the virtual host DocumentRoot "/web/vhosts/www2/" ServerName www2.stuX.com ServerAdmin [email protected] ErrorLog "/var/log/httpd/www2.err" CustomLog "/var/log/httpd/www2.access" common SSLCertificateFile "/usr/local/apache/ssl/http.crt" SSLCertificateKeyFile "/usr/local/apache/ssl/http.key" [root@magedu httpd]# service httpd restart
8、建立samba共享,共享目录为/data,要求:(描述完整的过程)
1)共享名为shared,工作组为magedu;
2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;
3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;
4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;
1 安装samba [root@magedu httpd]# yum -y install samba samba-client 2 创建组,用户及samba用户: [root@magedu httpd]# groupadd develop [root@magedu httpd]# useradd -G develop gentoo [root@magedu httpd]# useradd -G develop centos [root@magedu httpd]# useradd ubuntu [root@magedu httpd]# echo gentoo | passwd --stdin gentoo && echo centos | passwd --stdin centos && echo ubuntu | passwd --stdin ubuntu [root@magedu httpd]# smbpasswd -a gentoo [root@magedu httpd]# smbpasswd -a centos [root@magedu httpd]# smbpasswd -a ubuntu
3 修改配置文件 [root@magedu /]# vim /etc/samba/smb.conf hosts allow = 192.168.2.0/24 [share] comment = test shared path= /data guest ok = yes valid users = gentoo,centos,ubuntu write list = @develop writable = yes [root@magedu /]# mkdir /data [root@magedu /]# chmod g+w /data/ [root@magedu /]# chown :develop /data/
[root@magedu httpd]# /etc/init.d/smb restart [root@magedu /]# smbclient -L 192.168.2.105 -U gentoo Enter gentoo's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6] Sharename Type Comment --------- ---- ------- share Disk test shared IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6) gentoo Disk Home Directories [root@localhost modules]# smbclient //192.168.2.105/share -U centos Enter centos's password: smb: \> lcd /etc/ smb: \> put fstab putting file fstab as \fstab (210.0 kb/s) (average 210.0 kb/s) [root@localhost modules]# smbclient //192.168.2.105/share -U ubuntu Enter ubuntu's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6] smb: \> lcd /etc/ smb: \> put fstab NT_STATUS_ACCESS_DENIED opening remote file \fstab
9、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程)
1)基于虚拟用户的访问形式;
2)匿名用户只允许下载,不允许上传;
3)禁锢所有的用户于其家目录当中;
4)限制最大并发连接数为200:;
5)匿名用户的最大传输速率512KB/s
6)虚拟用户的账号存储在mysql数据库当中。
7)数据库通过NFS进行共享。
1 安装服务器端: [root@magedu data]# yum -y install nfs-utils [root@magedu data]# mkdir /ftproot [root@magedu data]# id mysql uid=498(mysql) gid=499(mysql) groups=499(mysql) [root@magedu data]# chown mysql:mysql /ftproot/ [root@magedu data]# vim /etc/exports /ftproot 192.168.2.110/24(no_root_squash,rw,sync) [root@magedu data]# /etc/init.d/nfs restart 2 安装客户端: [root@localhost yum.repos.d]# mkdir /mydata [root@localhost yum.repos.d]# vim /etc/fstab 192.168.2.105:/ftproot /mydata nfs defaults 0 0 [root@localhost yum.repos.d]# mount -a [root@localhost yum.repos.d]# yum -y install mysql mysql-server mysql-devel [root@localhost yum.repos.d]# yum -y install vsftpd [root@localhost yum.repos.d]# vim /etc/my.cnf [mysqld] datadir=/mydata [root@localhost yum.repos.d]# mysql_install_db --datadir="/mydata" [root@localhost yum.repos.d]# /etc/init.d/mysqld restart
配置数据库,和vsftpd 创建数据库:vsftpd,用户:vsftp 表名:users 并插入两条(虚拟用户)数据 mysql> create database vsftpd; mysql> grant select on vsftpd.* to [email protected] identified by 'magedu'; mysql> use vsftpd mysql> create table users (id int AUTO_INCREMENT NOT NULL,name char(20) binary NOT NULL,password char(48) binary NOT NULL,primary key(id)); mysql> insert into users(name,password) values('magedu1',password('magedu')),('magedu2',password('magedu')); mysql> select * from users; mysql> flush privileges
配置vsftp 1.建立pam认证所需文件 #vi /etc/pam.d/vsftpd.mysql 添加如下两行 auth required /lib/security/pam_mysql.so user=vsftp passwd=magedu host=192.168.137.30 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 ##用于用户认证 account required /lib/security/pam_mysql.so user=vsftp passwd=magedu host=192.168.137.30 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 ##用于检查用户时效性 2.修改vsftpd的配置文件,使其适应mysql认证 建立虚拟用户映射的系统用户及对应的目录 useradd -s /sbin/nologin -d /var/ftproot vuser chmod go+rx /var/ftproot/ 请确保/etc/vsftpd.conf中已经启用了以下选项 anonymous_enable=YES local_enable=YES write_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO chroot_local_user=YES ##禁锢所有本地用户于家目录下 pam_service_name=vsftpd.mysql ##认证文件 max_clients=200 ##并发连接数 anon_max_rate=524288 ##单位是字节每秒,512KB/s 512*1024
启动vsftpd,并测试 service vsftpd start 到服务器上安装ftp客户端工具 # yum install -y ftp lftp # ftp 192.168.2.110 验证magedu1,magedu2两个用户