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

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

墨刀原型工具-小白入门篇

墨刀原型工具-小白入门篇 简介 随着互联网的发展和用户体验的重要性越来越受到重视,原型设计逐渐成为了产品设计中的重要环节。墨刀作为一款原型设计工具,以其简洁、易用的特点,受到了很多设计师的喜爱。本文将介绍墨刀原型工具的基本使用方法,以帮助小白快速上手。 第一章:认识墨刀原型工具 1.1 什么是墨刀原型工具 墨刀是一款基于Web的原型设计工具,可以帮助设计师快速创建交互原型,并且可以与团队

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

Windows/macOS/Linux 安装 Redis 和 Redis Desktop Manager 可视化工具

本文所有安装都在macOS High Sierra 10.13.4进行,Windows安装相对容易些,Linux安装与macOS类似,文中会做区分讲解 1. Redis安装 1.下载Redis https://redis.io/download 把下载的源码更名为redis-4.0.9-source,我喜欢跟maven、Tomcat放在一起,就放到/Users/zhan/Documents

OpenCompass:大模型测评工具

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模型问答项目问答性能评估方法大模型数据侧总结大模型token等基本概念及参数和内存的关系大模型应用开发-华为大模型生态规划从零开始的LLaMA-Factor

简鹿文件批量重命名:一款文件批量改名高手都在用的工具

作为 IT 行业的搬砖民工,互联网的数据量爆炸性增长,文件管理成为了一项日益重要的任务。"简鹿文件批量重命名"应运而生,旨在为用户提供一个高效、灵活的解决方案,以应对繁琐的文件命名、排序、创建及属性修改等挑战。 这款软件凭借其一键式操作、强大的自定义规则导入、以及全面的批量处理能力,极大地简化了文件管理流程,尤其适合处理大量文件的个人用户及企业环境,是提高工作效率、保持文件系统整洁的得力助手

如何用外呼工具和CRM管理系统形成销售闭环

使用外呼工具和CRM管理系统形成销售闭环是一个系统性的过程,它涉及客户数据的整合、个性化的营销活动、销售与市场活动的协作、顾客行为的追踪与理解以及营销成效的评估与优化等多个环节。 以下是如何将外呼工具和CRM管理系统有效结合以形成销售闭环的步骤: 1. 客户数据的整合与分析    - 外呼工具在与客户进行初步沟通时,会收集到客户的基本信息和初步需求。    - 这些信息随后被输入到CRM管

ASP.Net.WebAPI和工具PostMan

1.WebAPI概述 1.1 WebAPI WebAPI 是一种传统的方式,用于构建和暴露 RESTUI风格的Web服务。它提供了丰富的功能和灵活性,可以处理各种HTTP请求,并支持各种数据格式,如JSON、XML等。 WebAPI使用控制器(Controllers)和动作方法(ActionMethods)的概念、通过路由配置将请求映射到相应的方法上。 开发人员可以使用各种属性和过滤器来处

使用XmlPullParser制作BindView工具

在之前我写过了一个BindView的工具,之前使用的最要是正则表达的文本分析做的。最近,工作我认识了Android的XML解析,我又想起了这个问题。发现这个问题,其实用XmlPullParser更好解决。所以我重新写了这个工具。简单多了,而且不用格式化代码。 先分析一下如何写,简易思路如下 Created with Raphaël 2.1.0 输入文本路径 读取x

Android的一个BindView工具的实现

对于Android已经有很多Bind View的工具了,大多都是使用了反射和注解的方法。那么如何实现一个简易的代码生成工具呢?其实不难,只要会写代码都可以试试。这些天,我试了一下,并将它做成了工具。代码如下: package com.example;import java.io.BufferedReader;import java.io.File;import java.io.FileNot