访问控制 tcpwrapper来实现 它是工作在传输层,对于进出本主机的访问某特定服务的连接基于规则进行检查的访问控制工具 以库文件的形式来实现的 (libwrap.so) 某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的。
使用ldd 查看依赖关系 是否依赖于libwrap.so 例如ldd `which sshd` | grep libwrap
或者使用strings检查这个二进制文件编译时编译进来的属性信息 看是否把libwrap以静态编译进此程序 例如 strings `which portmap` | grep hosts
/etc/hosts.allow /etc/hosts,deny如果有着两个文件的话 说明受tcpwrapper控制
TCP WRAPPER两个重要配置文件 /etc/hosts.allow /etc/hosts.deny
格式:daemon_list: client_list: [:options]
默认规则是允许。 匹配所有服务用ALL
daemon_list 要写成二进制文件的名字 例如 不能写http 要写httpd
client_list:接受ip地址 例表示网段可以写成192.168.1. ; 接受基于网络和掩码的(不被允许192.168.1.0/24,允许192.168.1.0/255.255.255.0) ; 可以使用主机名称来表示 例www.a.com,或者.a.com(很少用到) ; 基于NIS域的方式来实现 例@notexample
telnet基于tcp实现 监听23端口 进程:in.telnetd, telnet-server
先启动超级守护进程 xinetd 开启某个服务chkconfig xinted on
所有接受超级守护进程管理的非独立守护进程都在/etc/xinetd.d目录下
接受的命令ALL LOCAL UNKNOWN KNOWN PARANOID EXCEPT除了
EXCEPT还可以表示嵌套 例如:hosts.deny中写ALL EXCEPT192.168.1.0 EXCEPT192.168.1.1表示都被拒绝除了1.0网段但是除了1.1 说明1.1被拒绝
spawn twist 定义具体内容 severity 用于定义访问日志的级别
banners 创建个目录在文件中写些信息 用banners调用
超级守护进程 xinetd
xinetd 是个进程 代为管理一些不常访问的服务 以节省资源
telnet:23 提供telnet二进制程序在/usr/sbin/in.telnetd
xinetd也是个进程 主配置文件在/etc/xinetd.conf
凡是写在/etc/xinetd.d目录下的文件都被认为是配置文件的一部分 因为在/etc/xinetd.conf中最后一行有includedir /etc/xinetd.d/* 每一个文件都代表一个服务
启动超级守护进程脚本 /etc/init.d/xinetd
service 后面定义服务 里面一些选项
(disable 定义服务是否被启用
socket_type 套接字类型 两种:stream基于tcp的服务 dgram基于udp的链接
protocol 定义服务对应的协议
wait =no或者yes 用于确定当前服务是单线程还是多线程 yes表示单线程服务,必须基于tcp的协议 no表示多线程服务
user 启动服务时以哪个用户的身份运行并启动它
server 用于启动这个二进制的程序是谁
only_from 仅允许来自于哪些地址的客户端来访问当前服务 不做限制默认允许所有
no_access 仅拒绝 做黑名单,明确定于哪些地址不允许访问
access_times 定义在什么时间可以访问服务 格式:hour:min-hour:min
log_type 日志类型 log_on_success log_on_fail
bind 用于定义服务只监听在什么地址上的 或者用interface来指定
banner 格式banner=某个文件 用于启动服务时显示哪个文件信息
per_source 用于限制来源于同一个ip地址时最多能允许多少个并发连接 UNLIMITED表示无限制