Linux--远程管理之SSH服务端

一、什么是SSH?

  • SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程
    复制等功能。
  • SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的
    用户口令。
  • 与早期的 Telent(远程登录)、RSH(Remote Shell,远程执行命令)、RCP(Remote
    File Copy,远程文件复制)等应用相比,SSH 协议提供了更好的安全性。
  • OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。

二、SSH远程管理----服务端

2.1、SSH协议

  • 为客户机提供安全的shell环境,用于远程管理
  • 默认端口:TCP 22
  • 服务名称:sshd
    • 服务端主程序:/usr/sbin/sshd
    • 服务端配置文件:/etc/ssh/sshd_config
    • ssh_config:针对客户端
    • sshd_config:针对服务端
      在这里插入图片描述

2.2、服务监听选项

  • sshd 服务使用的默认的端口号为22,但是这个不是固定的,我们可以使用 -p 修改端口号。

  • 在现实工作中,建议修改端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。禁用 DNS 反向解析可以提高服务器的响应速度。
    ssh

[root@wang22~]# vim /etc/ssh/sshd_config
...
#Port 22		#监听端口为 22, 端口号可以修改
#AddressFamily any
#ListenAddress 172.16.16.22	     #监听地址可修改
#ListenAddress ::
Protocol 2       #使用 SSH V2 协议 
...
UseDNS no       #禁用 DNS 反向解析
...

例如,我们想登录主机ip地址为192.168.220.129,也是用root用户验证,执行以下操作即可:
在这里插入图片描述

2.3、用户登录控制

  • 禁止root用户,空密码用户

  • 登录时间,重试次数

  • AllowUsers(白名单,仅允许,只有这些可以登录)

  • DenyUsers(黑名单,仅拒绝,只有这些不行)

  • AllowUsers不可与DenyUsers同时使用

1、通常禁止root 用户或者密码为空的用户登录,另外还可以限制登录的验证时间(默认为2分钟),及最大重试次数,超出后未登录成功会断开连接。
在这里插入图片描述
注意:默认尝试最大的登录次数是3次,如果我们去掉MaxAuthTries 前面的#符号,就代表开启,但是远程登录还是不能尝试6次,只能登3次。
在这里插入图片描述
在这里插入图片描述
但是我们输入以下命令可以改变登录次数:
ssh -o NumberOfPasswordPrompts=n(n代表次数,只要比文件中的最大尝试次数大就可以了) 用户名@IP地址

在这里插入图片描述
2、如果只允许或禁止特定用户登录时,可以使用 AllowUsers (仅允许,“白名单”)或 DenyUsers(仅禁止,“黑名单”) 配置,两者 用法类似,但是二者不可同时使用。

  • 例如,现有一台服务器,只允许zhangsan 和 lisi 用户登录,且 lisi用户只能从IP地址为192.168.220.131的主机远程登录, 则 可 以 在 /etc/ssh/sshd_config文件中添加配置即可,保存退出后。
  • 记得要重启一下sshd服务。
    在这里插入图片描述
    在这里插入图片描述
  • 如果我们想禁止某一个特定用户登录可以执行DenyUsers
    在这里插入图片描述

2.4、登录验证方式

  • 登录验证对象

    服务器中的本地用户账号

  • 登录验证方式

    • 密码验证:
      就是我们平常使用最多的一种,使用用户名和密码登录,但是这种方式可能会遭遇暴力破解,防御能力较弱。
    • 密钥对验证:
      要求提供相匹配的密钥信息才能通过验证,通常先在客户机中创建一对密钥文件(私钥和公钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,会大大增强远程管理的安全性。
  • 密钥对:包含公钥,私钥

    公钥:服务器使用

    私钥:客户保留

    非对称秘钥:RSA

    对称秘钥:3DES,AES

[root@wang22 ~]# vim /etc/ssh/sshd_config
PasswordAuthentication yes		'是否使用密码'
PermitEmptyPasswords no	'禁止空密码'
PasswordAuthentication yes	'是否需要密码验证'
    
PubkeyAuthentication yes	 //开启公钥验证

AuthorizedKeysFile      .ssh/authorized_keys  '指定公钥库位置'

公钥和私钥要配对使用,如果使用公钥对数据进行加密,只有用相对应的私钥才能解密;如果使用私钥对数据进行加密时,那么只有用对应的公钥才能解密。

三、TCP Wrappers控制

3.1、TCP Wrappers概述

3.1.1、保护原理

在这里插入图片描述

3 .1.2、保护机制的实现方式
  • 方式一

    通过tcpd主程序对其他服务程序进行包装

  • 方式二

    由其他服务程序调用libwrap.so.*链接库

3.1.3、访问控制策略的配置文件
  • /etc/hosts.allow

  • /etc/hosts.deny

 ldd `which sshd` 查看模块

3.2、TCP Wrappers访问策略

3.2.1、设置访问控制策略
  • 策略格式

    服务列表:客户机地址列表

  • 服务列表

    多个服务以逗号分隔,ALL表示所有服务

  • 客户机地址列表

    多个地址以逗号分隔,ALL表示所有服务

    允许使用通配符*和?

    网段地址,如192.168.1 或者 192.168.1.0/255.255.255.0

    区域地址,如.benet.com

3.2.2、策略的应用程序
  • 先检查hosts.allow,找到匹配则允许访问
  • 否则再检查hosts.deny,找到则拒绝访问
  • 若两个文件中均无匹配策略,则默认允许访问
3.2.3、策略应用实例
  • 仅允许从以下地址访问sshd服务

主机192.168.100.100

网段192.168.200.0/24

  • 禁止其他所有地址访问受保护的服务
[root@wang22 ~]# vim /etc/hosts.allow
sshd:192.168.100.100,192.168.200.*
[root@wang22 ~]# vim /etc/hosts.deny
sshd:ALL
  • 优先读取allow,然后再读取deny
  • 如果做黑名单,name白名单就不用写
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值