網(wǎng)絡(luò)安全攻防:Linux系統(tǒng)安全之系統(tǒng)概述
1. 歷史
Linux操作系統(tǒng)誕生于1991年,它是Unix的一種典型的克隆系統(tǒng)。它是一個基于POSIX和Unix的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),同時,Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,也是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
Linux 最早是由芬蘭人 Linus Torvalds 設(shè)計(jì)的。當(dāng)時由于 Unix 的商業(yè)化,Andrew Tannebaum教授開發(fā)了Minix操作系統(tǒng),以便于不受AT&T許可協(xié)議的約束,為教學(xué)科研提供一個操作系統(tǒng)。當(dāng)時發(fā)布在 Internet 上,免費(fèi)給全世界的學(xué)生使用。Minix 具有較多 Unix的特點(diǎn),但與Unix不完全兼容。
1991年10月5日,Linus Torvalds為了給Minix用戶設(shè)計(jì)一個比較有效的Unix PC版本,自己寫了一個“類Minix”的操作系統(tǒng)。當(dāng)時最初的內(nèi)核版本是0.02。Linus將它發(fā)到了Minix新聞組,很快就得到了響應(yīng)。Linus 在這種簡單的任務(wù)切換機(jī)制上進(jìn)行擴(kuò)展,并在很多熱心支持者的幫助下開發(fā)和推出了Linux的第一個穩(wěn)定的工作版本。
1991年11月,Linux0.10版本推出,0.11版本隨后在1991年12月推出,當(dāng)時將它發(fā)布在Internet上,免費(fèi)供人們使用。當(dāng)Linux非常接近于一種可靠的、穩(wěn)定的系統(tǒng)時,Linus決定將0.13版本稱為0.95版本。1994年3月,正式的Linux 1.0出現(xiàn)了,這差不多是一種正式的獨(dú)立宣言。截至那時為止,它的用戶基數(shù)已經(jīng)發(fā)展得很大,而且Linux的核心開發(fā)隊(duì)伍也建立起來了。
開源、開放、免費(fèi)是Linux的魅力所在。在Linux誕生之后,借助于Internet網(wǎng)絡(luò),在全世界計(jì)算機(jī)愛好者的共同努力下,成為目前世界上使用者最多的一種類似Unix的操作系統(tǒng)。在Linux操作系統(tǒng)的誕生、成長和發(fā)展過程中,在Unix操作系統(tǒng)、GNU計(jì)劃、POSIX標(biāo)準(zhǔn)、Internet網(wǎng)絡(luò)等方面起了重要作用。
Linux還具有良好的可移植性。Linux編譯后可在大量處理器和具有不同體系結(jié)構(gòu)約束和需求的平臺上運(yùn)行。經(jīng)過30年的發(fā)展,Linux操作系統(tǒng)成為在服務(wù)器、嵌入式系統(tǒng)和個人計(jì)算機(jī)等多個方面得到廣泛應(yīng)用的操作系統(tǒng)。
2. 內(nèi)核簡介
Linux是一個一體化內(nèi)核(Monolithic Kernel)系統(tǒng)。
“內(nèi)核”指的是一個提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。一個內(nèi)核不是一套完整的操作系統(tǒng)。一套基于Linux內(nèi)核的完整操作系統(tǒng)叫作Linux操作系統(tǒng),或是 GNU/Linux。設(shè)備驅(qū)動程序可以完全訪問硬件。Linux 內(nèi)的設(shè)備驅(qū)動程序可以方便地以模塊化的形式設(shè)置,并在系統(tǒng)運(yùn)行期間可直接裝載或卸載。
內(nèi)核是Linux操作系統(tǒng)的最重要的部分,從最初的0.95版本到目前的4.9.4版本,Linux內(nèi)核開發(fā)經(jīng)過了30年的時間,其架構(gòu)已經(jīng)十分穩(wěn)定。Linux內(nèi)核的編號采用如下編號形式。
主版本號.次版本號.修訂版本號
不過,在2.6.x 系列中,從2.6.8.1 內(nèi)核開始,一直持續(xù)到2.6.11,較小的內(nèi)核隱患和安全補(bǔ)丁被賦予了次小數(shù)點(diǎn)版本號,如2.6.11.1。
在Linux的Terminal下,查看本機(jī)內(nèi)核信息的命令如下。
- root@kali:~# uname-a
 - Linux ZYB-KALI-VM 4.0.0-kali1-amd64 #1 SMP Debian 4.0.4-1+kali2(2015-06-03)x86_64 GNU/Linux
 
加載內(nèi)核模塊的命令為:
- insmod filename
 
刪除內(nèi)核模塊的命令為:
- rmmod filename
 
其中,filename為用戶準(zhǔn)備好的需要加入內(nèi)核的模塊文件,查看系統(tǒng)已經(jīng)加載的內(nèi)核模塊(部分)如下。
- root@kali:~# lsmod
 - Module Size Used by
 - cfg80211 454656 0
 - binfmt_misc 20480 1
 - nfnetlink_queue 24576 0
 - nfnetlink_log 20480 0
 - Bluetooth 425984 0
 - nfnetlink 16384 2 nfnetlink_log,nfnetlink_queue
 - Rfkill 20480 3 cfg80211,bluetooth
 - vmw_vsock_vmci_transport 28672 2
 - vsock 32768 3 vmw_vsock_vmci_transport
 - snd_ens1371 24576 4
 - snd_rawmidi 28672 1 snd_ens1371
 - snd_seq_device 16384 1 snd_rawmidi
 - snd_ac97_codec 118784 1 snd_ens1371
 - snd_pcm 90112 2 snd_ac97_codec,snd_ens1371
 - snd_timer 28672 1 snd_pcm
 - snd 69632 14 snd_ac97_codec,snd_timer,snd_pcm,snd_rawmidi,snd_ens1371,snd_seq_device
 - ppdev 20480 0
 - soundcore 16384 1 snd
 - ac97_bus 16384 1 snd_ac97_codec
 
3. 發(fā)行版本
Linux的發(fā)行版本眾多,曾有人收集過超過300種的發(fā)行版本,其中主要有3個著名發(fā)行版本Fedora、SUSE、Debian,如圖1所示。
圖1 Linux發(fā)行版本
Fedora是基于RHEL、CentOS、Scientific Linux和Oracle Linux的社區(qū)版本。Fedora比RHEL打包了更多的軟件包。CentOS用于活動、演示和實(shí)驗(yàn),因?yàn)樗菍ψ罱K用戶免費(fèi)提供的,并具有比Fedora的一個更長的發(fā)布周期(通常每隔半年左右發(fā)布一個新版本)。
SUSE、SUSE Linux Enterprise Server(SLES)和openSUSE之間的關(guān)系類似于Fedora、Red Hat Enterprise Linux和CentOS的關(guān)系。
Debian是包括Ubuntu在內(nèi)許多發(fā)行版的上游,而Ubuntu又是Linux Mint及其他發(fā)行版的上游。Debian在服務(wù)器和桌面電腦領(lǐng)域都有著廣泛的應(yīng)用。它是一個純開源計(jì)劃,并著重在一個關(guān)鍵點(diǎn)上——穩(wěn)定性。它也給用戶提供了最大的和完整的軟件倉庫。Kali Linux 就是基于Debian發(fā)展而來的。
其他發(fā)行版本還有Magela、Manjaro、Arch、Elementary和Gentoo Linux等。
4. 文件系統(tǒng)
Linux與Windows下的文件組織結(jié)構(gòu)不同,Linux不使用磁盤分區(qū)符號來訪問文件系統(tǒng),而是將整個文件系統(tǒng)表示成樹狀的結(jié)構(gòu),Linux 系統(tǒng)每增加一個文件系統(tǒng)都會將其加入到這個樹中。
操作系統(tǒng)文件結(jié)構(gòu)的開始,只有一個單獨(dú)的頂級目錄結(jié)構(gòu),叫作根目錄。所有一切都從“根”開始,用“/”代表,并且延伸到子目錄。
DOS/Windows下文件系統(tǒng)按照磁盤分區(qū)的概念分類,目錄都存于分區(qū)上。而Linux則通過“掛載”的方式把所有分區(qū)都放置在“根”下各個目錄里。Kali Linux系統(tǒng)的文件結(jié)構(gòu)如下。
- root@kali:/# ls-l
 - total 96
 - -rw-r--r--1 root root 0 Aug 11 2015 0
 - drwxrwxr-x 2 root root 4096May 16 2016 bin
 - drwxr-xr-x 3 root root 4096May 16 2016 boot
 - drwxr-xr-x 18 root root 3200 Feb 26 18:35 dev
 - drwxr-xr-x 182 root root 12288 Feb 26 18:40 etc
 - drwxr-xr-x 2 root root 4096 Jul 23 2015 home
 - lrwxrwxrwx 1 root root 34 Apr 28 2016 initrd.img->/boot/initrd.img-4.0.0-kali1-amd64
 - drwxr-xr-x 20 root root 4096 Apr 28 2016 lib
 - drwxr-xr-x 2 root root 4096May 16 2016 lib64
 - drwxr-xr-x 2 root root 4096 Aug 11 2015 live-build
 - drwx------2 root root 16384 Apr 28 2016 lost+found
 - drwxr-xr-x 4 root root 4096May 18 2016 media
 - drwxr-xr-x 3 root root 4096May 16 2016 mnt
 - drwxr-xr-x 3 root root 4096 Aug 11 2015 opt
 - dr-xr-xr-x 147 root root 0 Feb 26 18:34 proc
 - drwxr-xr-x 16 root root 4096 Feb 26 18:38 root
 - drwxr-xr-x 29 root root 880 Feb 26 18:40 run
 - drwxr-xr-x 2 root root 12288May 16 2016 sbin
 - drwxr-xr-x 3 root root 4096 Aug 11 2015 srv
 - dr-xr-xr-x 13 root root 0 Feb 26 18:34 sys
 - drwxrwxrwt 13 root root 4096 Feb 26 18:40 tmp
 - drwxr-xr-x 14 root root 4096 Aug 11 2015 usr
 - drwxr-xr-x 13 root root 4096 Apr 28 2016 var
 
還可以使用tree命令來直觀顯示文件目錄的樹狀結(jié)構(gòu)如下。
- root@ZYB-KALI-VM:~# tree
 - ├── Desktop
 - ├── Documents
 - ├── Downloads
 - ├── Music
 - ├── Pictures
 - ├── Public
 - ├── Templates
 - └── Videos
 - 8 directories,0 files
 
















 
 
 
 
 
 
 