何哲 2019011313 计95
1 申请域名
通过在user主机访问地址
192.168.1.4:8000
进行域名注册。注册域名为
hez19.imool.com
2 配置DSN权威
首先安装 bind9
sudo apt install bind9 bind9utils bind9-doc
之后配置 bind9 为 IPv4 模式 (在其中
ExecStart
一行加上 -4
)sudo vim /etc/systemd/system/multi-user.target.wants/bind9.service
...
[Service]
...
ExecStart=/usr/sbin/named -f $OPTIONS -4
...
sudo systemctl daemon-reload
sudo systemctl restart bind9
之后修改配置文件
/etc/bind/named.conf.local
zone "imool.com" {
type master;
file "/etc/bind/zones/db.imool.com";
};
之后修改文件
/etc/bind/zones/db.imool.com
$TTL 604800
@ IN SOA ns1.imool.com. admin.imool.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; records
@ IN NS ns1.imool.com.
imool.com. IN NS ns1.imool.com.
hez19.imool.com. IN A 192.168.1.5
ns1.imool.com. IN A 192.168.1.3
最后在 user 主机上尝试 ping
hez19.imool.com
,效果如下:完成该实验。
参考博客:
3 HTTP 服务
使用 nginx 搭建 HTTP 服务
nginx 配置如下:
...
http {
...
server {
listen 80;
server_name hez19.imool.com
location / {
root /home/test;
index 2019011313.html 2019011313.htm;
}
}
...
}
...
之后在目录
/homt/test
下创建文件 2019011313.html
并在文件里输入 2019011313 ,之后从 user 主机可以访问到:说明服务配置成功。
4 PKI/HTTPS 服务
首先运行
certbot
sudo certbot certonly --no-verify-ssl --server https://192.168.1.2:443/acme/acme/directory
之后重新配置 nginx
...
http {
...
server {
listen 80;
listen 443 ssl;
server_name hez19.imool.com;
ssl_certificate /etc/letsencrypt/live/hez19.imool.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hez19.imool.com/privkey.pem;
location / {
root /home/test;
index 2019011313.html 2019011313.htm;
}
}
...
}
...
再次访问,由于certificate self-signed 出现警告,无视警告直接访问可以访问到文件。
5 思考题
问:我们的CA是如何验证申请者具有对应服务器以及域名的控制权限的?
由于CA服务器没有连接互联网无法安装
wireshark
,故在 WEB 服务器和 DNS 服务器分别抓包。在 WEB 服务器抓包如上。发现 CA 服务器首先与 WEB 服务器进行了 TCP 连接,传输内容未知(估计是 WEB 服务器向 CA 服务器发出的申请),中间进行了 HTTP 访问。最后 TCP 结束连接。
在 DNS 服务器上抓包能够发现许多 user 主机到 DNS 的包,中间有一个比较奇怪的 CA 到 WEB 服务器的 TCP 包。
根据以上抓包内容推测,CA 服务器收到来自 WEB 服务器的证书申请之后,通过 HTTP 访问所申请的域名,将得到的返回包中的 IP 和发出申请的 IP 进行比较,如果一致则认为该申请的服务器具有该域名的控制权限。
可能存在风险的地方:DNS 记录被伪造。
Loading Comments...