您好,登錄后才能下訂單哦!
簡介
TCP wrappers 通常被稱為 wrappers,它是由 Wieste Venema 編寫,已經出現幾年了。其背后的思想很簡單,其要旨是可以在您的 AIX (UNIX/Linux) 主機上快速輕松地鎖定流行的通過 TCP 訪問的客戶端。
Wrappers 允許系統管理員控制 wrappers 支持的基于 TCP 的服務或守護進程的訪問。Tcpd 控制從 /etc/inetd.conf 中運行的 TCP 守護進程。不過,很多基于 TCP 的應用程序已加入 wrappers 支持(一般使用 libwrap 庫),并且能感知 wrapper;不通過 /etc/inetd.conf 進行控制也沒有關系。可以在 wrappers 下進行訪問控制的通常有 telnet、ssh、sendmail、ftp 包、pop3 和 vsftpd。
Wrappers 提供對基于 UDP 的連接的有限控制,不過我建議使用內置或第三方防火墻進行基于 UDP 的訪問。
1.首先我得了解程序是否支持tcp_wrapper,使用strings命令和ldd命令獲取hosts_access或libwrap
(1)并非所有服務均能由tcp_wrapper
(2)判斷某服務程序是否能夠由tcp_wrapper
動態編譯:
ldd 命令檢測其是否鏈接至libwrap庫上即可 # ldd `which sshd` | grep libwrap libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f6788fe8000)
靜態編譯:
strings /path/to/program # which rpcbind /sbin/rpcbind # strings /sbin/rpcbind | grep hosts_access hosts_access
2.tcp_wrapper配置文件語法格式:
daemon_list: client_list
daemon_list:
應用程序名稱;
應用程序列表:如果有多個,用逗號分隔即可;
ALL:匹配所有進程
client_list:
IP地址:172.16.100.100
主機名:www.opensamlee.com
網絡地址/子網掩碼:掩碼僅允許使用長格式,不允許使用CIDR格式
172.16. 表示 172.16.0.0/255.255.0.0
tcp_wrapper有幾個內置的Macro
用于client_list的有:ALL, KNOWN, UNKNOWN, PARANOID
用于daemon_list的有:ALL
EXCEPT: 可以用于client或daemon之中,起到排除功能
[:options]
在hosts.allow文件使用deny選項: 在hosts.allow文件定義拒絕規則
在hosts.deny文件使用allow選項:在hosts.deny文件定義放行規則
spawn命令調用:
echo
%c: user@host
%s: server@host
%h: 客戶端主機名
%p: 服務器上的進程的PID
#man 5 hosts_access:獲取其完整幫助信息
注意:echo的信息無需加引號,否則,命令替換可能不會進行
in.telnetd: ALL : spawn echo `date` login attempt from %c to %s >> /var/log/tcp_wrapper.log
3.tcp_wrapper匹配機制:
1、先檢查/etc/hosts.allow,如果被允許,則直接放行;
2、如果/etc/hosts.allow沒有匹配項,則檢查/etc/hosts.deny,如果被拒絕,則禁止訪問;
3、如果二者均無匹配,則放行
tcp_wrapper實踐應用案例:
本機ip為:172.16.100.7,
(1)僅放行172.16網段訪問本機telnet服務:
(2)僅放行172.16網段訪問本機telnet服務,但不允許172.16.100.8訪問
安裝telnet服務:
# yum -y install telnet-server
查看telnet程序依賴的工作鏈
# ldd `which in.telnetd` linux-vdso.so.1 => (0x00007fff450c1000) libutil.so.1 => /lib64/libutil.so.1 (0x00007f8055a31000) libc.so.6 => /lib64/libc.so.6 (0x00007f805569d000) /lib64/ld-linux-x86-64.so.2 (0x0000003541000000) # ldd `which xinetd` libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fe109c7e000)
啟動telnet服務:
# chkconfig telnet on # service xinetd start Starting xinetd: [ OK ] # ss -tnl |grep :23 LISTEN 0 64 :::23 :::*
定義tcp_wrapper規則文件---僅放行172.16網段訪問本機telnet服務:
# vim /etc/hosts.allow in.telnetd: 192.168.0. # vim /etc/hosts.deny in.telnetd: ALL
定義tcp_wrapper規則文件---僅放行172.16網段訪問本機telnet服務,但不允許172.16.100.8訪問
# vim /etc/hosts.allow in.telnetd: 172.16. EXCEPT 172.16.100.8 # vim /etc/hosts.deny in.telnetd: ALL 使用172.16.100.8主機訪問: # telnet 172.16.100.7 Trying 172.16.100.7... Connected to 172.16.100.7. Escape character is '^]'. Connection closed by foreign host.
2.本機ip:172.16.100.7
(1)sshd僅允許172.16.0.0/16網段訪問:
方法: 1、/etc/hosts.allow sshd: 172.16. 2、/etc/hosts.deny sshd: ALL
3.本機ip:172.16.100.7
telnet服務不允許172.16.0.0/16,但允許172.16.100.200訪問;其他客戶端不做控制。
方法1: 1、/etc/hosts.allow in.telnetd: 172.16.100.200 2、/etc/hosts.deny in.telnetd: 172.16.
方法2: /etc/hosts.deny in.telnetd: 172.16. EXCEPT 172.16.100.200
方法3: /etc/hosts.allow in.telnetd: ALL EXCEPT 172.16. EXCEPT 172.16.100.200 /etc/hosts.deny in.telnetd: ALL
3.本機ip:172.16.100.7
使用spawn命令調用記錄用戶訪問控制記錄信息:
/etc/hosts.allow 記錄登錄用戶日志: ##記錄允許172.16.主機訪問記錄 in.telnetd: 172.16. : spawn echo "somebody entered,`date`" >> /var/log/tcpwrapper.log ##記錄允許172.16.主機 且排除 172.16.100.8主機的訪問sshd記錄 sshd: 172.16. EXCEPT 172.16.100.8 :spawn echo "somebody entered,`date`" >> /var/log/tcpwrapper.log /etc/hosts.deny in.telnetd: ALL sshd: ALL
4.本機ip:172.16.100.7
(1)僅允許172.16.0.0/16網絡內的主機訪問vsftpd;但不允許172.16.200.8訪問
方法: /etc/hosts.allow vsftpd: 172.16. EXCEPT 172.16.200.8 /etc/hosts.deny vsftpd: ALL
5.本機ip:172.16.100.7
(1)僅允許172.16.0.0/16網絡內的主機訪問rsync;但不允許172.16.56.8訪問
方法: /etc/hosts.allow rsync: 172.16. EXCEPT 172.16.200.8 /etc/hosts.deny rsync: ALL
6.使用tcp_wrapper控制vsftp服務僅允許172.16.0.0網絡中的主機訪問,但要拒絕172.16.200.中的所有主機,對所有的拒絕訪問嘗試使用記錄日志:
方法: /etc/hosts.allow vsftpd: 172.16. /etc/hosts.deny vsftpd: 172.16.200. spawn echo `date` login attempt from %c to %s >> /var/log/tcp_wrapper_vsftpd.log
以上tcp_wrappers應用詳解所有內容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。