歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux的另一個訪問控制:TCP Wrapper

Linux的另一個訪問控制:TCP Wrapper

日期:2017/2/28 16:08:03   编辑:Linux教程

1.Tcp Wrapper是一個基於tcpd訪問實現的訪問控制工具,它能夠訪問大部分基於tcp的服務,一般來講,它只能實現那些在編譯的時候明確定義接受tcpd管理才行。

他們的工作原理類似於這樣的情況:一般來講,所謂服務監聽在某個套接字上進行監聽的服務,其實都是通過一個循環來實現的,這個循環就是不停的查看在某個端口上有客戶端的請求到來。然後根據客戶端的請求完成不同的任務。受tcpd管理的服務,可以是獨立的,也可以是非獨立的。當客戶端的請求到來的時候,先由tcpd來檢查,之後才交由端口。

2.如何知道我們的哪些程序可以被tcpd來控制呢?

一個程序到底接受不接受控制,可以用兩種方式來查看

1.ldd `which command` | grep wrap :只要編譯的時候,動態鏈接到wrap這個庫上就可以決定是接受控制的

2.strings `which command` | grep hosts :也能夠查看是否接收控制。不過它的顯示是這樣子的。裡面應該有以 hosts開頭的文件。

只要出現了/etc/hosts.allow和/etc/hosts.deny則表明它支持tcp wrapper來實現訪問控制。

其實,tcp wrapper的控制,正是基於這樣的方式實現的。

只要寫在/etc/hosts.allow裡,一般都是允許訪問的,寫在/etc/hosts.deny裡,就是拒絕訪問的。

3.當一個客戶端到來的時候,是如何檢查的呢?

首先去檢查我們的/etc/hosts.allow看這個文件有沒有跟這個完全匹配到的條目,如果有,則直接通過訪問,如果沒有則進而檢查deny這個文件,如果deny文件中有,則明確拒絕訪問,否則,當兩個文件都沒有匹配的時候,默認是允許的。

4.如何去定義訪問控制:

格式:daemon_list: client_list <:options}

進程:客戶端列表 <:選項>

4.1進程如何表示:這裡不能指定進程名,必須指定進程的那個可執行文件的文件名

4.1.1.可以是單個的可執行文件的名字

vsftpd: 192.168.0.

4.1.2.可以是多個服務的列表

vsftpd,sshd,in.telnetd:

4.1.3.可以使用通配符ALL,表示所有

ALL:

4.1.4.只在某個特定的地址上的某個服務限定

[email protected]

在實現控制某個特定服務服務的時候,要實現依賴於這個服務的其他服務也能夠服務。

4.2客戶端列表如何定義

4.2.1.可以使用單個的IP

IP

4.2.2.也可以使用網絡地址

4.2.2.1:使用網絡地址加掩碼的方式來實現,這個掩碼必須是長格式的。network/mask :不能使用長度格式,只能使用完全ip地址的格式

4.2.2.2:完全可以使用網絡地址的類似於172.16.則它會自動識別成172.16.0.0/255.255.0.0

4.2.3:可以使用主機名,比如 hostname

4.2.3.1:可以使用單個主機名 fqdn

4.2.3.2:可以使用域名,比如 .a.org 這表示a.org域內的所有主機

4.2.4:可以使用常用的宏定義:

ALL:表示所有主機/所有服務

LOCAL:本地主機,沒有域名的主機,非FQDN的主機名稱格式

KNOWN,UNKNOWN所有可解析的主機、不能被解析的主機

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

EXCEPT:除了XX主機

Copyright © Linux教程網 All Rights Reserved