tcp_wrapper

tcp_wrapper知識整理


一、tcp wrapper簡介

 tcp wrapper是一種訪問控制工具,類似於iptables可以作訪問控制。

 tcp wrapper只能對基於tcp協議的服務作訪問控制,但並不是所有基於tcp協議的服務都能實現用tcp wraper作訪問控制。

 tcp wrapper實現訪問控制主要依靠兩個文件,一個是/etc.hosts.allow文件,另一個是/etc/hosts.deny文件.從文件的名字上可以理解:一個是定義允許的,一個是定義拒絕的。那這兩個文件生效的次序是怎樣的呢?

wKioL1nNruPAdm2UAAMWHrdFXz4564.jpg

通過圖示應該很容易理解,首先檢查hosts.allow文件中是否有匹配的規則。如果有匹配的規則,則允許訪問,如果沒有匹配的規則,則檢查hosts.deny文件中是否有匹配的規則,如果有匹配的規則,則拒絕訪問,如果沒有匹配的規則,則視爲默認規則,默認規則則爲允許,所以允許訪問。


二、配置文件的格式:

daemon_list : client_list [[[: option] : option] ...]


daemon_list:

注意:必須是應用程序文件的名稱;即存放於/usr/sbin目錄中的文件名;


1.單個應用程序文件名稱:

如:vsftpd

2.程序文件的名稱列表,以逗號分隔:

如:sshd, vsftpd

3.ALL:不加區分的表示所有受tcp_wrapper控制的應用程序;


client_list:

1.單個IP地址或主機名,如果使用主機名,則必須保證本機可以解析;

2.網絡地址:以前綴長度表示的掩碼無效(172.16.0.0/16)

a) 如果有掩碼,則必須使用完整格式的掩碼;

如:172.16.0.0/255.255.0.0

b) 可以使用簡短格式:

如:172.16.

3.內置的訪問控制列表:

ALL:所有的主機;

KNOWN:所有能被當前主機正確解析的主機名;

UNKNOWN:所有不能被當前主機正確解析的主機名;

PARANOID:正向解析和反向解析結果不一致所有主機;


: option

deny:拒絕,主要用於hosts.allow文件,定義拒絕訪問規則;

allow:允許,主要用於hosts.deny文件,定義允許訪問規則;

spawn:生成,發起,執行;



實例:

sshd服務不允許172.16.0.0/16,但允許172.16.1.3訪問:


方法一:

1、/etc/hosts.allow

sshd : 172.16.1.3

2、/etc/hosts.deny

sshd : 172.16.


方法二:

/etc/hosts.deny

sshd : 172.16. EXCEPT 172.16.1.3


方法三:

1、/etc/hosts.allow

sshd : ALL EXCEPT 172.16. EXCEPT 172.16.1.3

2、/etc/hosts.deny

sshd : ALL


三、擴展選項:

 spawn使用示例:

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


%c: Client  information:  user@host,  user@address,  a  host name, or just an address, depending on how much information is available.

%s: Server  information:  daemon@host, daemon@address, or just a daemon name, depending on how much information is available.

%h: client hostname

%p: server PID 


實例:

用172.16.1.2主機ssh登陸172.16.1.3主機

/etc/hosts.allow

sshd : ALL : spawn echo `date` form %c to %s >> /var/log/tcp_wrapper.log

172.16.1.2登陸後

[root@zj03 ~]# cat /var/log/tcp_wrapper.log 

wKioL1nNrwagWvXYAAATh9ikA94746.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章