OpenSSH 服务器的安全加固步骤(openssh server)
nanshan 2024-11-02 12:14 14 浏览 0 评论
一般来说,我们在访问 Linux 系统时会使用 SSH 连接。要确保这种连接的安全,我们首先需要了解什么是 SSH?
SSH 是 Secure Shell 或 Secure Socket Shell 的缩写,它是一种远程管理协议,允许用户通过互联网等不安全的网络连接控制和组织服务器。创建 SSH 是为了以加密方式替代 Telnet 服务。因为客户端和服务器之间的 telnet 连接是不加密的。如果有一个人或一个女人站在客户端和服务器中间,那么他/她就可以看到所有明文格式的通信。是的,这不是对 MITM 攻击的最好解释:)
在访问远程服务器、传输文件或执行某些命令时,它比 Telnet 更安全。但这并不意味着使用 SSH 进行安全连接就足够了。我们需要提前进行一些配置,而不是在 sshd_config 文件中使用 SSH 的默认配置。
让我们开始吧:
1. 更改默认端口:
让我们先打开 SSH 服务配置文件;
sudo nano /etc/ssh/sshd_config
更改端口 22 以避免默认连接。例如 7777。但需要注意的是,您将无法再使用默认端口连接。因此需要指定新的端口号。
这将确保您免受脚本小鬼的攻击。但深入网络侦查仍会发现 7777 端口上运行着 ssh 服务。
我们需要输入以下命令,以便处理我们在此阶段和后续阶段所做的每一项更改。在这里,我们对 sshd_config 文件所做的更改将被处理。我不会在每个步骤后重复写这些内容,但我想说的是,应该这样做。
systemctl restart sshd
2. 获取有关访问服务器的更多信息:
默认情况下,服务器会记录所有 SSH 访问。不过,您可以将 "LogLevel "更改为 "VERBOSE",以获得更多有关尝试访问失败的信息。
3. 限制用户和关闭 root 用户:
在限制可以通过 SSH 访问的用户之前,我们必须防止 root 用户通过 SSH 连接。为此,我们需要创建一个具有 root 权限的用户。
useradd -m umtunl
我们用这条命令创建一个新用户。这里的 -m 指定符也意味着在相关用户的主文件夹下创建一个文件。
然后为 umtunl 用户分配一个密码。是的,它应该很强:)
passwd umtunl
完成此过程后,我们需要将创建的用户添加到管理员组。
usermod -aG sudo umtunl
我们需要编辑用于 SSH 连接设置的 /etc/ssh/sshd_config 文件。
在该文件中,我们将 "PermitRootLogin "一行改为 "no",允许 root 用户访问。我们在最下面一行添加 "AllowUsers umtunl",赋予新创建的用户权限。然后保存文件并退出。
4. 禁用 SSH 无密码用户连接请求:
虽然听起来很傻,但用户有时确实会忘记设置密码。在这种情况下,通过阻止通过 ssh 连接,就可以防止获取可能的用户名信息或尝试暴力破解的攻击者进入。
将 "PermitEmptyPasswords(允许空密码)"一行改为 "no(否)"后,我们就可以防止出现这种情况。
5. 使用 SSH 密钥连接:
连接服务器的最安全方法是使用 SSH 密钥。使用 SSH 密钥时,无需密码即可访问服务器。此外,你还可以通过更改 sshd_config 文件中与密码相关的参数,完全关闭通过密码访问服务器的功能。
创建 SSH 密钥时,有两个密钥:公钥和私钥。公钥上传到你要连接的服务器。私钥存储在要连接的计算机上。
我们在要连接服务器的计算机上使用 ssh-keygen 命令创建 SSH 密钥。我建议你不要将密码部分留空。请记住在这里输入的密码。如果留空,你只能通过 SSH 密钥文件来访问它,但如果指定了密码,就能防止拥有密钥文件的人仅通过文件来访问它。我在 Ubuntu 服务器上创建了一个 SSH 密钥,用于测试。
ssh-keygen
通过下面的命令,我们可以将公钥复制到要访问的服务器上。
ssh-copy-id umtunl@192.168.0.26 -p 7777
然后从 Ubuntu 服务器尝试 SSH 连接。我们输入为密钥输入的密码来访问服务器。
我们在 sshd_config 文件中将 "PasswordAuthentication "值设置为 "no",以防止密码访问。使用 systemctl restart sshd 命令重启 sshd 服务。
然后,我们尝试从另一台 Windows 机器登录。但登录失败,因为我们没有与目标服务器共享这台新机器的公钥。
6. 基于主机的访问阻断:
由于某些原因,您没有在服务器内部使用防火墙。然后,我们就可以通过基于主机的访问阻断所确定的 IP 进行访问。我们登录 /etc/hosts.allow 文件,在 sshd 中添加以下一行: allowed_ip_adress
然后在 /etc/hosts.deny 文件中添加 sshd : * 一行添加到 /etc/hosts.deny 文件中。
这样,我们就可以从确定的 IP 访问 sshd 服务,同时阻止从其他 IP 的访问。
7. 允许从特定地址访问 SSH:
如果你只想从指定的地址访问 SSH,那么服务器防火墙就会派上用场。我们将以 Ubuntu 为例,但同样的逻辑也适用于其他操作系统。Ubuntu 使用 ufw 作为防火墙。如果你愿意,可以安装 iptables 或你熟悉和喜欢的防火墙。我们先激活 ufw。
sudo ufw enable
然后,我们输入只能从指定 IP 访问的规则。如果愿意,还可以在此输入子网。
sudo ufw allow from 192.168.0.34 to any port 7777
我们再添加一条规则,阻止来自其他 IP 的访问。
ufw deny from any to any port 7777
接下来,让我们查看我们添加的规则。
ufw status numbered
所有步骤如下图所示。
这样,我们就只允许从 192.168.0.34 地址访问 SSH。
8. 使用 SSH 协议 2:
更安全版本的 SSH 可用作 SSH2。如果你想详细了解 SSH1 和 SSH2 的区别,本文将非常有用。
默认情况下,使用的是 SSH 协议 2,但一些较旧的服务器和机器或物联网设备可能使用协议 1,因此有必要考虑这种可能性。在这种情况下,我们可以在 sshd_config 文件中添加 "协议 2",然后像每次更改一样重启 ssh 守护进程。
当再次尝试进行 SSH 连接测试时,它会自动检测服务器默认使用的协议。因此,当我们指定要使用协议 1(特别是以 ssh -1 开始)时,会出现 "SSH 协议 v.1 不再受支持 "的错误。
9. 限制访问尝试:
默认情况下,您可以通过多次尝试密码来访问服务器。不过,攻击者可以利用这一漏洞对服务器进行暴力破解攻击。您可以通过指定密码尝试次数,在尝试一定次数后自动终止 SSH 连接。你可以随意更改 MaxAuthTries 的值。一般来说,数字 3 比较好。从这个角度看,我们可以认为错误登录超过 3 次的人在该服务器上没有工作。
10. 用横幅显示警告:
您可以使用 sshd_config 文件中的 Banner 参数显示您创建的文本,以警告将要登录服务器的用户。
更改后,我们重启 SSH 守护进程,应用 180 更改并进行测试。
虽然竖立横幅是个好主意,但要注意不要给攻击者带来挑战:D
11. 设置 SSH 连接超时空闲值
需要注意的是,在离开电脑的情况下,其他人可以接管你的 SSH 会话并为所欲为。虽然让电脑不上锁是不对的,但因为我们的主题是 SSH 安全,所以我不打算讨论这个话题。因此,为了防范于未然,最好设置一个空闲超时限制,一旦超时,SSH 会话就会关闭。
我们将把 "ClientAliveInterval "改为 180 秒。
12. 关闭 TCP 端口转发和 X11 转发
攻击者可以尝试通过 SSH 连接端口转发来访问你的其他系统。要防止这种情况,可以关闭 "AllowTcpForwarding "和 "X11Forwarding "功能。
https://www.ldeo.columbia.edu/ldeo/it/security/ssh/ssh-faq-1.htmlYou 可以在这篇文章中找到有关 X11 转发的更详细解释。
结论
通过应用所有这些步骤,我们可以提高 SSH 的安全性,从而增加系统的安全性,而随着远程工作机会的增加,尤其是大流行病的进程,这一点变得更加重要。当然,让 SSH 更安全还有许多其他可能的选择。不仅可以配置 sshd_config 文件,还可以使用 VPN 等。
- 上一篇:如何调试SSH连接(ssh设置)
- 下一篇:基于CA签名的统一SSH登陆密钥管理
相关推荐
- 三种自建KMS激活系统自动激活windows方法
-
第一种:在windows服务器上搭建主要针对vol版本(win7、win10、win20xx、win2012等等)平台:我自己搭建的windows虚拟机,windows2016的操作系统软件:...
- 重装系统被收98元?避开Windows付费陷阱的实用指南
-
重装系统被收98元?避开Windows付费陷阱的实用指南有网友反映,在重装Windows系统后,屏幕突然弹出“激活系统需支付98元服务费”的提示,疑惑自己是不是遭遇了付费陷阱。事实上,微软官方的Wi...
- Windows Server2012远程桌面服务配置和授权激活
-
安装:注意:安装完毕之后需手动重启一下计算机配置终端服务管理工具---远程桌面服务---RD授权诊断程序,查看当前服务器有没有授权授权:运行—>gpedit.msc->计算机配置---管理...
- 新书速览|Windows Server 2022 系统与网站配置实战
-
讲述桌面体验、ServerCore/NanoServer,容器与云系统的配置1本书内容《WindowsServer2022系统与网站配置实战》秉持作者一贯理论兼具实践的写作风格,以新版的Wi...
- Windows激活全攻略:KMS神钥与专业工具的完美结合!
-
对于许多Windows用户来说,系统的激活是一个必经的过程。虽然Windows操作系统在未经激活的状态下也可以使用一段时间,但长期来看,未激活的系统会限制某些功能并频繁提示用户激活。以下是两种流行的激...
- 微软Win9全新激活技术曝光(微软系统激活有什么用)
-
2014-07-0905:46:00作者:徐日俄罗斯Wzor日前披露了更多关于Windows9的最新消息,据悉,Windows9将会在今年秋季亮相,其宣传口号是“想要开始按钮和开始菜单?如你所...
- 快速激活Windows 10/11:CMD命令详细教程
-
#记录我的2024#激活Windows操作系统是确保系统功能和安全更新正常运行的重要步骤。本文将为您分享如何使用命令提示符(CMD)在Windows10和Windows11上进行激活的详细步骤。...
- Wndows 2019 RDS应用发布部署(rds的安装和应用程序的发布)
-
安装前的准备1、需要提供服务器作为应用中心,应用中心的推荐配置如下表所示。规格建议1-10人11-20人21-50人51-100人100+人CPU4核8核16核内存8GB16GB32GB64GB系统盘...
- 解决 Windows 系统激活难题(如何解决windows激活问题)
-
今天,一位朋友给我说,他手头有三台电脑,均同时弹出系统未激活的提示。他对此毫无头绪,便急忙将电脑上出现的激活提示信息一股脑发给了我。我看到其中一台显示的是“Windows10企业版LTSC尚...
- 自建KMS激活服务器(自建kms激活服务器的风险)
-
自建KMS激活服务器Win10和office安装后,都需要激活才可以使用,一般可以输入购买的MAK激活码进行在线激活,也可以通过KMS激活,网上也有很多激活工具,但这些工具一般都含有病毒或木马程序,容...
- 30秒免费激活windows和office亲测有效!
-
“第三方工具有病毒?”“KMS服务器激活总失效?”今天给大家分享一个开源激活工具——MicrosoftActivationScripts(MAS),无需密钥、不装软件,30秒永久激活Window...
- 「操作系统」Windows 10 LTSC 2019 企业版C大集成更新版
-
Windows10LTSC企业版CHIANNET集成更新优化整合多镜像版,CHIANNET,是USBOS超级PE维护盘工具箱作者,长久以来一直默默的更新着,USBOSPE软件,电脑城装机及...
- 一文看懂Windows激活:自查方法+授权类型科普(Win7/Win10通用)
-
一、如何判断Windows是否永久激活?无论是Win7还是Win10,均可通过以下方法快速验证:命令提示符法(通用):按下Win+R,输入slmgr.vbs/xpr并按回车键运行即可查看是否...
- 部分Windows Server 2019/2022用户反馈无法运行微软Teams应用
-
IT之家7月2日消息,科技媒体borncity今天(7月2日)发布博文,报道称在多个WindowsServer版本上,MicrosoftTeams应用近期出现了运行故障。用...
- 这种Windows激活方式已有20年...(windows现在激活)
-
2006年微软正式发布WindowsVista,随之而来引入了一项新的激活机制「OEM激活」,这项机制在Vista和Win7上最为流行。其实WindowsServer自2008开始至2025版本一...
你 发表评论:
欢迎- 一周热门
-
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
NAS:DS video/DS file/DS photo等群晖移动端APP远程访问的教程
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
手机如何设置与显示准确时间的详细指南
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
一加手机与电脑互传文件的便捷方法FileDash
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
- 最近发表
-
- 三种自建KMS激活系统自动激活windows方法
- 重装系统被收98元?避开Windows付费陷阱的实用指南
- Windows Server2012远程桌面服务配置和授权激活
- 新书速览|Windows Server 2022 系统与网站配置实战
- Windows激活全攻略:KMS神钥与专业工具的完美结合!
- 微软Win9全新激活技术曝光(微软系统激活有什么用)
- 快速激活Windows 10/11:CMD命令详细教程
- Wndows 2019 RDS应用发布部署(rds的安装和应用程序的发布)
- 解决 Windows 系统激活难题(如何解决windows激活问题)
- 自建KMS激活服务器(自建kms激活服务器的风险)
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)