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

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

0 总体结构

本次作业属于那个课程 《网络攻防实践》
这个作业要求在哪里 《网络攻防实践》假期作业
我在这个课程的目标是 学习网络攻防相关技术、掌握网络攻防相关能力
这个作业在哪个具体方面帮助我实现目标 复习markdown相关语法,学习Latex公式输入方法,复习linux虚拟机安装
作业正文 下述正文,作业一、作业二
其他参考文献

1 作业一

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

1.2 作业要使用Markdown格式,Markdown入门参考


1.1 学习经历

  • 本科专业计算机科学与技术-软件工程
  • 之前学习过《计算机网络》、《协议分析》等与计算机网络相关的课程
  • 了解ICMP洪水、IP分片攻击和路由协议攻击等网络攻击方式。
  • 学习过网络协议相关防御措施,了解网络攻击防御相关措施如网络防火墙技术、入侵检测技术和网络扫描技术等相关防御技术。

1.2 markdown格式

2 作业二

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

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

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


2.1 虚拟机的安装

下面是安装过程中的相关注意事项、操作步骤和截图

  • 主力机器放在学校实验室,通过蒲公英+远程桌面操作机器,相关截图可能比较奇怪。

  • 在Intel的CPU中虚拟化技术为VT-V, AMD的CPU中为SVM mode

  • 下载Ubuntu 18.04 镜像文件

  • 虚拟机创建的相关参数设置(另外推荐图床网站)

1GL6OI.png

  • 安装过程之后需要重启虚拟机,安装vmware-tools实现虚拟机和主机之间的沟通。至此,系统安装过程到此结束,下面我将使用我日常使用的虚拟系统完成接下来的作业。

  • 接下来在刚安装系统之后需要对系统进行相关设置

    • apt-get换国内源 国内常见的两个源为aliyun清华源

    • sudo apt-get updata & upgrade更新系统相关程序

    • sudo apt-get install zsh 安装shell,并设置相关插件。

  • 至此系统设置安装完成

2.2 linux命令学习

2.2.1用户及文件权限管理

2.2.1.1 linux用户管理相关命令

who 
	-a 全部信息
	-d 死掉进程
	-m 
	-q 当前已经登录的
	-u 当前已经登录的信息
	-r 等级
who mom likes //获取当前终端的用户名
sudo adduser username //
su username //切换用户
group groupname //创建group
sudo usermod -G sudo username //添加管理员权限
sudo deluser name --remove-home //删除用户及其目录
​```

adduser会创建用户、创建目录和设置用户名

useradd只会创建用户, 需要通过passwd username去设置密码

1GxYaq.png

2.2.1.2 linux文件权限
ls
	-s    //显示大小
	-S	  //按照大小排序
	-Al   
	-h
touch filename    //创建文件
chmod -R XXX filename //赋予文件权限
//三个数字分别代表groups、others和user
//1 2 4 三个数字分别代表run、read和write,加和为7

1J9R7d.png

2.2.2 linux目录结构及文件基本操作

2.2.2.1 linux目录结构

linux的大部分目录结构是规定好了的FHS标准

FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。

shiyanlou

2.2.2.2 linux文件基本操作
touch filename 				//创建文件
mdkir dirname				//创建目录
mkdir -p path/dirname		//-p连同路径一起创建
cp filename1 dirname		//copy
cp -r dirname1 dirname2		//递归copy
rm filename 				//删除文件
	-r //递归删除
	-f //忽视警告
mv A B						//移动文件A -> B
rename perl-exp perl-exp	//rename
cat filename				//打印文件
tac filename				//反向打印文件
nl filename					//显示行号打印文件
	-b //添加行号方式
	-n //设置行号央视
	-w //行号占用字段位数
file filename				//显示文件类型
head filename				//显示文件前10行
tail filename				//显示文件后10行

2.2.3 环境变量与文件查找

2.2.3.1 环境变量
命令 说明
set 显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
export 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。
$ path=$PATH
$ echo $path
$ path=${path%/home/shiyanlou/mybin}
# 或使用通配符,*表示任意多个任意字符
$ path=${path%*/mybin}

$ unset temp				//取消变量

source .zshrc				//变量立即生效

1Jeg2j.png

2.2.3.2 命令的查找路径与顺序
命令 特点
where 这个搜索很快,因为它并没有从硬盘中依次查找,而是直接从数据库中查询。
locate 通过“ /var/lib/mlocate/mlocate.db ”数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行 updatedb 命令更新一次,所以有时候你刚添加的文件,它可能会找不到,需要手动执行一次 updatedb 命令
which 我们通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令:
find 我们通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令:

find的一级参数和二级参数

参数 说明
-atime 最后访问时间
-ctime 最后修改文件内容的时间
-mtime 最后修改文件属性的时间
  • -mtime n:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
  • -mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
  • -mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
  • -newer file:file 为一个已存在的文件,列出比 file 还要新的文件名

2.2.4文件的打包与解压缩

文件后缀名 说明
*.zip zip 程序打包压缩的文件
*.rar rar 程序压缩的文件
*.7z 7zip 程序压缩的文件
*.tar tar 程序打包,未压缩的文件
*.gz gzip 程序(GNU zip)压缩的文件
*.xz xz 程序压缩的文件
*.bz2 bzip2 程序压缩的文件
*.tar.gz tar 打包,gzip 程序压缩的文件
*.tar.xz tar 打包,xz 程序压缩的文件
*tar.bz2 tar 打包,bzip2 程序压缩的文件
*.tar.7z tar 打包,7z 程序压缩的文件
2.2.4.1 打包
tar -czvf ***.tar.gz
tar -cjvf ***.tar.bz2
2.2.4.2解压
tar -xzvf ***.tar.gz
tar -xjvf ***.tar.bz2
2.2.4.3参数
参数 作用
-x 档案文件中释放文件。
-c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
-r 把要存档的文件追加到档案文件的末尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘 记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
-t 列出档案文件的内容,查看已经备份了哪些文件。
-u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。

2.2.5 文件系统操作和磁盘管理

2.2.5.1基本操作
df				//显示磁盘容量
du				//显示目录大小
	-h			//更易于阅读
	-d			//显示深度
	-s			//显示总计
2.2.5.2 磁盘管理
# 输出到文件
$ dd of=test bs=10 count=1 # 或者 dd if=/dev/stdin of=test bs=10 count=1
# 输出到标准输出
$ dd if=/dev/stdin of=/dev/stdout bs=10 count=1

//从/dev/zero设备创建一个容量为 256M 的空文件:
$ dd if=/dev/zero of=virtual.img bs=1M count=256
$ du -h virtual.img

$ mount -o loop -t ext4 virtual.img /mnt 
# 也可以省略挂载类型,很多时候 mount 会自动识别

# 以只读方式挂载
$ mount -o loop --ro virtual.img /mnt

# 进入磁盘分区模式
$ sudo fdisk virtual.img

$ sudo losetup /dev/loop0 virtual.img
# 如果提示设备忙你也可以使用其它的回环设备,"ls /dev/loop*"参看所有回环设备

# 解除设备关联
$ sudo losetup -d /dev/loop0

格式化mkfs分区
$ sudo apt-get install kpartx
$ sudo kpartx -av /dev/loop0

# 取消映射
$ sudo kpartx -dv /dev/loop0

全部格式化为ext4
$ sudo mkfs.ext4 -q /dev/mapper/loop0p1
$ sudo mkfs.ext4 -q /dev/mapper/loop0p5
$ sudo mkfs.ext4 -q /dev/mapper/loop0p6

1JKdfS.png

2.2.5 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等。

命令 特点
help 因为 help 命令是用于显示 shell 内建命令的简要帮助信息。帮助信息中显示有该命令的简要说明以及一些参数的使用以及说明,一定记住 help 命令只能用于显示内建命令的帮助信息,不然就会得到你刚刚得到的结果。
man 因为 man 工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述。通过查看系统文档中的 man 也可以得到程序的更多相关信息和 Linux 的更多特性。
info 得到的信息是不是比 man 还要多了,info 来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息。所以得到的信息当然更多

3. 参考文献

[1].https://www.cnblogs.com/centos2017/p/7896807.html

[2].https://www.cnblogs.com/littleby/p/9843620.html

[3].https://blog.csdn.net/makercloud/article/details/82696960

[4].https://blog.csdn.net/u012489236/article/details/97137007

posted @ 2020-02-02 00:48  孙启龙20199102  阅读(402)  评论(0编辑  收藏  举报