本周作业内容:

1、详细描述一次加密通讯的过程,结合图示最佳。

    1).用户A对通信内容进行单向加密,提取特征码

    2).用户A使用自己的私钥对特征码进行加密,并将加密后的特征码附在通信内容里

    3).用户A使用对称加密算法,对整个通信内容加密

    4).用户A获取用户B的公钥,并使用内置的CA证书验证用户B的公钥

    5).用户A使用用户B的公钥加密对称加密算法的密钥,并将加密后的密钥和通信内容一起发送给用户B

    6).用户B使用自己的私钥解密对称加密密钥,得到对称加密密钥

    7).用户B使用得到的对称加密密钥解密通信内容,得到加密后的特征码和通信内容

    8).用户B获取用户A的公钥,并使用内置的CA证书验证用户A的公钥

    9).用户B使用用户A的公钥解密加密的特征码

    10).用户B使用同样的单向加密算法对通信内容提取特征码,并对比解密后的特征码,如果一致说明通信内容是完整的

wKiom1gWBdOD7WbsAAI4rEiQQjc451.png-wh_50


2、描述创建私有CA的过程,以及为客户端发来的证书请求进行办法证书。

  (1)CA创建所需要的文件

cd /etc/pki/CA
touch index.txt  ##数据库文件,第一次时需要创建
echo 01 > serial  ##证书序列号,第一次颁证时需要创建

 (2)CA自签证书

#创建私钥
openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048
chomod 600 private/cakey.pem
#创建公钥证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem
#填写证书信息:
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) []:www.yjc.com
Email Address []:root@www.yjc.com

  (3)客户端发送证书请求

#用需要使用证书的主机生成证书请求:
#这里以https为例,实验环境已安装httpd
(umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr
填写证书信息(这里的地方信息需要和CA证书的信息保持一致):
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) []:www.magedu.com
Email Address []:root@yjc.rhel7.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:            
An optional company name []:

#把请求文件转送给CA
scp /etc/httpd/ssl/httpd.csr 192.168.100.105:/tmp/

  (4)CA颁发证书

#CA签署证书,并将证书发还给请求者
openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
#检查信息正确后确认生成证书
scp /etc/pki/CA/certs/httpd.crt 192.168.100.104:/etc/httpd/ssl/
#查看证书信息
openssl x509 -in /etc/httpd/ssl/httpd.crt -noout -text

3、搭建一套DNS服务器,负责解析magedu.com域名(自行设定主机名及IP)

(1)、能够对一些主机名进行正向解析和逆向解析;

(2)、对子域cdn.magedu.com进行子域授权,子域负责解析对应子域中的主机名;

(3)、为了保证DNS服务系统的高可用性,请设计一套方案,并写出详细的实施过程

实验环境:
centos6.8
    ip:192.168.100.105
    角色:主dns服务器
rhel7.2
    ip:192.168.100.104
    角色:从dns服务器
rhel7.2
    ip:192.168.100.106
    角色:子域主dns服务器
		
主dns服务器:
	安装:yum install bind -y
	配置主配置文件:vim /etc/named.conf
	修改监听地址:
	    listen-on port 53 { 127.0.0.1; 192.168.100.105; };	#在监听地址上添加本机地址
	关闭dnssec: 
	    dnssec-enable no;
	    dnssec-validation no;
	允许所有主机查询:
	    allow-query { any; };

	//配置正向区域
	配置配置文件,添加定义zone:vim /etc/named.rfc1912.zones
	    zone "magedu.com" IN {
            type master;
            file "magedu.com.zone";
	    };
	创建zone解析库,vim /var/named/magedu.com.zone
	$TTL 1D
	$ORIGIN magedu.com.
	@		IN		SOA	ns1.magedu.com.		root.magedu.com. (
						2016103001
						1H
						5M
						7D
						1D)
			IN		NS	ns1.magedu.com.
			IN		NS	ns2.magedu.com.
			IN		MX 10	mail.magedu.com.
	ns1	    IN		A	192.168.100.105
	ns2	    IN		A	192.168.100.104
	mail	    IN		A	192.168.100.105
	www	    IN		A	192.168.100.104
	检测配置文件和zone
		named-checkconf
		named-checkzone "magedu.com" /var/named/magedu.com.zone
	修改zone文件权限
		chmod 640 /var/named/magedu.com.zone
		chown :named /var/named/magedu.com.zone
	启动服务
		service named start
	检测:
		dig -t A www.magedu.com @192.168.100.105
		host -t NS magedu.com 192.168.100.105
			
	//配置反向区域
	vim /etc/named.rfc1912.zones
		zone "100.168.192.in.addr.arpa" IN {
                      type master;
                      file "192.168.100.zone";
		};
	创建zone解析库
	vim /var/named/192.168.100.zone
	$TTL 1D
	$ORIGIN 100.168.192.in.addr.arpa.
	@		IN		SOA	ns1.magedu.com.		root.magedu.com. (
						2016103001
						1H
						5M
						7D
						1D)
			IN		NS	ns1.magedu.com.
			IN		NS	ns2.magedu.com.
	105		IN		PTR	ns1.magedu.com.
	104		IN		PTR	ns2.magedu.com.
	104		IN		PTR	www.magedu.com.
	检测配置文件和zone
	    named-checkconf
		named-checkzone "100.168.192.in.addr.arpa" /var/named/192.168.100.zone
	修改zone文件权限
		chmod 640 /var/named/192.168.100.zone
		chown :named /var/named/192.168.100.zone
	重载服务
		service named reload
	检测:
		dig -t PTR 104.100.168.192.in.addr.arpa @192.168.100.105
		host -t PTR 104.100.168.192.in.addr.arpa 192.168.100.105
			
	//配置子域授权
	在解析库文件上定义一个子区域:
	vim /var/named/magedu.com.zone
		cdn.magedu.com.		IN	NS	ns1.cdn.magedu.com.
		ns1.cdn.magedu.com.	IN	A	192.168.100.106
	修改SOA记录里的序列号
从dns服务器:
	安装:yum install bind bind-utils -y
	配置主配置文件:vim /etc/named.conf
	修改监听地址:
		listen-on port 53 { 127.0.0.1; 192.168.100.104; };	#在监听地址上添加本机地址
	关闭dnssec: 
		dnssec-enable no;
		dnssec-validation no;
	允许所有主机查询:
		allow-query { any; };
		
	检查从服务器能否从主服务器获取区域传递
		dig -t axfr magedu.com @192.168.100.105
	配置配置文件,添加正向zone
	vim /etc/named.rfc1912.zones
		zone "magedu.com" IN {
			type slave;
			masters { 192.168.100.105; };
			file "slaves/magedu.com.zone";
		};
	添加反向zone
		zone "100.168.192.in.addr.arpa" IN {
			type slave;
			masters { 192.168.100.105; };
			file "slaves/192.168.100.zone";
		};
	启动服务
		systemctl start named
	检测:
		dig -t A www.magedu.com @192.168.100.104
		dig -t PTR 104.100.168.192.in.addr.arpa @192.168.100.104
子域主dns服务器:
	安装:yum install bind bind-utils -y
	配置主配置文件:vim /etc/named.conf
	修改监听地址:
		listen-on port 53 { 127.0.0.1; 192.168.100.106; };	#在监听地址上添加本机地址
	关闭dnssec: 
		dnssec-enable no;
		dnssec-validation no;
	允许所有主机查询:
		allow-query { any; };
			
	//配置子域正向区域
	配置配置文件,添加定义zone:vim /etc/named.rfc1912.zones
		zone "cdn.magedu.com" IN {
			type master;
			file "cdn.magedu.com.zone";
		};
	创建zone解析库,vim /var/named/cdn.magedu.com.zone
	$TTL 1D
	$ORIGIN cdn.magedu.com.
	@		IN		SOA	ns1.cdn.magedu.com.		root.cdn.magedu.com. (
					    2016103001
						1H
						5M
						7D
						1D)
			IN	        NS	ns1.cdn.magedu.com.
	ns1		IN		A	192.168.100.106
	www		IN		A	192.168.1.1
	www		IN		A	192.168.1.2
	检测配置文件和zone
		named-checkconf
		named-checkzone "cdn.magedu.com" /var/named/cdn.magedu.com.zone
	修改zone文件权限
		chmod 640 /var/named/cdn.magedu.com.zone
		chown :named /var/named/cdn.magedu.com.zone
	启动服务
		systemctl start named 
	检测:
		dig -t A www.cdn.magedu.com @192.168.100.106
		dig -t A www.cdn.magedu.com @192.168.100.105


4、请描述一次完整的http请求处理过程;

  (1)建立或处理连接:接收请求或拒绝请求

  (2)接受请求:接收来自于网络的请求报文中对某资源的一次请求的过程

  (3)处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息

  (4)访问资源:获取请求报文中的资源

  (5)构建响应报文

  (6)发送响应报文

  (7)记录日志


5、httpd所支持的处理模型有哪些,他们的分别使用于哪些环境。

  prefork:多进程模型,每个进程响应一个请求

      一个主进程,负责生产多个子进程,子进程也称为工作进程,每个子进程处理一个用户请求,即便没有用户请求,也会预先生成多个空闲进程,随时等待请求到达,最大不会超过1024个

  worker:多线程模型,每个线程响应一个请求

      一个主进程,生成多个子进程,每个子进程负责生成多个线程,每个线程响应一个请求

  event:事件驱动模型,每个线程应该多个请求

      一个主进程,生成多个子进程,每个子进程直接响应多个请求


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);

实验环境:
rhel 7.2
    ip:192.168.100.104
    http版本:httpd-2.4.18.tar.bz2
    依赖包:apr-1.5.2.tar.gz apr-util-1.5.4.tar.gz pcre-8.38.tar.gz
	
    ##安装开发包
    yum install gcc gcc-c++
    ##安装依赖包
    tar -zxf apr-1.5.2.tar.gz
    cd apr-1.5.2/
    ./configure --prefix=/usr/local/apr
    make
    make install
	
    tar -zxf apr-util-1.5.4.tar.gz
    cd apr-util-1.5.4/
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    make
    make install 
	
    tar -zxf pcre-8.38.tar.gz
    cd pcre-8.38/
    ./configure --prefix=/usr/local/pcre
    make
    make install
	
    ##安装httpd
    解压文件
    tar jxf httpd-2.4.18.tar.bz2
    编译安装
    cd httpd-2.4.18/
    ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/ --enable-modules-most --enable-mods-shared=all --enable-so --enable-ssl
    make 
    make install
    复制帮助手册
	cp /usr/local/httpd/man/man1/* /usr/local/share/man/man1
	cp /usr/local/httpd/man/man/man8/* /usr/local/share/man/man8
    //编译安装httpd完成
	
    ##编辑虚拟主机配置文件
	cd /usr/local/httpd/conf
	vim extra/httpd-vhosts.conf
	<VirtualHost *:80>
            DocumentRoot "/web/vhosts/www1"
            ServerName www1.stuX.com 
            ErrorLog "/var/log/httpd/www1.err"
            CustomLog "/var/log/httpd/www1.access" common
	    <Location /server-status>
		SetHandler server-status
		Require ip 192.168.100.0/24
	    </Location>
	</VirtualHost>

	<VirtualHost *:80>
		DocumentRoot "/web/vhosts/www2" 
		ServerName www2.stuX.com 
		ErrorLog "/var/log/httpd/www2.err"
		CustomLog "/var/log/httpd/www2.access" common
	</VirtualHost>
	
	<Directory "/web/vhosts/www1">
		Options Indexes FollowSymLinks
		AllowOverride None
		Require all granted
	</Directory>

	<Directory "/web/vhosts/www2">
		Options Indexes FollowSymLinks
		AllowOverride None
		Require all granted
	</Directory>

    ##编辑主配置文件
	vim httpd.conf
    #取消以下行的注释
	Include conf/extra/httpd-vhosts.conf

    ##创建文件目录和主页文件
	mkdir -p /web/vhosts/{www1,www2}
	echo "www1.stuX.com" > /web/vhosts/www1/index.html
	echo "www2.stuX.com" > /web/vhosts/www2/index.html
	
    ##启动服务
	/usr/local/httpd/bin/httpd -k start

    ##server-status 页面的帐号密码认证没成功


7、为第6题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;

(1)要求使用证书认证,证书中要求使用的国家(CN)、州(HA)、城市(ZZ)和组织(MageEdu);

(2)设置部门为Ops,主机名为www2.stuX.com,邮件为admin@stuX.com;

mkdir /usr/local/httpd/ssl/
(umask 077;openssl genrsa -out /usr/local/httpd/ssl/httpd.key 2048)
openssl req -new -key /usr/local/httpd/ssl/httpd.key -days 365 -out /usr/local/httpd/ssl/httpd.csr
		
填写证书信息(这里的地方信息需要和CA证书的信息保持一致):
	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 []:admin@stuX.com
		
	Please enter the following 'extra' attributes
	to be sent with your certificate request
	A challenge password []:            
	An optional company name []:

把请求文件转送给CA
	scp /usr/local/httpd/ssl/httpd.csr 192.168.100.105:/tmp/
		
##CA签署后返回证书
        scp /etc/pki/CA/certs/httpd3.crt 192.168.100.104:/usr/local/httpd/ssl
	
##配置ssl文件
	cd /usr/local/httpd/conf
	vim extra/httpd-ssl.conf
##修改ssl配置
	<VirtualHost www2.stuX.com:443>
		DocumentRoot "/web/vhosts/www2" 
		ServerName www2.stuX.com 
		ErrorLog "/var/log/httpd/www2.err"
		CustomLog "/var/log/httpd/www2.access" common
		SSLEngine on
		SSLCertificateFile /usr/local/httpd/ssl/httpd3.crt
		SLCertificateKeyFile /usr/local/httpd/ssl/httpd.key
	</VirtualHost>
	
##配置主配置文件:
	vim httpd.conf
#取消下行注释
	Include conf/extra/httpd-ssl.conf
#添加mod_ssl模块
	LoadModule ssl_module  modules/mod_ssl.so
	LoadModule socache_shmcb_module  modules/mod_socache_shmcb.so
#重启httpd服务
	/usr/local/httpd/bin/httpd -k 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网络的主机访问;

##安装samba服务
    yum install samba -y
##修改配置文件
    vim /etc/samba/smb.conf
#修改工作组
    workgroup = magedu
#添加共享信息
    [shared]
        comment = shared data
        path = /data
        writable = no
        hosts allow = 172.16.
        write list = +develop
##创建组和用户
    groupadd develop
    useradd gentoo -G  develop && echo gentoo | passwd --stdin gentoo
    useradd centos -G  develop && echo centos | passwd --stdin centos
    useradd ubuntu && echo ubuntu | passwd --stdin ubuntu
##添加samba用户
    smbpasswd -a gentoo
    smbpasswd -a centos
    smbpasswd -a ubuntu
##关闭selinux
    setenforce 0
    //不关闭selinux则修改安全上下文
    chcon -R -t samba_share_t /data
    setsebool -P samba_enable_home_dirs on
##创建共享目录
    mkdir /data
    chmod o+w /data
##启动服务
    systemctl start smb

9、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程)

1)基于虚拟用户的访问形式;

2)匿名用户只允许下载,不允许上传;

3)禁锢所有的用户于其家目录当中;

4)限制最大并发连接数为200:;

5)匿名用户的最大传输速率512KB/s

6)虚拟用户的账号存储在mysql数据库当中。

7)数据库通过NFS进行共享。


##未完成