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