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传输数据经过压缩,所以传输速度比较快。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/835254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LVS(Linux Virtual Server)知识点详解

引言 LVS&#xff08;Linux Virtual Server&#xff09;是一种虚拟服务器技术&#xff0c;它主要用于实现多台服务器的负载均衡。 LVS的核心作用是通过负载均衡技术将客户端的请求分发到不同的服务器上进行处理&#xff0c;以此来提高整体的服务能力和资源的利用效率。在构建高…

什么是Unreal Engine游戏引擎?它有什么优势?

大家好&#xff0c;我是咕噜土豆&#xff0c;很高兴又和大家见面了。在游戏开发行业中&#xff0c;选择合适的游戏引擎是非常重要的。其中&#xff0c;Unreal Engine作为一款功能强大的游戏引擎&#xff0c;在业界非常受欢迎。今天我带大家简单的了解一下。 什么是Unreal Engi…

基于STM32移植lvgl(V8.2)(SPI接口的LCD)

目录 概述 1 认识LVGL 1.1 LVGL官网 1.2 LVGL库文件下载 2 认识SPI接口型LCD 2.1 PIN引脚定义 2.2 MCU IO与LCD PIN对应关系 3 实现LCD驱动 3.1 使用STM32Cube配置Project 3.2 STM32Cube生成工程 4 移植LVGL 4.1 准备移植文件 4.2 添加lvgl库文件到项目 4.2.1 src下…

【Pytorch】6.torch.nn.functional.conv2d的使用

阅读之前应该先了解基础的CNN网络的逻辑 conv2d的作用 是PyTorch中用于执行二维卷积操作的函数。它的作用是对输入数据进行二维卷积操作&#xff0c;通常用于图像处理和深度学习中的卷积神经网络&#xff08;CNN&#xff09;模型。 conv2d的使用 我们先查看一下官方文档 inpu…

云视频,也称为视频云服务,是一种基于云计算技术理念的视频流媒体服务

云视频&#xff0c;也称为视频云服务&#xff0c;是一种基于云计算技术理念的视频流媒体服务。它基于云计算商业模式&#xff0c;为视频网络平台服务提供强大的支持。在云平台上&#xff0c;所有的视频供应商、代理商、策划服务商、制作商、行业协会、管理机构、行业媒体和法律…

[Linux深度学习笔记5.10]

5.10学习笔记 计划任务: 一. 一次性计划任务安装yum -y install at启动systemctl start atd开机自启systemctl enable atd查看atq删除atrm创建at now 1minat>useraddctrl d二.周期性计划任务创建计划任务 : crontabe -e查看计划任务 : crontabe -l删除计划任务 : crontab…

深度学习之前馈神经网络

1.导入常用工具包 #在终端中输入以下命令就可以安装工具包 pip install numpy pip install pandas Pip install matplotlib注&#xff1a; numpy是科学计算基础包 pandas能方便处理结构化数据和函数 matplotlib主要用于绘制图表。 #导包的代码&#xff1a; import numpy as n…

渲染农场评测:6大热门云渲染平台全面比较

在3D行业中&#xff0c;选择一个合适的云渲染平台可能会令许多专业人士感到难以抉择。为此&#xff0c;我们精心准备了6家流行云渲染平台的详尽评测&#xff0c;旨在为您的决策过程提供实用的参考和支持。 目前&#xff0c;市面上主要的3D网络渲染平台包括六大服务商&#xff0…

批量无人值守设备运维如何轻松搞定,设备授权和分组很关键

如今数字化时代&#xff0c;很多企业的一线业务依托无人值守的智能终端设备展开&#xff0c;这类设备的广泛使用可以帮助企业以较小的成本铺开大规模的业务&#xff0c;比如现在随处可见的智能售货机&#xff0c;商场的各类智能互动终端等等。 这类设备整体上可以降低业务开展…

[图解]分层架构是DDD提出的吗

1 00:00:00,040 --> 00:00:02,640 今天我们来说一下分层架构 2 00:00:04,310 --> 00:00:06,730 我经常看到一些文章 3 00:00:06,740 --> 00:00:10,390 或者是在开发团队里面看到 4 00:00:10,400 --> 00:00:12,940 有开发人员说&#xff0c;分层架构 5 00:00:12…

SpringBoot:实战项目TILAS智能学习辅助系统1.2

SpringBootWeb项目 TILAS智能学习辅助系统 RequestMapping()注解可以抽取资源链接的共性 新增员工 //控制层 PostMapping("/emps")Result insert(RequestBody Emp emp);Overridepublic Result insert(Emp emp) {empService.insert(emp);return Result.success();…

云粒智慧实时数仓的架构演进分享:OceanBase + Flink CDC

4月20日&#xff0c;在2024 OceanBase开发者大会上&#xff0c;云粒智慧的高级技术专家付大伟&#xff0c;分享了云粒智慧实时数仓的构建历程。他讲述了如何在传统数仓技术框架下的相关努力后&#xff0c;选择了OceanBase Flink CDC架构的实时数仓演进历程。 业务背景及挑战 …

iOS性能指标和性能测试工具

一&#xff1a; iOS性能测试指标 作为一名软件测试工程师&#xff0c;在测试 iOS 应用的性能时&#xff0c;需要关注以下几个方面&#xff1a; 1. 响应时间&#xff1a;应用的启动时间、页面加载速度、接口响应时间等。 2. CPU 使用率&#xff1a;应用在各种操作下的 CPU 占…

ADS基础教程11 - TouchStone文件的导出及导入

目录 一、 T o u c h S t o n e 介绍 \color{#4285f4}{ \mathbf{ 一、TouchStone介绍}} 一、TouchStone介绍 二、文件导出、导入方式 \color{#4285f4}{ \mathbf{ 二、文件导出、导入方式}} 二、文件导出、导入方式1.原理图操作1&#xff09;原理图中导出2.原理图中导入 3.DDW中…

布局全球内容生态,酷开科技Coolita AIOS以硬核品质亮相

当前&#xff0c;全球产业链供应链格局持续重构&#xff0c;成为影响中国对外经济发展的重要因素。2024年4月15至5月5日&#xff0c;历史久、规模大、层次高&#xff0c;作为中国外贸风向标的第135届中国进出口商品交易会&#xff08;即广交会&#xff09;在美丽的广州隆重举行…

G2 - 人脸图像生成(DCGAN)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 理论知识DCGAN原理 模型结构逻辑结构物理结构 模型实现前期准备1. 导入第三方库2. 修改随机种子(相同的随机种子&#xff0c;第i次随机的结果是固定的)3.…

牛客小白月赛93

B交换数字 题目&#xff1a; 思路&#xff1a;我们可以知道&#xff0c;a*b% mod (a%mod) * (b%mod) 代码&#xff1a; void solve(){int n;cin >> n;string a, b;cin >> a >> b;for(int i 0;i < n;i )if(a[i] > b[i])swap(a[i], b[i]);int num1…

Python运维之定时任务模块APScheduler

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 定时任务模块APScheduler 一、安装及基本概念 1.1、APScheduler的安装 1.2、涉及概念 1.3、APScheduler的工作流程​编辑 二、配置调度器 …

二叉树及其遍历

一、二叉树 二叉树是一种树形结构&#xff0c;每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。如果一个节点没有子节点&#xff0c;则称为叶子节点。二叉树常用于实现搜索算法和排序算法。 二叉树的特点包括&#xff1a; 每个节点最多有两个子节点。左子节…

这3种深拷贝实现,你都知道吗?

目录&#xff1a; 1、JSON.parse 2、structuredClone 3、cloneDeep