TCP_Wrapper&sudo

來源:互聯網
上載者:User

標籤:tcp_wrapper   sudo   su   visudo   libwrap   

TCP_Wrapper&sudo
一、tcp_wrapper
存取控制
    1.tcp協議之上的服務
    2.僅一部分基於tcp傳輸的應用程式層服務可接受其控制
使用者空間:庫
    libwrap.so
        連結至此庫的應用才會受tcp_wrapper管理
    ldd `which sshd` //查看是否連結至此庫
    1.動態連結:
        ldd命令對其應用執行結果中包含了libwrap.so即可
        ldd $(which COMMAND)
        ldd `which vsftpd` |grep wrap
    2.靜態連結
        strings命令對其應用程式的執行結果包含了
            /etc/hosts.allow
            /etc/hosts.deny
        strings $(which COMMAND)
yum -y install telnet-server
    rpm -ql telnet-server
    ldd `which in.telnetd` //沒有連結,但是in.telnetd受xinetd超級守護進程管理,而xinetd連結到了libwrap
        ldd `which xinetd` |grep -i libwrap 驗證
    注意:在CentOS6系統上的超級守護進程xinetd連結到了libwrap.so
        在CentOS7上沒有串連到
服務基於libwrap完成存取控制的流程;
    匹配順序:
        /etc/host.allow---->/etc/host.deny
        假如都沒有匹配,就是用預設策略,預設allow    
    先檢查hosts.allow檔案,如果有顯式的授權規則,則允許,否則,則檢查hosts.deny檔案,如果有顯式的拒絕規則,則拒絕訪問,否則,預設策略
格式:
    daemon_list:client_list[:options]
    daemon_list:
        1.單個應用程式檔案的檔案名稱,而非服務名;例如vstpd
        2.以逗號分隔的應用程式檔案名列表;
            vsftpd,sshd,in.telnetd
        3.ALL,所有受tcp wrapper控制的服務程式
    client_list:
        1.單個主機:IP地址或主機名稱
        2.網路地址:使用完整的掩碼格式,或使用簡短地址網路地址標記法,不能使用首碼        
            172.16.1.0/255.255.0.0
            172.16.1.   //後面的 . 是不可省略的
        3.ALL所有主機
        4.KNOWN,UNKNOWN,PARANOID
            KNOWN:主機名稱的正反向解析都是ok的
            UNKNOWN:地址無法反解的
            PARANOID:麻痹的,正反向解析不對應的
    EXCEPT:除了
        vsftpd: 172.16.  EXECPT 172.16.1.0/255.255.255.0
        vsftpd: 172.16.  EXECPT 172.16.1.0/255.255.255.0 EXECPT 172.16.1.1
            //172.16.1.1是可以訪問的,雙重否定即是肯定
    [:options]
        deny:拒絕,主要用於/etc/hosts.allow中使用
            vsftpd: 172.16.1.1 :deny
        allow:允許,主要用在/etc/hosts.deny中使用
            sshd: 172.16.1. :allow
        spawn:啟動一個外部程式完成執行的操作
            sshd: ALL :spawn /bin/echo $(date) login attemp from %c to %s,%d >> /var/log/sshd.log     
    hosts.allow/hosts.deny的宏:
        %c: 用戶端資訊,[email protected]或者[email protected]
        %s:服務資訊,例如sshd,守護進程名
        %d:守護進程資訊
        %p:daemon precess id
        %u:clinet user name
假如需要記錄並拒絕所有人訪問sshd
    1.在hosts.allow中記錄日誌
    2.在hosts.deny中拒絕所有
    或者: 只把下面這一句,寫入到/etc/hosts.deny中
    sshd: ALL :spawn /bin/echo $(date) login attemp from %c to %s,%d >> /var/log/sshd.log     
    
    注:如果sshd:這一行,寫在hosts.allow中,記錄日誌並允許
        
二、su:switch user
    使用者切換
    1.su - user,su -l user //登入式切換
    2.su user //非登入式切換
        -c "COMMAND" //使用該使用者身份執行該命令
        su wolf -c 'rm aa'
sudo:以另外一個使用者的身份執行命令
    授權知己:sudo檔案,/etc/sudoers //多項記錄,最後一條為預設
    兩類內容:
        1.別名的定義,即為變數
        2.授權項,可使用別名進行授權
    
    visudo:有固定文法格式,檢查
    注:使用者通過sudo獲得的授權,只能通過sudo命令擷取
    授權項(每一行一個)
        who  where(runas)  commands        
        who:
            username:單個使用者,
            #uid:單個使用者的id號
            %group:組內的所有使用者
            %#gid:組內的所有使用者
            user_alias:使用者別名,例如把多個使用者定義為一個別名,然後直接授權該別名即可
        where:主機地址
            ip或hostname:單個ip
            NetAddr:網路地址,掩碼,prefix都支援
            host_alias:主機別名
        runas:
            username
            #uid
            runas_alias
        commands
            command;單個命令
            directory;指定目錄內的所有應用程式
            sudoedit:特殊許可權,可用於向其他使用者授予sudo許可權,預設是sudo命令只能自己使用
            cmnd_alias:命令別名,可以把多個命令起一個名字
    定義別名:
        ALIAS_TYPE NAME=item1,item2,...
    
        ALIAS_TYPE:
            User_Alias
            Host_Alias
            Runas_Alias
            Cmnd_Alias
        NAME:別名的名稱字元,必須使用全大寫字母
            
注意:$sudo su - //假如擁有su的許可權,可以直接切換到root身份            
    //或者該使用者擁有wheel組,也可以使用自己的密碼切換到root       
    less /etc/sudoers
        %wheel //該組可以擁有任何許可權,假如想要使用者擁有該許可權,只需要讓使用者加入該組
常用標籤:
    NOPASSWD
    PASSWD   
wheel組:
    usermod -aG wheel wolf //讓wolf加入wheel組
    su - wheel
    sudo -l //自己能夠運行所有命令,以及能夠切換到root身份
sudo用法
    sudo [options] command
    -u 指定使用者身份
    -l 列出使用者能以sudo的方式執行的所有命令
    -k:清除此前使用者認證成功的記錄,再次使用sudo仍然需要使用密碼
    sudo -u admin ls /root //會提示deny
實驗1:授權wolf能夠useradd,usermod
    visudo
        wolf ALL=(root) /usr/sbin/useradd, /usr/sbin/usermod
        誰   在何地(runas)    命令
    sudo useradd tt
實驗2:別名使用
    User_Alias USERADMINS=
    wolf,centos
    Cmnd_Alias COMMANDS=/usr/sbin/useradd,/usr/sbin/usermod,/usr/bin/passwd
    visudo
        USERADMINS ALL=(root) COMMANDS
    sudo useraddd user1
    //注此時可以修改root密碼: passwd root //直接修改root密碼
實驗3:禁止修改root使用者密碼
    Cmnd_Alias COMMANDS=/usr/sbin/useradd,/usr/sbin/usermod,/usr/bin/passwd [a-z]*,!/usr/bin/passwd root,/usr/sbin/userdel
實驗4:sudo不需要輸入密碼
    wolf ALL=(root)  NOPASSWD: /usr/sbin/useradd,/usr/sbin/usermod
    wolf ALL=(root)  NOPASSWD: /usr/sbin/useradd,/usr/sbin/usermod,PASSWD: /usr/sbin/userdel  //執行userdel的時候要求輸入密碼
實驗5:偽管理員
    wolf  ALL=(root) /usr/sbin/su  //此時wolf就相當於root了
    wolf $: sudo su - //就能直接切換到root,使用自己的密碼

TCP_Wrapper&sudo

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.