Liunx-Tcp Wrapper-访问控制工具

2024-05-11 14:04

本文主要是介绍Liunx-Tcp Wrapper-访问控制工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

主要功能

工作原理

配置示例

允许所有来自特定 IP 范围的访问

拒绝所有其他访问

允许特定服务来自特定域名的访问

拒绝特定 IP 地址的访问

注意事项

应用范围

 查看某一个程序是否支持 TCP wrapper

Telnet 

用途

1. 远程登录

2. 网络诊断

3. 测试网络服务

安全性

Telnet与SSH的区别 

安全性

数据压缩

端口转发和隧道

用途

功能性

端口

常见使用场景

总结


TCP Wrapper 是一个在 Linux 和 UNIX 系统中常见的安全工具,用于控制对网络服务的访问。它主要用于为网络服务(如 FTP、SSH、SMTP、HTTP、Telnet 等)提供基本的访问控制机制,通常通过配置文件 /etc/hosts.allow/etc/hosts.deny 来实现。

/etc/hosts.allow   --允许
/etc/hosts.deny    --拒绝

主要功能

TCP Wrapper 的主要功能包括:

  1. 访问控制:允许或拒绝对网络服务的访问。可以根据客户端的 IP 地址、主机名或域名来进行控制。
  2. 日志记录:记录对网络服务的访问,包括成功和被拒绝的访问。
  3. 灵活的策略:可以配置复杂的访问策略,允许或拒绝特定来源的访问。

工作原理

TCP Wrapper 在启动网络服务时,充当服务进程与外部请求之间的中间人。它首先检查访问请求,并根据配置文件中的规则决定是允许还是拒绝访问。

以下是 TCP Wrapper 工作原理的简要描述:

  • 当请求到达受保护的服务时,TCP Wrapper 会读取 /etc/hosts.allow 文件,以检查请求来源是否在允许列表中。如果匹配,则允许访问。
  • 如果请求未在 /etc/hosts.allow 中找到匹配项,则 TCP Wrapper 继续检查 /etc/hosts.deny 文件,以查看请求是否在拒绝列表中。如果匹配,则拒绝访问。
  • 如果请求既不在允许列表中,也不在拒绝列表中,默认行为通常是允许访问。如果两个配置中有冲突,先匹配中的优先,也就是hosts.allow中的配置优先。

配置示例

允许所有来自特定 IP 范围的访问

# 在 /etc/hosts.allow 中 
sshd: 192.168.1.0/24

拒绝所有其他访问

# 在 /etc/hosts.deny 中
ALL: ALL

允许特定服务来自特定域名的访问

# 在 /etc/hosts.allow 中 
smtp: .trusted.com

拒绝特定 IP 地址的访问

# 在 /etc/hosts.deny 中 
httpd: 10.0.0.123

注意事项

  • TCP Wrapper 通常用于保护老式或不支持内置访问控制的服务。现代服务可能具有更复杂的安全功能,因此不再需要 TCP Wrapper。
  • 在配置 TCP Wrapper 时,必须小心操作,以避免误配置导致服务不可用或意外的安全漏洞。

应用范围

TCP Wrapper 可以用于许多网络服务,TCP warpper要看该应用是否依赖libwrap.so这个库文件。尤其是那些基于 inetd 和 xinetd 的服务。例如tcpwrapper可以控制ssh服务,因为实现ssh协议的sshd程序依赖了libwarp.so库文件,这包括但不限于: 

  • Telnet
  • FTP
  • SMTP(邮件)
  • HTTP
  • SSH
  • NFS(网络文件系统)
  • SNMP(简单网络管理协议)

对于现代服务,许多已经有了内置的访问控制和安全机制,如防火墙、IP 地址过滤、认证和授权等。因此,在这些服务中,TCP Wrapper 的作用相对减少了。

因此,尽管 TCP Wrapper 曾在过去起到重要作用,但在现代系统中,通常建议使用更复杂和灵活的安全工具来确保系统安全。TCP Wrapper 仍可能用于某些老式或特殊环境中,但需要小心配置和使用.

 查看某一个程序是否支持 TCP wrapper

ldd 命令用于显示一个可执行文件所链接的共享库。通过运行 ldd 命令来查看某个程序是否链接到 libwrap.so,以确定它是否支持 TCP Wrapper。

[root@localhost ~]# ldd `which sshd` | grep wraplibwrap.so.0 => /lib64/libwrap.so.0 (0x00007f12ebbe8000)
[root@localhost ~]# ldd `which httpd` | grep wrap   
#httpd就不用,所以不支持,当然先安装这个包再做实验
[root@localhost ~]# 

Telnet 

Telnet 是一种古老的网络协议和命令行工具,用于通过网络与远程主机进行文本通信。它最初设计用于在远程终端和主机之间建立交互式会话,允许用户远程登录和执行命令。然而,由于 Telnet 不加密数据传输,在现代网络环境中被认为是不安全的,因此已逐渐被更安全的协议(如 SSH)取代。

用途

Telnet 主要用于以下用途:

1. 远程登录

在早期,Telnet 被用于在网络上远程登录其他计算机并执行命令。这对于系统管理员和网络工程师特别有用。然而,由于其不安全性,现在通常使用 SSH(Secure Shell)替代。

2. 网络诊断

Telnet 可以用来检查网络服务是否在特定端口上运行。通过连接到特定 IP 地址和端口,可以测试服务的可用性。这在调试网络和应用程序问题时很有用。

3. 测试网络服务

Telnet 可以用于手动测试 TCP 服务,例如 HTTP、SMTP、FTP 等。它允许你发送简单的文本命令,并查看服务的响应。

安全性

由于 Telnet 不加密通信内容,所有数据(包括用户名和密码)都是明文传输的,这使得它容易受到中间人攻击和流量嗅探。因此,Telnet 不再用于远程登录目的,而是更多用于本地网络中的网络调试和诊断。在需要安全远程连接时,应该使用 SSH 等加密协议。

在许多 Linux 和 UNIX 系统中,Telnet 客户端可能默认未安装。你可以通过包管理器安装它,例如:

# 在 Ubuntu/Debian 上 
apt-get install telnet # 在 CentOS/Fedora 上 
yum install telnet

要使用 Telnet 连接到特定 IP 地址和端口,你可以运行:

telnet <IP地址> <端口>

例如,连接到本地主机的 80 端口:

#这样就是断开的,此时我并没有开启80端口
[root@localhost ~]# telnet 127.0.0.1 80
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
#但我开启nginx,监听80端口时
[root@localhost ~]]# telnet telnet 127.0.0.1 80 #检查tcp连接80端口是否开放
Trying 127.0.0.1...
Connected to 127.0.0.1.  #如果出现这样那就是通了
Escape character is '^]'. 

Telnet与SSH的区别 

 注:这个要记住,能简单口述出一些区别的程度

Telnet 和 SSH 是两种用于远程连接和管理的网络协议,但它们在安全性、功能性和用途上有显著的区别。以下是它们之间的主要差异:

安全性

  • Telnet:数据以明文传输,这意味着所有信息,包括用户名、密码和传输内容,都是未加密的。这使得 Telnet 容易受到中间人攻击和网络嗅探的威胁。
  • SSH:提供了强大的加密机制,所有传输内容都被加密。这使得 SSH 在安全性方面远超 Telnet,成为远程连接的首选。

数据压缩

SSH支持数据压缩,这意味着在传输之前,SSH可以压缩数据,以减少网络带宽的占用。这可以使SSH在低带宽或高延迟的网络环境中表现得更好。Telnet没有内置的压缩机制。

端口转发和隧道

SSH支持端口转发和隧道,这允许在一条连接上进行多种数据传输。这意味着用户可以在一条SSH连接上执行多种任务,而无需建立多个连接。这种多路复用可能减少了因多次连接而导致的延迟和开销。

Telnet 是一种简单的协议,用于建立未加密的远程终端会话。它不具备加密、认证等功能,且没有内置的端口转发和隧道能力。

用途

  • Telnet:主要用于远程终端会话和网络服务测试。由于其不安全性,现代网络中不再用于远程管理,而更多用于网络诊断和调试。
  • SSH:主要用于安全的远程登录和服务器管理,通常用于通过网络执行命令、管理文件和应用程序。SSH 还支持安全的文件传输(通过 SCP 和 SFTP)。

功能性

  • Telnet:功能相对简单,主要用于在网络上建立基本的远程终端会话。它没有内置的加密或高级认证机制。
  • SSH:提供多种功能,包括公钥认证、端口转发、加密文件传输和安全隧道。这使得 SSH 非常灵活,可以用于各种远程管理和安全通信场景。

端口

  • Telnet:默认使用 23 端口。
  • SSH:默认使用 22 端口。

常见使用场景

  • Telnet:由于其不安全性,现代系统中很少用于远程登录。它在网络调试、协议测试和本地网络中的特定场景下仍然有用。例如,测试网络服务是否在特定端口上运行。
  • SSH:用于远程管理和登录,适用于系统管理员、开发人员和运维人员。SSH 被广泛用于云计算、服务器管理和 DevOps 流程中。

总结

        由于 Telnet 的不安全性,SSH 在现代网络环境中已成为远程连接和管理的标准。SSH 提供加密和高级认证功能,确保在网络上传输的敏感信息是安全的。如果你需要在安全环境中进行远程管理,SSH 是首选。对于调试和测试场景,Telnet 有时仍然有用,但应谨慎使用,避免在公共网络或敏感环境中使用。SSH传输数据经过压缩,所以传输速度比较快。

这篇关于Liunx-Tcp Wrapper-访问控制工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/979737

相关文章

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

Java中基于注解的代码生成工具MapStruct映射使用详解

《Java中基于注解的代码生成工具MapStruct映射使用详解》MapStruct作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案,本文主要为大家介绍了它的具体使用,感兴趣... 目录介绍优缺点优点缺点核心注解及详细使用语法说明@Mapper@Mapping@Mappings@Co

使用Python实现图片和base64转换工具

《使用Python实现图片和base64转换工具》这篇文章主要为大家详细介绍了如何使用Python中的base64模块编写一个工具,可以实现图片和Base64编码之间的转换,感兴趣的小伙伴可以了解下... 简介使用python的base64模块来实现图片和Base64编码之间的转换。可以将图片转换为Bas

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col