CCF赛前速记

keyudong
10
2026-10-18

🥇 第一梯队:绝对优先拿下的“送分题”

这些任务命令短、逻辑简单,考场上一定要最先做。

1. NFS 文件共享服务 (📍 所属服务器:Linux-1)

【赛题原文】 2. Linux NFS 服务器配置 【任务描述】为让不同的客户端及服务端共同进行文件的分享,请采用NFS服务器,实现不同的主机和操作系统共享彼此的数据。 (1)配置 Linux-1为NFS服务器,按下表要求共享目录:

  • /home:本服务器网段的用户具有读写权限,其它只读

  • /var/tmp:所有人都可以存取,root写入的文件还具有root的权限

💻 速查配置:

Bash

# 1. 安装服务

yum install -y nfs-utils

 

# 2. 编辑配置文件

vi /etc/exports

# 写入以下两行:

/home 10.10.70.0/24(rw,sync) *(ro,sync)

/var/tmp *(rw,sync,no_root_squash)

# 3. 启动并设置自启

systemctl start nfs-server

systemctl enable nfs-server

2. Samba 共享服务 (📍 所属服务器:Linux-1)

【赛题原文】 5. Linux samba 服务配置 【任务描述】为在Linux 和 Windows 之间实现共享文件和打印机的安全访问,请采用 samba服务器,实现Windows 操作系统和Linux操作系统的资源共享兼容。 (1)在Linux-1服务器中安装配置Samba服务,创建三个用户user4, user5, user6; (2)建立共享目录/opt/finance_share,要求共享名为archive,user4, user5, user6用户都能通过输入用户名和密码登录并上传文件; (3)实现 user4能够查看和删除所有人的文件,user5能够查看所有人的文件,但不能删除别人的文件,user6只能查看和删除自己的文件,不能查看和删除别人的文件;

 

💻 速查配置:

(注:赛题第3点属于高级 ACL 权限控制,考场上为了抢分,我们优先保证前两点核心得分,并在底层赋予最高读写权限避免被系统拦截。)

Bash

# 1. 安装与建系统用户

yum install -y samba

useradd user4

useradd user5

useradd user6

 

# 2. 必须设置 Samba 独立密码 (依次按提示盲打密码)

smbpasswd -a user4

smbpasswd -a user5

smbpasswd -a user6

# 3. 创建目录并给满底层权限 (关键,防拦截)

mkdir -p /opt/finance_share

chmod 777 /opt/finance_share

 

# 4. 编辑配置

vi /etc/samba/smb.conf

# 在最末尾追加:

[archive]

    path = /opt/finance_share

    writable = yes

    valid users = user4,user5,user6

   

# 5. 启动并设置自启

systemctl restart smb

systemctl enable smb

3. Apache (Web) 网站与 SSL (📍 所属服务器:Linux-3)

【赛题原文】 4. Linux Apache 配置 【任务描述】为了搭建快速、可靠的网页服务器,请采用Apache服务器,实现对企业网站的安全有效访问。 (1)配置 Linux-3 中安装httpd服务,建立虚拟主机站点 www.netdj.net,其网站主目录为/www/netdj,主页名字为netdj.html,首页内容为“Welcome CCF website"; (2)使用 openssl申请证书,创建自签名证书 server.crt 和私钥 server.key,要求只允许使用域名通过SSL加密访问;

 

💻 速查配置:

Bash

# 1. 安装核心与 SSL 模块

yum install -y httpd mod_ssl

# 2. 建目录写主页

mkdir -p /www/netdj

echo "Welcome CCF website" > /www/netdj/netdj.html

 

# 3. 生成自签名证书 (这段必须死记硬背!)

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/conf.d/server.key -out /etc/httpd/conf.d/server.crt -subj "/CN=www.netdj.net"

 

# 4. 编辑虚拟主机配置

vi /etc/httpd/conf.d/netdj.conf

# 写入:

<VirtualHost *:443>

    ServerName www.netdj.net

    DocumentRoot /www/netdj

    DirectoryIndex netdj.html

    SSLEngine on

    SSLCertificateFile /etc/httpd/conf.d/server.crt

    SSLCertificateKeyFile /etc/httpd/conf.d/server.key

</VirtualHost>

 

# 5. 启动并设置自启

systemctl restart httpd

systemctl enable httpd

🥈 第二梯队:稳扎稳打的“大分题”

这些任务需要敲比较多的键盘,但逻辑连贯。

1. MariaDB 数据库操作 (📍 所属服务器:Linux-2)

【赛题原文】 3. Linux Mariadb 服务配置 【任务描述】为按数据结构来存储和管理数据,请采用Mariadb 服务器,实现方便、严密、有效的数据组织、数据维护、数据控制和数据运用。 (1)配置 Linux-2为Mariadb服务器,创建数据库为userdb;在库中创建表为userinfo,在表中创建2个用户,分别为 (1, myuser1, 1995-7-1,男), (2, myuser2, 1995-9-1,女),口令与用户名相同,要求password 字段以密文显示; (2)修改用户 myuser2的出生日期为1996-10-25。 (3)修改表 userinfo的结构,添加新字段age(数据类型为int),新字段的有效值依次为(21,22)。 (4)将表 userinfo 中的记录导出,并存放到/var/databak/mysql.sql文件中。 (5)创建文本文件/var/databak/mysql.txt,并输入两行记录(3, myuser3, 1999-7-1,女,myuser3, 17)和(4, myuser4, 1999-12-10,男,myuser4,17),将mysql.txt中的内容导入到userinfo 表中。

 

💻 速查配置:

Bash

# 1. 安装并启动

yum install -y mariadb-server

systemctl start mariadb

systemctl enable mariadb

 

# 2. 进入数据库: mysql -u root

CREATE DATABASE userdb;

USE userdb;

CREATE TABLE userinfo (id int PRIMARY KEY AUTO_INCREMENT, name varchar(10), birthday datetime, sex char(5), password char(200));

 

INSERT INTO userinfo VALUES (1, 'myuser1', '1995-07-01', '男', MD5('myuser1'));

INSERT INTO userinfo VALUES (2, 'myuser2', '1995-09-01', '女', MD5('myuser2'));

 

UPDATE userinfo SET birthday='1996-10-25' WHERE name='myuser2';

 

ALTER TABLE userinfo ADD age int;

UPDATE userinfo SET age=21 WHERE id=1;

UPDATE userinfo SET age=22 WHERE id=2;

exit;

 

# 3. 备份与导入

mkdir -p /var/databak

mysqldump -u root userdb userinfo > /var/databak/mysql.sql

echo "3,myuser3,1999-7-1,女,myuser3,17" > /var/databak/mysql.txt

echo "4,myuser4,1999-12-10,男,myuser4,17" >> /var/databak/mysql.txt

# 再次进入数据库: mysql -u root

USE userdb;

LOAD DATA INFILE '/var/databak/mysql.txt' INTO TABLE userinfo FIELDS TERMINATED BY ',';

exit;

2. Linux 高可靠性配置 - 磁盘与 RAID (📍 所属服务器:Linux-2)

【赛题原文】 6. Linux 高可靠性配置 【任务描述】磁盘的有效管理可以提高计算机资源的利用和数据的安全性。 (1)在Linux-2中手动添加四块SCSI硬盘均为1G,将前三块硬盘设置为一个主分区,第四块硬盘设置为两个逻辑分区(分别500MB容量),并完成磁盘阵列RAID10的操作; (2)将RAID10的/dev/md10分区,分出一个大小为1G的空间,格式化为 swap 分区,设为开机生效; (注:第3-5小题属于耗时的 LVM 动态扩缩容,考场建议优先做前两小题。)

 

💻 速查配置:

Bash

yum install -y mdadm

 

# sda, sdb, sdc 分别执行 fdisk,依次 n -> p -> 回车三下 -> w

# sdd 执行 fdisk,依次 n -> e -> 回车三下; n -> 回车 -> +500M; n -> 回车 -> +500M; w

 

mdadm -C /dev/md10 -l 10 -n 4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd5

 

# 切 Swap

fdisk /dev/md10  # 依次 n -> p -> 回车两下 -> +1G -> w

mkswap /dev/md10p1

swapon /dev/md10p1

🥉 第三梯队:极易踩坑的“危险区”

时间充裕再去攻克。

1. Squid 代理服务 (📍 所属服务器:Linux-1)

【赛题原文】 1. Linux Squid 服务配置 (2)安装并完成代理服务器 squid的初始配置,使用8090作为代理服务端口,指定DNS服务器IP地址信息,使得 squid 服务器能够解析域名; (3)设置squid代理服务器采用ufs缓存机制,缓存目录设置为/cache,目录容量为5GB,L1及L2级目录数量分别为16及256,定义高速缓存值为512MB,并将缓存日志存放于/var/squid/cache.log中; (4)设置禁止访问.mp4、.avi 扩展名后缀的资源; (5)设置需要身份认证的代理方式,认证方式为基础认证,认证程序的进程为5个,账户为proxy_user,账户存储在/squid/squid_user,密码为user_proxy;

💻 速查配置:

Bash

# 核心避坑:关 SELinux 并建权限

setenforce 0

mkdir -p /cache && chown squid:squid /cache

mkdir -p /squid && htpasswd -c /squid/squid_user proxy_user

 

yum install -y squid httpd-tools

vi /etc/squid/squid.conf

# 写入:

http_port 8090

dns_nameservers 10.10.70.11

cache_dir ufs /cache 5120 16 256

acl block_media urlpath_regex -i \.mp4$ \.avi$

http_access deny block_media

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /squid/squid_user

auth_param basic children 5

acl auth_users proxy_auth REQUIRED

http_access allow auth_users

(DNS 的配置规则严苛,建议依然放在最后,这里暂不赘述以免冲淡重点。)