20199102《网络攻防实践》假期作业
20199102《网络攻防实践》假期作业
0 总体结构
本次作业属于那个课程 | 《网络攻防实践》 |
---|---|
这个作业要求在哪里 | 《网络攻防实践》假期作业 |
我在这个课程的目标是 | 学习网络攻防相关技术、掌握网络攻防相关能力 |
这个作业在哪个具体方面帮助我实现目标 | 复习markdown相关语法,学习Latex公式输入方法,复习linux虚拟机安装 |
作业正文 | 下述正文,作业一、作业二 |
其他参考文献 |
1 作业一
1.1 你对网络攻击和防御了解多少?该课程需要计算机和网络相关的基础知识,你原专业是什么专业,目前你掌握多少基础知识?
1.2 作业要使用Markdown格式,Markdown入门参考
1.1 学习经历
- 本科专业计算机科学与技术-软件工程
- 之前学习过《计算机网络》、《协议分析》等与计算机网络相关的课程
- 了解ICMP洪水、IP分片攻击和路由协议攻击等网络攻击方式。
- 学习过网络协议相关防御措施,了解网络攻击防御相关措施如网络防火墙技术、入侵检测技术和网络扫描技术等相关防御技术。
1.2 markdown格式
- 本科曾经使用过markdown记录相关学习纪录,曾经在CSDN上纪录自己相关学习经历(后来自己搭建了一个博客,但网站到期了。。。)
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
-
虚拟机创建的相关参数设置(另外推荐图床网站)
-
安装过程之后需要重启虚拟机,安装vmware-tools实现虚拟机和主机之间的沟通。至此,系统安装过程到此结束,下面我将使用我日常使用的虚拟系统完成接下来的作业。
-
接下来在刚安装系统之后需要对系统进行相关设置
-
至此系统设置安装完成
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
去设置密码
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
2.2.2 linux目录结构及文件基本操作
2.2.2.1 linux目录结构
linux的大部分目录结构是规定好了的FHS标准
FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。
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 //变量立即生效
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
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