Linux系统与网络管理

黄玮

第六章:shell脚本编程练习进阶(实验)

FTP、NFS、DHCP、DNS、Samba服务器的自动安装与自动配置

软件环境建议

  • FTP
    • 对照第6章课件中的要求选择一款合适的FTP服务器软件支持所有任务要求
  • NFS
    • 对照第6章课件中的NFS服务器配置任务
  • DHCP
    • 2台虚拟机使用Internal网络模式连接,其中一台虚拟机上配置DHCP服务,另一台服务器作为DHCP客户端,从该DHCP服务器获取网络地址配置
  • Samba
    • 对照第6章课件中smbclient一节的3点任务要求完成Samba服务器配置和客户端配置连接测试
  • DNS
    • 基于上述Internal网络模式连接的虚拟机实验环境,在DHCP服务器上配置DNS服务,使得另一台作为DNS客户端的主机可以通过该DNS服务器进行DNS查询
    • 在DNS服务器上添加 zone "cuc.edu.cn" 的以下解析记录
ns.cuc.edu.cn NS
ns A <自行填写DNS服务器的IP地址>
wp.sec.cuc.edu.cn A <自行填写第5章实验中配置的WEB服务器的IP地址>
dvwa.sec.cuc.edu.cn CNAME wp.sec.cuc.edu.cn

shell脚本编程基本要求

  • 目标测试与验证系统为本学期课程指定操作系统版本
  • 自动安装与自动配置过程的启动脚本要求在本地执行
    • 提示:配置远程目标主机的SSH免密root登录,安装脚本、配置文件可以从工作主机(执行启动脚本所在的主机)上通过scp或rsync方式拷贝或同步到远程目标主机,然后再借助SSH的远程命令执行功能实现远程控制安装和配置
  • 假设目标系统没有配置过root用户免密登录,所以我们要求在自动安装脚本中包含自动配置远程root用户免密登录的代码
  • 脚本在执行过程中,如果需要在目标主机上创建目录、创建临时文件、执行网络下载等操作需要判断执行是否成功,并进行必要的异常处理(例如:apt-get update失败,则退出脚本执行,并将友好错误信息打印在控制台上。临时目录不存在,则自动创建该临时目录)
  • 所有服务的配置文件、临时目录需设置正确的目录和文件归属和权限位,禁止使用777这种偷懒的权限位设置
  • 减少不必要的安装过程中的人机交互输入,尽可能全部通过脚本的方式完成选项设置和交互式问题输入等
  • 目标环境相关参数应使用独立的配置文件或配置脚本(在主调脚本中引用配置脚本)
    • 目标服务器IP
    • 目标服务器SSH服务的端口
    • 目标服务器上使用的用户名
    • 目标服务器上用于临时存储安装脚本、配置文件的临时目录路径

其他要求

  • 撰写实验报告,证明你具体完成了哪些任务要求
  • 所有脚本代码、配置文件均应包含在你的作业PR之中
  • 脚本应在纯净未配置任何目标服务的系统和已完全配置好所有目标服务的系统2种典型测试用例条件下均能测试通过
    • 对于在目标系统上已完成配置的服务,允许用本地的配置文件去覆盖远程已有的配置文件,但在执行覆盖操作之前应对远程已有的配置文件进行妥善备份