阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

SSH服务端配置、优化加速、安全防护

232次阅读
没有评论

共计 2756 个字符,预计需要花费 7 分钟才能阅读完成。

SSH 服务端配置、优化加速、安全防护

CentOS7 自带的 SSH 服务是 OpenSSH 中的一个独立守护进程 SSHD。由于使用 telnet 在网络中是明文传输所以用其管理服务器是非常不安全的不安全,SSH 协议族可以用来对服务器的管理以及在计算机之间传送文件。

一、配置文件

  • 服务器配置文件 /etc/ssh/sshd_config
  • 日志文件 /var/log/secure

二、配置文件详解

Port    22                  # 默认端口
ListenAddress IP            # 监听服务器端的 IP,ss -ntl 查看 22 端口绑定的 iP 地址
LoginGraceTime 2m           # 登录时不输入密码时超时时间
HostKey                   # HostKey 本地服务端的公钥路径
UseDNS no                   # 禁止将 IP 逆向解析为主机名,然后比对正向解析的结果,防止客户端欺骗
PermitRootLogin yes         # 是否允许 root 使用 SSH 远程登录
MaxAuthTries 6              # 密码错误的次数 6 /2=3(MAN 帮助中写明要除 2)次后断开连接
MaxSessions 10              # 最大的会话连接数(连接未登录的会话最大值,默认拒绝旧的连接未登录的会话)
StrictModes yes             # 检查用户家目录中 ssh 相关的配置文件是否正确
PubkeyAuthentication yes    # 是否使用基于 key 验证登录
AuthorizedKeysFile      .ssh/authorized_keys    #key 验证登录的客户端公钥路径
PasswordAuthentication yes  # 是否允许使用密码登录
PermitEmptyPasswords no     # 用户使用空口令登录
GatewayPorts no             # 启用网关功能,开启后可以将建立的 SSH 隧道 (端口转发) 共享出去
ClientAliveCountMax 3       # 探测 3 次客户端是否为空闲会话,↓3*10 分钟后断开连接
ClientAliveInterval 10      # 空闲会话时长,每 10 分钟探测一次
MaxStartups 10:30:100       #start:rate:full;当连接但为进行认证的用户超过 10 个,drop30%(rate/full)的连接当连接但未登录的连接达到 100 个后,新建立的连接将被拒绝
Banner /path/file           # 认证前输出的登录提示信息,指定文件路径
GSSAPIAuthentication no 
AllowUsers username         # 白名单,如果白名单有用户只有白名单的用户可以登陆
DenyUsers                  # 黑名单,被拒绝的用户,如果即允许又拒绝则拒绝生效
AllowGroups                 # 组白名单
DenyGroups                  # 组黑名单

三、免密登录(基于 KEY 验证登录)

在客户端成功密钥对,然后将公钥复制到要免密登录的服务器即可。
注:名称只能为 authorized_keys,添加多个公钥信息可以直接追加 >> .ssh/authorized_keys

ssh-keygen -t rsa -p“1234# 创建密钥对,- t 类型为 rsa,- p 私钥密码为 1234
ssh-copy-id -i ~/.ssh/id_rsa.pub IP     #- i 指定公钥路径后将公钥复制到远程 IP ~/.ssh/authorized_keys

四、常见故障

  • 提示 ssh_exchange_identification: Connection closed by remote host
    多数情况为配置文件出错,可以使用 sshd -T对配置文件进行逐一检查
  • 提示:server refused our key 免密登录被拒绝
    使用免密登录 公钥文件的权限不正确所以会拒绝登录,检查客户端复制到服务端的公钥信息文件权限是否正确

五、优化加速

服务器端修改配置文件中一下两项进行修改

vim /etc/ssh/sshd_conf
UseDNS no               
GSSAPIAuthentication no

UseDNS 会对客户端进行 DNS 反向解析,然后在比对正向解析的结果查看是否一致。
GSSAPIAuthentication大多数情况下使用密码验证或者秘钥验证所以关闭 GSSAPI 验证即可

六、日志分析

  • 查看方式
    手动查看日志文件 /var/log/secure
    systemctl 查看日志文件systemctl suts sshd

  • 常见警告
    提示:Authentication refused:bad ownership or modes for diectory
    ssh 连接的用户的家目录下.ssh 目录所有者或者权限不正确(正确为 700),sshd 会发出警告但依然允许登录

七、安全相关

– DOS

SSH 也可能成为 DOS 攻击的对象,例如恶意用户连接 SSH 但不输入密码进行验证,由于设置了 MaxStartups 会导致正常用户无法进行登录。针对此情况建议:

  • 修改默认端口
  • MaxStartups 调大一些例如 MaxStartups 100:30:1000
  • LoginGraceTime 10 调整连接超时未 10 秒
  • MaxSessions 10 设置连接但未登录的用户最大值为 10

– 其他优化

  • 限制可登录用户
  • 设定空闲会话超时时长
  • 充分利用防火墙设置 ssh 访问策略
  • 仅监听指定 IP 的 ssh
  • 禁止使用空口令登录
  • 禁止使用 root 直接进行登录
  • 做好日志分析
  • 加强用户登录的密码口令

下面关于 SSH 相关的文章您也可能喜欢,不妨参考下:

集群环境 SSH 免密码登录设置  http://www.linuxidc.com/Linux/2017-03/141296.htm

Linux 基础教程:配置 SSH 免密码登陆 http://www.linuxidc.com/Linux/2017-07/145847.htm

远程 SSH 连接服务与基本排错  http://www.linuxidc.com/Linux/2017-05/143738.htm

使用 SSH 公钥密钥自动登陆 Linux 服务器 http://www.linuxidc.com/Linux/2017-02/140642.htm

配置 SSH 免密码登录  http://www.linuxidc.com/Linux/2017-08/146213.htm

开启 SSH 服务让 Android 手机远程访问 Ubuntu 14.04  http://www.linuxidc.com/Linux/2014-09/106809.htm

SSH 非交互式密码授权远程执行脚本  http://www.linuxidc.com/Linux/2017-04/143180.htm

SSH 通过密钥登陆 http://www.linuxidc.com/Linux/2017-06/144997.htm

Linux 上实现 SSH 免密码登陆远程服务器  http://www.linuxidc.com/Linux/2017-05/144165.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-09/146944.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2756字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中