Linux网络部分——SSH远程访问及控制

news2024/11/20 3:17:52

目录

一、配置OpenSSH服务端【☆】

1. ssh服务端配置 vim /etc/ssh/sshd_config

2.客户端连接验证

二、使用SSH客户端程序

1.ssh 远程登录

2.scp 远程复制

3.sftp 安全FTP

三、SSH的验证方式

1. 密钥对验证【☆】

2. 如何实现免密登录

 【拓展】免交互创建密钥对和免交互上传密钥

四、TCP Wrappers 访问控制

1. TCP Wrappers保护机制两种实现方式

2.TCP Wrappers 的访问策略

3. 访问策略原则

4. 策略格式:<程序列表>:<客户端地址列表>


       日常工作用远程连接两种方式,SSH和TELNET。SSH使用22号端口,进行密文传输,更安全。TELNET使用23号端口,使用明文传输,禁止使用root用户直接登录,仅仅做调试作用,基本不用。

SSH客户端典型代表:Moba、PuttyXshell、CRT为国外的软件,会涉及到版权和国家信息安全

SSH服务端软件:软件包OpenSSH,服务名sshd。centOS7中默认安装并设置开机自启,Ubuntu需要下载后使用systemctl start sshd开启,systemctl enable sshd设置开机自启,ssh服务端配置文件/etc/ssh/sshd_config,客户端的配置文件ssh_config。

一、配置OpenSSH服务端【☆】

1. ssh服务端配置 vim /etc/ssh/sshd_config

  1. Port 2345     #默认监听端口为 22,公网中把22号端口改掉更安全,实验使用22方便

  2. ListenAddress 192.168.170.10       #默认监听所有网卡地址0.0.0.0,可以改为特定网卡地址给安全网段更安全                        
  3. LoginGraceTime 2m                     #登录验证超时时间默认为 2 分钟
  4. PermitRootLogin no                     #禁止使用 root 用户登录
  5. MaxAuthTries 6                           #最大重试次数为 6次
  6. PermitEmptyPasswords no         #禁止空密码用户登录
  7. UseDNS no                                 #禁用 DNS 反向解析,以加快远程连接速度
  8. AllowUsers zhangsan lisi wangwu@192.168.170.20    #白名单配置:表示只允许zhangsan、lisi用户从任何主机登录,且其中wangwu用户仅能够从IP为192.168.170.20的主机远程登录。多个用户以空格分隔
  9. DenyUsers zhangsan lisi wangwu@192.168.170.20    #黑名单配置:表示禁止zhangsan lis用户从任何主机登录,wangwu禁止从192.168.170.20主机登录(注意白名单和黑名单不同时存在)

【补充】大驼峰命名规则:一个配置项可能由多个单词命名规则,每个单词第一个字母大写;小驼峰为第一个单词首字母不大写,后面单词首字母大写。

配置完成后开启sshd服务,创建zhangsan lisi wangwu用户

2.客户端连接验证

二、使用SSH客户端程序

1.ssh 远程登录

ssh [-p 端口号] 用户名@目标主机IP            #-p指定端口号,没有指定就是默认访问22号端口
ssh [-p 端口号] 用户名@目标主机IP 命令      #临时登录目标主机,操作一条命令后立即退出

        注意:SSH首次连接服务器会在当前用户家目录生成 .ssh/knowmn_hosts,保存服务器地址和密钥信息,如果后期访问服务器提示密钥信息改变,则要注意,可能会是钓鱼服务器!

2.scp 远程复制

scp [-P 端口号] [-r] 本地文件/目录路径 用户名@目标主机IP:绝对路径   
#从本机的复制上传目录/文件到目标主机

scp [-P 端口号] [-r] 用户名@目标主机IP:/目录/文件 /本地路径   
#从目标主机复制下载目录/文件到本地

3.sftp 安全FTP

sftp [-P 端口号] 用户名@目标主机IP   
客户端可使用get上传、put下载、ls查看、cd切换目录

三、SSH的验证方式

        sshd 服务支持两种验证方式:①密码验证:使用账号和密码验证登录; ②密钥对验证:使用客户端创建的密钥对进行验证。在/etc/ssh/sshd_config中,PasswdAuthentication yes表示开启密码验证,PubkeyAuthenication yes表示开启密钥对验证,.ssh/authorized_keys表示服务端的公钥默认保存路径为当前用户的家目录的.ssh目录中。

1. 密钥对验证【☆】

①确保服务端开启了密钥对验证(在/etc/ssh/sshd_config中,PasswdAuthentication yes默认开启);

②客户端创建密钥对,ssh-keygen [-t rsa指定加密方法为非对称方法](rsa/dsa/ecdsa 三种) --->  默认目录回车 ---> 默认空密码回车,也可以设置密码  ---> /root/.ssh/id_rsa私钥文件是给自己自己使用的, /root/.ssh/id_rsa.pub公钥文件需要推送给服务端保存。

③上传公钥文件到服务端,ssh-copy-id -i id_rsa.pub root@192.168.170.10(目标主机        ip和端口号,-i指定公钥文件,如果只有一个公钥文件可以省略-i)

④客户端ssh远程登录,使用密钥对进行验证

 ps:客户端用什么用户创建和推送公钥给服务端哪个用户,就只能登录服务端的那个用户

2. 如何实现免密登录

①创建密钥对的时候一路回车,不设置密码

②设置代理,但只能在当前会话中有效。

 【拓展】免交互创建密钥对和免交互上传密钥

ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
sshpass -p 'xxxxxx' ssh-copy-id -o StrictHostKeyChecking=no root@目标IP

四、TCP Wrappers 访问控制

        TCP Wrappers(TCP封套) 是一个简单的防火墙机制。用来将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
        大部分的Linux发行版本都有提供TCP Wrappers访问控制的功能,TCP Wrappers监听过滤发往各个端口的数据包,要么允许放通,要么拒绝访问丢弃数据包。

1. TCP Wrappers保护机制两种实现方式

①运行tcpd程序;②调用libwrap.so.*动态函数库,不需要运行tcpd,使用更广泛。 由于支持 TCP Wrappers 的服务必定包含 libwrap 这一个动态函数库,因此可以使用 ldd 来查看服务即可。

ldd $(which 程序名称) | grep libwrap

2.TCP Wrappers 的访问策略

        TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。通过 /etc/hosts.allow,/etc/hosts.deny 这两个文件来管理的一个类似防火墙的机制,分别用来设置允许和拒绝的策略。

格式:<服务程序列表>:<客户端地址列表>

(1)服务程序列表
ALL:代表所有的服务。
单个服务程序:如“vsftpd”。
多个服务程序组成的列表:如“vsftpd,sshd”。
(2)客户端地址列表
ALL:代表任何客户端地址。
LOCAL:代表本机地址。
多个地址以逗号分隔
允许使用通配符 “*” 和 “?” ,前者代表任意长度字符,后者仅代表一个字符
网段地址,如 “192.168.80.” 或者 192.168.80.0/255.255.255.0 (掩码只支持 netmask 的地址显示方式)
区域地址,如 “.benet.com”匹配 benet.com 域中的所有主机。

3. 访问策略原则

先看 /etc/hosts.allow 是否有匹配的策略,有则直接允许访问;

再看 /etc/hosts.deny  是否有匹配的策略,有则拒绝访问;

如果以上两个文件都没有匹配的策略,则默认允许访问;

4. 策略格式:<程序列表>:<客户端地址列表>

sshd,vsftpd:192.168.80.13,192.168.80.14

ALL:ALL

sshd:192.168.80.*

sshd:192.168.80.0/255.255.255.128

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

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

相关文章

Docker 安装的MySQL迁移数据库

1. 导出数据库 docker ps :查看数据库对应的 CONTAINER ID docker exec -it id /bin/bash : 进入到mysql的docker实例中 cd /usr/bin : 进入到bin目录 mysqldump -u root -p123456 study > /root/study_backup0509.sql :使用mysqldump备份库&#xff0c;注意密码与-p之间…

Java基于B/S医院绩效考核管理平台系统源码java+springboot+MySQL医院智慧绩效管理系统源码

Java基于B/S医院绩效考核管理平台系统源码javaspringbootMySQL医院智慧绩效管理系统源码 医院绩效考核系统是一个关键的管理工具&#xff0c;旨在评估和优化医院内部各部门、科室和员工的绩效。一个有效的绩效考核系统不仅能帮助医院实现其战略目标&#xff0c;还能提升医疗服…

win10 远程桌面无法连接,解决Win10远程桌面无法连接问题的方法

Windows 10操作系统中&#xff0c;远程桌面是一项非常实用的功能&#xff0c;它允许用户从另一台设备远程访问和控制另一台计算机。然而&#xff0c;有时候用户可能会遇到Win10远程桌面无法连接的问题。本文将探讨可能导致这个问题的原因&#xff0c;并提供相应的解决方案。 确…

为什么需要归档和管理合同

归档和管理合同是非常重要的&#xff0c;主要有以下几个原因&#xff1a; 1. 法律合规性&#xff1a;公司需要遵守法律和监管要求&#xff0c;合同是法律文件&#xff0c;涉及公司的权益和责任。归档和管理合同可以确保公司遵守法律法规&#xff0c;合同的内容和执行过程都符合…

【异常检测】新版异常检测库anomalib的使用

every blog every motto: There’s only one corner of the universe you can be sure of improving, and that’s your own self. https://blog.csdn.net/weixin_39190382?spm1010.2135.3001.5343 0. 前言 异常检测库anomalib的使用 1. 前提 1.1 数据组织形式 说明&#…

Linux|进程地址空间

Linux|内存地址空间 现象基本概念理解如何理解地址空间什么是划分区域&#xff1f;地址空间的理解为什么要有地址空间&#xff1f;如何进一步理解页表和写时拷贝如何理解虚拟地址 Linux真正的进程调度方案 现象 #include <stdio.h> #include <string.h> #include …

AcWing 4993 FEB

4993. FEB - AcWing题库 大佬亲笔 将原串分成三段&#xff1a; FFF|E.....B|FFF 先合并中间段&#xff0c;再合并两边的段 #include <iostream> #include <cstring> #include <algorithm> #include <string> #include <queue&g…

鸿蒙内核源码分析(忍者ninja篇) | 都忍者了能不快吗

ninja | 忍者 ninja是一个叫 Evan Martin的谷歌工程师开源的一个自定义的构建系统,最早是用于 chrome的构建,Martin给它取名 ninja(忍者)的原因是因为它strikes quickly(快速出击).这是忍者的特点,可惜Martin不了解中国文化,不然叫小李飞刀更合适些.究竟有多块呢? 用Martin自…

Fastgpt知识库接入oneapi和自定义大模型

本期教程教大家训练自己的知识库回答chatgpt回答不了的问题 FastGPT 是一个知识库问答系统,可以通过调用大模型和知识库回答特定的问题 可以做成专属 AI 客服集成到现有的APP或者网站内当作智能客服支持网络爬虫学习互联网上的很多知识可以通过flow可视化进行工作流程编排 本期…

Ubuntu20.4中复现Graspness

Ubuntu20.4中复现Graspness 文章目录 Ubuntu20.4中复现Graspness1.安装cuda和cudnn2.安装pytorch3.安装MinkowskiEngine4.编译graspnetAPI5. RuntimeError: "floor" "_vml_cpu" not implemented for IntRefernece &#x1f680;非常重要的环境配置&#x1…

深入理解DNS、ICMP协议与NAT技术:网络世界的三大基石

⭐小白苦学IT的博客主页⭐ ⭐初学者必看&#xff1a;Linux操作系统入门⭐ ⭐代码仓库&#xff1a;Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统❤ 前言 在网络世界中&#xff0c;数据的传输和交互离不开各种协议和技术的支持。其中&#xff0c;DNS&#xff08;域名系统&am…

1068 万绿丛中一点红

solution 找出满足①像素值唯一&②和相邻像素点色差大于tol 的像素点个数 若唯一&#xff0c;则输出该像素点列、行、像素值&#xff1b;若不唯一&#xff0c;则输出"Not Unique"若无&#xff0c;则输出"Not Exist" 题干和输出中&#xff0c;都是先列…

【ACM出版】第四届控制与智能机器人国际学术会议(ICCIR 2024)

第四届控制与智能机器人国际学术会议&#xff08;ICCIR 2024&#xff09; 2024 4th International Conference on Control and Intelligent Robotics 2024年6月21日-23日 | 中国-广州 官网&#xff1a;www.ic-cir.org EI、Scopus双检索 投稿免费参会、口头汇报及海报展示 四…

【MySQL数据库开发设计规范】之基础规范

欢迎点开这篇文章&#xff0c;自我介绍一下哈&#xff0c;本人笔名姑苏老陈&#xff0c;是一个JAVA开发老兵。 本文收录于 《MySQL数据库开发设计规范》专栏中&#xff0c;该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章&#xff0c;定期更新&#xff0c;欢迎关…

Python从0到POC编写--实用小脚本02

爆破脚本&#xff1a; 爆破脚本也是我们经常使用的东西 这里就简单讲讲后台爆破脚本的编写吧 在编写之前&#xff0c;我们先通过访问网站去看看情况 首先我们可以先登录看看 输入账号 admin &#xff0c;密码 12345 后 登录失败&#xff0c;提示 用户名或密码错误 在输入…

水质监测设备预警系统

随着工业化进程的加快和城市化水平的提高&#xff0c;水质安全问题愈发受到社会各界的广泛关注。为了确保水资源的清洁与安全&#xff0c;水质监测设备预警系统成为了不可或缺的利器。在这个背景下&#xff0c;HiWoo Cloud平台凭借其先进的技术和卓越的性能&#xff0c;为水质监…

Centos中将UTC的时区改为CTS时区

date命令可以看到现在的时间以及时区&#xff0c;可以看到现在是UTC时区 而想要更改时区那么就要了解tzselect命令 tzselect 是一个 Linux 命令行工具&#xff0c;用于交互式地帮助用户选择并设置系统的时区。这个程序会通过一系列的问题引导用户&#xff0c;从而确定用户所在的…

小程序如何注销

随着移动互联网的深入发展&#xff0c;管控也越来越严格。现在小程序都要求进行ICP备案&#xff0c;不管是新注册的还是以往注册的。很多商家的小程序本身处于无运营状态&#xff0c;现在要求备案&#xff0c;还不如直接注销。下面&#xff0c;将详细介绍小程序注销的步骤和注意…

WPF容器控件之WrapPanel、布局控件

WrapPanel: 换行panel 子元素进行换行&#xff0c;当子元素的宽度或者高度超出了父元素&#xff0c;才进行换行。高度超出父元素的高度 也会另起一列 属性 Orientation布局方式 实例 <WrapPanel Orientation"Horizontal"><Label>C# 是从 C/C 衍生出来的…

Proxmox VE 8 用SDN隔离用户网络

作者&#xff1a;田逸&#xff08;formyz&#xff09; 最新发布的Proxmox VE&#xff08;以下简称PVE&#xff09; 8在Web管理后台集成了易于操作的SDN&#xff08;软件定义网络&#xff09;功能插件&#xff0c;其实质是对不同的PVE用户指定不同的网络&#xff0c;进行逻辑隔离…