Linux中TCP wrapper的使用
Linux中TCP wrapper的使用
tcpwrapper的目的是对那些访问控制功能较弱的服务提供访问控制功能要想了解访问控制就必须先知道服务监听的概念:
服务监听的两种方式:
listen : socket 监听在套接字上提供服务
循环 不停歇的查看某个端口来提供服务
有两种方式来判断一个服务是否支持tcp wrapper:
1.通过查找库文件看是否有libwrap
ldd `which command`
2.查看是否连接到/etc/hosts.allow|deny
strings `which command` # 查看静态链接库
如果有/etc/hosts.allow
/etc/hosts.deny 就说明这个命令静态链接了tcpwrraper
tcpwrraper自身工作在内核,却可以通过这两个文件来提供访问控制
请求
↓
服务 --->/etc/hosts.allow ---> 如有有就放行
↓ 没有
/etc/hosts.deny ----> 如果没有就放行
↓
如果有明确的匹配条目拒绝
/etc/hosts.allow|deny文件格式:damon_list: client_list [:option]
匹配服务列表:damon_list
vsftpd: 192.168.0.
vsftpd,sshd,in.telnetd:
ALL
daemon@host
vsftpd@192.168.0.186
#可以简写192.168.0 代表192.168.0.0网段
#可以一次指定多个服务
#可以使用通配符ALL来指定所有的服务
#@只对某个主机来控制
匹配客户端列表clent_list
IP
network address
network/mask: mask不能使用长度格式 ,只能是有完全ip的格式
172.16.0.0--->172.16. 也可以简写网段
HOSTNAME
fqdn
.a.rog 表示a.org域内的所有主机
option 选项
spawn #可以通过spawn来实现日志定义
spawn echo ""
#下面定义一个条件,只要用户通过telnet登录就记录到一个日志
vim /etc/hosts.deny
in.telnetd:ALL EXCEPT 172.16.0.1: spawnecho "Login attemp(`date`) %u from %a attemp to login %A, the deamon is%d." >> /var/log/telnet.log
##注意不能在echo后面用: 分号在这里有特殊意义。
##可以通过man 5 hosts_access 来查看上述%的含义
常用的宏定义 MACRO
ALL #代表所有主机,或者所有服务
LOCAL #表示本地主机,非FQDN主机
KNOWN #表示可以被解析的主机
UNKNOWN #反向可以被解析的主机
PARANOID #正反向解析不匹配的主机
EXCEPT #排除某个主机或某个网络
-
怎么来控制vsftpd的访问
- 1. which vsftpd # 确定文件路径
- 2. vim /etc/hosts.deny # 改文件立即生效
- vsftpd: 172.16.100.100
- #假设仅允许172.16网段访问
- vim /etc/hosts.allow
- vsftpd: 171.16 # 只允许172.16.0.0/16网段
- vim /etc/hosts.deny
- ALL: ALL # 拒绝其他的用户登陆
这样就只有172.16.0.0网段可以访问了
控制SSH ,只允许192.168.0.32网段登陆,并且不允许192.168.0.32登陆
- vim /etc/hosts.deny
- ALL:ALL
- vim /etc/hosts.allow
- sshd: 192.168.0 EXCEPT 192.168.0.32
效果:
将/etc/hosts.deny 里面的ALL: ALL去掉就可以恢复登陆
1),在编译的时候明确表示能接受tcp wrapper的控制
通过ldd `which sshd`来查看
通过strings `which portmap`| grep hosts查看
2),必须是tcp协议
这个时候才能实现tcp wrapper的控制,虽然能功能范围少了一点,但是tcp wrapper配置起来要比iptables简单很多
/etc/hosts.deny
服务名 : 客户端名 [选项]
vsftpd: 192.168.0.
vsftpd,sshd,telnetd: 192.168.0.
All: 192.168.0.
daemon@host #指定只在某个特定的地址上进行控制比如:
vsftpd@192.168.0.186 #有多块网卡的情况下
IP
network address/mask
#网络地址(只能使用类似255.255.完全ip地址
格 式,不能使用位长度表示)
hostname #主机名称
.a.org #表示.a.org域内的所有主机
1),yum install vsftpd
2), service vsftpd start
3),vim /etc/hosts.deny 里面写入
vsftpd: 172.16.100.1
4),配置完立即生效,不需要重启服务
5),通过windows客户端进行认证
1),vim /etc/hosts.allow 写入: vsftpd: 172.16.
2), vim /etc/hsots.deny : vsftpd: ALL
telnet传输的过程是明文
telnet一般不允许管理员直接登录(可以先以普通身份登进去,然后su - root)
2),ls /etc/xinetd.d #里面会有telnet,由此说明telnet是接受超级进程xinetd控制
3),ldd `which xinetd` #可以发现超级守护进程是接受tcp wrapper控制的
4),chkconfig telnet on #注意这里只是说明下一次开机会自动启动,不能立即生效
5),service xinetd restart #通过重启超级进程来重启telnet
6),useradd gentoo
7),passwd gentoo
8),telnet 172.168.25.1测试
vim /etc/hosts.deny 写入: in.telnetd:ALL EXCEPT 172.16.0.1
vim /etc/hosts.deny 写入:
in.telnet:
ALL EXCEPT 172.16.0.1 : spawn echo "%u from %a attempt to login %A ,the
daemon is %d." >>/var/log/telnet.log
比如:
vim /etc/hosts.deny中写入 : in.telnetd: 172.16. :ALLOW
ALL:ALL #表示只允许172.16.网段使用telnet登录
Linux中TCP wrapper的使用的更多相关文章
- 查看linux中tcp连接数
一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数netstat -nat|grep -i "80"|wc -l 2)统计httpd协议 ...
- 设置linux中tcp默认的20秒connect超时时间(转)
无论你用任何语言或者是网络库,你都可以设置网络操作的超时时间,特别是connect.read.write的超时时间. 你可以在代码中把超时时间设置任意大小值,但是connect方法会有一点特殊. co ...
- 关于 linux中TCP数据包(SKB)序列号的小笔记
关于 SKB序列号的小笔记 为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq 一直没有找到seq 不清楚在那里初始化了,就 ...
- 查看linux中的TCP连接数【转】
转自:http://blog.csdn.net/he_jian1/article/details/40787269 查看linux中的TCP连接数 本文章已收录于: 计算机网络知识库 分类: ...
- Linux系统网络编程中TCP通讯socket--send导致进程被关闭
https://blog.csdn.net/dsanmux/article/details/52083403 https://blog.csdn.net/u011425939/article/deta ...
- 【翻译】TCP backlog在Linux中的工作原理
原文How TCP backlog works in Linux水平有限,难免有错,欢迎指出!以下为翻译: 当应用程序通过系统调用listen将一个套接字(socket)置为LISTEN状态时,需要为 ...
- TCP系列41—拥塞控制—4、Linux中的慢启动和拥塞避免(一)
一.Linux中的慢启动和拥塞避免 Linux中采用了Google论文的建议把IW初始化成了10了.在linux中一般有三种场景会触发慢启动过程 1.连接初始建立发送数据的时候,此时cwnd初始化为1 ...
- TCP系列15—重传—5、Linux中RTO的计算
之前我们介绍的都是协议中给出的RTO计算方法,下面我们看一下linux实现中RTO的计算方法.在linux中维护了srtt.mdev.mdev_max.rttvar.rtt_seq几个状态变量用来计算 ...
- Linux中,Tomcat 怎么承载高并发(深入Tcp参数 backlog)
一.前言 这两天看tomcat,查阅 tomcat 怎么承载高并发时,看到了backlog参数.我们知道,服务器端一般使用mq来减轻高并发下的洪峰冲击,将暂时不能处理的请求放入队列,后续再慢慢处理.其 ...
随机推荐
- 谓词--Predicate
去苹果的的技术官网搜索-Predicate就会找到相关的文档-Predicate Programming Guide 1,创建谓词时 %@是变量时不加单双引号,常量是加单引号,加双引号需要转义符号\ ...
- java基础知识----IO篇
写在前面:本文章基本覆盖了java IO的所有内容.java新IO没有涉及.文章依然以样例为主,由于解说内容的java书非常多了,我觉的学以致用才是真.代码是写出来的,不是看出来的. 最后欢迎大家提出 ...
- caffe神经网络框架的辅助工具(将图片转换为leveldb格式)
caffe中负责整个网络输入的datalayer是从leveldb里读取数据的,是一个google实现的很高效的kv数据库. 因此我们训练网络必须先把数据转成leveldb的格式. 这里我实现的是把一 ...
- 随机生成器、thread(暂停)、清屏定义
1.生成一个随机生成器 Random a = new Random(); //()可以填写随机生成器的种子,这个种子只能是整数(int) ); //()内的数字代表小于5的非负整数,包括零,例如0,1 ...
- 针对苹果最新审核要求 为应用兼容IPv6
本文授权转载,作者:我不是段誉(简书) 在WWDC2 015上苹果宣布iOS 9将支持纯IPv6的网络服务.2016年初开始所有提交到App Store的应用必须支持IPv6.而今年5月初,苹果宣布6 ...
- word排版的一些小技巧积累
先准备好样式 编辑前,可以先根据要求,设置好样式,可以免去编辑好后,再修改格式(这样要改好多文本的格式) docx doc的样式不能通用. .docx转.doc 从word2013自带的编辑公式,编辑 ...
- javascript 学习随笔3
<html> <head> <script type="text/javascript"> function startTime() { var ...
- System.IO
I/O 1.文件操作:File (1)void AppendAllText(string path, string contents) (2)bool Exist ...
- Cesium 获取当前视图范围
Cesium作为一个开源的WebGlobe解决方案已经很牛了,不过因为开发的资料不多,很多功能不知道怎么实现.下面记录下自己获取Cesium当前场景范围的方法(2维中对应的是extent). exte ...
- linux下java窗口,正确显示中文
Tip1 1.在 JAVA_HOME/jre/lib/fonts/ 下建立个目录 fallback 2.在 fallback 里弄个中文字体最简单ln一下就好了 比如: ln -s /usr/shar ...