5-15-Linux.note

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

 
 
一、初始化:
 
1、配置 loopback 0 接口:
不是类似 cisco的loopback 接口,而是使用 ip link命令创建一个临时接口,只是名为 lo0 而已
# L-RTR:
vim /etc/network/interfaces
## pre-up ip link add lo0 type dummy    //启动该接口前先创建该接口
## down ip link del lo0    //关闭该接口后删除该接口(否则再次启动会报错,因为启动时会之星创建命令,接口已经存在会无法创建,然后报错,启动失败)
 
 
 
二、dns:
 
1、L-SRV:
apt install -y bind
 
mkdir /opt/dns
vim /etc/apparmor.d/usr.sbin.named
systemctl restart apparmor
 
vim named.conf.options
# 配置了根提示、委派等就需要配置 allow-recursion
 
vim named.conf
 
db.skill39.wsr
 
db.172
 
db.192
 
db.out
 
 
·ddns:dhcp(L-RTR)
注意,dhcp必须配置 option domain-name,否则 ddns不会生效
vim /etc/dhcp/dhcpd.conf
 
systemctl restart isc-dhcp-server
 
测试:
 
 
2、R-SRV:
vim /etc/bind/named.conf
 
 
 
三、ldap:
 
1、L-SRV 仅允许Admin组进行登陆:
 
·方式一:使用 pam 进行限制
# 开启 pam_access.so配置:
vim /etc/pam.d/login
取消注释
 
# 编辑限制文件:
vim /etc/security/access.conf
在末尾定义要限制的组或用户:
 
·方式二:(未成功)在 nslcd中过滤
apt install -y nslcd
vim /etc/nslcd.conf
# 在末尾添加 filter passwd (memeber=cn=Admin,ou=Groups,dc=skill39,dc=wsr)
systemctl restart nslcd nscd
 
 
2、L-CLI 客户端仅允许 Admin 和 Guest组登陆(未成功):
 
 
·方式一:使用 pam 进行限制
# 开启 pam_access.so配置:
vim /etc/pam.d/login
取消注释
 
# 编辑限制文件:
vim /etc/security/access.conf
在末尾定义要限制的组或用户(这里拒绝VPN组和webuser组):
 
 
·方式二:(未成功)在 nslcd中过滤
 
 
四、DRBD 阵列:
 
先在 L-SRV 和 L-RTR 两台机器上添加1块1G磁盘
 
1、创建 DRBD阵列:
apt install -y drbd-utils
 
(1)编辑配置文件:
# 复制配置:
vim /usr/share/doc/drbd-utils/examples/drbd.conf
## 搜索:connection-mesh
复制
 
vim /etc/drbd.conf
# 将端口改成默认的 7789
编辑后不要重启 drbd服务
 
(2)将文件拷贝给对端:
将该文件拷贝给另一端:
scp /etc/drbd.conf root@172.16.50.2:/etc
 
(3)初始化 DRBD:
# 在两台机器上同时执行:
drbdadm create-md test    //test是上面文件中设置的名称
 
(4)启动drbd服务:
# 两台机器同时启动:
systemctl enable drbd    //默认不会开机自启动
systemctl restart drbd
 
也可以使用:
drbdadm up test
 
 
·查看状态:
cat /proc/drbd
 
2、配置主从节点:
 
(1)主设备配置:
注意,主节点配置重启后就会失效,因此要修改 drbd.service 的配置,启动服务前执行
drbdadm primary --force test
 
·方式一(自动提升为主设备并自动挂载):
vim /lib/systemd/system/drbd.service
# 这条命令直接抄下面,然后加一个 Post即可
## 作用:服务启动成功后再执行命令
## 需要提前配置好 /etc/fstab文件(重要字段:_netdev,nofail):
 
 
·方式二(仅自动提升为主设备):
vim /etc/drbd.conf
# 配置自动成为主设备
 
 
 
(2)从设备配置:
drbdadm secondary test
 
 
·在主设备上格式化并挂载即可:
从设备是只读的,无法格式化挂载(只能够使用nfs之类的办法连接主设备的文件)
# 主设备配置:
mkfs.ext4 /dev/drbd0
 
 
 
·配置主主节点:
注意,主主节点文件格式不能够是ext4
 
# 两台机器上配置:
drbdadm adjust r0
drbdsetup /dev/drbd0 net-options --allow-two-primaries
 
# 接下来格式化挂载即可:
apt install ocfs2-tools
mkfs.ocfs2 -L "drbdvol" /dev/drbd0
 
 
 
3、配置 nfs、autofs:
 
(1)L-SRV作为nfs服务器:
apt install -y nfs-kernel-server
vim /etc/fstab
mount -a
vim /etc/exports
exportfs -av
 
(2)L-RTR使用autofs连接nfs:
apt install -y autofs
mkdir -p /opt/homes
 
vim /etc/auto.master
 
vim /etc/auto.misc
systemctl restart autofs
 
测试:
 
 
4、配置磁盘配额:
只需要在 主节点(L-SRV)上进行配额即可
 
# L-SRV:
apt install -y quota
 
# 配置配额的磁盘需要修改挂载字段:
vim /etc/fstab
 
# 创建quota相关的文件:
auotacheck -cugm /opt/homes
 
edquota -u skills
# 编辑完成后按 Ctrl + x 保存
 
# 将配额复制给另一个用户:
edquota -p skills root
 
# 启用 quota:
quotaon /opt/homes
 
·查看配额:
repauota -v /opt/homes
 
 
五、openvpn:
 
 
1、openvpn 仅允许 VPN 组进行登陆:
在 VPN 服务器上配置
 
# 开启 pam 的 access限制:
vim /etc/pam.d/login
取消注释
 
 
vim /etc/security/access.conf
# 在末尾添加:
输入客户端的网段(这样就不会影响ldap用户本地登陆)
 
·测试:
输入 非VPN组的ldap用户:
连接失败:
 
输入 VPN组的ldap用户:
连接成功:
 
2、脚本连接openvpn:
vim /usr/bin/start_vpn.sh
chmod +x /usr/bin/start_vpn.sh
## 关键参数: --daemon 后台运行 openvpn命令
 
测试:
 
如果需要关闭:
使用 ps -aux 查看进程
然后使用 kill -9 [进程号] 关闭
或:
pkill -f "openvpn.*"
 
·关闭vpn脚本:
 
3、S2S:
 
(1)L-FW:
openvpn --genkey secret /opt/vpn/ta.key
vim /etc/openvpn/vpn.conf
 
apt install -y frr
vtysh
conf t
router ospf
int tun1
 ip ospf area 0
end
wr
 
(2)R-FW:
scp root@10.10.10.1:/opt/vpn/ta.key /opt/vpn
apt install -y frr
 
apt install -y frr
vtysh
conf t
router ospf
int tun1
 ip ospf area 0
end
wr
 
 
六、ssh:
 
1、L-FW:
vim /etc/ssh/sshd_config
末尾添加:
 
2、OUT-CLI:
vim /etc/ssh/ssh_config
# 复制 Host *,然后添加到末尾,并改为 Host 10.10.10.1
这里删除了注释的内容
 
 
七、LVM:
 
 
1、创建 lvm:
apt install -y lvm2
pvcreate /dev/sdb
vgcreate vg1 /dev/sdb
lvcreate -L 1020M -n lv1 vg1
mkfs.ext4 /dev/vg1/lv1
mkdir -p /opt/lvm
vim /etc/fstab
 
2、创建 lvm快照:
lvmcreate -s -L 4M -n `date "+%Y%m%d.%H%M%S"` /dev/vg1/lv1
# 最小大小为4M(如果写的时候低于4M,会自动提升为4M)
# 这里使用反引号 `` 来将引号内的命令输出来作为外面这条命令的参数
 
查看快照:
 
 
八、DFS:
dfs应该是要配置samba
 
1、配置 samba:
apt install -y samba
vim /etc/samba/smb.conf
 
不着急重启smbd,重启会报错的
 
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /usr/share/doc/samba/examples/LDAP/samba.ldif
 
# 导入 admin的密码:
smbpasswd -W
 
cd /etc/smbldap-tools
cp /usr/share/smbldap-tools/examples/smbldap.conf .
net getlocalsid >> smbldap.conf
vim smbldap.conf
 
 
cd /etc/smbldap-tools
cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf .
 
vim smbldap_bind.conf
 
smbldap-populate
 
 
2、创建 Guest用户:
复制 smbldap-populate 创建的root用户属性,将其配置为模板,使用ldapscripts批量添加(或者使用smbldap-useradd 命令批量添加也可以)
 
ldapsearch -x -b dc=skill39,dc=wsr > 123
复制root属性:
 
vim usertemp
:%s/root/<user>
# 需要改的属性:uid、gid、dn、home目录、loginShell、
最终:
 
# 创建 Guest用户:
ldapaddgroup Guest
for i in {1..99}; do ldapadduser user$i Guest; done
systemctl restart smbd
然后将usertemp改为默认的usertemp即可(让之后创建的用户不再带有smb属性)(如果之后无需再创建用户可以忽略这个操作)
 
测试:
此时只有 Guest组能够登陆,因为只有Guest组中的用户带有 smb用户属性
 
 
3、L-CLI 上配置自动挂载:
mkdir /opt/share
vim /etc/fstab
 
 
九、日志收集:
 
 
1、L-SRV:
apt install -y rsyslog
 
vim /etc/rsyslog.conf
启用 tcp、udp监听
定义日志存储路径:
systemctl restart rsyslog
 
配置日志轮转、设置最大大小为10 KB:
cd /etc/logrotate.d/
cp rsyslog logs
vim logs
注意不要书写重启rsyslog的字段,因为当下发脚本快速执行logrotate时,一直重启rsyslog会导致其报错
 
# 手动轮转测试:
logrotate -vf /etc/logrotate -vf /etc/logrotate.d/logs
or
logrotate -f /etc/logrotate.d/logs
 
·当日志大小超过10kb时自动进行轮转:
vim ~/log.sh
# 这里定义的是10000而不是10240,以这个阈值我们要写低一点
# 不需要写sleep
or
 
 
# 运行脚本: 
bash log.sh &
 
 
 
2、L-FW、L-SRV、R-SRV:
apt install -y rsyslog
 
vim /etc/rsyslog.conf
# @表示udp,@@表示tcp
systemctl restart rsyslog
 
 
十、Haproxy:
 
1、配置 客户端证书身份认证:
 
与Windows不同,Linux的证书不需要有 服务器身份认证、客户端身份认证字段,只需要CA能够信任即可,可以不需要有DNS字段,CN字段也无需与客户端匹配,只要是张证书就行
(1)haproxy配置:
vim /etc/haproxy/haproxy.cfg
 
# 参数解释:
ca-file [file]   //指定ca根证书文件
verify required    //要求客户端必须提供有效证书(否则不允许访问443端口)
 
(2)将Web证书导出为 pkcs12格式文件:
# openssl pkcs12 -export -out [转换后的pkcs12文件名] -in [要被转换的证书文件] -inkey [要被转换证书的私钥] -certfile [ca根证书]
openssl pkcs12 -export -out client.p12 -in skill39.crt -inkey skill39.key -certfile ca.crt
将它拷贝给客户端
 
(3)客户端导入pkcs12格式证书:
cp client.p12 /home/user
chmod 755 /home/user/client.p12
打开火狐浏览器导入证书:
 
输入前面生成时输入的密码:
 
 
·客户端测试访问:
可以看到弹出了证书选择页面,点击OK
 
 
访问成功:
 
如果没有证书,或者取消选择证书就会报错: