tcp_wrapper:簡單的基於主機的存取控制工具

來源:互聯網
上載者:User

標籤:主機存取控制   iptables   tcp_wrapper   

一、常用的主機存取控制工具

   獨立(stand alone)守護進程(httpd,vsftpd)、瞬時(transient)守護進程(rsync,tftp,telnet), 這兩類守護進程都支援基於iptables進行控制。哪一連接埠運行用戶端訪問,哪一連接埠不允許用戶端訪問,基於主機做防火牆時,都能進行控制。    

   做主機防火牆時,有些瞬時守護進程,甚至是某些獨立獨立守護進程,還能夠接受另一種方式,tcp_wrapper,來控制。

   在眾多的基於主機的安全存取控制中,tcp-wrapper是簡單而易於配置的一種。

   在linux下能實現基於主機存取控制的常用工具有三個:iptables、tcp_wrapper、xinetd(超級守護進程)。


二、tcp_wrapper簡介

       顯而易見,只能控制tcp協議下的軟體。

        一般翻譯為tcp封裝器,能夠實現監聽在某一tcp服務上,對於進出某本主機區訪問某一通訊端的應用做檢查,而且能夠實現所謂授權訪問。

        簡單來說,tcpwrapper本身是一個守護進程,工作於tcp協議上。iptables工作於核心的tcp/ip協議棧上,而tcp_wrapper工作於核心的tcp/ip協議棧的tcp協議上,而且是在tcp的入口處啟動一個進程,監視每一個tcp服務的相關請求,同時把這個報文本身跟tcp_wrapper的設定檔中的允許存取規則或拒絕規則中的規則進行對比。若果一旦匹配,則給予允許存取或拒絕訪問。

   背景工作處理序為:tcpd    

   工作在tcp包文所要經過的位置上,有且只有一個位置。工作於tcp協議層,比工作在網路層的iptables更高一層,因此可以和iptables結合使用。但tcp_wrapper的控制完成之後,iptables就無需控制了,同理,iptables控制完成之後,tcp_wrapper也就無需控制了。二者可以有一個能完成控制就可以了。

   iptables既然能完成工作,為什麼還需要tcp_wrapper呢?因為tcp_wrapper的配置非常簡單。

   設定檔:/etc/hosts.allow,/etc/hosts.deny  

   但是並非所有服務都能接受tcp_wrapper的控制,事實上,tcp_wrapper與其說是一個服務,不如說是一個庫更合適。因為所有的守護進程,都是工作在使用者空間的,所以與其說tcp_wrapper是一個守護進程,不如說是一個庫更合適。

所有的服務都能接受iptables控制,但並非所有都接受tcp_wrapper控制。只有使用者在開發某個程式時,如果連結到這個庫上,或者說依賴於這個庫,就意味著他他是接受tcp_wrapper控制的。


三、使用tcp_wrapper控制

   a).只需將受控製程序名寫入設定檔即可實現控制:              

        允許訪問:/etc/hosts.allow              

        拒絕訪問:/etc/hosts.deny

   b).控制原理

       程式連結的庫檔案,會自動在使用者訪問服務時,基於tcpd檢測

/etc/hosts.allow、/etc/hosts.deny兩個設定檔,並判斷某一主機是否能夠訪問服務。

   c).匹配機制

       1.先檢查/etc/hosts.allow,如果被允許,則直接允許存取;          

       2.如果/etc/hosts.allow沒有匹配項,則檢查/etc/hosts.deny;如果有匹配項則禁止訪問;          

       3.如果均無匹配,則預設允許存取。

   d).設定檔文法格式      

daemo_list:client_list [:options]daemon_list:          一定是應用程式名稱,不是進程名;          如果有多個,則用逗號隔開;          如果匹配所有,則用ALL;client_list:          IP地址:172.16.100.100          主機名稱:www.magedu.com          網路地址/子網路遮罩:(子網路遮罩只能使用長格式)          簡短格式:               如:172.16. 表示 172.16.0.0/255.255.0.0[:options]          deny     使在hosts.allow中選項deny          allow    使在hosts.deny中選項allow          這樣的機制可以讓我們只需寫一個設定檔就可以將所有配置搞定                 例: vim /etc/hosts.allow                     in.telnetd: ALL EXCEPT 172.16.251.105 :deny          spawn     發起執行一條命令,比如:如果有人訪問訪問伺服器,別拒絕了,這通常是一種惡意訪問,或非正常訪問,就可以使用spawn echo一些命令儲存至日誌中              vim /etc/hosts.allow                  in.telnetd: 172.16 EXCEPT 172.16.251.105               vim /etc/hosts.deny                  in.telnetd: ALL : spawn echo `date` login attempt from %c to %s >> /var/log/tcp_wrapper.log                          %c:[email protected]                     %s:[email protected]                     %h:用戶端主機名稱                        %p:伺服器上的進程PID                    擷取完整協助資訊:man 5 hosts_access                    注意:echo的資訊無需加引號,否則命令替換不會進行

   e).tcp_wrapper有幾個內建的宏(Macro)

用於client_list的有:ALL,NONE,UNKNOW(主機名稱無法解析的地址),                               PARANOID(正反向解析不匹配的地址)用於daemon_list的有:ALL兩者都可以都可以用:EXCEPT (排除)           例: vim /etc/hosts.allow                in.telnetd: 172.16. EXCEPT 172.16.251.105

   f).案例

       如果我們要定義僅允許存取某一網段,則定義/etc/hosts.allow允許存取網段,在/etc/hosts.deny定義拒絕所有主機。

       示範控制:telnet

yum install telnet-server     ldd `which in.telnetd`  沒有顯示     ldd `which xinetd`   顯示有,telnet自己本身不監聽程式,而是由xinetd監聽,所有它是接受tcp_wrapper控制的。     chkconfig telnet on     service xinetd start     ss -tnl | grep 23 僅允許存取172.16網段:     vim /etc/hosts.allow          in.telnetd:     172.16.     vim /etc/hosts.deny          in.telnetd:     ALL     不用重啟,立即生效,因為工作在核心中的,和iptables一樣立即生效


總結:

   tcp_wrapper確實非常簡單而又易於配置。尤其是控制ftp服務時,強烈推薦,因為基於iptables的存取控制與tcp_wrapper相比,真的太複雜了。

本文出自 “狐狸胡” 部落格,請務必保留此出處http://7944938.blog.51cto.com/7934938/1405392

相關文章

聯繫我們

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