• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 網管們的賬號怎么樣才安全

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    本文不是講 網絡安全 的文章,但是也不需要讀者有網絡安全方面的專業知識。本文注重于你的linux 服務器 創建好之后的安全問題,服務器的創建過程相信你通過參考其他文章能夠配置成功,但是光是能夠運行是不夠的,因為這時的服務器存在著安全隱患,很容易被入

    本文不是講網絡安全的文章,但是也不需要讀者有網絡安全方面的專業知識。本文注重于你的linux服務器創建好之后的安全問題,服務器的創建過程相信你通過參考其他文章能夠配置成功,但是光是能夠運行是不夠的,因為這時的服務器存在著安全隱患,很容易被入侵,如果是個人的服務器,那到無所謂,但是如果是一個企業或單位,那么損失可能會大大超過忽略安全而節省出來的費用。

    也許有的系統管理員在配置好服務器之后,運行良好,就轉而研究新的東西,這不是個好習慣。舉一個例子,有很多人裝好的linux,如果你用端口掃描器掃描的話,會發現許多危險的端口都打開著,例如一臺不是mail服務器的機器開著pop3端口,另外還開著finger端口,netstat端口等等,系統管理員卻一點意識都沒有。一個基本的黑客可以用現成的軟件攻破這臺主機,并獲得root。

    但是作為網絡服務器,應用是第一位的,如果限制應用來保證安全,那就會失去大量的用戶,所以建立合理的安全策略是非常重要的。一個好的安全策略應該在客戶需求分析的基礎上,由經理、工程師、系統管理員共同策劃。然后在此基礎上,決定投入多少的安全資金。一般說來,Q;9750406用戶越多,安全級別就越低,投入的安全資金就越多。好了,上面說的似乎太抽象了,我想讀者還是想知道具體的東西吧。

    帳號安全

    我們知道,帳號在linux里面是最基本的,也是最重要的,如果你的帳號被人知道了密碼,他就可以登錄到你的linux主機,進行一些破壞活動,最危險的是root泄露,那么你的計算機就不是由你自己來控制了。

    口令的選擇是非常重要的,一些常用的、容易被猜到的口令會給系統帶來不安全的因素,所以口令的選擇有如下基本規定:

    選擇一個至少6個字符長度的口令
    口令中應該帶數字或特殊字符
    容易記憶,不要寫在紙上
    能夠迅速輸入,使偷看的人不容易認出
    口令最好不要由單詞或名字組成
    在linux中,口令文件在/etc/passwd中,早期的這個文件直接存放加密后的密碼,前兩位是"鹽"值,是一個隨機數,后面跟的是加密的密碼。為了安全,現在的linux都提供了
    /etc/shadow這個影子文件,密碼放在這個文件里面,并且是只有root可讀的。

    Linux口令加密機制源于DES,通常使用56位密鑰加密的64位的文本塊。傳統的crypt()函數把用戶口令填充到8個字符,并用每個字符的7位形成一個56位的DES
    key。該Key被用來對64位的零塊(00000000)進行加密。加密結果再次用該key加密,重復25次。最終結果是一個11位的字符串,寫到/etc/passwd或/etc/shadow中。為了使基于DES的加密能夠更有效的抵御字典攻擊,增加了"鹽"值,在0~4095之間,用來攪亂DES算法,使得同樣的明文因"鹽"的不同而密文不同。

    上面的可能比較專業,看不懂也沒有關系,下面來分析一下/etc/passwd文件,他的每個條目有7個域,分別是名字:密碼:用戶id:組id:用戶信息:主目錄:shell
    例如:ynguo:x:509:510::/home/ynguo:/bin/bash

    在利用了shadow文件的情況下,密碼用一個x表示,普通用戶看不到任何密碼信息。如果你仔細的看看這個文件,會發現一些奇怪的用戶名,她們是系統的缺省賬號,缺省賬號是攻擊者入侵的常用入口,因此一定要熟悉缺省賬號,特別要注意密碼域是否為空。下面簡單介紹一下這些缺省賬號

    adm擁有賬號文件,起始目錄/var/adm通常包括日志文件
    bin擁有用戶命令的可執行文件
    daemon用來執行系統守護進程
    games用來玩游戲
    halt用來執行halt命令
    lp擁有打印機后臺打印文件
    mail擁有與郵件相關的進程和文件
    news擁有與usenet相關的進程和文件
    nobody被NFS(網絡文件系統)使用
    shutdown執行shutdown命令
    sync執行sync命令
    uucp擁有uucp工具和文件

    系統最好不要提供guest賬號,如果必須提供,口令應該天天變化,并且這個用戶的shell應該用rsh。不常用的賬號是侵入者的最佳目標,有大量用戶成員的系統必然存在賬號變動,當有用戶離開,有組織的刪除他們的賬號很重要。用userdel命令可以刪除賬號,另外,禁用賬號最快的方法是在/etc/passwd中或影子文件中在用戶的加密口令的開始加一個*,該用戶就不能再次登錄。


    Root在unix中是最最重要,應該盡可能的保護,下面的規則必須注意:

    除非必要,避免用root登錄
    如果必須用root,首先用自己的普通賬號登錄,然后使用/bin/su-成為root
    rootshell用完必須關掉
    root不能隨意讓人知道
    永遠不要將當前目錄(.)放在root的搜索路徑中。不要把普通用戶的/bin目錄放在root的搜索路徑中。
    調用su時一定要寫上全路徑/bin/su-,否則被特洛伊木馬搞一把就慘了
    永遠不要以root運行其他用戶的或不熟悉的程序

    傳統上,/etc/passwd文件在很大范圍內是可讀的,因為許多應用程序需要用他來把UID轉換為用戶名。例如,如果不能訪問/etc/passwd,那么ls
    -l命令將顯示UID而不是用戶名。但是使用口令猜測程序,具有加密口令的可讀/etc/passwd文件有巨大的安全危險。所以出現了影子文件/etc/shadow。


    影子口令系統把口令文件分成兩部分:/etc/passwd和/etc/shadow。影子口令文件保存加密的口令;/etc/passwd文件中的密碼全部變成x。Shadow只能是root可讀,從而保證了安全。/etc/shadow文件每一行的格式如下:

    用戶名:加密口令:上一次修改的時間(從1970年1月1日起的天數):口令在兩次修改間的最小天數:口令修改之前向用戶發出警告的天數:口令終止后賬號被禁用的天數:從1970年1月1日起賬號被禁用的天數:保留域。

    例如:root:$1$t4sFPHBq$JXgSGgvkgBDD/D7FVVBBm0:11037:0:99999:7:-1:-1:1075498172

    bin:*:11024:0:99999:7:::
    daemon:*:11024:0:99999:7:::缺省情況下,口令更新并不開啟。如果你的系統沒有啟動影子文件,那么運行pwconv程序。

    PAM(pluggableAuthenticationmodules)是一套共享庫,他為系統管理進行用戶確認提供廣泛的嚴密控制,本身不是一個工具。他提供一個前端函數庫(一個API)用來確認用戶的應用程序。PAM庫可以用一個單獨的文件/etc/pam.conf來配置,也可以通過位于/etc/pam.d/下的一組配置文件來配置。使事情對用戶容易是PAM的核心目標。PAM可以配置成提供單一的或完整的登錄過程,使用戶輸入一條口令就能訪問多種服務。例如,ftp程序傳統上依靠/etc/passwd機制來確認一個希望開始進行ftp會議的用戶。配置了PAM的系統把ftp確認請求發送給PAM
    API,后者根據pam.conf或相關文件中的設置規則來回復。系統管理員可以設置PAM使一個或多個認證機制能quot;插入quot;到PAMAPI中。PAM的優點之處在于其靈活性,系統管理員可以精心調整整個認證方案而不用擔心破壞應用程序。

    DESIGNGOALS(設計目標):

    管理員可以選擇認證方式,從簡單的密碼到智能卡系統。
    可以為不同的程序配置不同的認證機制.如使telnet使用S/Key認證.。而本機的login缺使用一般的UNIXpassword。
    支持程序的顯示方式的需求。如login需要基于終端的顯示,而dtlogin需要X顯示,而ftp和telnet需要透過網絡來認證。

    支持為一個程序配置同時使用多種認證機制。
    可是用戶在使用多種認證機制時,不必為同一個密碼敲入多次。
    可是用戶在認真時需要輸入多個密碼。
    當底層的認證機制改變時上層軟件不需要修改。
    結構為systemauthentication提供一個pluggable_model。
    必須能滿足現有的服務需要
    OVERVIEWOFTHEPAMFRAMEWORK(縱覽PAM的框架)其核心實際上是一些庫函數。你寫的應用程序要調用它們。PAM為你提供了一套入口(the
    frontend)。而這套函數互調用特定認證機制所定義的模塊(thebackend)。簡單的說是這樣的:你調用一個函數僅僅告訴它你要認正,這就足夠了。至于用那一種機制來認證是由配置文件規定的。你只需要看一看返回值就知道認證是否成功了。對于開發應用程序的人來說只需要記住幾個函數。PAM的功能被分為四個部分:

    authentication(認證)
    account(賬號管理)
    session(對話管理)
    password(密碼管理)。
    這四個都是什么呢?

    authentication(認證):包括pam_authenticate()來認證用戶,pam_setcred()來設置刷新和銷毀用戶的
    credentials。
    Accountmanagement:包括pam_acct_mgmt()來檢查用的賬號是否還有效.可以被用來檢查用戶是否超時或賬號是否過期。
    Sessionmanagement:包括pam_open_session()和pam_close_session()用于對話過程的管理。例如:
    可以用來紀錄用戶的連接時間。一次telnet過程實際上也是一個session。
    Passwordmanagement:pam_chauthtok()用來修該密碼。程序通過調用pam_start()和pam_end()
    來開始或結束一次PAM事務。pam_get_item()和pam_set_item()讀寫有關事務的信息??梢杂胮am_strerror()來取得錯誤信息。


    如何配置你的系統呢?

    pam.conf的一個例子:

    服務名模塊類型控制標志模塊的名字選項
    ------------------------------------------------
    loginauthrequiredpam_unix_auth.sonowarn
    loginsessionrequiredpam_unix_session.so
    loginaccountrequiredpam_unix_account.so
    ftpauthrequiredpam_skey_auth.sodebug
    ftpsessionrequiredpam_unix_session.so
    telnetsessionrequiredpam_unix_session.so
    loginpasswordrequiredpam_unix_passwd.so
    passwdpasswordrequiredpam_unix_passwd.so
    OTHERauthrequiredpam_unix_auth.so
    OTHERsessionrequiredpam_unix_session.so
    OTHERaccountrequiredpam_unix_account.so

    OTHER被用來為沒有它數指定的服務用的。選項是隨著模塊的參數。為一個服務是可以指定多個auth模塊的.它們一次被調用來驗證用戶的身份.這叫做StackedModules。pam.conf中的控制標志實際上是指明這些Stackedmodule的工作方式。它可取的值如下:

    (a)required:該模塊的讓正必須通過,失敗者立即返回錯誤信息。
    (b)optional:表示可以忽略它的錯誤而繼續下面一個模塊。
    (c)ufficient:表明該模塊的讓正已經是足夠了,下面的模塊就不用調用了.立即返回成功的消息。

    Password-Mapping密碼的映射多層的模塊認證可能會需要多個密碼。則會使用戶感到厭煩。一個簡單的方法是是用戶使用同一個密碼而透過mapping機制來加強安全性。其實是通過一個密碼來產生另一個密碼,使一個密碼可被多個模塊使用。當然要保證第一個密碼是強壯的。
    auth的模塊多有下列選項:

    (a)use_first_pass:使用第一個模塊要求輸入的密碼.不再向用戶提示要密碼。
    (b)try_first_pass:先試著使用第一個模塊要求輸入的密碼,不對再要求用戶輸入。
    (c)use_mapped_pass:使用password-mapping來得到密碼,不再向用戶提示要密碼。
    (d)try_mapped_pass:先試著使用password-mapping來得到密碼,不對再向用戶提示要密碼。

    下面的例子可以看懂了吧:

    pam.conf
    loginauthrequiredpam_unix.sodebug
    loginauthrequiredpam_kerb.souse_mapped_pass
    loginauthoptionalpam_rsa.souse_first_pass

    這種設計使你沒有辦法來知道執行的具體情況。當然它也是與應用程序無關的。

    Notes:在linux下,也可以用/etc/pam.d中的文件來配置.這些文件的格式與pam.conf類似,只是沒有服務名。其服務名就是它的文件名。

    關于PAM的詳細資料,請看網站http://www.kernel.org/pub/linux/libs/pam/index.html請記住,只要你的服務器是一個網絡的服務器,有著大量的用戶,PAM就有用武之地。

    下面我提供一些賬號安全工具,具體怎么用請看工具附帶的文檔。

    1.Anlpasswd:這是一個口令預先檢查工具,防止用戶選擇差的口令ftp://coast.cs.purdue.edu/pub/tools/unix/anlpasswd/
    2.Crack:口令猜測程序,通過掃描口令文件來定位不安全的口令,并找到選擇該口令的用戶http://www.users.dircon.co.uk/~crypto/

    3.Epasswd:可代替標準的passwd程序,支持影子口令和口令更新http://science.nas.masa.gov/Groups/Security/epasswd/index.html
    4.Kerberos:物理上不安全的網絡使用的網絡認證協議http://web.mit.edu/kerberos/www/
    5.Npasswd:代替passwd命令ftp://ftp.cc.utexas.edu/people/clyde/npasswd/doc/index.html
    6.OPIE:OneTimePasswordsinEverythingftp://ftp.inner.net/pub/opie/
    7.passwd+:口令預先檢測工具ftp://ftp.dartmouth.edu/pub/security/
    8.Shadow:用來代替login和passwd以使任何系統都可以使用影子口令文件ftp://ftp.std.com/src/freeunix/shadow.tar.Z
    9.SRA:用來代替telnet和ftp客戶服務器程序。使用SecureRPC代碼來提供通過網絡的加密認證,使得純文本口令不再使用ftp://coast.cs.purdue.edu/pub/tools/unix/TAMU/

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>