关于dropbear ssh服务

今儿一早收到现场项目经理反馈,用户服务器上检查sshd服务时,显式如下:

导致,多项合规检查项不合规。要求,我司进行兼容性适配。

俗话说得好,知己知彼百战不殆。先了解一下Dropbear是个什么东东。

通过了解和试用,给现场的建议是:改回openssh,不要使用dropbear。

Dropbear简介

Dropbear是一个小型的SSH服务器和客户端,它被设计为在资源受限的环境中运行,比如嵌入式设备或容器等。它具有以下特点:

轻量级

  • 占用资源少:与OpenSSH等更全面的SSH实现相比,Dropbear体积更小、内存占用更低。这使得它非常适合在资源有限的设备上运行,例如某些物联网设备、路由器或其他嵌入式系统,这些设备通常没有足够的资源来运行更大型的SSH服务器。

  • 易于集成:由于其小巧的体积和较低的依赖性,Dropbear易于集成到各种嵌入式系统和专用应用程序中,方便开发人员在这些受限环境中添加SSH功能。

功能相对简单

  • 核心功能支持:它支持SSH的基本功能,包括安全的远程登录、密钥认证和数据加密传输等,能够满足大多数基本的远程访问和管理需求。

  • 部分高级功能缺失:与OpenSSH相比,它缺少一些高级功能,如对某些加密算法或认证方式的支持可能不够全面,以及缺乏对SFTP等协议的完整支持等。

配置和使用相对简单

  • 配置简便:它的配置文件相对简单,易于理解和修改,对于熟悉SSH基本概念的用户来说,可以快速地进行配置以满足基本的使用需求。

  • 启动和运行方便:在许多嵌入式系统或特定的Linux发行版中,Dropbear可以很方便地被集成和启动,且通常不需要复杂的初始化或依赖配置。

常见应用场景

  • 嵌入式设备管理:常用于嵌入式设备,如路由器、防火墙、物联网设备等,为这些设备提供安全的远程管理接口。

  • 容器环境:在某些轻量级容器镜像中,为了减小镜像体积,可能会使用Dropbear来提供SSH访问功能。

  • 临时或应急使用:在需要快速搭建一个简单的SSH服务器进行临时的远程访问或测试时,Dropbear也是一个不错的选择。

搭建Dropbear

github官网:https://github.com/mkj/dropbear/blob/master/INSTALL.md

官网地址:https://matt.ucc.asn.au/dropbear/dropbear.html

可以根据官网搭建说明,通过源码安装最新版,也可以通过YUM镜像源在线安装(版本偏旧)

1、检查yum镜像源是否存在Dropbear

~]# yum list |grep dropbear

dropbear.x86_64 2018.76-3.fc29 @fedora

2、使用yum安装

yum -y install dropbear

3、配置dropbear

dropbear不像openssh一样,存在/etc/ssh/sshd_config配置文件。它P都没有,如果要进行配置,只能通过命令参数:

~]# dropbear -h

Dropbear server v2018.76 https://matt.ucc.asn.au/dropbear/dropbear.html

Usage: dropbear [options]

-b bannerfile Display the contents of bannerfile before user login

(default: none)

-r keyfile Specify hostkeys (repeatable)

defaults:

dss /etc/dropbear/dropbear_dss_host_key

rsa /etc/dropbear/dropbear_rsa_host_key

ecdsa /etc/dropbear/dropbear_ecdsa_host_key

-R Create hostkeys as required

-F Don't fork into background

-E Log to stderr rather than syslog

-w Disallow root logins

-G Restrict logins to members of specified group

-s Disable password logins

-g Disable password logins for root

-B Allow blank password logins

-T Maximum authentication tries (default 10)

-j Disable local port forwarding

-k Disable remote port forwarding

-a Allow connections to forwarded ports from any host

-c command Force executed command

-p [address:]port

Listen on specified tcp port (and optionally address),

up to 10 can be specified

(default port is 22 if none specified)

-P PidFile Create pid file PidFile

(default /var/run/dropbear.pid)

-i Start for inetd

-W <receive_window_buffer> (default 24576, larger may be faster, max 1MB)

-K <keepalive> (0 is never, default 0, in seconds)

-I <idle_timeout> (0 is never, default 0, in seconds)

-V Version

具体参数都是干嘛的,我就不解释了,直接看就行。

配置举例:

a) 查看dropbear.service可知,通过/etc/sysconfig/dropbear传参。

~]# systemctl cat dropbear

/usr/lib/systemd/system/dropbear.service

Unit

Description=Dropbear SSH Server Daemon

Documentation=man:dropbear(8)

Wants=dropbear-keygen.service

After=network.target

Service

EnvironmentFile=-/etc/sysconfig/dropbear

ExecStart=/usr/sbin/dropbear -E -F $OPTIONS

Install

WantedBy=multi-user.target

b) 配置/etc/sysconfig/dropbear,修改banner和默认端口号,禁止root登录

~]# cat /etc/sysconfig/dropbear

OPTIONS="-b /etc/issue.net -p 4022 -w"

4、创建dropbear使用的keyfile

默认情况下,只有如下两个keyfile:

/etc/dropbear/dropbear_dss_host_key

/etc/dropbear/dropbear_rsa_host_key

需要额外创建ecdsa:

dropbearkey -t ecdsa -f dropbear_ecdsa_host_key

然后,重启dropbear。

5、 从openssh切换到dropbear

a) dropbear一切都准备妥当之后,停止openssh:

systemctl stop sshd

b)启动dropbear

systemctl start dropbear

c)设置dropbear开机自启动和取消openssh开机自启动

systemctl enable dropbear

sysemctl disable sshd

后记

openssh自带了sftp,可以通过sftp子服务上传下载文件;dropbear没有哦。

openssh具备会话保持功能。当openssh守护进程挂掉之后,已有会话仍然可以保持,我们可以据此解决故障。但是,dropbear没有哦。

相关推荐
gsls2008081 小时前
ocrapi服务docker镜像使用
运维·docker·容器
文牧之1 小时前
PostgreSQL 的扩展pg_freespacemap
运维·数据库·postgresql
AWS官方合作商2 小时前
基于AWS Serverless架构:零运维构建自动化SEO内容生成系统
运维·serverless·aws
whp4042 小时前
windows server2019 不成功的部署docker经历
运维·docker·容器
IT界小黑的对象3 小时前
virtualBox部署ubuntu22.04虚拟机 NAT+host only 宿主机ping不通虚拟机
linux·运维·服务器
weixin_527550403 小时前
Linux 环境下高效视频切帧的实用指南
linux·运维·音视频
keson要进步3 小时前
CICD实战(一) -----Jenkins的下载与安装
运维·ci/cd·centos·自动化·jenkins
keson要进步3 小时前
CICD实战(二)-----gitlab的安装与配置
linux·运维·gitlab
藥瓿亭4 小时前
K8S认证|CKS题库+答案| 4. RBAC - RoleBinding
linux·运维·服务器·云原生·容器·kubernetes·cks
发非人非4 小时前
Shell编程核心符号与格式化操作详解
运维