本周作业内容:
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使用同样的单向加密算法对通信内容提取特征码,并对比解密后的特征码,如果一致说明通信内容是完整的
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 []:[email protected]
(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 []:[email protected] 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.confDocumentRoot "/web/vhosts/www1" ServerName www1.stuX.com ErrorLog "/var/log/httpd/www1.err" CustomLog "/var/log/httpd/www1.access" common SetHandler server-status Require ip 192.168.100.0/24 DocumentRoot "/web/vhosts/www2" ServerName www2.stuX.com ErrorLog "/var/log/httpd/www2.err" CustomLog "/var/log/httpd/www2.access" common Options Indexes FollowSymLinks AllowOverride None Require all granted Options Indexes FollowSymLinks AllowOverride None Require all granted ##编辑主配置文件 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,邮件为[email protected];
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 []:[email protected] 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配置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 ##配置主配置文件: 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进行共享。
##未完成