您的位置:首页 > 运维架构 > Linux

马哥2016全新Linux+Python高端运维班第九周作业

2016-10-30 09:33 483 查看
本周作业内容:
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 []: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进行共享。

##未完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 作业