Unix主机的系统安全_第1页
Unix主机的系统安全_第2页
Unix主机的系统安全_第3页
Unix主机的系统安全_第4页
Unix主机的系统安全_第5页
已阅读5页,还剩174页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Unix主機的系統安全主講人:陳培德丘偉權peder@.twchuen@.tw1大綱確保Unix-Like系統安全更新Redhat6.2的核心版本(RPM方式)密碼安全設定系統安全管理工具網路安全管理與總結2確保Unix-Like系統安全取消不必要的服務限制系統的出入保持最新的系統核心檢查登入密碼設定使用者帳號的安全等級消除駭客犯罪的溫床增強安全防護工具3限制超級使用者的權力追蹤駭客的蹤跡共同防禦,確保安全4取消不必要的服務早期的Unix版本中,每一個不同的網路服務都有一個服務程式在後台執行,後來的版本用統一的/etc/inetd伺服器程式擔此重任。取消不必要服務的第一步就是檢查/etc/inetd.conf檔案,在不要的服務前加上“#”號。5一般來說,除了http、smtp、telnet和ftp之外,其他服務都應該取消一些報告系統狀態的服務,如finger、efinger、systat和netstat等,雖然對系統查錯和尋找使用者非常有用,但也給駭客提供了方便之門。Inetd除了利用/etc/inetd.conf設定系統服務項之外,還利用/etc/services檔案找到各項服務所使用的連接埠。因此戶必須仔細檢查該檔案中各連接埠的設定,以免有安全上的漏洞。6在Linux中有兩種不同的服務型態:一種是僅在有需要時才執行的服務,如finger服務;另一種是一直在執行的永不停頓的服務。有些服務在系統啟動時就開始執行,因此不能靠修改inetd來停止其服務,而只能從修改/etc/rc.d/rc[n].d/檔案或用Runleveleditor去修改它。7提供檔案服務的NFS伺服器和提供NNTP新聞服務的news都屬於這類服務,如果沒有必要,最好取消這些服務。8限制系統的出入Unix作業系統均相同,一般會將密碼加密之後,存放在/etc/passwd檔案中。存檔的密碼已經經過加密,但一般使用者仍然可以利用現成的密碼破譯工具,以窮舉法猜測出密碼。比較安全的方法是設定/etc/shadow,只允許有特殊權限的使用者閱讀該檔案。9保持最新的系統核心系統安裝完成後,經常有更新的程式和系統補丁(patch)出現。因此,為了加強系統安全,一定要經常更新系統核心。早期的LinuxKernel版本存在許多眾所周知的安全漏洞,而且也不太穩定,只有2.0.x以上的版本才比較穩定和安全在設定Kernel的功能時,只選擇必要的功能,千萬不要所有功能照單全收,否則會使Kernel變得很大,既占用系統資源,也給駭客留下可乘之機。10檢查登入密碼設定登入密碼是一項非常重要的安全措施,如果使用者的密碼設定不合適,就很容易被破譯,尤其是擁有超級使用者(superuser)使用權限的使用者。使用者可以自己先執行密碼破解程式,找出容易被駭客破解的密碼,先行改正總比被駭客破解要有利。11設定使用者帳號的安全等級在Linux上每個帳號可以被賦予不同的權限,因此在建立一個新使用者ID時,系統管理員應該根據需要賦予該帳號不同的權限,並且歸並到不同的使用者群組中。在Linux系統上的tcpd中,可以設定允許上機和不允許上機人員的名單。其中,允許上機人員名單在/etc/hosts.allow中設定,不允許上機人員名單在/etc/hosts.deny中設定。12設定完成之后,需要重新啟動inetd程式才會生效。此外,Linux將自動把允許進入或不允許進入的結果記錄到/rar/log/secure檔案中,系統管理員可以據此查出可疑的進入記錄。每個帳號ID應該有專人負責。在企業中,如果負責某個ID的職員離職,管理員應立即從系統中解除該帳號。很多入侵事件都是借用了那些很久不用的帳號。13在給任何帳號賦予root權限之前,都必須仔細考慮。在RedHatLinux系統中,該檔案的初始值僅允許本地虛擬控制台(rtys)以root權限登入,而不允許遠端使用者以root權限登入。最好不要修改該檔案。如果一定要從遠端登入為root權限,最好是先以普通帳號登入,然后利用su命令昇級為超級使用者。14消除駭客犯罪的溫床在Unix系統中,有一系列r字頭的公用程式,它們是駭客用以入侵的武器,因此絕對不要將root帳號開放給這些公用程式。由於這些公用程式都是用.rhosts檔案或者hosts.equiv檔案核準進入的,因此一定要確保root帳號不包括在這些檔案之內。15增強安全防護工具SSH是安全套接層的簡稱,它是可以安全地用來取代rlogin、rsh和rcp等公用程式的一套程式群組。SSH採用公開密鑰技術對網路上兩台主機之間的通信資訊加密,並且用其密鑰充當身份驗證的工具。SSH將網路上的資訊加密,因此它可以用來安全地登入到遠端主機上,並且在兩台主機之間安全地轉送資訊。16限制超級使用者的權力有些程式的裝設和維護工作必須要求有超級使用者的權限,在這種情況下,可以利用其他工具讓這類使用者有部分超級使用者的權限。Sudo就是這樣的工具。Sudo程式允許一般使用者經過群組態設定后,以使用者自己的密碼再登入一次,取得超級使用者的權限,但只能執行有限的幾個指令。17Sudo不但限制了使用者的權限,而且還將每次使用sudo所執行的指令記錄下來,不管該指令的執行是成功還是失敗。在大型企業中,有時候有許多人同時管理Linux系統的各個不同部分,每個管理人員都有用sudo授權給某些使用者超級使用者權限的能力,從sudo的日誌中,可以追蹤到誰做了什麼以及改變了系統的哪些部分。18sudo並不能限制所有的使用者行為,尤其是當某些簡單的指令沒有設定限定時,就有可能被駭客濫用。例如,一般用來顯示檔案內容的/etc/cat指令,如果有了超級使用者的權限,駭客就可以用它修改或解除一些重要的檔案。19追蹤駭客的蹤跡網路管理人員要經常提高警惕,隨時注意各種可疑狀況,並且按時檢查各種系統日誌檔案,包括一般資訊日誌、網路連接日誌、檔案傳輸日誌以及使用者登入日誌等。在檢查這些日誌時,要注意是否有不合常理的時間記載。20正常使用者在半夜三更登入不正常的日誌記錄,比如日誌只記錄了一半就切斷了,或者整個日誌檔案被解除了使用者從陌生的網址進入系統因密碼錯誤或使用者帳號錯誤被擯棄在外的日誌記錄,尤其是那些一再連續嘗試進入失敗,但卻有一定模式的試錯法非法使用或不正當使用超級使用者權限su的指令;重新開機或重新啟動各項服務的記錄。21共同防禦,確保安全世界上沒有絕對密不透風、百分之百安全的電腦系統企業使用者還需要借助防火墻等其他安全工具,共同防禦駭客入侵,才能確保系統萬無一失。22更新Redhat6.2的核心版本(RPM方式)23保持軟體最新(最安全)的版本定期查看RedHatLinux的勘誤網頁:/support/errata/。勘誤網頁通常可以解決90%RedHatLinux的系統問題。而且,RedHat在得到安全漏洞的通知之後,如果已經找到解決方案了,就會在24小時之內,在勘誤網站上發佈出來。24更新Redhat6.2的核心版本(RPM方式)做一片緊急開機磁片(假如沒有做過)下載新版的核心InstallingtheKernel建立開機時要載入的ramdisk映像檔修改lilo.conf重新開機25做一片緊急開機磁片

(假如沒有做過)先查看/etc/lilo.conf的內容,依照你原本使用的核心版本,即預設映印象的image=/boot/vmlinuz-2.x.x.x設定,決定開機磁片的核心版本。#cat/etc/lilo.conf#mkbootdisk--device/dev/fd02.2.14-5.0smp利用做好的這一片磁片重開機,確定它是沒問題的26下載新版的核心kernel-2.2.16-22.i386.rpm

kernel-headers-2.4.0-0.26.i386.rpm

kernel-smp-2.2.16-22.i386.rpm(for雙CPU的kernel)

kernel-utils-2.2.16-22.i386.rpm註:您可以依機器CPU的等級,下載586或686的版本。27InstallingtheKernel#rpm-K--nogpgkernel-2.2.16-22.i386.rpmkernel-headers-2.4.0-0.26.i386.rpmkernel-smp-2.2.16-22.i386.rpmkernel-utils-2.2.16-22.i386.rpmkernel-2.2.16-22.i386.rpm:md5OK

kernel-headers-2.4.0-0.26.i386.rpm:md5OK

kernel-smp-2.2.16-22.i386.rpm:md5OK

kernel-utils-2.2.16-22.i386.rpm:md5OK28#rpm-Uvhkernel-2.2.16-22.i386.rpmkernel-headers-2.4.0-0.26.i386.rpmkernel-smp-2.2.16-22.i386.rpmkernel-utils-2.2.16-22.i386.rpm29建立開機時要載入的ramdisk映像檔#ls-l/boot/vmlinuz*使用下列的命令來建立#mkinitrd/boot/initrd-2.2.16-22.img2.2.16-22#mkinitrd/boot/initrd-2.2.16-22smp.img2.2.16-22smp30修改lilo.conf修改/etc/lilo.conf將lilo設定的變更寫入開機磁區#lilo–v31重新開機重新開機前,記得確認一下之前的步驟都做對了要是真的開不了機,請利用緊急開機磁片開機,重新設定。32密碼安全設定33密碼設定設定root帳號的logintimeout時間修改"/etc/inetd.conf"檔案TCP_WRAPPERS"/etc/aliases"檔案“/etc/host.conf”檔案"/etc/services"檔案"/etc/securetty"檔案特殊的帳號防止任何人都可以su成為root34密碼安全BIOS安全,設定開機密碼密碼至少要有6個字元,最好包含一個以上的數位或特殊字元。密碼不能用自己的名字,電話號碼、生日、職業或者其他個人資訊作為密碼。密碼必須是有有效期的,在一段時間之後就要更換密碼。如果發現有人試圖猜測你的密碼,而且已經試過很多次了,則密碼必須作廢或者重新設定35某主機被破解之弱通行碼之種類統計圖36密碼長度編輯"/etc/login.defs"檔案,把最小密碼長度由5改成8。找到PASS_MIN_LEN5這一行,改為:PASS_MIN_LEN8。"login.defs"是很重要的設定檔。可以在這個檔案中設定一些其他的安全策略,比如:密碼的有效期。37設定root帳號的logintimeout時間編輯"/etc/profile"檔案,找到HISTSIZE=XXXX這行,並在下面加入TMOUT=1800這個參數是用來設定root帳號的logintimeout時間,其以秒為單位,如1800便是表示30分。38修改"/etc/inetd.conf"檔案inetd,也叫作"superdemon",它會根據網路上來的請求載入相對應的網路服務程式第一件要做的事就是了解一下伺服器到底要提供哪些服務。不需要的那些服務應該被停掉,最好將該服務的程式移除查看"/etc/inetd.conf"檔案,瞭解一下inetd提供哪些服務。用加上注釋的方法(在一行的開頭加上#號),停止任何不需要的服務,再送給inetd程序一個SIGHUP信號(即重新啟動inetd)。39把檔案的權限改成600#chmod600/etc/inetd.conf確定檔案的所有者是root#stat/etc/inetd.confFile:"/etc/inetd.conf"

Size:3027Filetype:RegularFile

Mode:(0600/-rw)Uid:(0/root)Gid:(0/root)

Device:8,10Inode:26596Links:1

Access:FriNov1711:08:062000(00000.00:33:37)

Modify:MonNov1311:43:282000(00003.23:58:15)

Change:FriNov1711:40:342000(00000.00:01:09)40編輯“inetd.conf”檔案(vi/etc/inetd.conf),停止所有不需要的服務ftpstreamtcpnowaitroot/usr/sbin/ftpdtelnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetdpop-3streamtcpnowaitroot/usr/sbin/tcpdipop3d修改“inetd.conf”檔案之後,還必須重新啟動inetd程序#killall-HUPinetd或#/etc/rc.d/init.d/inetdrestart41為了保證"inetd.conf"檔案的安全,可以用chattr命令把它設成不可改變。#chattr+i/etc/inetd.conf一個有"i"屬性的檔案是不能被改動的:不能刪除或重命名,不能建立這個檔案的鏈結,不能往這個檔案裏寫資料。只有系統管理員才能設置和清除這個屬性。如果要改變inetd.conf檔案#chattr-i/etc/inetd.conf42XinetdXinetd比inetd安全且有效率的有下列的優點ProvideaccesscontrolmechanismsPreventdenialofserviceattacksExtensiveloggingabilitiesOffloadservicestoaremotehostMakeservicesavailablebasedontimeLimitsonthenumberofserversthatcanbestartedIPv6supportUserinteractio你可以在/

找到更多的資訊。43"/etc/aliases"檔案編輯aliases檔案(vi/etc/aliases),刪除或注釋掉下面這些#games:root

#ingres:root

#system:root

#toor:root

#uucp:root

#manager:root

#dumper:root

#operator:root

#decode:root

#root:marc44"/etc/host.conf"檔案編輯"host.conf"檔案(vi/etc/host.conf)加入下面這些行:#LookupnamesviaDNSfirstthenfallbackto/etc/hosts.

orderbind,hosts

#WehavemachineswithmultipleIPaddresses.

multion

#CheckforIPaddressspoofing.

nospoofon45"/etc/services"檔案#chattr+i/etc/services46"/etc/securetty"檔案注釋掉(在這一行的開頭加上#號)所有你想不讓root登錄的tty設備。

編輯securetty檔案(vi/etc/securetty)像下面一樣,注釋掉一些行:#tty1

#tty2

#tty3

tty4

#tty5

#tty6

#tty7

#tty847上面這樣做的意思是只允許root在tty4上登錄。建議只允許root在一個tty設備上登錄,如果從其他tty上登錄,用"su"命令把身份轉成"root"。48特殊的帳號系統中常會提供一些你可能不需要的預置帳號。如果確實不需要這些帳號,就把它們刪掉。系統中有越多的帳號,就越容易受到攻擊。刪除一些不必要的用戶#userdeladm(lp、sync、shutdown、halt、news、uucp、operator、gopher、ftp(如果沒安裝匿名ftp伺服器,可以刪除這個用戶)、games(如果不用XWindow伺服器,可以刪除這個用戶))49刪除一些不必要的群組#groupdeladm(lp、news、uucp、dip、pppusers、slipusers、popusers(如果不用pop伺服器,可以刪除這個群組)、games(如果不用XWindow伺服器,可以刪除這個群組))50替密碼檔案和群組設定檔設置不可改變屬性,防止有些人建立這個檔案的符號連接]#chattr+i/etc/passw]#chattr+i/etc/shadow]#chattr+i/etc/group]#chattr+i/etc/gshadow如果將來要在密碼或群組設定檔中增加或刪除用戶,就必須先拿掉這些檔案的不可改變屬性,否則就不能做任何改變。51防止任何人都可以su成為root編輯su文件(vi/etc/pam.d/su)在文件的頭部加入下面兩行:authsufficient/lib/security/pam_rootok.sodebug

authrequired/lib/security/pam_wheel.sogroup=wheel52加入這兩行之後,“/etc/pam.d/su”文件變成#%PAM-1.0

authsufficient/lib/security/pam_rootok.sodebug

authrequired/lib/security/pam_wheel.sogroup=wheel

authrequired/lib/security/pam_pwdb.soshadownullok

accountrequired/lib/security/pam_pwdb.so

passwordrequired/lib/security/pam_cracklib.so

passwordrequired/lib/security/pam_pwdb.soshadowuse_authtoknullok

sessionrequired/lib/security/pam_pwdb.so

sessionoptional/lib/security/pam_xauth.so53這兩行的意思是只有"wheel"群組的成員才能用su命令成為root。注意,"wheel"群組是系統中用於這個目的的特殊帳號。不能用別的群組名。54"/etc/pam.d/su"配置文件中定義了"wheel"群組#usermod-G10admin“G”是表示用戶所在的其他群組“10”是“wheel”群組的ID值“admin”是加到“wheel”群組的用戶用同樣的命令可以讓其他的用戶可以用su命令成為root55系統安全管理工具Nmap CrackNessusCgichkTripwireSAINTSnort56Nmap簡介57Nmap功能:尋找特定主機或特定網域所開啟的服務以及通訊埠,另外還可以猜測遠端主機作業系統型態,序號猜測、秘密掃描等。作者:Fyodor來源:/nmap

58操作平台:UNIX、Linux、FreeBSD原理:利用TCP/IPfingerprint原理,來找出系統之各類開啟通訊埠及作業系統等資訊。59安裝及操作

下載nmap.tar檔案後,先以un-tar將檔案解壓至nmap-2.12/目錄下;若要安裝,則執行configure與make指令即可。 $

./configure $make60使用Nmap的命令列指令$nmap[掃瞄型態][參數]<主機#1主機#2…[主機#N]>61常用的nmap命令列的參數選項-f 在掃瞄過程中,傳送小片段的封包。-F 以此參數指定快速掃瞄在/etc/services下的標準裝置-o[輸出檔案] 使用此參數以指定輸出檔案(預設為螢幕輸出)-O 使用此參數可以猜測目標主機的作業系統版本62-p 指定掃瞄的通訊埠,可以指定一區間範圍(如:[1-1024])或用逗點隔開不同的通訊埠(如:[23,25,80])-P0

關閉主機的ping-PB以此參數強迫TCP與ICMP同時進行掃瞄-PI

以此參數指定ICMP的ping-PT[通訊埠]以此參數指定TCP的ping63-sU使用此參數指定UDP通訊埠掃瞄-sF

使用此參數,可以執行秘密FINS的掃瞄;可以用此來掃瞄主機後面的防火牆,以躲避如synlogger之類的偵測-sS使用此參數,可以進行秘密通訊埠的掃瞄-sT使用此參數以指定TCPconnect()通訊埠掃瞄64nmap指令nmap-sP/24ICMP_REQUEST<=>ICMP_ECHOnmap-sP-PT80/24TCP_SYN<=>TCP_ACKorTCP_RST專門掃80port(一般是跑htttp/web服務)65nmap-sT

針對單機的掃描nmap-sS

一般TCP協定是由TCP_SYN,TCP_ACK,TCP_ACK2,TCP_ACK3直到TCP_RST出現才算完成的當我們送完TCP_SYN給對方,對方又回傳TCP_ACK時,我們就可以知道這個port有開啟,否則的話對方回傳的會是TCP_RST,表示這個port沒有開啟66nmap-sF

stealthFIN在封包上加了FINflagnmap-sX

Xmastree在封包上加了

FINnmap-sN

NULLpacket在封包上就完全沒設flagnmap-sU

使用UDP掃描的指令67nmap-sS-O確定對方OS型號及版本OS因為在implement時也會有針對一些網路協定上面沒定義的部份而有"特色",更有一些OS連implement的協定都跟別人差一大截(Microsoft),所以我們只要搜集足夠的OSfingerprint就可以他回傳的封包判定對方身份了68其他指令"-PT"選項,這是搭配pingscan加上TCPscan主機或網域的時候使用.有些主機擋住ICMP和TCP掃描時,會造成nmap無法使用的情況發生,這時候就可以用“-P0”取消nmap一開始的TCP掃描和ICMP_ECHO測試動作.69"-v"打開詳細程序描述可以讓你知道nmap做了些什麼動作,而不用只是呆等結果出現."-p"可以指定多個ports,讓你同時掃描特定ports,集中火力可同時掃描port21/23/53/80並判定OS型態:nmap-sS-p21,23,53,80-O-v70Crack簡介71Crack功能:一種設計用來快速猜測安全性不佳的UNIX密碼檔案(如:passwd),藉由與密碼檔案的內容一一比對,進行密碼猜測的程式。作者:AlecMuffett來源:http://www.users.dircon.co.uk/~crypto/index.html

72操作平台:UNIX、Linux、FreeBSD原理:運用標準的猜測技巧,以尋找標準UNIX8字元DES加密密碼的免費程式。攻擊者使用字典檔(一些常見的單字片語或常用以當密碼的字元),然後使用DES進行加密。當攻擊者使用Crack產生加密文字時,Crack程式便會和所指定的passwd.txt(或其它指定的密碼檔)中的加密文字進行比對。如果比對結果相同,則代表密碼已被破解。73Crack安裝必須擁有root的權限才能執行Crack./Crack–makeonly進行Crack的編譯Crack–makedict進行字典的編譯Crack[filename](Crack[options][-fmtformat][file...])利用字典攻擊法破解密碼檔利用Crack的基本原則組合(c50a/conf/rules.basic或run/bin/ARCHITECTURE/kickdict-list)74一般Crack命令列的參數選項-debug 提供一些統計資訊及即時的進度報告。-fgnd 在前景執行Crack,可以直接看到進度。(Crack預設是以背景方式執行)-fromN 可以從指定的原則號碼(N)開始執行。-mail 可以強迫Crack以電子郵件通知使用者密碼已經被破解了。-network 以網路的方式執行Crack,可一次使用多台電腦破密。-recover 重新啟動一個不正常中斷的Crack程序時,會直接使用那些已建立的函式庫。757677一般Crack原則append:$X 字元X會加到目前這個字的開 頭capitalise:c 將第一個字母轉換為大寫dfirst:[ 刪除這個字的第一個字母dlast:] 刪除這個字的最後一個字母duplicate:d

拼寫目前的字兩次,然後加以混 合lowercase:l 將目前的字轉換為小寫78一般Crack原則ncaptial:C

將目前第一個字轉換為小寫,其 他的字母轉換為大寫pluralise:p

將目前的字轉換成複數型態reflect:f 按照順向拼寫目前的字,然後再 逆向拼寫一次,然後再加以混合resverse:r

反向拼寫目前的字togcase:t

大小寫互換uppercase:u 將目前的字轉換為大寫79進度與結果/c50a/run可看到目前的進度,以及Crack目前所採的規則80./Reporter(./Reporter[-quiet][-html])檢視結果81新增字典目前所使用的字典在c50a/conf/dictgrp.conf檔中新增字典檔輸入的格式為priority:directoryEx:1:/usr/dict/*word*被賦予最高的優先性,詞彙清單在/usr/dict/目錄中,包含word字母的任何檔案82Nessus簡介83Nessus功能:掃描偵測系統的漏洞資訊,並提供詳盡之統計分析,包括漏洞數目統計、嚴重性等。此外,Nesssus也針對掃描結果,提供安全建議及修補資訊等。作者:RenaudDeraison來源:/操作平台:Server:POSIX系統(包括Solaris,FreeBSD,GNU/Linux等等)。Client:有三種選擇,分別是:GTK、Java、Windows。84原理:送出各種類型之網路封包或攻擊指令,以測試目標系統之回應,並從回應之訊息來判斷各項系統漏洞及其他資訊。組成部份:Nessus由兩部份組成:server和client。Server(nessusd)是真正執行攻擊測試的部份;而client則是前端介面以作為收集測試結果之用。目前,server只可在POSIX系統(包括Solaris,FreeBSD,GNU/Linux等等)下執行。Client則有三種選擇,分別是:GTK、Java、Windows。Nessus(cont.)85I.安裝安裝Nessus需要以下四個檔案:nessus-libraries-x.x.tar.gzlibnasl-x.x.tar.gznessus-core.x.x.tar.gznessus-plugins.x.x.tar.gz(註:x表示版本,以下說明皆以此表示。)86在安裝NessusSecurityScanner前,一般也需要先安裝以下Nessus相依之軟體:GTK-TheGimpToolkit,version1.2(POSIXClient需要)。(/pub/gtk/v1.2)Nmap(/nmap/)m4(optional-ifyoudonothaveagmplibraryinstalledalready).Youwillneedm4ifyoursystemdoesnotcomewithapre-installedlibgmp.Youcangetitat/pub/gnu/m4.I.安裝(cont.)87WindowsClient則需要安裝以下Client程式:WinNessus:winnessus-x.x.x.zip(外觀較像GTK介面,支援cipherlayer)或NessusW:NessusW-xxxxxx.zip(外觀較像Win32介面,不支援cipherlayer)JAVAClient所需要之Client程式為:NessusJ:NessusJ-x.tar.gzI.安裝(cont.)88將上述四個主要檔案一一解開。tarzxvffilename (filename就是上述的檔案名字)I.安裝(cont.)89安裝nessus-libraries,步驟如下:cdnessus-libraries./configuremakemakeinstallI.安裝(cont.)90安裝libnasl,步驟如下:cdlibnasl./configuremakemakeinstallI.安裝(cont.)91重覆上述步驟,安裝nessus-core和nessus-plugins。(註:如果不想安裝GTK或系統沒有X11,在編譯nessus-core時,可用以下方式編譯成command-lineclient:./configure--disable-gtk)I.安裝(cont.)92II.執行nessusd

首次執行nessusd時,將產生其設定檔和公/私鑰對:Nessusd

建立帳號nessusd–Pusername,password(註:username和password之間的逗號皆沒有空格)93設定nessusdaemon可以修改/usr/local/etc/nessus/nessusd.conf來設定各個nessusd的選項。(一般使用原來的標準設定即可)開始執行nessusdnessusd–DII.執行nessusd

(cont.)94III.設定與執行client端

開啟nessusnessus95NessusdhostNessusdhost:輸入剛才啟動nessusd之主機位址。Port:Nessusd聆聽的port。Encryption:加密方式。Login:輸入登入之帳號,然後按下Login按鈕,輸入登入之password。III.設定與執行client端(cont.)

9697Plugins上半部的視窗是Nessus掃描的種類。下半部的視窗將列出該種類的細項。要選擇掃描哪一項只要點選小方塊即可。“Enableall”會選取所有之Plugin“Enableallbutdangerousplugins”會選取所有之Plugin除了DenailofService的攻擊“Disableall”則不選任何Plugin。此外,點選plugin的名稱,會出現一個小視窗解釋該plugin之功能。III.設定與執行client端(cont.)

9899Pref.(Preferences)Pingtheremotehost:如果要ping遠端主機,則可在此設定用ICMP或TCPping,也可以兩者皆選。若選了TCPping,也可以設定其sourceport和destinationport及重新嘗試(retries)的次數。Nmap:若要選用Nmap作掃描,則可以選擇使用想用的TCP掃描技術。III.設定與執行client端(cont.)

100101FTPbouncescan,SMBlogin,AnonymousFTPenabled,Defaultaccounts,ipop2dbufferoverflows,FTPwritabledirectories,uw-imapbufferoverflowafterlogon:這些設定是一些安全檢查plugins所需要的額外設定,例如測試FTP目錄是否可寫入,則要額外設定是相信權限或真的嘗試去存入一個檔案。其他的包括設定登入的預設帳號及通行碼等等。III.設定與執行client端(cont.)

102103ScanoptionPortrange:選擇欲掃描之port範圍,如1-1500表示掃描心port1到port1500、-1則表示不做port掃描。Maxthreads:可以同時開啟幾個thread作掃描,如設為5,則表示每一次可以同時掃描5台主機。PathtotheCGIs:設定掃描CGI程式之路徑。III.設定與執行client端(cont.)

104DoareverselookupontheIPbeforetestingit:這個設定會在測試前先做IP反查動作,可依測試需要而決定是否要設定。Optimizethetest:這項設定將最佳化測試,一般都設定。Portscanner:這個視窗條列了好幾個portscan的方式,可以選擇其一來做port掃描。III.設定與執行client端(cont.)

105106TargetselectionTarget(s):在這裏需要輸入欲測試之目標。這個目標可以是:單一主機(可以用IP如0或主機名稱如來設定)一個subnet之所有主機(如/24)一些主機(各主機以逗號(,)分開,如0,)此外,若已將各目標主機位址編輯成一個檔案後,也可以點選“Readfile…”按鈕,直接選取該檔案。這時檔案內之各主機都被設成欲測試之目標。如果要做DNS區域轉換則點選“PerformaDNSzonetransfer”。III.設定與執行client端(cont.)

107108User上半部的Keymanagement可以管理key,包括更改passphrase和刪除key。下半部的rules主要是設定以便對測試範圍作一些限制。譬如,要測試除了7之外,位於/24整個subnet之主機,可以在“Rules:”欄裏輸入reject7,然後按下“Addrule”按鈕,這個rule就會加到如圖中之方框裏了。其實,如果在之前的“Targetselection”已設定好,一般是不需要再設定rule了。III.設定與執行client端(cont.)

109110Credits這裏是Nessus版本及各作者資訊,沒有任何設定。

III.設定與執行client端(cont.)

111112Startthescan當所有選項都設定好之後就可以按下左下角之“Startthescan”按鈕,這時候會看到類似以上之畫面。左邊顯示目標主機位址,中間是目前正在進行之掃描攻擊之狀況,上圖顯示Portscan已經做完,目前正在做攻擊測試,其檢查之安全項目(Securitycheck)為“PlusMailvulnerability”。如果要終止這個目標之測試,則按下“Stop”按鈕即可。底下“Stopthewholetest”按鈕用來終止所有測試(如一次開啟好幾個測試,欲終止時即可按下這個按鈕)。III.設定與執行client端(cont.)

1130114測試結果報告在測試完畢後將會有一個報告,其畫面如上所示。左邊的視窗列出測試摘要,包括:測試的主機數(Numberofhoststested:1)、找到安全漏洞總數(Found0securityholes)找到安全警告總數(Found7securitywarnings)找到安全提示總數(Found5securitynotes)。III.設定與執行client端(cont.)

115欲看測試主機之測試報告,可以點選左下方測試主機之位址,其測試結果列於右邊的視窗。若要報告以port排列,則點選下面“Sortbyport”按鈕。這個報告包括一般描述、建議、風險因數、解決方法及CVE編號。III.設定與執行client端(cont.)

116Nessus提供了幾種儲存報告的格式。“SaveasNSR”(為預設之儲存格式)“SaveasHTML”“SaveasLaTex”“SaveasASCIItext”“SaveasHTMLwithPiesandGraphs”選好了儲存格式後,就可以按下第二個按鈕“Saveas…”,然後選擇欲儲存之目錄,再輸入欲儲存之檔名,確定後就可以儲存下來了。最後,欲離開結果報告,按下下面第四個按鈕“Close”即可。III.設定與執行client端(cont.)

1170118開啟報告按下“Loadreport”按鈕(參考2.Nessusdhost之圖),然後選擇欲開啟之.nsr檔,確定後即可開啟。(其他儲存格式之報告需用其相關軟體開啟-HTML以瀏覽器開啟、ASCIItext以任何一種文件編輯器開啟、LaTex以瀏覽LaTex文件之軟體開啟。)離開Nessusclient按下“Quit”按鈕即可(參考2.Nessusdhost之圖)。

III.設定與執行client端(cont.)

119IV.UpdatePlugins有兩種方法可以新增plugins:自動安裝:以root權限執行指令nessus-update-plugins手動安裝:從網路上下載plugins(/scripts.html)把plugins複製到/usr/local/lib/nessus/plugins/(或在nessusd.conf指定之plugins目錄)重新啟動nessusd

(kill-1`cat/usr/local/var/nessus/nessusd.pid`)120Cgichk簡介121cgichk功能:掃描偵測有漏洞之CGI程式。作者:TobyDeshane來源:/projects/cgichk/安裝:tarzxvfcgichk_2.60.tar.gzcdcgichkmake122./cgichkhost[-dqVwh-ooutput]-pnpausesnsecondsbetweenhttprequests-qsilencesalertbeeping-wretrieveswhois(com/net/org)informationontarget-odumpsdatatofile(requiresfilenameargument)-hhelp-ddebugginginfo(showsresultsfor!404items)-Vversionnumberandcompiledate-fturnsONcheckingforFrontPageexplotables-Wspecifyalternatewhoisserver-Cspecifyalternateconfigfilecgichk(cont.)123Tripwire簡介124Tripwire功能:檔案完整性檢查。來源:http:/操作流程:(下圖)125126取得軟體編譯好的版本可至

取得,上面有提供redhat6.2與readhat7.0的RPM版本下載tripwire-2.3-47.i386.tar.gz

127安裝Tripwire用root,使用下列命令安裝tarzxvftripwire-2.3-47.i386.tar.gzrpm-ivhtripwire-2.3-47.i386.rpm在使用RPM安裝後,再來需要執行/etc/tripwire/twinstall.sh來完成tripwire的安裝。執行此script時,其會詢問sitekeyfilepassphrase與localkeyfilepassphrase,並用兩個key來signpolicy與設定檔,避免入侵者改變tripwire的安裝設定,所以強烈建議您取個好的密碼。128sitekey被用來signtripwire的policy檔,sign玩後檔名通常是tw.pol;localkey被用來signtripwire的設定檔,sign玩後檔名通常是tw.cfgTripwire的相關檔案都放置在/etc/tripwire目錄下。

安裝Tripwire(cont.)129自定policyfile由於tripwire安裝時是使用預設的policy,其中可能會因個人Linux系統的不同,而不能完全適用。所以需要自行修改policy,來滿足個人的需求。tripwire己經在/etc/tripwire/twpol.txt內有存放一個純文字的policy檔,所以依這個檔案來修改。其中$(SIG_HI)或$(SEC_BIN)為預設的自定propertymask,在此檔開始前面@@sectionFS就可找到。

130初始tripwire資料庫/usr/sbin/twadmin-mPetc/tripwire/twpol.txt/usr/sbin/tripwire-mi

131精簡policyfile使用下列命列,找出policyfile中有定義,但這台機器卻沒有此檔案或目錄的rule,將它重policyfile中去除。/usr/sbin/tripwire-mc|grepFilename>>twnotfound.txt

當編輯完policyfile後,需要重新安裝policy,並重建Database,使用下列命令:/usr/sbin/twadmin-mP/etc/tripwire/twpol.txt/usr/sbin/tripwire-mi

132移除純文字的policy與設定檔由於tripwire己經利用key將policy與設定檔加密成tw.pol,tw.cfg了,所以原始的policy與設定檔便可移除了。rm/etc/tripwire/twpol.txtrm/etc/tripwire/twcfg.txt

133排程執行tripwire分析(每小時一次)在/etc/cron.hourly/

下新增一個可執行的script,內容如下:

#!/bin/sh/usr/sbin/tripwire-mc|mail-s"TripwireReportfrom{some_host}"root@localhost

134資料庫更新若系統有安裝或修改檔案,需要更新tripwire的資料庫,不然會一直收到警告的信。使用下面命令:/usr/sbin/tripwire-mu-r/var/lib/tripwire/report/{最後時間}.twr之後會進入vi編輯報表,Tripwire的報表會在每一個違反策略檔案中所定義的規則的地方加上一個選擇框。可保留選擇框中的“x”,表示接受這個變化。如果把選擇框中的“x”移掉,表示資料庫不會更新這個變化。等結束編輯器並輸入本地的passphrase(密碼)之後,Tripwire就會更新並存檔資料庫。

135更新policy檔先將現有的policy內容匯出成純文字檔:/usr/sbin/twadmin-mp>/etc/tripwire/twpol.txt再修改/etc/tripwire/twpol.txt,修改玩再更新回去。/usr/sbin/tripwire-mp/etc/tripwire/twpol.txt更新回去後,再執行一次完整性檢查,看看policy是不是想要的。/usr/sbin/tripwire-mc記得還要刪除/etc/tripwire/twpol.txt136更新設定檔取出現有的設定內容匯出成純文字檔:twadmin-mf>twcfg.txt修改twcfg.txt,再更新回去:twadmin-mF--site-keyfile/etc/tripwire/site.keytwcfg.txt

刪除twcfg.txt

137SAINT簡介138SAINT功能:掃描偵測系統漏洞。來源:/saint/index.html139下載檔案下載SAINT的RPMRedHat6.2以前請下載3.1.3-2.i386.rpmRedHat7.0以後請下載3.1.5-2.i386.rpm下載最新的nmap(nmap-2.53-1.i386.rpm)

SAINT可與nmap做結合進而使用nmap各項功能140安裝安裝nmaprpm-ivhnmap-2.53-1.i386.rpm安裝SAINTrpm-ivhsaint3.1.3-2.i386.rpm

141啟動在Xwindow的一個terminal下,執行saint,就會啟動預設之瀏覽器作為saint之掃描設定與控制介面,使用者可由此,設定欲掃描之主機範圍及掃描層度。142Snort簡介143snort功能:入侵偵測。來源:144下載所需檔案安裝snort需要用到libpcap,此安裝說明使用的版本是:snort-1.7.tar.gzlibpcap.tar.Z(ftp://ftp./libpcap.tar.Z)145安裝先將libpcap裝起來:tarzxvflibpcap.tar.Z(將libpcap.tar.Z解壓縮)cdlibpcap-0.4(到libpcap目錄下)cpMakefile.inMakefile

./configuremakemakeinstallmakeinstall-incl(某些情況下,若發生error,你可能必須自己建目錄)makeinstall-manmakeclean

146安裝snort:tarzxvfsnort-1.7.tar.gzcdsnort-1.7./configuremakemakeinstallmakeclean

安裝(cont.)147建立snort之log目錄mkdir/var/log/snortchmod700/var/log/snort在snort目錄下有一個snort.conf檔,這是snort的主要設定檔。您可以在此設定本身所在之受保護網路區段:varHOME_NET/24其他的設定可依需要而決定,一般利用預設的就可以操作了。安裝(cont.)148啟動簡單的啟動方法是:snort–Afull–D–c/path/snort.conf

(-A:

設定Alertmode) (-D:以daemon方式啟動)

(-c:

指定設定檔)

149讀取snort之log檔在預設中,snort將alert檔存在/var/log/snort/alert中。如:[**]Traceroute[**]11/21-12:17:00.20962419:42342->55:42342UDPTTL:1TOS:0x0ID:10726DFLen:84150Snort也有portscanpreprocessor會將偵測到之portscans存在alert中,如:[**]spp_portscan:PORTSCANDETECTEDfrom00(THRESHOLD4connectionsexceededin0seconds)[**]11/22-10:17:11.935897[**]spp_portscan:portscanstatusfrom00:25connectionsacross1hosts:TCP(25),UDP(0)[**]11/22-10:17:15.059373[**]spp_portscan:Endofportscanfrom00:TOTALtime(0s)hosts(1)TCP(25)UDP(0)[**]11/22-10:17:19.393349讀取snort之log檔(cont.)151此外更詳細之portscan之log會存到portscan.log,如:Nov2210:17:1100:34017->16:24SYN**S*****Nov2210:17:1100:34018->16:8SYN**S*****Nov2210:17:1100:34019->16:22SYN**S*****Nov2210:17:1100:34020->16:11SYN**S*****Nov2210:17:1100:34021->16:21SYN**S*****Nov2210:17:1100:34022->16:17SYN**S*****

讀取snort之log檔(cont.)152網路安全管理與總結153檢查系統是否遭入侵ExaminelogfilesLookforsetuidandsetgidFilesChecksystembinariesCheckforpacketsniffersExaminefilesrunby'cron'and'at'.CheckforunauthorizedservicesExamine/etc/passwdfileChecksystemandnetworkconfigurationLookeverywhereforunusualorhiddenfilesExamineallmachinesonthelocalnetwork154ExamineLogFiles檢查logfile裏是否有不正常之連線記錄或不正常之活動。messagesxferlogutmpwhowtmplast155Lookforsetuidandsetgidfiles利用find

指令列出setuid及setgid檔案。Eg.,find/\(-perm-004000-o-perm-002000\)-typef-print

156CheckSystemBinaries比較系統上使用之版本和已知好的版本(如程式原下載處)是否一樣。Eg.,tripwire157Checkforpacketsniffers

利用ifconfig指令檢查網路介面是否開啟於promiscuousmode。一些sniffer之logfile其容量會增加很快,因此可以用df指令檢查檔案系統使用率是否大於所預期的。158ExamineAlltheFilesthatareRunby'cron'and'at'入侵者可能會在被‘cron’或‘at’執行之檔案留下後門,以便下次可以重回系統。此外,也要確定被‘cron’或‘

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论