文章目录

  • 前言
  • 一、SSH远程管理
    • 1.1配置Open SSH服务端
      • 1.1OpenSSH服务器
      • 1.2SSH各功能验证
      • 1. 3scp命令-远程安全复制
      • 1.4sftp命令-安全ftp上下载
  • 二、TCP Wrappers
    • 2.1TCP Wrappers概述
      • 2.1.1保护原理
      • 2.1.2保护机制的实现方式
      • 2.1.3访问控制策略的配置文件
    • 2.2TCP Wrappers策略应用
      • 2.2.1设置访问控制策略
      • 2.2.2策略的应用顺序
      • 2.2.3策略应用示例

前言

在实际生产环境中,不可能一直在服务器本地对服务器进行相应的管理,大多数企业服务器都是通过远程登录的方式进行管理的。当需要从一个工作站管理数以百计的服务器主机时,远程维护的方式将更占优势。

一、SSH远程管理

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令。比以往的Telnet(远程登录)、RSH(远程执行命令)等传统的方式相比,SSH协议提供了更好的安全性。

1.1配置Open SSH服务端

1.1OpenSSH服务器

  • SSH(Secure Shell)协议
    是一种安全通道协议
    对通信数据进行了加密处理,用于远程管理

  • OpenSSH
    服务名称:sshd
    服务端主程序:/usr/sbin/sshd
    服务端配置文件: /etc/ssh/sshd_config

  • 服务监听选项
    端口号、协议版本、监听IP地址
    禁用反向解析

[root@localhost ~]# vim /etc/ssh/sshd_config
......
Port 22                        #端口号
ListenAddress 172.16.16.22     #监听地址
Protocol 2                     #版本
UseDNS no                      #禁用反向解析
  • 用户登录控制
    禁用root用户、空密码用户
    限制登录验证时间、重试次数
    AllowUsers、 DenyUsers
[root@localhost ~]# vim /etc/ssh/sshd_config
LoginGraceTime 2m             #会话时间
PermitRootLogin no            #允许root用户进行登录 no
MaxAuthTries 6                #最大的验证尝试次数6次
PermitEmptyPasswords no       #允许空密码登录 no
MaxSessions 10                #允许10个终端连接
......
AllowUsers jerry admin@61.23.24.25   #允许该用户从固定终端登录
  • 登录验证方式
    密码验证:核对用户名、密码是否匹配
    密钥对验证:核对客户的私钥、服务端公钥是否匹配
[root@localhost ~]# vi /etc/ssh/sshd _config
......
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_ keys

1.2SSH各功能验证

我们打开两台虚拟机,分别用xshell连接,一台取名csdn01作为服务端,ip地址为192.168.100.100、csdn02作为客户端,ip地址为192.168.100.200

使用xshell连接,可以看到22端口开启

客户端操作

[root@csdn02 ~]# ssh root@192.168.100.100                                      #登录服务端
The authenticity of host '192.168.100.100 (192.168.100.100)' can't be established.
ECDSA key fingerprint is SHA256:W1oJ4ViNwn7z4PRRWHDFQRjQ4DSFl14baD4rxfVvIwQ.
ECDSA key fingerprint is MD5:be:9b:20:d2:14:3d:ae:c7:6c:65:83:e2:7b:b0:25:45.
Are you sure you want to continue connecting (yes/no)? yes                     #输入yes确认登录
Warning: Permanently added '192.168.100.100' (ECDSA) to the list of known hosts.
root@192.168.100.100's password:                                               #输入密码
Last login: Thu Jul  9 10:04:28 2020
[root@csdn01 ~]#

连接成功可以在客户端对服务端进行操作了
例:

[root@csdn01 ~]# vim /etc/ssh/sshd_config      #编辑服务器配置文件


[root@csdn01 ~]# systemctl restart sshd      #重启服务


这种方法其实存在一定的弊端,不是太安全,例如:

这种情况可以利用pam验证模块,限制切换root用户




对此项进行验证:


由此可以得出结论:默认尝试连接次数为3次,最大尝试次数为6次

  • AllowUsers 白名单:仅允许某些用户,拒绝所有人 安全性场合高
  • DenyUsers 黑名单:仅拒绝某些用户,允许所有人 安全性场合低

这两个功能在配置文件中没有,需要手动添加,例:

将tom、zahngsan添加到白名单后,尝试在客户端用lisi账号登录

打开第三个终端,名称为csdn03,IP地址192.168.100.144,在这个终端尝试使用zhangsan用户登录

构建密钥对验证的SSH体系

在客户端csdn02新建Jerry用户,切换到Jerry用户

[jerry@csdn02 ~]$ ssh-keygen -t ecdsa         #生成密钥对






这时候在客户端登录服务端的tom用户需要输入的不再是tom的密码而是密钥的密码

每次登录输入密码太麻烦,可以添加免交互密码,使再次登录服务器的时候可以不用输入密码

1. 3scp命令-远程安全复制

scp复制文件命令分为两种:
scp user@host:file1 file2      #从服务端复制文件到客户端
scp file1 user@host:file2      #从客户端复制文件到服务端
参数 -r        #递归复制

在拷贝过来的passwd文件中随意添加点内容再推回给服务端


1.4sftp命令-安全ftp上下载





二、TCP Wrappers

2.1TCP Wrappers概述

2.1.1保护原理

2.1.2保护机制的实现方式

  • 方式1:通过tcpd程序对其他服务程序进行包装
  • 方式2:由其他服务程序调用libwrap.so. *链接库

2.1.3访问控制策略的配置文件

  • /etc/hosts. allow
  • /etc/hosts.deny

2.2TCP Wrappers策略应用

2.2.1设置访问控制策略

  • 策略格式
    服务列表:客户机地址列表
  • 服务程序列表
    多个服务以逗号分隔,ALL表示所有服务
  • 客户端地址列表
    多个地址以逗号分隔,ALL表示所有服务
    允许使用通配符*和?
    网段地址,如192.168.1 或者 192.168.1.0/255.255.255.0
    区域地址,如.benet.com

2.2.2策略的应用顺序

  • 先检查hosts.allow,找到匹配则允许访问
  • 再检查hosts.deny,找到则拒绝访问
  • 若两个文件中均无匹配策略,则默认允许访问

2.2.3策略应用示例

  • 仅允许从以下地址访问sshd服务
    主机192.168.100.100
    网段192.168.200.0/24
  • 禁止其他所有地址访问受保护的服务
[root@csdn01 ~]# vim /etc/hosts.allow
sshd:192.168.100.100,192.168.200.*
[root@55 ~]# vim /etc/hosts.deny
sshd:ALL

优先读取allow,然后再读取deny





Linux--远程访问及控制(SSH+TCP Wrappers配置各种机制验证)相关推荐

  1. ssh远程访问及控制与TCP Wrappers

    远程访问及控制 文章目录 远程访问及控制 SSH协议 客户端和服务端 OpenSSH 配置opensSH服务端 设置SSH白名单和黑名单 使用SSH客户端程序 1. ssh远程登录 2. scp远程复 ...

  2. Linux远程访问及控制(SSH、TCP Wrappers 访问控制)

    Linux远程访问及控制 一.SSH远程管理 1.SSH定义 2.SSH数据传输优点 3.SSH客户端和服务端 二.OpenSSH 1.配置OpenSSH 服务端配置 2.scp远程复制 3.sftp ...

  3. 【鬼网络】之远程访问及控制ssh

    远程访问及控制ssh 一.SSH远程管理 1.定义 2.优点 3.客户端与服务端 4.SSH服务的开启.端口号和配置文件 二.配置 OpenSSH 服务端 1.配置文件常用设置选项 2.AllowUs ...

  4. Linux 远程访问及控制

    Linux 远程访问及控制 文章目录 Linux 远程访问及控制 引言: 一.SSH远程管理 1.SSH是什么: 2.SSH客户端与OpenSSH服务端 3.SSH服务配置 4.SSHD服务端的功能 ...

  5. 远程访问及控制——SSH远程管理及TCP Wrappers 访问控制

    一.SSH远程管理 1.定义 SSH(Secure Shell )是一种安全通道协议,主要用来实现字符界面的远程的登录.远程复制等功能. SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录 ...

  6. Linux服务篇之远程访问及控制SSH

    文章目录 1 SSH 1.1 SSH 概念 1.2 SSH 优点 2 SSH 远程管理 2.1 SSH 远程登录方式 2.2 故障集 2.3 OpenSSH 服务器 2.4 OpenSSH 服务包 3 ...

  7. 远程访问及控制SSH 服务

    目录 前言 一.SSH概述 二. SSHD服务 2.1 远程登录 2.2 文件传输 三.SSH服务配置 3.1 SSH服务安全调优 3.2 SSH服务验证 四.密钥对构建 4.1 密钥对原理 4.2 ...

  8. Linux 远程访问及控制 OpenSSH 服务

    文章目录 前言 1. SSH 远程管理 1.1 SSH 概述 1.2 OpenSSH 概述 1.3 配置 OpenSSH 服务端 1.4 SSH 客户端使用 (1) ssh 远程登录 (2) scp ...

  9. 远程访问及控制SSH

    目录 SSH基础 什么是SSH SSH特点 SSH协议 SSH原理 用户登录 scp命令--远程安全复制 sftp--安全FTP 服务端配置 构建密钥对验证 密钥对验证实验 SSH基础 什么是SSH ...

最新文章

  1. Nginx安装及运行服务
  2. PostgreSQL免安装部署方法
  3. 中国伺服电机行业运营现状及前景趋势展望报告2022-2028年版
  4. [Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档
  5. Maven系列一pom.xml 配置详解
  6. System76 是如何打造开源硬件的
  7. 苹果的 Safari 浏览器13岁了
  8. php 实现rpc,使用php链接jsonrpc服务
  9. Verilog 练习 简单状态机代码设计(三角波发生器)
  10. 项目经理论坛_项目经理晋升之路:诚信、自信、韧性
  11. iOS 给NSString文字中间或底部添加横线
  12. win7 android 双系统平板 p1000,优派Win7/Android双系统ViewPad 100
  13. 会员制实现C2B定制有机农产品,被中粮我买投资的良食网这样卖有机生鲜
  14. SQL查询重复数据和清除重复数据
  15. iOS 开发者一定要知道的 14 个知识点
  16. ESP8266-Arduino编程实例-1.44寸LCD(ST7735)驱动
  17. 打破了物理常识的时间晶体,会是量子计算机的救世主吗?
  18. 金仕达等7家HIS厂商及方案的比较
  19. ssm+jsp计算机毕业设计游戏战队考核系统o8lh5(程序+lw+源码+远程部署)
  20. 计算机tlv简介_TLV 格式及编码

热门文章

  1. CSS入门?一篇就够了!
  2. 单反数码手动操作档位详解
  3. stm32+ESP8266AT指令详细说明
  4. [转帖]超能课堂 CPU制作过程
  5. linux服务器远程连接 sftp远程连接操作
  6. 销售易的“野心”与“危机”
  7. 在3dMax中如何使用Greeble建造一座大都市?
  8. es6删除对象的属性_javascript - 按对象属性从数组中删除对象
  9. SQL多表联查训练题
  10. Mac Nginx 配置文件使用(nginx.conf,包含M系列)