tcp_wrapper、sudo、nsswitch、pam

來源:互聯網
上載者:User

標籤:tcp_wrapper、sudo、nsswitch、pam

下面介紹的是服務與安全管理的tcp_wrapper、sudo、nsswitch、pam


一、tcp_wrapper

1、tcp_wrapper基礎 --------------------tcp封裝器

 tcp_wrapper依賴的庫檔案:libwrap.so

(1)、判斷是否受tcp_wrapper存取控制:動態連結(libwrap.so庫檔案)、靜態連結(strings命令)

  動態連結至libwrap.so庫的應用程式:# ldd /PATH/TO/APP_FILE | grep libwrap

  靜態庫檔案應用程式:# strings COMMAND

(2)、常見的基於tcp_wrapper存取控制的服務:sshd,vsftpd

  幾種服務:openssh、http、mysql、vsftpd、nfs、samba


2、tcp_wrappers的設定檔 ----------------------/etc/hosts.allow、/etc/hosts.deny

  格式:daemon_list : client_list [[[: option] : option] ...]


(1)、daemon_list --------------應用程式檔案名(/usr/sbin/*)

  daemon_list的三種方式:單個程式檔案名稱、多個程式檔案名稱(逗號隔開)、所有應用程式(ALL)


(2)、client_list ------------3種方式

  單個IP地址或主機名稱、網路地址、存取控制清單

  client_list的四種存取控制清單:ALL、KNOWN、UNKNOWN、PARANOID


(3)、: option --------------3類選項

  option的三類選項為:deny、allow、spawn

  spawn:%c -------------------用戶端資訊

         %s -------------------服務端資訊


例:

daemon_list:ALL -------------所有的應用程式(進程)

client_list:172.16.0.0/255.255.0.0

             172.16.

             ALL ------------所有的主機

             KNOWN ----------能正常訪問的主機

             UNKNOWN ---------不能正常訪問的主機

: option:deny:拒絕訪問規則,hosts.allow檔案中

          allow:允許訪問規則,hosts.deny檔案中

          spawn:產生、發起、執行


例:

vsftpd : 172.16.0.0/16 : allow ---------------/etc/host.allow(預設允許)

vsftpd : ALL EXCEPT 172.16. EXCEPT 172.16.67.1 ------------------/etc/hosts.deny(預設拒絕)


例:針對sshd、vsftpd服務進行記錄

sshd, vsftpd : ALL : spawn /bin/echo $(/bin/date) %c attempt login %s >> /var/log/tcpwrapper.log



二、sudo

1、sudo基礎 ---------------以root使用者身份執行

 sudo的授權設定檔:/etc/sudoers


2、設定檔內容 ---------------/etc/sudoers

 /etc/sudoers內容有兩類:、別名的定義、使用者規格(授權)

(1)、別名定義 --------------別名全大寫

  格式:Alias_Type ALIASNAME = item1, item2, ...

  Alias_Type:User_Alias、Host_Alias、Runas_Alias、Cmnd_Alias:

  Alias_Type -------------使用駝峰式

  ALIASNAME -------------使用全大寫 

  例:User_Alias USERADMINUSERS = tom, jerry, centos, suse, %myclass -----------------“%”在別名定義中,表示組。

      Cmnd_Alias USERADMINCOMMANDS = /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root, /usr/sbin/usermod


(2)、使用者規格(授權項): -----------------編輯/etc/sudoers,每行只有一個授權

  格式為:who  where=(whom)  what

  格式各部分解釋如下:

  who ----------授權的目標使用者(5種方式)

      username ---------------單個使用者名稱稱

      #uid ------------單個使用者UID

      %groupname ------------指定組內的所有賬戶

      %#gid -----------指定知道的GID的組,其內的所有使用者賬戶

      user_alias -------------定義過的別名

  

  where --------------授權的用戶端主機(3種)

      ip/hostname ------------單個主機

      Network Address --------------網路地址

      host_alias -------------定義過的別名


  whom -----------------真實身份,一般為root


  what -------------授權啟動並執行命令

      command -------------單個命令

      directory ------------目錄下的所有命令

      sudoedit ---------------授權可以執行sudo命令的使用者

      cmnd_alias ----------定義過的別名


例:little ALL=(root) /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root 

例:little ALL=(root) /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/su ! /usr/bin/su root


註:visudo命令:-----------------編輯/etc/sudoers檔案,具有【文法錯誤修正】功能


(3)、sudo命令:----------------使用者授權

  格式:sudo [option]... command

  常用選項:

  -u user --------------指定使用者身份

  -l[l] [command] ------------------顯示能以sudo啟動並執行所有命令


(4)、授權中的標籤

  PASSWD --------------要有密碼

  NOPASSWD -------------可以沒有密碼


  例:Cmnd_Alias USERADMINCOMMANDS = NOPASSWD: /usr/sbin/useradd, PASSWD: /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root, /usr/sbin/usermod


sudo的特殊命令:passwd、su、sudo、sudoedit



三、nsswitch

1、nsswitch基礎 ---------------名稱服務開關

 名稱解析:將自然語言,解析為機器語言的數字記號。

 解析:根據關鍵字尋找存放庫,找出與關鍵字相關的資訊。

 通用架構:應用程式的調用介面

 Linux中實現名稱解析的通用架構:庫(/lib64/libnss*, /usr/lib64/libnss*)


2、解析庫應用程式的設定檔 ----------/etc/nsswitch.conf

  格式:db: store_format1 store_format2 ....


  尋找鍵的返回狀態:(4種)success、notfound、unavail、tryagain

  狀態傳回值的響應:return、continue

3、getent命令 ------------從名稱伺服器得到響應

  格式:getent database [key]



四、pam

1、pam基礎 --------------通用的認證架構

  Linux中實現pam的通用架構:庫(/lib64/security/*)


2、設定檔 -------------/lib64/security/*

 pam的設定檔有兩種:全域設定檔、專用設定檔。其中,全域設定檔已經廢棄。

(1)、全域認證設定檔 -------------------/etc/pam.conf

  格式:application   type  control   module-path   module-arguments


(2)、專用設定檔 ------------------/etc/pam.d/*APP_NAME*

  格式:type  control   module-path   module-arguments

  type:

    auth ---------------認證、授權

    account ------------帳號管理,與認證無關

    password ------------使用者修改密碼時,密碼的複雜度

    session -------------附加操作


  control:

    required ----------------沒有被滿足,認證一定失敗,認證過程並不中斷

    requisite ---------------沒有被滿足,認證一定失敗,立即中斷

    sufficient ------------條件被滿足,認證成功,立即中斷

    optional -------------不影響認證

    include ----------------其他的設定檔包含到當前位置,類似複製

    substack ---------------複製,並在子棧運行,不影響主棧


  module-path ---------------可以是相對路徑、絕對路徑


  module-arguments ------------預設模組參數


例:auth required pam_shells.so --------------------pam_shells.so模組的認證

      

3、pam_limits.so模組 -------------限制使用者會話過程中對各種系統資源的使用方式

  格式:pam_limits.so [ change_uid ] [ conf=/path/to/limits.conf ] [ debug ] [ utmp_early ] [ noaudit ]

  

  設定檔: --------------/etc/security/limits.conf、 /etc/security/limits.d/*

  格式:<domain> <type> <item> <value>

  doemain: ----------------使用者名稱/組名

    username ---------------單個使用者名稱稱

    %groupname/@groupname ------------指定組內的所有賬戶

  

  type: ----------------軟/硬限制,不同於磁碟配額中的軟式節流和硬限制

    hard:------------硬限制

    soft:------------軟式節流

    -:--------------任意


  item:

    core:-------------檔案大小 (KB)

    date:--------------最大資料大小(KB) 

    fsize:---------------最大檔案大小(KB)

    memlock:-------------最大可用記憶體空間(KB)

    nofile:---------------最大可以開啟的檔案數量 

    rss:--------------最大可駐留空間(KB) 

    stack:-----------------最大堆棧空間(KB)

    cpu:-----------------最大CPU使用時間(MIN)

    nproc:-----------------最大運行進程數

    as:--------------地址空間限制

    locks:--------------最大鎖定檔案數目

    nice:--------------nice值

    maxlogins:--------------使用者可以登入到系統最多次數 


  value:-----------------具體值


例:-------------/etc/security/limits.conf

    @student hard nproc 20

    @faculty soft nproc 20

    @faculty hard nproc 50

    ftp hard nproc 0

    @student - maxlogins 4


4、pam_listfile.so模組 ------------------------實現基於使用者/組、主機名稱/IP、終端的存取控制

  格式:pam_listfile.so  item=[tty|user|rhost|ruser|group|shell]  sense=[allow|deny]  file=/path/filename onerr=[succeed|fail] [ apply=[user|@group] ] [ quiet ]

  常用選項:

  item=[tty|user|rhost|ruser|group|shell]:----------------對哪些列出的目標或者條件採用規則  

  sense=[allow|deny]:----------在設定檔中找到合格項目時的控制方式。如果沒有找到合格項目,則一般驗證都會通過  

  file=/path/filename:--------------------指定設定檔的全路徑名稱

  onerr=[succeed|fail]:-------------------當出現錯誤時的預設傳回值 

  apply=[user|@group]:----------------規則適用的使用者類型(使用者或者組)

  quiet 


例:auth required pam_listfile.so \ 

         onerr=succeed item=user sense=deny file=/etc/ftpusers

例:auth required pam_listfile.so \

         onerr=fail item=user sense=allow file=/etc/loginusers


5、pam_time.so模組 -------------------提供基於時間的控制,使用者只能在某個時間段內才能登入

  格式:pam_time.so [ debug ] [ noaudit ]

  常用選項:

  debug:

  noaudit:

  

  設定檔:/etc/security/time.conf

  格式:services;ttys;users;times


例:login ; tty* & !ttyp* ; !root ; !Al0000-2400

例:games ; * ; !waster ; Wd0000-2400 | Wk1800-0800

例:

# vim /etc/security/time.conf

login ; tty3 ; user1 ; al0100-0200   user1      1點到2點才能登入

login ; tty3 ; user1 ; all

sshd ; * ;  *  ;  al0100-0200


tcp_wrapper、sudo、nsswitch、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.