天天看点

CentOS 8 SSH服务的基本原理和配置

ssh服务的原理和配置

    • 一、概述
    • 二、主要功能
    • 三、SSH服务
    • 四、openssh软件
    • 五、主要配置文件
    • 六、基本配置
      • 1、改变默认端口
      • 2、认证时限
      • 3、禁止root登录
      • 4、认证尝试次数
      • 5、黑、白名单
        • (1)设置白名单AllowUsers
        • (2)设置黑名单DenyUsers

一、概述

SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。

SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用 SSH 协议可以有效的防止远程管理过程中的信息泄露问题。

二、主要功能

  • 提供类似telnet远程联机服务器的服务,但是它比telnet安全
  • 类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务

三、SSH服务

SSH服务默认端口是22,安全协议版本sshv2,SSH服务端是一个守护讲程 (daemon),他在后台运行并响应来自客户端的连接请求。 SSH服务端的讲程名为sshd,负责实时监听远程SSH客户端的远程连接请求,并进行处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接等。SSH客户端包含ssh以及像scp(远程拷贝) slogin(远程登陆) sftp(安全FTP文件传输)等应用程序。它属于linux系统开机自启的服务之一。

四、openssh软件

openssh是实现SSH协议的开源软件项目,适用于各种unix、linux操作系统。openssh是由openssh、openssh-server以及openssh-client等软件包提供的,并已将sshd添加为标准的系统服务,默认系统已安装。

五、主要配置文件

  • /etc/ssh/sshd_config #ssh服务端配置文件
  • /etc/ssh/ssh_config #ssh客户端配置文件

六、基本配置

本节配置都在SSH服务器端的配置文件/etc/ssh/sshd_config中配置

配置文件修改完以后必须重启或重载服务,以下省略该步骤

配置参数不区分大小写!!!如LoginGraceTime=logingracetime

sshd -t

#检查配置文件语法,没错就无任何输出,有错会报错

CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置

1、改变默认端口

Port

#SSH监听端口,默认是22

CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置

修改过端口号之后启动服务必须把selinux关掉或者setenforce 0才行!!!

CentOS 8 SSH服务的基本原理和配置

2、认证时限

LoginGraceTime

#登录认证时超过多长时间就禁止登录了

CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置

注意:这里如果输入密码慢了或者走开了它是不会自动断开的,这里设置5秒的意思是如果5秒之后你才输完密码,即使密码正确它也不给你登录了!

3、禁止root登录

为什么要禁止root登录?因为root的权限最大,如果允许的话,可以登录到对方服务器进行任意操作,非常不安全!!!

CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置

PermitRootLogin

#允许root登录,一般设置为no

CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置

为了不给普通用户利用跳板随意切换成root用户,我们需要设置pam认证模块

CentOS 8 SSH服务的基本原理和配置

这里有2个用户:gulf(普通用户)和shengjie(属于wheel组的特权用户)

CentOS 8 SSH服务的基本原理和配置

使用gulf登录,无法切换为root

CentOS 8 SSH服务的基本原理和配置

使用shengjie登录,可以切换为root

CentOS 8 SSH服务的基本原理和配置

有人又说了,既然我知道shengjie可以切换为root那我先用gulf登录再切换为shengjie行不行,答案是不行。也没有实际意义,你必须知道shengjie的密码,但是既然知道密码也就不用切换直接就已shengjie登录就好了

CentOS 8 SSH服务的基本原理和配置

注意:在wheel组的用户的权限是比普通用户要大的,它是linux默认的特权组。

4、认证尝试次数

MaxAuthTries

#最大认证尝试次数

CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置

默认连接输错密码3次就退出了,原因是因为客户端配置有一项NumberOfPasswordPrompts参数

man手册里它的定义是:Specifies the number of password prompts before giving up.

The argument to this keyword must be an integer.

The default is 3.(指定放弃密码提示的次数。此关键字的参数必须为整数。默认值是3。)

所以我们只能尝试登3次,这里是指客户端的尝试次数,服务器的是认证次数,服务器能认证几次取决于客户端能登陆几次,概念容易混淆!

man手册位置:/usr/share/man/man5/ssh_config.5(需要解压)

ssh -o NumberOfPasswordPrompts=5 [email protected]

#设置客户端登录时密码提示的次数

CentOS 8 SSH服务的基本原理和配置

所以我们要验证服务器上MaxAuthTries参数,就必须把客户端NumberOfPasswordPrompts参数的值设为比6大的数,我们设为8,结果如下

CentOS 8 SSH服务的基本原理和配置

第二种方法:(修改完成需要重启sshd服务)

CentOS 8 SSH服务的基本原理和配置

5、黑、白名单

(1)设置白名单AllowUsers

AllowUsers gulf [email protected]

#允许gulf用户从任何地方登录,只允许tom从指定终端登录,2个条件之间用空格分隔

CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置

(2)设置黑名单DenyUsers

DenyUsers gulf

#拒绝gulf登录

CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置
CentOS 8 SSH服务的基本原理和配置

总结:

  • 如果黑白名单只设置其中一个,那就匹配这一个,其他不匹配,如果同时设置黑白名单,它会匹配黑名单!
  • 在实际生产环境中,建议只做白名单,考虑安全性问题,不能随意让别人远程,只放开你信任的用户即可!

继续阅读