一、TCPWRAPPER(立即生效)
在传输层,对于进出本主机访问某特定服务的连接,基于规则进行检查的一个访问控制工具,以库文件形式实现;某
进程是否接受libwrap.so的控制,取决于发起此进程的程序在编译时是否针对libwrap.so进行编译的(某进程在编译时连接到tcpwrapper)。
***************************
1、一个二进制程序依赖哪些库
如ldd `which sshd`
2、检查二进制程序是否接受tcpwrapper控制
1)ldd `which sshd` | grep libwrap 动态链接方式连接到libwrap
2)strings `which portmap` | grep hosts
(编译时的属性信息。出现/etc/hosts.allow,/etc/hosts.deny即为,以静态链接方式连接到libwrap)
注:portmap为二进制程序提供rpc进程
3、语法规则:daemon_list: client_list [:options]
/etc/hosts.allow
如:sshd: 192.168.0.0/24 或 sshd: 192.168.0.
/etc/hosts.deny
如:sshd: ALL
——————————————————
自上而下匹配,若无匹配,默认规则放行
4、daemon_list:
二进制程序可执行文件名字,非程序名字,多个服务用", "隔开。ALL通配所有服务
如:in.telnetd: 而非telnet:
5、client_list:
1)IP(192.168.1.2,192.168.1.)
2)network/netmask(不能用/24,只接受长格式/255.255.255.0)
3)hostname:www.a.com,.a.com (用的少)
4)netgroup:@notexample (NIS域)
6、【:options】 ---在allow中deny,在deny中allow
如/etc/hosts.allow
in.telnetd: 192.168.1.
in.telnetd: ALL: DENY
7、宏定义:
LOCAL,KNOWN,UNKOWN,PARANOID
ALL
EXCEPT(可被嵌套) 如:in.telnetd: ALL EXCEPT 192.168.0. EXCEPT 192.168.0.1
8、
man 5 hosts_access
1)spawn shell命令--子命令中执行,不影响原命令
如,sshd: 192.168.0.: spawn /bin/echo `date` %c %d >> /var/log/tcpwrap.log
2)twist shell命令--影响原命令,改变动作
如,sshd: 192.168.0.: twist /bin/echo "421 Connection prohibited."
9、日志记录:
vim /etc/syslog.conf 可自己定义
severity定义级别(默认级别authpriv.info)
severity [facility.]priority
如:sshd: ALL: severity local7.info
10、banners信息提示
in.telnetd: ALL: banners /some/directory
vim /some/directory/in.telnetd
如:vim /var/tcpwrapper/in.telnetd
vim /etc/hosts.allow
in.telnetd: ALL: banners /var/tcpwrapper
二、实验
1、
1)xinetd(超级守护进程)
特点:独立进程,启动后永驻内存直到进程结束,响应快,耗资源。管理非独立守护进程。接受tcpwrapper控制。
service xinetd start
chkconfig xinetd on
2)非独立守护进程
特点:响应慢,节省资源,由xinetd统一管理
2、
Telnet,tcp,23,plaintext明文传输
软件包telnet-server,二进制程序in.telnetd
3、yum install xinetd
/etc/xinetd.d 查看被超级守护进程监听的所有非独立守护进程
那些非独立守护进程默认关闭,需要开启
如chkconfig telnet on
chkconfig --list
注:
vim /etc/hosts
192.168.0.45 station45.example.com station45
不能使用管理员直接登录