1. 程式人生 > 其它 >linux系統安全-1

linux系統安全-1

1、linux簡介

1.1 linux發展歷程

linux系統誕生於1991年,由芬蘭大學生林納斯·託瓦茲和後來陸續加入的眾多愛好者共同開發完成。

linux常見的發行版有redhat、Suse、debian等。

  • 1992年,Patrick Volkerding建立了Slackware
  • 1993年,Lan Murdock建立了Debian
  • 1995年1月,Bob Young創辦了RedHat(小紅帽)
  • 1996年,SUSE推出了一個完全自家打造的發行版-S.u.S.E.Linux 4.2
  • 2004年10月20日,Mark Shuttleworth創辦了Ubuntu

linux是開源軟體,是原始碼開放的UNIX分支。具備現代一切功能完整的UNIX系統所具備的全部特徵。

linux的發行遵守GUN的通用公共許可證。

linux可以安裝在各種計算機硬體裝置中,比如手機、平板電腦、路由器、視訊控制檯、大型計算機等。

嚴格來講,linux本身只表示linux核心,但實際上人們已經習慣了用linux來形容整個基於linux內容的作業系統。

1.2 關於核心版本

linux的核心版本主要由3塊組成:主版本號.次版本號.修訂次數

通常我們常見的版本號是2.6.18,目前最新的版本號是5.7.2

對於版本號我們需要重點關注次版本號,次版本號如果是偶數表示穩定版,奇數表示開發版。開發版通常有較多bug,不建議用於生產環境。

官網:www.kernel.org

2、檔案系統

2.1 檔案/目錄

在linux系統中,有一個非常重要的概念,那就是,一切皆是檔案。linux系統把一切都看做是檔案,包括硬體裝置。linux系統把每個硬體都看成是一個檔案,通常稱為裝置檔案。這樣使用者就可以通過讀寫檔案的方式來實現對硬體裝置的訪問。linux系統在啟動時,第一個掛載的是根檔案系統,就是下圖中的根\。下圖中顯示的就是常見的從根開始的檔案目錄結構。

二級目錄

  • /bin 放置的是在單人維護模式下還能夠被操作的指令。在\bin底下 的指令可以被root與一般賬號所使用。
  • /boot 這個目錄主要放置開機會使用到的檔案,包括Linux核心檔案以及開機選單與開機所需配置檔案等。
  • /dev 在Linux系統上,任何裝置與介面裝置都是以檔案的形態存在於這個目錄當中的。
  • /etc 系統主要的配置檔案幾乎都放置在這個目錄內,例如人員的賬號密碼檔案、各種服務的啟始檔等。
  • /home 這是系統預設的使用者家目錄(home directory)。
  • /lib 放置的是在開機時會用到的函式庫,以及在/bin或/sbin底下的指令會呼叫的函式庫。
  • /media 放置的是可移除的裝置,包括軟盤、光碟、DVD等等裝置都暫時掛載於此。
  • /opt 給第三方協力軟體放置的目錄。
  • /root 系統管理員(root)的家目錄。
  • /sbin 此目錄下的為開機過程中所需要的,包括了開機、修復、還原系統所需要的指令。
  • /srv srv可以視為service的縮寫,是一些網路服務啟動之後,這些服務所需要取用的資料目錄。
  • /tmp 這是讓一般使用者或者是正在執行的程式暫時放置檔案的地方。

三級目錄

  • /user/lib 包含各種應用軟體的函式庫、目標檔案(Object file),以及不被一般使用者慣用的執行檔或指令碼(script)。
  • /usr/local 系統管理員在本機自行安裝自己下載的算計(非distribution預設提供者),建議安裝到此目錄,這樣比較便於管理。
  • /var/lib 程式本身執行的過程中,需要使用到的資料檔案放置的目錄。
  • /var/log(重要) 登入檔案放置的目錄,裡面比較重要的檔案如/var/log/messages,/var/log/wtmp(記錄登入者的資訊)等。
  • /etc/init.d/ 所有服務的預設啟動script都是放在這裡的。
  • 賬號相關的重要配置檔案
  • 下面我們對系統內與賬號相關的重要配置檔案做進一步講解。

2.2 /etc/password

2.3 賬號

系統的預設賬號及其uid值如下圖所示。

lp取0-499之間。

2.4 /etc/shadow

Shadow檔案中MD5 HASH等演算法

密碼示例:root:$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.:14838:0:99999:7:::

示例的密碼域$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.其實是由三部分組成:$id$salt$encrypted

其中id值是指的加密演算法,salt是指的隨機數,encrypted是指的加密密文

  • id值:id為1時,採用md5進行加密;id為5時,採用SHA256進行加密;id為6時,採用SHA512進行加密。
  • salt值:是某個固定長度的隨機字串,也就是每次修改passwd之後,都是隨機生成該字串。
  • 密文的得來是通過char *crypt(const char *key,const char *salt);來計算出來的。

3、基本操作

檔案與目錄管理

在linux系統中,定位一個檔案或目錄時有兩種方式:絕對路徑和相對路徑。

  • 絕對路徑的寫法一定由根目錄/寫起。
  • 相對路徑的寫法不是由/寫起。相對路徑意指相對於目前工作目錄的路徑!

目錄的基本操作

  • cd 變換目錄
  • pwd 顯示目前的目錄
  • mkdir 建立一個新的目錄
  • rmdir 刪除一個空的目錄
  • ls 檔案與目錄的檢視

使用者、組與許可權管理

  • 使用者 UID /etc/password /etc/shadow
  • 組 GID /etc/group /etc/gshadow
  • 從命令列中檢視許可權 ls -l
  • 建立使用者 useradd
  • 建立組 groupadd
  • 更改檔案所有權 chown
  • 更改組所有權 chgrp
  • 設定許可權 chmod
  • 許可權賦予 sudo

使用者管理

  • 新增使用者 useradd
  • 刪除使用者 userdel -r
  • 鎖定使用者 passwd -l
  • 使用者屬性 usermod
  • 當前使用者 id

當前登入使用者

執行w命令可以確定當前哪些使用者已登入系統

輸出資訊中各列含義:

  • USER欄位顯示當前登入系統的使用者名稱
  • TTY欄位顯示分配給使用者會話的終端。ttyX表示在控制檯登入,pts/X和ttypX表示網路連線
  • FROM欄位顯示遠端登入主機的IP地址
  • LOGIN@欄位顯示登入使用者的本地起始時間
  • IDLE欄位顯示最近一個程序執行開始算起的時間長度
  • JCPU欄位顯示在該控制檯或網路連線的全部程序所用的時間
  • PCPU欄位顯示WHAT欄中當前程序所使用的處理器時間
  • WHAT欄位顯示使用者正在執行的程序

埠開放情況

  • netstat -pan命令檢視當前開放的埠
  • lsof -i 顯示程序和埠對應關係

程序資訊

  • 使用命令ps -aux檢視程序

服務資訊

  • 用chkconfig --list檢視服務啟動資訊
  • 各服務的啟動指令碼存放在/etc/init.d/和/etc/xinetd.d目錄