今儿一早收到现场项目经理反馈,用户服务器上检查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没有哦。