5-12 Linux-日本交流赛.note

noteId: WEB1dfa91425343a1619419c31682dc4f83 · 原始路径:/ALL/世赛题目(练习) - 笔记/第48届/05-国赛前集训/5-12 Linux-日本交流赛.note · 图片:55 · 附件待处理:1

 
 
一、dns:
 
db.lyon.fr
 
db.out
 
二、kea-dhcp4-server(SRVB1、SRVB2):
 
1、dhcp 分配地址:
# kea-dhcp4-server    //IPv4 DHCP
# kea-dhcp6-server    //IPv6 DHCP
 
apt install -y kea-dhcp4-server
 
vim /etc/kea/kea-dhcp4.conf
指定监听的网卡接口(一定要加上双引号)
 
指定dhcp地址池范围:
 
 
指定 dns 服务器地址 和 网关地址:
这里也可以使用 code: 6 来指定(option 6 是dns服务器地址,option 3 是网关地址,网关可以直接在 subnet中指定也能够在这里指定)
 
指定 ntp 服务器地址(使用 code 42 或者 name "ntp-servers"):
注意:该选项只能够写 ip,不能够写域名,这是 DHCP 协议标准(RFC 2132)的规定,无法绕过
 
 
注释原本 192.0.2.0/24 网段的默认内容,否则启动会报错:
 
 
 
·可选:指定domain和search:
如果不注释掉,不配置,就会分配默认的 example.com
 
·可选:固定分配地址:
 
 
在客户端查看 ntp 服务器地址是否成功获取:
grep "ntp-servers" /var/lib/dhcp/dhclient.leases
 
2、ddns(未成功):
 
(1)配置 dhcp 服务器:
apt install -y kea-dhcp-ddns-server
 
vim /etc/kea/kea-dhcp-ddns.conf
 
监听地址默认即是 127.0.0.1,也可以写成 0.0.0.0
 
这里写的 name指定的是域名,ip-address是写dns 服务器的ip地址
这里dns服务器在本地,要写 127.0.0.1(但是问题不大)
 
# 添加内容:
"ddns-domains":[
    {
        "name":"lyon.fr",
        "dns-servers":[
            {
                "ip-address":"127.0.0.1"            
            }        
        ]    
    }
]
 
 
(2)配置 dns 服务器:
# 因为db文件在/etc/bind/ 中,所以需要配置:
chmod 777 /etc/bind
vim /etc/apparmor.d/usr.sbin.named
systemctl restart apparmor
 
vim /etc/bind/named.conf
systemctl restart bind9
 
 
 
三、CA:
 
1、证书吊销列表:
题目指定root.pem证书是在 http://ca.lyon.fr网站下,并且要所有已经签发的证书都要在该目录下
http://pki.lyon.fr/root.crl站点则需要开启目录浏览
# 创建ca的操作不赘述
openssl ca -gencrl -out root.crl
vim /etc/ssl/openssl.cnf
 
·ca.lyon.fr站点:
apt install -y nginx
cp /ca/root.pem /var/www/html
 
# ca.lyon.fr:
vim /etc/nginx/sites-enabled/default
 
·pki.lyon.fr站点:
# pki.lyon.fr/root.crl
## 开启目录浏览:
vim /etc/nginx/nginx.conf
 
mkdir /pki
cp root.crl /pki
 
vim /etc/nginx/sites-enabled/default
 
 
2、sign.sh 颁发证书脚本:
# 命令:
openssl req -out /ca/www.req -newkey rsa:2048 -nodes -keyout /ca/www.key -subj "/C=FR/O=WorldSkills 2024/CN=www/" -extensions usr_cert    // -extensions usr_cert 调用 openssl.cnf 文件中的 usr_cert 字段
openssl ca -in /ca/www.req -out /ca/www.pem -batch -passin pass:'Pa$$worD'
 
 
## 编辑脚本:
vim /ca/sign.sh
chmod +x /ca/sign.sh
# $1 变量是 /ca/sign.sh www.test.com 中的 www.test.com,执行该脚本时后面跟的字段就是 $1 的内容
 
生成证书后要将 证书复制到 ca站点下,因此要在脚本中添加:
cp /ca/$1.pem /var/www/html
 
 
·测试:
/ca/sign.sh testca.com
 
vim /ca/www.tests.com.pem
 
 
3、revoke.sh 吊销证书脚本:
# 命令:
## -revoke 要指定证书路径:
openssl ca -revoke /ca/666.test.com.pem -passin pass:'Pa$$worD'
openssl ca -gencrl -out /pki/root.crl -passin pass:'Pa$$worD'    //生成新的crl文件
 
## 编辑脚本:
vim /ca/revoke.sh
chmod +x /ca/revoke.sh
 
吊销证书后要将 证书从到 ca站点下移除,因此要在脚本中添加:
rm /var/www/html/$1
 
·测试:
/ca/revoke.sh testca.com.pem
 
证书吊销成功:
此时证书已经从网页中删除
 
 
 
·重要:这里有个问题:
因为题目要求在SRVB1、SRVB2两台机器上都配置CA证书颁发机构,而且又要求使用相同的根CA来颁发证书,所以这里配置的时使用 scp -r 将 /ca 直接拷贝给另一台机器,但是这样有一个问题
假设,评分时在 SRVB1上颁发证书,在 SRVB2上吊销证书,这样就会导致,吊销证书时找不到文件,并且SRVB2的 /ca/index.txt 文件也没有任何颁发过该文件的记录
 
解决方法:在两台机器之间使用nfs 共享 /ca 和 /pki /var/www/html 目录(/pki目录是存放更新的吊销列表的,/var/www/html 是存放证书的目录)
nfs配置不赘述,但是要记得在 SRVB2上给脚本执行权限
 
 
测试:此时在 SRVB1上颁发证书,SRVB2也会立马同步:
SRVB1颁发证书:
SRVB2查看:
 
 
四、ldap:
apt install -y slapd ldapscripts
 
1、添加 ou:
# 编辑 ou.ldif 文件进行添加:
vim ou.ldif
ldapadd -x -D cn=admin,dc=lyon,dc=fr -w Pa$$worD -f ou.ldif
 
2、编辑 ldapscripts:
vim /etc/ldapscripts/ldapscripts.conf
## ldapscripts需要调用一下usertemp将 uid=改为 cn=
# 创建 IT01-IT10时使用 ou groups
并且创建Mail组:
ldapaddgroup Mail
 
# 创建 IT11-IT99时使用 ou users
并且创建IT组:(这里需要注意要指定uid,否则会导致所有用户的组都显示为 Mail,因为Mail和IT的gid相同)
ldapaddgroup IT 10001
 
usertemp:
 
# 使用 for 循环创建用户:
for i in {01..10}; do ldapadduser IT$i Mail ; done
for i in {01..10}; do ldapsetpasswd IT$i 'Pa$$worD' ; done
 
for i in {11..99}; do ldapadduser IT$i IT ; done
for i in {11..99}; do ldapsetpasswd IT$i 'Pa$$worD' ; done
 
 
3、仅允许ldaps:// 和 ldapi://
vim /etc/default/slapd
systemctl restart slapd
 
 
4、配置 ldap 用户使用 sudo 无需输入密码:
直接配置 sudoers 即可,使用 %+组名
 
1、sudo配置:
chmod 755 /etc/sudoers    //有时sudoers可能没给编辑权限
vim /etc/sudoers
输入 ldap的组:%+组名
不要输入大写
无需重启,直接生效
 
 
·测试:
 
 
五、Web:
 
apt install -y nginx
 
(1)www站点:
mkdir /www
echo Welcome to WorldSkills 2024 Lyon > /www/index.html
 
vim /etc/nginx/sites-enabled/default
 
(2)active站点:
mkdir /active
echo Currently active on: SRVB1 > /active/index.html
 
vim /etc/nginx/sites-enabled/default
 
 
六、邮件:
 
1、postfix:
常规配置不赘述,这里只解决题目中出现的坑点:
postfix 默认是查询ldap ou: users下的用户,但是该题目的ou是 groups,因此发送邮件会报错:
550 报错
 
apt install -y postfix-ldap
 
# 创建一个文件,名称随意定义
vim /etc/postfix/ldap-users.cf
 
如果这个文件写错了,发送时会提示451:
 
 
vim main.cf
# 在末尾添加,调用前面创建的文件:
 
 
·测试:
邮件发送成功:
 
2、dovecot:
题目要求仅 Mail ldap组下的用户能够登陆,我们这里有两种配置方式:1、用 ou=groups ou来限制用户,但是假设有其它用户存在,也会允许到其它用户访问;2、用户cn=Mail 组来限制用户
 
apt install -y dovecot-ldap
 
方式一:使用 ou=groups进行限制:
cd /etc/dovecot
cp dovecot-ldap.conf.ext dovecot-ldap.conf
vim dovecot-ldap.conf
# 注意,该文件写错了并不会报错
关键参数:
 
 
方式二:使用组 cn=Mail进行限制:
 
 
 
七、监控:
第一点和第二点的邮件发送直接写到 sign.sh 和 revoke.sh 脚本中即可
 
命令参考这个:
因为邮件报错没排完,所以没写
1、sign.sh 脚本:
 
 
 
2、revoke.sh 脚本:
 
 
 
3、关机、开机 脚本:
 
(1)开机发送邮件:
vim /root/poweron.sh
chmod +x /root/poweron.sh
# 有没有 /usr/bin/ 都不影响
 
vim /etc/crontab
# 在末尾添加一行:
 
·测试:
reboot 重启:
 
 
 
(2)关机发送邮件: