一、 项目任务描述
你作为一个Linux的技术工程师,被指派去构建一个公司的内部网络,要为员工提供便捷、安全稳定内外网络服务。你必须在规定的时间内完成要求的任务,并进行充分的测试,确保设备和应用正常运行。任务所有规划都基于Linux操作系统,请根据网络拓扑、基本配置信息和服务需求完成网络服务安装与测试,网络拓扑图和基本配置信息如下。
1.拓扑图
2.网络地址规划
服务器和客户端基本配置如下:
Device | System | FQDN | IP/Mask/Gateway |
IspSrv | UOS | ispsrv | 81.6.63.100/24/无 |
OutsideCli | UOS | outsidecli.chinaskills .cn | 81.6.63.110/24/无 |
AppSrv | Centos | appsrv.chinaskills.cn | 192.168.100.100/24/192.168.100.254 |
StorageSrv | Centos | storagesrv.chinaskills.cn | 192.168.100.200/24/192.168.100.254 |
RouterSrv | Centos | routersrv.chinaskills. cn | 192.168.100.254/24/无、 192.168.0.254/24/无、 81.6.63.254/24/无 |
InsideCli | Centos | insidecli.chinaskills.cn | DHCP From AppSrv |
二、项目任务清单
服务器IspSrv工作任务
1. DHCP
为OutsideCli客户端网络分配地址,地址池范围:81.6.63.110-81.6.63.190/24;
域名解析服务器:按照实际需求配置DNS服务器地址选项;
网关:按照实际需求配置网关地址选项;
2. DNS
配置为 DNS 根域服务器;
其他未知域名解析,统一解析为该本机 IP;
创建正向区域“chinaskills.cn”;
类型为 Slave;
主服务器为“AppSrv”;
启用 chroot 功能,限制 bind9 在/var/named/chroot/下运行;
隐藏 bind 版本号,版本显示为“unknow”。
3. SDN
在 IspSrv 上导入 OpenDayLight 软件包;
启动 OpenDayLight 的 karaf 程序,并安装如下组件:
feature:install odl-restconf
feature:install odl-l2switch-switch-ui
feature:install odl-mdsal-apidocs
feature:install odl-dluxapps-applications
使用 Mininet 和 OpenVswitch 构建拓扑,连接 ODL 的 6653 端口如下拓扑结构:
在浏览器上可以访问 ODL 管理页面查看网元拓扑结构;
通过 OVS 给 S2 下发流表,使得 H2 与 H1、H3 无法互通;
H1 启动 HTTP-Server 功能,WEB 端口为 8080,H3 作为 HTTP-Client,获取 H1 的 html 网页配置文件。
4. NTP
安装ntp(使用其他ntp软件,以下功能均不得分);
在AppSrv和StorageSrv上创建CRON计划任务;
使用ntpdate指令,每隔五分钟进行一次时间同步;
服务器RouterSrv上的工作任务
1. DHCP RELAY
安装DHCP中继;
[root@routersrv ~]# yum install dhcp -y
允许客户端通过中继服务获取网络地址;
[root@routersrv ~]# dhcrelay 81.6.63.100
[root@routersrv ~]# dhcrelay 192.168.100.100
2. ROUTING
开启路由转发,为当前实验环境提供路由功能。
[root@routersrv ~]# echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
[root@routersrv ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@routersrv ~]#
根据题目要求,配置单臂路由实现内部客户端和服务器之间的通信。
3. SSH
工作端口为2021;
只允许用户user01,密码ChinaSkill21登录到router。其他用户(包括root)不能登录,创建一个新用户,新用户可以从本地登录,但不能从ssh远程登录。
通过ssh登录尝试登录到RouterSrv,一分钟内最多尝试登录的次数为3次,超过后禁止该客户端网络地址访问ssh服务。
记录用户登录的日志到/var/log/ssh.log,日志内容要包含:源地址,目标地址,协议,源端口,目标端口。
4. ISCSI
RouterSrv为target服务器端进行设置,创建target设备,targetID为10, 名称为iqn.2023-08.chinaskills.cn:test
5. OPENVPN
要求服务器日志记录客户端登录时间、用户名,格式如“2022-08-10: 08:10:30 Successful authentication: username="vpnuser1"”;
日志文件存放至/var/log/openvpn.log 中;
创建用户 vpnuser1,密码为 123456,使用用户名密码认证,要求只能与 InsideCli 客户端网段通信,允许访问 StorageSrv 主机上的 SAMBA 服务;
VPN 地址范围为 172.16.0.0/24,OPENVPN 使用 tcp 1194 端口号进行工作。
6. IPTABLES
添加必要的网络地址转换规则,使外部客户端能够访问到内部服务器上的 dns、mail、web 和 ftp 服务;
INPUT、OUTPUT 和 FOREARD 链默认拒绝(DROP)所有流量通行;
配置源地址转换允许内部客户端能够访问互联网区域。
7. WEB Proxy
安装 Nginx 组件;
配置文件名为 proxy.conf,放置在/etc/nginx/conf.d/目录下;
为 www.chinaskills.cn 配置代理前端,通过 HTTPS 的访问后端 Web服务器;
后端服务器日志内容需要记录真实客户端的 IP 地址;
缓存后端 Web 服务器上的静态页面;
创建服务监控脚本:/shells/chkWeb.sh;
编写脚本监控公司的网站运行情况;
脚本可以在后台持续运行;
每隔 3S 检查一次网站的运行状态,如果发现异常尝试 3 次;
如果确定网站无法访问,则返回用户“The site is being maintained”。
服务器AppSrv上的工作任务
1. SSH
安装 SSH,工作端口监听在 2101;
仅允许 InsideCli 客户端进行 ssh 访问,其余所有主机的请求都应该拒绝;
在 cskadmin 用户环境下可以免秘钥登录,并且拥有 root 控制权限。
将 SSH 跟 SFTP 进行分离,要求 SFTP 监听端口为 54321,并且通过服务的方式进行启动或停止。
2. DHCP
为InsideCli客户端网络分配地址,地址池范围:192.168.0.110-192.168.0.190/24;
域名解析服务器:按照实际需求配置DNS服务器地址选项;
网关:按照实际需求配置网关地址选项;
为InsideCli 分配固定地址为192.168.0.190/24;
设置默认租约时间为0.5天,最大租约时间为3天;
将 DHCP服务的日志信息从系统的日志服务中分离,通过rsyslog自定义消息处理,将日志信息保存至/var/log/dhcpd.log中。
3. DNS(BIND)
为 chinaskills.cn 域提供域名解析;
为 www.chinaskills.cn、download.chinaskills.cn 和 mail.chinaskills.cn 提供解析;
启用内外网解析功能,当内网客户端请求解析的时候,解析到对应的内部服务器地址,当外部客户端请求解析的时候,请把解析结果解析到提供服务的公有地址;
请将IspSrv 作为上游DNS 服务器,所有未知查询都由该服务器处理。
4. WEB
安装 WEB 服务;
服务以用户 webuser 系统用户运行;
限制 web 服务只能使用系统 500M 物理内存;
全站点启用 TLS 访问,使用本机上的“CSK Global Root CA”颁发机构颁发,网站证书信息如下:
C = CN
ST = China
L = BeiJing
O = skills
OU = Operations Departments
CN = *.chinaskills.cn
客户端访问 https 时应无浏览器(含终端)安全警告信息;
当用户使用 http 访问时自动跳转到 https 安全连接;
搭建 www.chinaskills.cn 站点;
网页文件放在 StorgeSrv 服务器上;
在 StorageSrv 上安装MriaDB,在本机上安装 PHP,发布 WordPress网站;
MariaDB 数据库管理员信息:User: root/ Password: Chinaskill21!
创建网站 download.chinaskills.cn 站点;
仅允许 ldsgp 用户组访问;
网页文件存放在 StorageSrv 服务器上;
在该站点的根目录下创建以下文件“test.mp3, test.mp4, test.pdf”,其中 test.mp4 文件的大小为 100M,页面访问成功后能够列出目录所有文件;
安全加固,在任何页面不会出现系统和 WEB 服务器版本信息。
5. MAIL(POSTFIX-SMTPS & DOVECOT-IMAPS)
安装配置 postfix 和 dovecot,启用 imaps 和 smtps,
禁止使用不安全的 smtp 和 imap 发送和接收邮件;
安装配置 postfixadmin;
使用 mailuser1@chinaskills.cn 的邮箱向 mailuser2@chinaskills.cn 的邮箱发送一封测试邮件,邮件标题为 “just test mail from mailuser1”, 邮件内容为“hello , mailuser2”。
使用 mailuser2@chinaskills.cn 的邮箱向 mailuser1@chinaskills.cn 的邮箱发送一封测试邮件,邮件标题为 “just test mail from mailuser2”, 邮件内容为“hello , mailuser1”;
添加广播邮箱地址 all@chinaskills.cn,当该邮箱收到邮件时, mailuser1 和 mailuser2 用户都能在自己的邮箱中查看;使用mailuser1@chinaskills.cn 向 all@chinaskills.cn 发送测试邮件,邮件标题为 “test all”,邮件内容为“hello ,test all”;
使用 https://mail.chinaskills.cn 网站测试邮件发送与接收。
6. CA(证书颁发机构)
CA 根证书路径/csk-rootca/csk-ca.pem;
签发数字证书,颁发者信息:(仅包含如下信息)
C = CN
ST = China
L = BeiJing
O = skills
OU = Operations Departments
CN = CSK Global Root CA
7. 磁盘加密
创建一块新的磁盘,对该卷进行磁盘加密,解锁密码为“CSK2022!”
映射到/dev/mapper/crypt 分区上;
格式化成 ext4 分区;
挂载到/mut/crypt 目录;
配置开机自动挂载
8. ISCSI
在appsrv上编辑iSCSI客户端配置文档将节点开启方式改为手动(manual)模式,之后启动iSCSI客户端进程以便发现target服务端。
服务器StorageSrv上的工作任务
1. DISK
添加大小均为10G的虚拟磁盘,配置raid-5磁盘。
创建LVM命名为/dev/vg01/lv01,大小为100G,格式化为ext4,挂在到本地目录/webdata,在分区内建立测试空文件disk.txt。
2. NFS
共享/webdata/目录;
用于存储AppSrv主机的WEB数据;
仅允许AppSrv主机访问该共享。
3. VSFTPD
禁止使用不安全的 FTP,请使用“CSK Global Root CA”证书颁发机构,颁发的证书,启用 FTPS 服务;
创建虚拟用户 webuser,登录 ftp 服务器,根目录为/webdata,上传的文件映射为 webadmin;
登录后限制在自己的根目录;
允许 WEB 管理员上传和下载文件,但是禁止上传后缀名为.doc .docx .xlsx 的文件;
限制用户的下载最大速度为 100kb/s;最大同一 IP 在线人数为 2 人;
通过工具或者浏览器下载的最大速度不超过 100kb/s;
一个 IP 地址同时登陆的用户进程/人数不超过 2 人;
采用随机端口用户客户端跟服务器的数据传输,并限制传输端口为 40000-41000 之间。
4. SAMBA
创建 samba 共享,本地目录为/data/share1,要求:
共享名为 share1;
仅允许 zsuser 用户能上传文件;
创建 samba 共享,本地目录为/data/public,要求:
共享名为 public。
允许匿名访问。
所有用户都能上传文件。
5. DISK(RAID5)
在虚拟机上添加 4 个 1G 的硬盘;
创建 raid5,其中一个作为热备盘, 设备名为md0;
将 md0 设置为 LVM,设备为/dev/vg01/lv01;
格式化为 ext4 文件系统;
开机自动挂载到/data 目录
6. Mariadb
脚本文件:/shells/mysqlbk.sh;
备份数据到/root/mysqlbackup 目录;
备份脚本每隔 30 分钟实现自动备份;
导出的文件名为 all-databases-20210213102333,其中 20210213102333 为运行备份脚本的当前时间,精确到秒。
7. LDAP
安装 slapd,为 samba 服务提供账户认证;
创建 chinaskills.cn 目录服务,创建 users 组织单元,并创建用户组 ldsgp ,将 zsuser、lsusr、wuusr 加入 ldsgp 组。
客户端OutsideCli和InsideCli工作任务
1. OutsideCli
作为DNS服务器域名解析测试的客户端,安装nslookup、dig命令行工具;
apt install dnsutils -y
apt install dnsutils -y
作为网站访问测试的客户端,安装firefox浏览器, curl命令行测试工具;
apt install firefox -y
作为SSH远程登录测试客户端,安装ssh命令行测试工具;
apt install openssh-client -y
作为SAMBA测试的客户端,使用图形界面文件浏览器测试, 并安装smbclient工具;
apt install smbclient -y
作为FTP测试的客户端,安装lftp命令行工具;
apt install lftp -y
作为防火墙规则效果测试客户端,安装ping命令行工具。
apt install iputils-ping -y
截图的时候请使用上述提到的工具进行功能测试。
2. InsideCli
作为DNS服务器域名解析测试的客户端,安装nslookup、dig命令行工具;
yum install bind-utils -y
作为网站访问测试的客户端,安装firefox浏览器, curl命令行测试工具;
yum install firefox -y
yum install curl -y
作为SSH远程登录测试客户端,安装ssh命令行测试工具;
yum install openssh-clients -y
作为SAMBA测试的客户端,使用图形界面文件浏览器测试, 并安装smbclient工具;
yum install -y samba-client -y
作为FTP测试的客户端,安装lftp命令行工具;
yum install lftp -y
作为防火墙规则效果测试客户端,安装ping命令行工具。
yum install iputils -y
截图的时候请使用上述提到的工具进行功能测试。