tcpwapper: <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
工作在传输层、对于进出本机访问某特定服务的连接基于规则进行检查的一个访问控制工具,
以库文件的形式,某进程是否接受libwrap的控制取决于发起此进程的程序时是否针对libwarp进行编译的
命令:
ldd 查看是否有libwrap.iso文件 或
strings which portmap | grep hosts
显示有hosts.allow和hosts.deny就表示接受tcpwapper的控制
配置文件:
/etc/hosts.allow |hosts.deny
格式:
进程列表daemon-list:client-list [:options] <--可选 多个选项有:隔开
sshd:192.168.1.0
规则:
系统先检查allow文件再是deny文件,默认为allow
写服务要是可执行的二进制程序,不是服务本身 多个服务有,隔开
sshd,in.telnetd: 192.168.1.0| 192.168.1.
client-list: 可以使用ip 具体主机 网段
网络:长格式的 192.168.1.0/255.255.255.0
主机名称:www.a.com 或 a.com(前一个字符通配)
基于NIS域: @netexample
tcpwarpper上的telnet:
telnet: tcp 23 非独立守护进程 依赖于xinetd超级守护进程
区别:独立 :一旦启动将永驻内存直到关闭
非独立:启动慢 节省资源
接受xinetd管理的非独立进程:
/etc/xinetd.d/
配置:
yum install xinetd telnet-server
service xinetd start
chkconfig xinetd on
chkconfig telnet on
chkconfig --list
service telnet restart 启动之前xinetd必须启动
测试: 关闭selinux
vim /etc/hosts
192.168.0.124 station124.example.com station124
物理机上telnet 192.168.0.124
登陆时默认root不能直接登陆 要用普通用户
telnet访问控制:
/etc/hosts.deny
in.telnetd: 192.168.0. 拒绝192.168.0.0网段访问该服务
in.telnetd: 192.168.0. EXCEPT 192.168.0.124 只允许192.168.0.0网段的124访问
会立即生效
/etc/hosts.allow
in.telnetd: 192.168.0.124 只允许192.168.0.0网段的124访问
例子:
/etc/hosts.deny
in.telnetd: ALL EXPECT 192.168.0.0 EXCEPT 192.168.0.3
拒绝192.168.0.0网段的3访问其他允许
规则参数:
/etc/hosts.allow
in.telnetd: 192.168.1. :DENY 直接拒绝192.168.1.0访问
仅允许192.168.1.0访问:hosts.allow中定义
in.telnetd: 192.168.1.
in.telnetd: ALL:DENY
spawn: 子进程运行的 匹配到时不按照默认规则执行 而是安额外的命令执行 shell命令
in.telnetd:192.168.0.:spawn /bin/echo `date` %c %d >>/var/log/tcpwrap.log
%c : 来自于客户端信息
%d : 守护进程的名字
%s : 主机上的服务
%h :仅匹配客户端的主机名
%p :客户端的pid
twist:登陆服务将该进程时转换成发起的命令 起到禁止使用服务的功能
/etc/hosts.allow
in.telnetd:192.168.0.: twist /bin/echo "421 not connection "
severity 记录级别修改allow
默认日志记录在/var/log/sucure
in.telnet: ALL: severity local7.info
查看在etc/syslog.conf在/var/log/boot.log中
banner 欢迎信息
in.telnetd:ALL: banners /var/tcpwapper/in.telnetd
文件要与服务二进制文件对应
xinetd :超级守护进程 不太繁忙的服务才会用到该进程,帮助其他非独立进程监听 本身并不会相应用户的请求
配置文件:
/etc/xinetd.conf
defaults 定义的默认服务选项
/etc/xinetd.d 也作为器配置文件的一部分
在非独立进程定义的默认用自身的选项 没定义的继承/etc/xinetd.conf默认值
开启非独立服务 :chkconfig 服务名 on
service 服务名 restart
非独立进程定义格式:
service 服务名 {
}
非独立守护进程配置参数:
+= 在继承默认值的基础上再多加属性
-+ 在继承默认值的基础上去掉该属性
= 精确匹配
disable = yes 服务关闭 no 开启服务
socket_type 套接字类型
stream:基于tcp连接的 dgram:基于udp连接的
protocol 服务开启使用的协议
wait = yes 单线程的服务(tcp) no 多线程服务(tcp udp)
user = 启动该服务以哪个用户运行
server = 服务对应的二进制文件
server_args 启动服务传递的额外选项作为启动选项
only_from = 只允许哪些客户端来访问该服务 白名单 不做默认全部
no_access = 不允许哪些client访问该服务 黑名单
不允许192.168.0.1访问该服务
onle_form = 192.168.0.0/24
no_access = 192.168.0.1
两个参数为最佳匹配batter match:最接近的先被匹配 与次序无关
access_times = 时间控制
格式:小时:分钟-小时:分钟 13:00-23:00
log_type 日志类型 SYSLOG 和 FILE /var/log/telnet.log
log_on_success 记录成功登陆和退出的信息
log_on_failure 记录不能登陆的信息
bind 绑定
bind 192.168.0.23 只监听23这个ip 也可以时网卡接口
banner 欢迎信息
banner = /tmp/telnet
per_source = 做资源限制的
per_source = 2 同一个ip能发起并发连接为2个
cps = 某个时刻只允许发起的并发连接
cps = 50 10 响应50个并发连接多余50个则等待10s钟
测试时:清空/etc/hosts.allow hosts.deny
重启xinetd服务
转载于:https://blog.51cto.com/jingmu/508050