Linux中TCP wrapper的使用

來源:互聯網
上載者:User


tcpwrapper的目的是對那些存取控制功能較弱的服務提供存取控制功能要想瞭解存取控制就必須Crowdsourced Security Testing道服務監聽的概念:

服務監聽的兩種方式:

listen     :        socket                  監聽在通訊端上提供服務

                   迴圈                   不停歇的查看某個連接埠來提供服務

 

 

有兩種方式來判斷一個服務是否支援tcp wrapper:

1.通過尋找庫檔案看是否有libwrap

ldd `which command`

2.查看是否串連到/etc/hosts.allow|deny

strings `which command`                   # 查看靜態連結庫

         如果有/etc/hosts.allow

                              /etc/hosts.deny       就說明這個命令靜態連結了tcpwrraper

 

tcpwrraper自身工作在核心,卻可以通過這兩個檔案來提供存取控制

 

                   請求

           ↓              

        服務   --->/etc/hosts.allow     --->     如有有就允許存取

                                     ↓         沒有

                           /etc/hosts.deny     ---->    如果沒有就允許存取     

                                     ↓                    

                                                        如果有明確的匹配條目拒絕

/etc/hosts.allow|deny檔案格式:damon_list: client_list [:option]

匹配服務列表:damon_list

vsftpd: 192.168.0.            

vsftpd,sshd,in.telnetd:

ALL                    

daemon@host

vsftpd@192.168.0.186                    

#可以簡寫192.168.0  代表192.168.0.0網段

#可以一次指定多個服務

#可以使用萬用字元ALL來指定所有的服務

#@只對某個主機來控制

 

匹配用戶端列表clent_list

IP

network address

     network/mask:   mask不能使用長度格式 ,只能是有完全ip的格式

     172.16.0.0--->172.16.    也可以簡寫網段

HOSTNAME

           fqdn

           .a.rog            表示a.org域內的所有主機    

 

option  選項

spawn                     #可以通過spawn來實現記錄定義

spawn echo ""     

#下面定義一個條件,只要使用者通過telnet登入就記錄到一個日誌

vim /etc/hosts.deny

in.telnetd:ALL EXCEPT 172.16.0.1: spawnecho "Login attemp(`date`) %u from %a attemp to login %A, the deamon is%d." >> /var/log/telnet.log

##注意不能在echo後面用: 分號在這裡有特殊意義。

##可以通過man 5 hosts_access 來查看上述%的含義

 

常用的宏定義 MACRO

ALL                                   #代表所有主機,或者所有服務

LOCAL                                   #表示本地主機,非FQDN主機

KNOWN                                      #表示可以被解析的主機

UNKNOWN                #反向可以被解析的主機

PARANOID                #正反向解析不匹配的主機

EXCEPT                                    #排除某個主機或某個網路 

 

-

怎麼來控制vsftpd的訪問

1. which vsftpd                       # 確定檔案路徑        2. vim /etc/hosts.deny                 # 改檔案立即生效vsftpd: 172.16.100.100 #假設僅允許172.16網段訪問vim /etc/hosts.allowvsftpd: 171.16                        # 只允許172.16.0.0/16網段vim /etc/hosts.denyALL: ALL                                            # 拒絕其他的使用者登陸

這樣就只有172.16.0.0網段可以訪問了

 

 

控制SSH ,只允許192.168.0.32網段登陸,並且不允許192.168.0.32登陸

vim /etc/hosts.denyALL:ALLvim /etc/hosts.allowsshd: 192.168.0 EXCEPT 192.168.0.32

效果:

將/etc/hosts.deny 裡面的ALL: ALL去掉就可以恢複登陸

相關文章

聯繫我們

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