Liunx-Tcp Wrapper-访问控制工具

ops/2024/9/19 18:36:49/ 标签: linux, TCP Wrapper, 服务, SSH, Telnet

目录

主要功能

工作原理

配置示例

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

拒绝所有其他访问

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

拒绝特定 IP 地址的访问

注意事项

应用范围

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

Telnet%C2%A0-toc" style="margin-left:40px;">Telnet 

用途

1. 远程登录

2. 网络诊断

3. 测试网络服务

安全性

Telnet%E4%B8%8ESSH%E7%9A%84%E5%8C%BA%E5%88%AB%C2%A0-toc" style="margin-left:40px;">TelnetSSH的区别 

安全性

数据压缩

端口转发和隧道

用途

功能性

端口

常见使用场景

总结


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%C2%A0" style="background-color:transparent;">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%E4%B8%8ESSH%E7%9A%84%E5%8C%BA%E5%88%AB%C2%A0">TelnetSSH的区别 

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

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

安全性

  • 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.ppmy.cn/ops/39190.html

相关文章

能恢复永久删除文件的十大数据恢复软件

当您不小心删除了重要数据&#xff0c;或者由于病毒攻击而丢失了重要数据时&#xff0c;请不要惊慌&#xff0c;我们已经为您准备好了。别无他处&#xff0c;这是您目前市场上最佳数据恢复软件列表的一站式目的地。 能恢复永久删除文件的十大数据恢复软件 1. 奇客数据恢复 这是…

智慧仓储可视化大屏,以最直观的形式展示海量数据。

智慧仓储可视化大屏是一种通过数据可视化技术&#xff0c;将仓储管理系统中的海量数据以图表、地图、仪表盘等形式直观展示在大屏上的解决方案。它可以帮助仓储管理人员更清晰地了解仓库的运营情况&#xff0c;从而做出更明智的决策。 智慧仓储可视化大屏通常包括以下功能和特点…

java.net.SocketInputStream.socketRead0 卡死导致 tomcat 线程池打满的问题

0 TL;DR; 问题与原因&#xff1a;某些特定条件下 java.net.SocketInputStream.socketRead0 方法会卡死&#xff0c;导致运行线程一直被占用导致泄露采用的方案&#xff1a;使用监控线程异步监控卡死事件&#xff0c;如果发生直接关闭网络连接释放链接以及对应的线程 1. 问题 …

创建型模式

单例模式 懒汉式 #include<iostream> using namespace std;// 懒汉式 class SingleTon { public:static SingleTon* m_singleTon; // 静态指针static SingleTon* GetInstance() // 提供静态方法&#xff0c;用来获得对象{if (m_singleTon NULL){m_singleTon new Si…

【Java orm 框架比较】十 新增hammer_sql_db 框架对比

迁移到&#xff08;https://gitee.com/wujiawei1207537021/spring-orm-integration-compare&#xff09; orm框架使用性能比较 比较mybatis-plus、lazy、sqltoy、mybatis-flex、easy-query、mybatis-mp、jpa、dbvisitor、beetlsql、dream_orm、wood、hammer_sql_db 操作数据 …

UE5缺少SDK,而无法在windows平台打包的解决方法

问题1&#xff1a;UE5缺少SDK&#xff0c;而无法在windows平台打包的解决方法&#xff08;项目问题&#xff0c;做一下记录&#xff0c;没有参考性&#xff09; (1)打不开&#xff1a;D:\imageworks-OpenColorIO-Configs-v1.0_r2-8-g0bb079c.tar 解决方案&#xff1a;从23拷贝D…

人民币数字和中文汉字转换

在PHP中&#xff0c;将人民币的中文汉字金额转换为数字&#xff0c;或者将数字转换为人民币的中文汉字金额&#xff0c;通常需要自定义一些函数来实现这一转换过程。下面分别给出这两个转换的示例代码。 数字转人民币中文汉字 function numberToChinese($num) { $cnNums arr…

英语学习笔记4——Is this your ...?

Is this your …? 词汇 Vocabulary suit /sut/ n. 西装&#xff0c;正装 suit 的配套&#xff1a; shirt n. 衬衫tie n. 领带&#xff0c;领结belt n. 腰带trousers n. 裤子shoes n. 鞋子 school /skuːl/ n. 学校 所有学校 搭配&#xff1a;middle school 初中    hig…

Linux驱动开发——(十一)INPUT子系统

目录 一、input子系统简介 二、input驱动API 2.1 input字符设备 2.2 input_dev结构体 2.3 上报输入事件 2.4 input_event结构体 三、代码 3.1 驱动代码 3.2 测试代码 四、平台测试 一、input子系统简介 input子系统是管理输入的子系统&#xff0c;和pinctrl、gpio子…

程序设计--归并排序

归并排序--分治&#xff08;稳定的&#xff08;就是说一个数组中有两个一样的数&#xff0c;当数组排序完后&#xff0c;两个数的位置不发生改变&#xff0c;那么我们就说他是稳定的&#xff09;&#xff09; 快排是不稳定的&#xff0c;那么如何让快排稳定&#xff0c;就加入…

Java中静态代理和动态代理设计模式应用实例举例?

静态代理实例 假设我们有一个需求&#xff0c;要记录一个服务接口IService的所有方法调用的开始和结束时间&#xff0c;以此来监控服务的性能。我们可以使用静态代理模式来实现这个需求。 1. 定义服务接口 IService.java: Java 1public interface IService { 2 void serv…

从零开始学习Linux(6)----进程控制

1.环境变量 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数&#xff0c;我们在编写C/C代码时&#xff0c;链接时我们不知道我们链接的动态静态库在哪里&#xff0c;但可以连接成功&#xff0c;原因是环境变量帮助编译器进行查找&#xff0c;环境变量通常具有…

LinkedList链表

LinkedList 的全面说明 LinkList底层实现了双向链表和双端队列特点可以添加任意元素&#xff08;元素可以重复&#xff09;&#xff0c;包括null线程不安全&#xff0c;没有实现同步 LinkedList 的底层操作机制 LinkedList底层维护了一个双向链表LinkList中维护了两个属性fi…

第十三章 计算机网络

这里写目录标题 1.网络设备2.协议簇2.1电子邮件(传输层)2.2地址解析(网际层)2.3DHCP(动态主动配置协议)2.4URL(统一资源定位器)2.5IP地址和子网掩码 1.网络设备 物理层&#xff1a;中继器&#xff0c;集线器(多路中继器) 数据链路层&#xff1a;网桥&#xff0c;交换机(多端口…

安装openssh-server,提供远程ssh

安装openssh-server&#xff0c;提供远程ssh 1.检查自己是否安装了openssh-server dpkg -l | grep ssh如果输出内容有openssh-server&#xff0c;说明已经安装过了&#xff0c;可以跳过下一步 2.安装openssh-server 由于ubuntu自带ssh客户端&#xff0c;只需要安装openssh-se…

Java面试——MyBatis

优质博文&#xff1a;IT-BLOG-CN 一、MyBatis 与 JDBC 的区别 【1】JDBC 是 Java 提供操作数据库的 API&#xff1b;MyBatis 是一个持久层 ORM 框架&#xff0c;底层是对 JDBC 的封装。 【2】使用 JDBC 需要连接数据库&#xff0c;注册驱动和数据库信息工作量大&#xff0c;每…

电脑nvidia驱动和合适版本的duda--自用 回忆版

参考文献&#xff1a;http://t.csdnimg.cn/ecDuG 内容很多抄的这个&#xff0c;主要害怕链接失效 一、Ubuntu 18.04 安装NVIDIA显卡驱动 1、查看本机显卡能够配置的驱动信息 ubuntu-drivers devices所以可以看出&#xff0c;推荐 nvidia-driver-530 - distro non-free 2、安…

Golang面向对象编程(一)

文章目录 结构体基本介绍结构体定义方式创建结构体变量结构体内存对齐结构体类型转换字段的Tag标签 方法基本介绍方法的定义和调用方法调用的传参机制String方法 结构体 基本介绍 基本介绍 Go支持面向对象编程特性&#xff0c;包括封装、继承和多态&#xff0c;但Go中没有类&a…

电商平台遭遇DDOS、CC攻击有什么防护方案

电商平台遭遇DDOS、CC攻击有什么防护方案&#xff1f;在数字化浪潮的推动下&#xff0c;电商平台已成为现代商业的重要组成部分&#xff0c;为消费者提供便捷、多样的购物体验。然而&#xff0c;随着业务的发展&#xff0c;电商平台也面临着日益严峻的网络安全挑战&#xff0c;…

【系统架构师】-选择题(十二)计算机网络

1、网闸的作用&#xff1a;实现内网与互联网通信&#xff0c;但内网与互联网不是直连的 2、管理距离是指一种路由协议的路由可信度。15表示该路由信息比较可靠 管理距离越小&#xff0c;它的优先级就越高&#xff0c;也就是可信度越高。 0是最可信赖的&#xff0c;而255则意味…