22-23国赛linux部分

### 2.dns 服务

任务描述:创建 DNS 服务器,实现企业域名访问。

(1)配置 linux 主机的 IP 地址和主机名称。

(2)所有 linux 主机启用防火墙(kubernetes 服务主机除外5-7),防火墙区域为 public,在防火墙中放行对应服务端口。

[root@linux1~9 ~]# systemctl enable firewalld    (5-7不用启用防火墙 )
[root@linux1~9 ~]# systemctl start firewalld

(3)所有 linux 主机之间(包含本主机)root 用户实现密钥 ssh 认证,禁用密码认证。

[root@linux1~9 ~]# ssh-keygen -t rsa

(4)利用 chrony,配置 linux1 为其他 linux 主机提供 NTP 服务。

[root@linux1 ~]# vim /etc/chrony.conf                     
 3 Server 10.4.220.101 iburst    
         
[root@linux1 ~]# timedatectl

(5)利用 bind,配置 linux1 为主 DNS 服务器,linux2 为备用 DNS 服务器,为所有 linux 主机提供冗余 DNS 正反向解析服务。正向区域文件均 为 /var/named/named.skills , 反 向 区 域 文 件 均 为/var/named/named.10。

linux1

```shell
[root@linux1 ~]# yum -y install bind bind-utils
[root@linux1 ~]# vim /etc/named.conf
  
[root@linux1 ~]# vim /etc/named.rfc1912.zones

[root@linux1 ~]# nslookup linux1~9.skills.lan

 

(6)配置 linux1 为 CA 服务器,为 linux 主机颁发证书。证书颁发机构有效期 10 年,公用名为 linux1.skills.lan。申请并颁发一张供 linux服务器使用的证书,证书信息:有效期=5 年,公用名=skills.lan,国家=CN,省=Beijing,城市=Beijing,组织=skills,组织单位=system,使用者可选名称=*.skills.lan 和 skills.lan。将证书 skills.crt和私钥 skills.key 复制到需要证书的 linux 服务器/etc/pki/tls 目录。浏览器访问 https 网站时,不出现证书警告信息。

```shell
[root@linux1 ~]# yum -y install openssl*

```

### 3.ansible 服务

任务描述:请采用 ansible,实现自动化运维。

(1)在linux1上安装系统自带的ansible-core,作为ansible控制节点。linux2-linux9 作为 ansible 的受控节点。

```shell
[root@linux1 ~]# yum -y install ansible
[root@linux1 ~]# vim /etc/ansible/hosts

```

(2)在 linux1 上安装 ansible,作为 ansible 的控制节点。linux2-linux7 作为 ansible 的受控节点。在 linux1 编写/root/skills.yaml 剧本,实现在 linux1创建文件/root/ansible.txt,并将该文件复制到所有受控节点的/root 目录。

### 4.apache2 服务

任务描述:请采用 Apache 搭建企业网站。

(1)配置 linux1 为 Apache2 服务器,使用 skills.lan 或 any.skills.lan(any 代表任意网址前缀,用 linux1.skills.lan 和 web.skills.lan测试)访问时,自动跳转到 www.skills.lan。禁止使用 IP 地址访问,默认首页文档/var/www/html/index.html 的内容为"HelloApache"。

```shell
[root@linux1 ~]# yum -y install httpd mod_ssl
[root@linux1 ~]# systemctl enable httpd.service --now

```

(2)把/etc/pki/tls/skills.crt 证书文件和/etc/pki/tls/skills.key私钥文件转换成含有证书和私钥的/etc/pki/tls/skills.pfx 文件;然后把 /etc/pki/tls/skills.pfx 转 换 为 含 有 证 书 和 私 钥 的/etc/pki/tls/skills.pem 文件,再从/etc/pki/tls/skills.pem 文件 中 提 取 证 书 和 私 钥 分 别 到 /etc/pki/tls/apache.crt 和/etc/pki/tls/apache.key。

```shell
[root@linux1 ~]# cd /etc/pki/tls

```

(3)客户端访问 Apache 服务时,必需有 ssl 证书。

```shell
[root@linux1 tls]# vim /etc/httpd/conf.d/ssl.conf
43    DocumentRoot "/var/www/html"

[root@linux1 tls]# systemctl restart httpd
```

### 5.nginx 和 tomcat 服务

任务描述:利用系统自带 openjdk 和 tomcat,搭建 Tomcat 动态网站。

(1)配置 linux2 为 nginx 服务器,默认文档 index.html 的内容为“HelloNginx”;仅允许使用域名访问,http 访问自动跳转到 https。

```shell
[root@linux2 ~]# yum -y install nginx

[root@linux2 ~]# lynx linux2.skills.lan
```

(2)利用 nginx 反向代理,实现 linux3 和 linux4 的 tomcat 负载均衡,通过 https://tomcat.skills.lan 加密访问 Tomcat,http 访问通过301 自动跳转到 https。

(3)配置 linux3 和 linux4 为 tomcat 服务器,网站默认首页内容分别为“tomcatA”和“tomcatB”,采用修改配置文件端口形式,仅使用域名访问 80 端口 http 和 443 端口 https。

```shell
[root@linux3 tls]# keytool -importkeystore -srckeystore skills.pfx -srcstoretype pkcs12 -destkeystore skills.jks -deststoretype JKS
[root@linux4 tls]# systemctl restart tomcat
[root@linux4 tls]# ss -tunlp | grep java
[root@linux4 tls]# curl linux3.skills.lan
[root@linux4 tls]# curl --cacert skills.crt https://linux3.skills.lan
```

linux2
```shell
[root@linux2 ~]# vim /etc/nginx/conf.d/
server {
  listen     
  server_name  
  ssl_certificate 
  ssl_certificate_key 
  return ;
 }
[root@linux2 ~]# systemctl restart nginx
```

### 6.samba 服务

任务描述:请采用 samba 服务,实现资源共享。

(1)在 linux3 上创建 user00-user19 等 20 个用户;user00 和 user01 添加到 manager 组,user02 和 user03 添加到 dev 组。把用户 user00-user03 添加到 samba 用户。

```shell
[root@linux3 ~]# yum -y install samba samba-client                    
[root@linux3 ~]# systemctl start smb

(2)配置 linux3 为 samba 服务器,建立共享目录/srv/sharesmb,共享名与目录名相同。manager 组用户对 sharesmb 共享有读写权限,dev 组对 sharesmb 共享有只读权限;用户对自己新建的文件有完全权限,对其他用户的文件只有读权限,且不能删除别人的文件。在本机用smbclient 命令测试。

```shell
[root@linux3 ~]# systemctl restart smb
[root@linux3 ~]# smbclient -L 10.4.220.103
```

(3)在 linux4 修改/etc/fstab,使用用户 user00 实现自动挂载 linux3 的sharesmb 共享到/sharesmb。

```shell
[root@linux4 ~]# mkdir /sharesmb
```

### 7.nfs 服务

任务描述:请采用 nfs,实现共享资源的安全访问。

(1)配置 linux2 为 kdc 服务器,负责 linux3 和 linux4 的验证。

```shell
[root@linux2 ~]# yum -y install krb5
```

(2)在 linux3 上,创建用户,用户名为 xiao,uid=2222,gid=2222,家目录为/home/xiaodir。

```shell

[root@linux3 ~]# id xiao
```

(3)配置 linux3 为 nfs 服务器,目录/srv/sharenfs 的共享要求为:linux服务器所在网络用户有读写权限,所有用户映射为 xiao,kdc 加密方式为 krb5p。

(4)配置 linux4 为 nfs 客户端,利用 autofs 按需挂载 linux3 上的/srv/sharenfs 到/sharenfs 目录,挂载成功后在该目录创建 test 目录。

```shell
[root@linux4 sharenfs]# df -Th
```

### 9.iscsi 服务

任务描述:请采用 iscsi,搭建存储服务。

(1)为 linux8 添加 4 块磁盘,每块磁盘大小为 5G,创建 lvm 卷,卷组名称为 vg1,逻辑卷名称为 lv1,容量为全部空间,格式化为 ext4 格式。使用/dev/vg1/lv1 配置为 iSCSI 目标服务器,为 linux7提供 iSCSI服务。iSCSI 目标端的 wwn 为 iqn.2008-01.lan.skills:server,iSCSI发起端的 wwn 为 iqn.2008-01.lan.skills:client1.

```shell
[root@linux8 ~]# lsblk       
/> ls
```

(2)配置 linux7 为 iSCSI 客户端,实现 discovery chap 和 session chap双向认证,Target 认证用户名为 IncomingUser,密码为 IncomingPass;Initiator 认证用户名为 OutgoingUser,密码为 OutgoingPass。修改/etc/rc.d/rc.local 文件开机自动挂载 iscsi 磁盘到/iscsi 目录。

在linux8上设置双向认证

```shell
/iscsi/iqn.20...skills:client1> get auth
/iscsi> get discovery_auth
```


linux7
```shell
[root@linux7 ~]# lsblk    
```

### 10.mariadb 服务

任务描述:请安装 mariadb 服务,建立数据表。

(1)配置 linux3 为 mariadb 服务器,创建数据库用户 xiao,在任意机器上对所有数据库有完全权限。


[root@linux3 ~]# yum -y install mariadb-S

(2)配置linux4为mariadb客户端,使用数据库用户xiao远程登录mariadb,创建数据库 userdb;在库中创建表 userinfo,表结构如下:

|  字段名  |   数据类型   | 主键 | 自增 |
| :------: | :----------: | :--: | :--: |
|    id    |     int      |  是  |  是  |
|   name   | varchar(10)  |  否  |  否  |
|  height  |    float     |  否  |  否  |
| birthday |   datetime   |  否  |  否  |
|   sex    |  varchar(5)  |  否  |  否  |
| password | varchar(200) |  否  |  否  |


MariaDB [(none)]> use userdb;
 
MariaDB [userdb]> desc userinfo;

```

(3)在表中插入 2 条记录,分别为(1,user1,1.61,2000-07-01,M),(2,user2,1.62,2000-07-02,F),password 字段与 name 字段相同,password 字段用 md5 函数加密。

```shell
MariaDB [userdb]> select * from userinfo;

```

(4)新建/var/mariadb/userinfo.txt 文件,文件内容如下,然后将文件内容导入到 userinfo 表中,password 字段用 md5 函数加密。

3,user3,1.63,2000-07-03,F,user3

4,user4,1.64,2000-07-04,M,user4

5,user5,1.65,2000-07-05,M,user5

6,user6,1.66,2000-07-06,F,user6

7,user7,1.67,2000-07-07,F,user7

8,user8,1.68,2000-07-08,M,user8

9,user9,1.69,2000-07-09,F,user9

```shell
[root@linux3 ~]# vi /var/mariadb/userinfo.txt
3,user3,1.63,2000-07-03,F,user3
4,user4,1.64,2000-07-04,M,user4
5,user5,1.65,2000-07-05,M,user5
6,user6,1.66,2000-07-06,F,user6
7,user7,1.67,2000-07-07,F,user7
8,user8,1.68,2000-07-08,M,user8
9,user9,1.69,2000-07-09,F,user9
```

(5)将表 userinfo 中的记录导出,并存放到/var/mariadb/userinfo.sql,字段之间用','分隔。

(6)为 root 用户创建计划任务(day 用数字表示),每周五凌晨 1:00 备份数据库 userdb(含创建数据库命令)到/var/mariadb/userdb.sql。(为便于测试,手动备份一次。)

### 11.ftp 服务

任务描述:请采用 ftp 服务器,实现文件安全传输。

1.配置 linux1 为 ftp 服务器,安装 vsftpd,新建本地用户 jack,本地用户登陆 ftp 后的目为/var/ftp/pub,可以上传下载。

=
[root@linux1 ~]# yum -y install vsftpd ftp
[root@linux1 ~]# systemctl enable vsftpd --now
[root@linux1 ~]# useradd jack
[root@linux1 ~]# passwd jack
[root@linux1 ~]# ftp 10.4.220.101
ftp> put anaconda-ks.cfg
ftp> get anaconda-ks.cfg

2.配置 ftp 虚拟用户认证模式,虚拟用户 ftp1 和 ftp2 映射为 ftp,ftp1 登录 ftp 后的目录为/var/ftp/vdir/ftp1,可以上传下载,禁止上传后缀名为.sh 的文件;ftp2 登录 ftp 后的目录为/var/ftp/vdir/ftp2,仅有下载权限


[root@linux1 vsftpd]# cd
[root@linux1 ~]# systemctl restart vsftpd

3.使用 ftp 命令在本机验证。

[root@linux1 ftp1 ]# ftp 10.4.220.101
Connected to 10.4.220.101 (10.4.220.101). 
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put ftp1.txt
ftp> get ftp1.txt
[root@linux1 ftp2 ]# ftp 10.4.220.101
Connected to 10.4.220.101 (10.4.220.101).
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put ftp2.txt
ftp> get ftp2.txt

### 12.postgresql 服务

任务描述:请采用 postgresql 服务,实现数据存储。

1.配置 linux5 为 postgresql 服务器,创建数据库 userdb;在库中创建表userinfo,在表中插入 2 条记录,分别为(1,user1,2005-6-1),(2,user2,2005-6-2),口令与用户名相同,password 字段用 md5 函数加密,表结构如下:

|  字段名  |   数据类型   | 主键 |
| :------: | :----------: | :--: |
|    id    |    serial    |  是  |
|   name   | varchar(10)  |  否  |
| birthday |     date     |  否  |
| password | varchar(100) |  否  |

[root@linux5 ~]# yum -y install postgresql
userdb=# select * from userinfo;

2.设置可以直接在 shell 下操作数据库,然后备份数据库 userdb(含创建数据库命令)到/var/postgresqlbak/userdb.sql;备份 userinfo 表记到/var/postgresqlbak/userinfo.sql,字段之间用','分隔。

[root@linux5 ~]# chmod 777 /var/postgresqlbak

### 13.wordpress 服务

任务描述:请采用 wordpress 服务,为企业建立博客。

1.在 linux5 配置 python3.9、c 语言和 c++语言的编译环境。

[root@linux5 ~]# yum -y install python

2.安装 apache2、mariadb-server、php 和 wordpress。

[root@linux5 ~]# yum -y install httpd

3.创建数据库 wordpress,供 wordpress 服务使用。创建用户 xiao,对wordpress 数据库有完全权限。


[root@linux5 ~]#  mysql -u root -p
MariaDB [(none)]> FLUSH PRIVILEGES;

4.创建数据库 userdb;在数据库中创建数据表 userinfo,在表中插入 2 条记录,分别为(1,user1,2005-8-1,男),(2,user2,2005-8-2,女),口令与用户名相同,password 字段用 password 函数加密,表结构如下:

| 字段名   | 数据类型     | 主键 | 自增 |
| :------- | :----------- | :--- | ---- |
| id       | int          | 是   | 是   |
| name     | varchar(10)  | 否   | 否   |
| birthday | datetime     | 否   | 否   |
| sex      | char(8)      | 否   | 否   |
| password | varchar(200) | 否   | 否   |

MariaDB [(userdb)]> desc userinfo;

5.备份数据库 userdb 到/var/mariadbbak/userdb.sql(含创建数据库命令);将表 userinfo 中的记录导出,并存放到/var/mariadbbak/userinfo.sql 文件中,字段之间用','分隔。

[root@linux5 ~]# mysql -u root -p

6.网站默认文档/var/www/html/index.html 的内容为"wordpress"。访问根网站时,http 不自动跳转到 https。

[root@linux5 ~]# echo "wordpress" > /v

7.利 用 wordpress 搭 建 博 客 网 站 , 站 点 标 题 为 "skillsblog" 。使用http://linux5.skills.lan/wordpress 访问,http 临时自动跳转到 https。

[root@linux5 ~]# cd /var/www/html/

### 14.pxe 服务

任务描述:请采用 pxe 服务,实现批量安装 linux 操作系统。

1.linux5 安装 DHCP 服务,地址范围为 10.4.220.10-10.4.220.19,网关为 10.4.220.1,dns 为 10.4.220.101,域名为 skills.lan。

```shell
[root@linux5 ~]# yum -y install dhcp-server tftp-server httpd
[root@linux5 ~]# vi /usr/share/doc/dhcp-server/dhcpd.conf.example
47 subnet 10.5.5.0 netmask 255.255.255.224 {
48   range 10.5.5.26 10.5.5.30;
55 }
[root@linux5 ~]# vim /etc/dhcp/dhcpd.conf  #按p粘贴修改
 6 subnet 10.4.220.0 netmask 255.255.255.224 {
13  }
[root@linux5 ~]# systemctl restart dhcpd
[root@linux5 ~]# systemctl enable dhcpd.service --now
```

2.安装 tftp-server,tftp 目录为默认值。

 3.挂载linux光盘文件到/var/www/html/cdrom;实现完全自动安装linux文 字界面,配置文件为/var/www/html/ks.cfg(参考/root/anaconda-ks.cfg),在 /var/lib/tftpboot/pxelinux.cfg/default 文件中指定安装源和 ks 文件。

### 15.redis 服务

任务描述:请采用 redis 服务,实现高并发数据和海量数据的读写。

1.利用 linux6 搭建 redis cluster 集群,使用端口 8001-8003 模拟主节点,8004-8006 模拟从节点,让其他主机可以访问 redis 集群

[root@linux6 ~]# yum -y install redis

### 16.mail 服务

任务描述:请采用 postfix 邮件服务器,实现安全的邮件服务。

1.配置 linux5 为 mail 服务器,安装 postfix 和 dovecot。

2.仅支持 smtps 和 pop3s 连接。

[root@linux5 ~]# yum -y install postfix dovecot

3.创建用户 mail1 和 mail2,向 all@skills.lan 发送的邮件,每个用户都会收到。

[root@linux5 ~]# useradd mail1
[root@linux5 ~]# useradd mail2

4.安装mailx使用本机测试。

Welcome

### 17.podman 服务

任务描述:请采用 podman,实现容器虚拟化技术。

(1)在 linux3 上安装 podman,导入 rockylinux-9.tar 镜像。

### 18.开发环境搭建(完成)

任务描述:搭建开发环境。

(1)在 linux4 上搭建开发环境。利用系统 iso 文件,搭建 c 语言、c++语言、rust 语言开发环境。

scp  rust-1.74.0-x86

  (2)在/rust目录下编写一个rust程序源文件,名称为hello.rs,编译并运行该文件,使其打印出“Hello,Word!”字样。


Hello,World!

### 19.脚本

任务描述:请采用脚本,实现快速批量的操作**。**

1.在 linux4 上编写/root/createfile.py 的 python3 脚本,创建 20 个文件/root/python/file00至/root/python/file19,如果文件存在,则删除后再创建;每个文件的内容同文件名,如 file00 文件的内容为“file00”。

[root@linux4 ~]# yum -y install python36
[root@linux4 ~]# cd python/

 

### 20.shell脚本

任务描述:请采用shell脚本,实现快速批量的操作。

(1)在linux8上编写/root/createfile.sh的shell脚本,创建20个文件/root/shell/file00至/root/shell/file19,如果文件存在,则删除再创建;每个文件的内容同文件名,如file00文件的内容为“file00”。用/root/createfile.sh命令测试。

[root@linux8 ~]# mkdir /root/shell
[root@linux8 shell]# ls

### 21.系统运维

任务要求:为保证 linux9 系统稳定性,请在不破坏原有服务的基础上,升级 linux9 的内核 kernel,删除旧版本 kernel。

需要完整答案的私聊我

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值