《网络攻防实践》假期作业

浪子不回头ぞ 提交于 2020-02-17 14:55:07

一.总体概述

这个作业属于哪个课程:https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里:https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10228
我在这个课程的目标:学习并掌握网络攻防知识,能完成相关实践
这个作业在哪个具体方面帮助我实现目标:学习Linux操作命令

二.作业

作业一

1.你对网络攻击和防御了解多少?该课程需要计算机和网络相关的基础知识,你原专业是什么专业,目前你掌握多少基础知识?

对网络攻击和防御了解比较浅薄。
原专业电子信息工程,与计算机和网络的相关知识学习较少,学习过C语言。

2.作业要使用Markdown格式,Markdown入门参考(需掌握)

上学期在导师的要求下用博客园汇报学习心得,对Markdown格式比较熟悉。

作业二

1.学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统(也可以使用VMWare安装虚拟机,安装方法自己百度)

官网下载VirtualBox和Ubuntu,按照图文教程安装,一路确定即可。

2.通过实践学习别出心裁的Linux命令学习法,掌握Linux命令的学习方法

(1)掌握Ubuntu有几个快捷键,可以提高使用命令行的效率:
CTRL+ALT+T:打开终端,天天使用终端,用鼠标打开太低效了;
CTRL+SHIFT+T:新建标签页,编程时有重要应用;
ALT+数字N:终端中切换到第N个标签页,编程时有重要应用;
Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成;
上下键盘:切换命令历史,刚输入一个很长的命令,按上键就可以恢复;
CTRL+C:中断程序运行。
(2)man命令
输入man man 来查看man的帮助。

可以通过“man -k sort”来搜索,看C语言库中有没有排序这个功能的函数。

(3)cheat命令
cheat是作弊,小抄的意思。cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。Ubuntu没有自带cheat指令,可通过一下指令安装。

sudo apt-get install python-pip git
sudo pip install docopt pygments
git clone https://github.com/chrisallenlane/cheat.git
cd cheat
sudo python setup.py install

3.参考上面的学习方法通过实践学习Linux 基础入门(新版)课程,掌握常用的Linux命令,重点是3/4/5/6/7/8节。

实验三:用户及文件权限管理
Linux 是一个可以实现多用户登录的操作系统,比如“李雷”和“韩梅梅”都可以同时登录同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看、修改彼此的文件。
如下图操作查看用户

root 权限,系统权限的一种,与 SYSTEM 权限可以理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作,所以很多黑客在入侵系统的时候,都要把权限提升到 root 权限,用 Windows 的方法理解也就是将自己的非法帐户添加到 Administrators 用户组。更比如安卓操作系统中(基于 Linux 内核)获得 root 权限之后就意味着已经获得了手机的最高权限,这时候你可以对手机中的任何文件(包括系统文件)执行所有增、删、改、查的操作。
如下图操作新建一个用户lilei并将授予root权限。

文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。ls命令查看文件权限。

字符表示的含义如下图所示。


实验四:linux目录结构及文件基本操作
Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。举例来说,可以利用网络文件系统(Network File System,NFS)服务器载入某特定目录等。
Linux其中大部分目录结构是规定好了的(FHS 标准),是死的,当你掌握后,你在里面的一切操作都会变得井然有序。FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放置可执行文件等等。第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统日志文件,/usr/share 放置共享数据等等。

对于文件,我们有新建/复制/移动/删除等操作,下图演示了新建文件test并将其复制到新建目录mydir中的步骤。

实验五:环境变量与文件查找
所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值是一对一的关系,可以通过表达式读取它的值并赋值给其它变量,也可以直接指定数值赋值给任意变量。为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值、字符或者字符串等等数据类型。Shell 中的变量也基本如此,有不同类型(但不用专门指定类型名),可以参与运算,有作用域限定。
环境变量的作用域比自定义变量的要大,如 Shell 的环境变量作用于自身和它的子进程。通常我们会涉及到的变量类型有三种:当前 Shell 进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前 Shell 中有效;Shell 本身内建的变量;从自定义变量导出的环境变量。也有三个与上述三种环境变量相关的命令:set,env,export。

创建一个 C 语言“ hello world ”程序。

使用unset命令删除变量,利用whereis,which,find 和 locate命令搜索文件。
实验六:文件打包与解压缩
Linux压装包格式除了Windows常用的“.zip"和".7z"外,还包括“.rar,.gz,.xz,.bz2,.tar,.tar.gz,.tar.xz,*.tar.bz2”等
创建一个压缩包,在将其解压的过程如下图

上面命令将目录 /home/shiyanlou/Desktop 打包成一个文件,并查看了打包后文件的大小和类型。第一行命令中,-r 参数表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。后面使用 du 命令查看打包后文件的大小。

也可以使用安静模式,将文件解压到指定目录:$ unzip -q shiyanlou.zip -d ziptest
如果不想解压只想查看压缩包的内容你可以使用 -l 参数:$ unzip -l shiyanlou.zip
实验七:文件系统操作与磁盘管理
df命令查看磁盘容量

物理主机上的 /dev/sda2 是对应着主机硬盘的分区,后面的数字表示分区号,数字前面的字母 a 表示第几块硬盘(也可能是可移动磁盘),你如果主机上有多块硬盘则可能还会出现 /dev/sdb,/dev/sdc 这些磁盘设备都会在 /dev 目录下以文件的存在形式。接着你还会看到"1k-块"这个陌生的东西,它表示以磁盘块大小的方式显示容量,后面为相应的以块大小表示的已用和可用容量。
df -h命令可使磁盘容量更直接明了。

使用 dd 命令创建虚拟镜像文件,使用 mkfs 命令格式化磁盘(我们这里是自己创建的虚拟磁盘镜像),使用 mount 命令挂载磁盘到目录树。

实验八:Linux下的帮助命令
内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。
外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调入内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
我们可以使用 type 命令来区分命令是内建的还是外部的。

Linux中常用的帮助指令有help,man,info.
help 命令只能用于显示内建命令的帮助信息
man 没有内建与外部命令的区分,因为 man 工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述。
与 man 相比,info 工具可显示更完整的。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!