tcp wrapper 基於tcpd進程的存取控制
這是一個比iptables要簡單的設定存取控制的一種機制,他只需要
在/etc/hosts.allow和/etc/hosts.deny兩個檔案中進行簡單的設定
就能實現一定的存取控制策略。
這個存取控制使用有兩個要求,首先編譯的時候要接受tpc wrapper的
控制,其次還要是tcp協議。
查看服務依賴的庫檔案
ldd `which COMMAND` 如果依賴libwrap庫檔案就能解說tcp wrapper控制
string `which COMMAND` 只要出現了/etc/hosts.allow、/etc/hosts.deny檔案
就說明串連到了libwrap庫,這樣也是接受了tcp wrapper 控制
eg:[root@mail ~]# ldd `which vsftpd` | grep libwrap
libwrap.so.0 => /lib/libwrap.so.0 (0x00110000)
首先要瞭解一下hosts.allow、hosts.deny兩個檔案了,規則在這兩個檔案中
定義,一個是拒絕,另一個是允許,系統會在這兩個檔案中尋找匹配的條目
順序如下:hosts.allow-->hosts.deny,如果都沒有的話,預設是允許的。
這兩個檔案的格式如下:
daemon_list:client_list[:options]
eg:vsftpd:192.168.1.100 //禁止1.100的主機使用ftp服務
daemon_list常用的格式有下面的:
vsftpd,sshd,in.tlenetd 有多個進程的話,就是用逗號隔開
ALL 所有的
vsftpd@192.168.1.100 //指定地址的指定進程
client_list格式如下:
IP
NETWORK
eg:192.168.1.0/255.255.255.0 or 192.168.1.
HOSTNAME
FQDN eg:mail.luowe.com
.a.org
MACRO
ALL 所有的
LOCAL 本地的主機
KNOWN 能解析的主機
UNKNOWN 不能解析的
PARANOID 可以解析就是不能匹配
EXCEPT 除了
options
spawn
綜合例子:
in.telnetd: ALL EXCEPT 172.16.100.1: spawn echo "Login attempt(`data`) %u from %a attempt to login %A, the daemon is %d" >>/var/log/telnet.log
telnet的一點小知識:
telnet是一個遠程登入的服務,是一個非獨立守護進程,接受超級守護進程的管理
安裝telnet服務
#yum install telnet-server
在/etc/xinted.d/telnet中有關於telnet的預設設定
#vim /etc/xinted.d/telnet修改一下內容
disable = no
#service xinetd restart
預設的情況下,telnet不允許root直接登入,而是使用普通使用者su過去。
本文出自 “IT夢-齊-分享” 部落格