AIDE,sudo,TCP_Wrappers,PAM認證等系統安全訪問機制

來源:互聯網
上載者:User

標籤:學習   style   ftpd   類型   option   ctime   詳細資料   功能   inux   

AIDE

進階入侵檢測環境:是一個入侵偵查工具,主要用途是檢查檔案的完整性,審計電腦上的那些檔案被更改過了。

AIDE能夠構造一個指定檔案的資料庫,它使用aide.conf作為其設定檔。AIDE資料庫能夠儲存檔案的各種屬性,包括:許可權(permission)、索引節點序號(inode number)、所屬使用者(user)、所屬使用者組(group)、檔案大小、最後修改時間(mtime)、建立時間(ctime)、最後訪問時間(atime)、增加的大小以及串連數。AIDE還能夠使用下列演算法:sha1、md5、rmd160、tiger,以密文形式建立每個檔案的校正碼或散列號。

設定檔:/etc/aide.conf

# These are the default rules.#p:      permissions#i:      inode:#n:      number of links#u:      user#g:      group#s:      size#b:      block count#m:      mtime#a:      atime#c:      ctime#S:      check for growing size#acl:           Access Control Lists#selinux        SELinux security context#xattrs:        Extended file attributes#md5:    md5 checksum#sha1:   sha1 checksum#sha256:        sha256 checksum#sha512:        sha512 checksum#rmd160: rmd160 checksum#tiger:  tiger checksum#haval:  haval checksum (MHASH only)#gost:   gost checksum (MHASH only)#crc32:  crc32 checksum (MHASH only)#whirlpool:     whirlpool checksum (MHASH only)#R:             p+i+n+u+g+s+m+c+acl+selinux+xattrs+md5#L:             p+i+n+u+g+acl+selinux+xattrs#E:             Empty group#>:             Growing logfile p+u+g+i+n+S+acl+selinux+xattrs

1、安裝

# yum install aide

2、配置需要監控的檔案夾

[[email protected] ~]# vim /etc/aide.conf/data/* R

3、產生資料庫並改名為現在使用的檔案名稱

[[email protected] ~]# cd /var/lib/aide/[[email protected] aide]# aide --initAIDE, version 0.14### AIDE database at /var/lib/aide/aide.db.new.gz initialized.[[email protected] aide]# lsaide.db.new.gz[[email protected] aide]# mv aide.db.new.gz aide.db.gz    

4、檢查檔案完整性,建議將aide資料庫存放到安全的地方

# aide --check

5、更新資料庫

# aide --update
sudo

能夠授權指定使用者在指定主機上代表指定使用者執行某些指令。

sudo命令

  • -V 詳細資料
  • -u username 代表的使用者
  • -l 列出使用者在主機上可用的命令
  • -v 重新整理密碼時間戳記
  • -K 刪除密碼有效期間時間戳記
  • -k 重設時間戳記到1970年
  • -b 在後台執行指令
  • -p 改變詢問密碼的提示符
  • %p 表示使用者名稱
  • %h 表示主機名稱
  • -i -u username 切換身份

visudo:編輯/etc/sudoers

  -v:檢查文法合格性

  -f file:編輯檔案

設定檔:/etc/sudoers, /etc/sudoers.d/*,支援使用萬用字元

  授權格式:使用者 主機=(代表使用者) 命令

使用者和代表使用者:

  • username
  • #uid
  • %group_name
  • %#gid
  • user_alias|runas_alias

主機:

  • ip或hostname
  • network(/netmask)
  • host_alias

命令:

  • command name
  • directory
  • sudoedit
  • Cmnd_Alias
root    ALL=(ALL)   ALL  #系統預設為root使用者開的後門,root使用者可以在任意主機上以任意使用者的身份執行任意操作

  別名:

    類型:User_Alias, Runas_Alias, Host_Alias ,Cmnd_Alias

    格式:必須以大小的A-Z開頭,中間可以是大小的A-Z,數字和底線

[[email protected] sudoers.d]# visudo -f netadminUser_Alias NETADMIN = user1,user2,user3Cmnd_Alias NETCMD = /sbin/ip,/sbin/route,/sbin/ifconfig,/bin/netstat,/usr/sbin/ssHost_Alias HOST = 192.168.0.6Runas_Alias OP = rootNETADMIN HOST=(OP) NETCMD

記錄檔:/var/log/secure

*注意

user4 ALL=(root) /bin/cat /var/log/messages*

這樣授權是錯誤的,以下命令也可以執行

# /bin/cat /var/log/messages /etc/shadow

所以我們如果想實現這樣的需求就需要按照以下這樣的寫法:

dongfei ALL=(root) /bin/cat /var/log/messages*,!/bin/cat /var/log/messages* *
[[email protected] ~]$ sudo cat /var/log/messages /etc/shadowSorry, user dongfei is not allowed to execute ‘/bin/cat /var/log/messages /etc/shadow‘ as root on centos6.
TCP_Wrappers

Wieste Venema

簡介:工作在第四層(傳輸層)的TCP協議,對有狀態串連的特定服務進行安全檢測並實現存取控制;某進程是否接受libwrap的控製取決於發起此進程的程式在編譯時間是否針對libwrap進行編譯。

檢查sshd服務是否能夠被TCP_Wrappers控制

[[email protected] ~]$ which sshd/usr/sbin/sshd[[email protected] ~]$ ldd /usr/sbin/sshd |grep libwrap.so        libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f61ba6aa000) #sshd服務依賴libwrap.so庫,可以被控制

設定檔:/etc/hosts.allow(白名單), /etc/hosts.deny(黑名單)

規則:先檢查白名單,如果被白名單匹配則允許訪問;如果白名單沒有匹配到則交給黑名單匹配,如果匹配則拒絕;如果都沒有匹配到則使用預設策略(預設允許)。

配置文法:服務列表@主機IP:用戶端地址清單  [:選項]

服務列表@主機IP:

  1. 單個應用程式的二進位檔案名,而非服務名,例如vsftpd
  2. 以逗號或空格分隔的應用程式檔案名列表,如:sshd,vsftpd
  3. ALL表示所有接受tcp_wrapper控制的服務程式
  4. 主機有多個IP,可用@hostIP來實現控制

用戶端列表:

  1. 以逗號或空格分隔的用戶端列表
  2. 基於IP地址:192.168.10.1 192.168.1.
  3. 基於主機名稱:www.magedu.com .magedu.com 較少用
  4. 基於網路/掩碼:192.168.0.0/255.255.255.0
  5. 基於net/prefixlen: 192.168.1.0/24(CentOS7)
  6. 基於網路組(NIS 域):@mynetwork
  7. 內建ACL:ALL,LOCAL,KNOWN,UNKNOWN,PARANOID
    • ALL 表示所有主機
    • LOACAL 表示本網,匹配任何主機名稱中不帶"."的主機
    • UNKNOWN 不能將主機名稱解析為IP
    • KNOWN 能將主機名稱解析為IP
    • EXCEPT 排除

選項:

  1. deny 拒絕
  2. spawn 觸發一個操作
  3. twist 實際動作是拒絕訪問,使用指定的操作替換當前服務,標準I/O和ERROR發送到用戶端,預設至/dev/null

 tcpdmatch:在本地測試

tcpdmatch [-d] daemon[@host] client

-d 測試目前的目錄下的hosts.allow和hosts.deny

[[email protected] data]# cat hosts.allow [[email protected] data]# cat hosts.deny sshd:192.168.0.7[[email protected] data]# tcpdmatch -d sshd 192.168.0.7 #如果用戶端是192.168.0.7是否可以訪問原生sshd服務client:   address  192.168.0.7server:   process  sshdaccess:   denied(拒絕)[[email protected] data]# tcpdmatch -d sshd 192.168.0.8client:   address  192.168.0.8server:   process  sshdaccess:   granted
PAM

它提供了對所有服務進行認證的中央機制,適用於login,遠程登入(telnet,rlogin,fsh,ftp,點對點通訊協定 (PPP)(PPP)),su等應用程式中。系統管理員通過PAM設定檔來制定不同應用程式的不同認證策略;應用程式開發人員通過在服務程式中使用PAM API(pam_xxxx( ))來實現對認證方法的調用;而PAM服務模組的開發人員則利用PAM SPI來編寫模組(主要是引出一些函數pam_sm_xxxx( )供PAM介面庫調用),將不同的認證機制加入到系統中;PAM介面庫(libpam)則讀取設定檔,將應用程式和相應的PAM服務模組聯絡起來。

模組檔案目錄:/lib64/security/*.so

環境相關的設定:/etc/security/

主設定檔:/etc/pam.conf,預設不存在

為每種應用模組提供一個專用的設定檔:/etc/pam.d/*

PAM認證過程:

  1. 使用者執行/usr/bin/passwd 程式,並輸入密碼
  2. passwd開始調用PAM模組,PAM模組會搜尋passwd程式的PAM相關設定檔案,這個設定檔案一般是在/etc/pam.d/裡邊的與程式同名的檔案,即PAM會搜尋/etc/pam.d/passwd此設定檔案
  3. 經由/etc/pam.d/passwd設定檔案的資料,取用PAM所提供的相關模組來進行驗證
  4. 將驗證結果回傳給passwd這個程式,而passwd這個程式會根據PAM回傳的結果決定下一個動作(重新輸入密碼或者通過驗證)

專用設定檔/etc/pam.d/*格式

  module-type  control   module-path   arguments 

  • 模組類型(module-type)
    • Auth 帳號的認證和授權
    • Account 與帳號管理相關的非認證類的功能,如:用來限制/允許使用者對某個服務的訪問時間,當前有效系統資源(最多可以有多少個使用者),限制使用者的位置(例如:root使用者只能從控制台登入)
    • Password 使用者修改密碼時密碼複雜度檢查機制等功能
    • Session 使用者擷取到服務之前或使用服務完成之後需要進行一些附加的操作,如:記錄開啟/關閉資料的資訊,監視目錄等
    • -type 表示因為缺失而不能載入的模組將不記錄到系統日誌,對於那些不總是安裝在系統上的模組有用
  • control PAM庫該如何處理與該服務相關的PAM模組的成功或失敗情況
    • required :一票否決,表示本模組必須返回成功才能通過認證,但是如果該模組返回失敗,失敗結果也不會立即通知使用者,而是要等到同一type中的所有模組全部執行完畢再將失敗結果返回給應用程式。即為必要條件
    • requisite :一票否決,該模組必須返回成功才能通過認證,但是一旦該模組返回失敗,將不再執行同一type內的任何模組,而是直接將控制權返回給應用程式。是一個必要條件
    • sufficient :一票通過,表明本模組返回成功則通過身份認證的要求,不必再執行同一type內的其它模組,但如果本模組返回失敗可忽略,即為充分條件
    • optional :表明本模組是可選的,它的成功與否不會對身份認證起關鍵作用,其傳回值一般被忽略
    • include: 調用其他的設定檔中定義的配置資訊
  • module-path 用來指明本模組對應的程式檔案的路徑名
    • /lib64/security目錄下的模組可使用相對路徑
  • Arguments 用來傳遞給該模組的參數
pam_shells模組pam_securetty.so模組pam_nologin.so模組pam_limits.so模組

 

 

個人學習筆記

AIDE,sudo,TCP_Wrappers,PAM認證等系統安全訪問機制

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.