Linux进阶_TCPWrappers介绍
本意内容
- TCP_Wrappers介绍
- TCP_Wrappers的使用
- 基本语法:
- 测试工具:
- 实验:
TCP_Wrappers介绍
作者:Wieste Venema,IBM,Google
工作在第四层(传输层)的TCP协议
对有状态连接的特定服务进行安全检测并实现访问控制
以库文件形式实现
- 某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的
- 判断服务程序是否能够由tcp_wrapper进行访问控制的方法:
ldd /PATH/TO/PROGRAM|grep libwrap.so
TCP_Wrappers的使用
- 配置文件:
在/etc/hosts.allow中
添加,允许登录,并记录日志
在/etc/hosts.deny
中添加,拒绝登录,并记录日志 - 帮助参考:
man 5 hosts_access
,man 5 hosts_options
- 检查顺序:
hosts.allow
,hosts.deny
(默认允许)
注意:一旦前面规则匹配,直接生效,将不再继续
基本语法:
Daemon_list@Host: Client_list [ :Options :Option… ]
- 先来看看一些简单的示例(注意修改的哪个文件):
#允许192.168.1.0/24的主机访问sshd
[root]$ vim /etc/hosts.allowsshd: 192.168.1.#拒绝所有访问
[root]$ vim /etc/hosts.denysshd: ALL#仅仅仅仅允许192.168.1.0/24的主机访问sshd
[root]$ vim /etc/hosts.allowsshd: 192.168.1.
[root]$ vim /etc/hosts.denysshd: ALL#禁止192.168.1.0/24的主机访问telnet和vsftpd服务
[root]$ vim /etc/hosts.allowvsftpd,in.telnetd: 192.168.1.
Daemon_list@Host: Client_list [ :Options :Option… ]
Daemon_list@Host
格式- 单个应用程序的二进制文件名,而非服务名,例如vsftpd
- 以逗号或空格分隔的应用程序文件名列表,如:sshd,vsftpd
ALL
表示所有接受tcp_wrapper控制的服务程序
主机有多个IP,可用@hostIP来实现控制
如:in.telnetd@192.168.0.254
Client_list
格式(以逗号或空格分隔的客户端列表)- 基于IP地址:192.168.10.1
- 网络地址:192.168.1. #相当于192.168.1.0/24(CentOS7)
- 基于网络/掩码:192.168.0.0/255.255.255.0
- 基于主机名:www.magedu.com .magedu.com 较少用
- 基于网络组(NIS域):@mynetwork
- 内置变量:ALL,LOCAL,KNOWN,UNKNOWN,PARANOID
[:options]
选项:- 帮助:man 5 hosts_options
- deny 主要用在/etc/hosts.allow定义“拒绝”规则
如:vsftpd: 172.16. :deny - allow 主要用在/etc/hosts.deny定义“允许”规则
如:vsftpd:172.16. :allow - spawn 启动一个外部程序完成执行的操作
- twist 实际动作是拒绝访问,使用指定操作替换当前服务,标准输出和ERROR发送到客户端,默认至/dev/null
- EXCEPT用法示例:排除某些内容
#禁止172.16.0.0/16网络访问我,排除172.16.100.0/24和172.16.100.1之外
vsftpd: 172.16. EXCEPT 172.16.100.0/24 EXCEPT 172.16.100.1
测试工具:
tcpdmatch [-d] daemon[@host] client
-d
测试当前目录下的hosts.allow和hosts.deny示例
sshd: ALL :spawn echo "$(date +%%F) login attempt from %c to %s,%d" >>/var/log/sshd.log
说明:
%c
客户端信息
%s
服务器端信息
%d
服务名
%p
守护进程的PID
%%
表示%
vsftpd: 172.16. :twist /bin/echo “connection prohibited”
实战一下
lastb | awk '!/^btmp|^$/{ip[$3]++}END{for(i in ip){if(ip[i]>=4){system("echo sshd:"i">> /etc/hosts.deny")}}}'
实验:
实验环境
主机|IP
-|-
host A| 172.16.10.10
host B| 172.16.10.20实验之前我们还验证下sshd服务是否依赖libwrap库
ldd /usr/sbin/sshd | grep libwrap
host A
- 先来试试host A 能不能连接host B
ssh 172.16.10.20
#连接成功
host B
- 编辑配置文件
/etc/hosts.deny
,
[root]$ vim /etc/hosts.deny
sshd:172.16.10.10
host A
- 然后hostA再连接hostB,就会被拒绝了,2个IP都不行
ssh 172.16.10.20
#或
ssh 182.168.88.77
host B
- 来给host B添加一个ip,再修改下配置文件
/etc/hosts.deny
,实现对某个地址的访问控制
ip a a 172.16.10.200 dev eth1vim /etc/hosts.denysshd@172.16.10.20:172.16.10.10
- 还可以控制多个服务,用逗号隔开
vim /etc/hosts.denysshd,in.telnetd:172.16.10.10
- EXPECT的用法,排除内容
sshd:172.16.10. EXCEPT 172.16.10.10
- 还有更多的用法
# 禁止172.20.1.开头的所有ip地址
sshd:172.20.1.
#禁止172.20.1.0/24 网段内的所有主机(cnetos7支持此种写法)
ssh:172.20.1.0/24
#禁止172.20.1.0/255.255.255.0网段内的所有地址
ssh:172.20.1.0/255.255.255.0
#禁止所有ip地址
ssh:ALL
#禁止不包含.号的主机名的主机访问
ssh:LOCAL
#禁止所有主机名可以解析的地址
ssh:KNOW
#禁止不能解析的域名主机
ssh:UNKNOW
#禁止域名解析和反解析不匹配的主机
ssh:PARANOID
Linux进阶_TCPWrappers介绍相关推荐
- Linux 进阶笔记(二)
这几篇博文主要记录博主的Linux 学习之路,用作以后回顾和参考.大家可以选择略过也可以作参考. (一)Linux 初步笔记 (二)Linux 进阶笔记(一) (三)Linux 进阶笔记(二) (四) ...
- Linux 进阶笔记(一)
这几篇博文主要记录博主的Linux 学习之路,用作以后回顾和参考.大家可以选择略过也可以作参考. (一)Linux 初步笔记 (二)Linux 进阶笔记(一) (三)Linux 进阶笔记(二) (四) ...
- Linux进阶之路————磁盘查询
引言 承接<Linux进阶之路----Linux磁盘分区与挂载>,本文介绍实际生产中对于磁盘的监控和查询. 一.查询磁盘整体使用情况 基本语法: df -h 该命令会显示包括我们手动挂载的 ...
- Linux进阶之路————组管理与权限管理
引言 这篇博客将会总结一些关于组的概念和相关操作,以及文件的一些权限管理. 一.组的基本介绍 在前面的博文<Linux进阶之路----用户管理>已经有提到用户组的概念,实际上,组的概念并不 ...
- Linux进阶之路————Linux运行级别(重置密码)
引言 前面的<Linux进阶之路----开机.重启和用户登录注销>已经简单介绍过Linux系统运行级别的概念,今天来详细介绍和总结一下Linux的运行级别. inittab配置文件 在配置 ...
- Linux进阶篇--磁盘分区管理
Linux进阶篇–磁盘分区管理 11.1 磁盘基础介绍 设备文件 * I/O Ports:I/O设备地址 * 设备类型: 块设备:block,存取单位"块",来自于磁盘 字 ...
- Linux常用命令介绍及使用
Linux初级指令 ls --List ls 介绍 这是我学Linux的第一个命令,相信也是很多人学习Linux的第一个命令.ls全称list. List information about the ...
- 19.1 Linux监控平台介绍;19.2 zabbix监控介绍;19.3,19.4 安装zabbi
19.1 Linux监控平台介绍 常见开源监控软件: 1. cacti.nagios.zabbix.smokeping.open-falcon等等 2. cacti.smokeping偏向于基础监控, ...
- linux监控平台介绍、zabbix监控介绍、安装zabbix
linux监控平台介绍 常见开源监控软件 cacti.nagios.zabbix.smokeping.open-falcon 等等. nagios和zabbix流行度很高. cacti.smokepi ...
最新文章
- Linux电源管理(10)_autosleep
- Antdv日期选择组件国际化问题
- vba 定义类_VBA中类的介绍及应用简介
- uni-app运行编译报错
- JEB 无源码调试 以dvm smali字节码方式,Demo尝试
- java中的char类型所占空间
- win7未能成功安装驱动服务器,win7插入鼠标提示未能成功安装设备驱动程序的解决办法...
- 计算机图片照片查看器为何打不开,电脑看相片时照片查看器打不开怎么办
- 智慧云教育平台实战项目笔记
- 基于VB2008的winsocket控件网络编程
- 齐次线性方程组、齐次方程、齐次多项式
- python求极限中有算术平方根如何表达_Python求算数平方根和约数的方法汇总
- NginxLua实现WAF防火墙
- 2022年湖南省自考考试学前教育幼儿园课程练习题及答案
- 用友U8案例教程总账前台操作
- Metric评价指标-Embedding Similarity
- python3 TypeError: 'map' object is not subscriptable
- redis学习--三种特殊数据类型,GEO地理位置,HyperLogLog,BitMap
- python发送邮件(一)
- 10分钟,我写完了8小时的CSS样式,我真棒!
热门文章
- 金三银四:蚂蚁金服面试题及答案之一面(持续更新)
- 2020熔化焊接与热切割作业考试题库及熔化焊接与热切割考试试题
- VSCode 英文转换成中文显示
- mysql com_select_mysql学习一之SELECT语句
- 中国省市 插入sql语句
- ContentResolver
- lda 可以处理中文_LDA主题模型,希拉里邮件门文本分析
- android彩蛋长按无反应,Android TextView长按复制功能失效解决办法
- mysql修改密码报错问题以及远程工具连接华为云数据库报错问题
- 有没有比说“晚安”更华丽的句子?