更多专业文档请访问 www.itilzj.com

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩分享


SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。大多数用户使用默认设置的 SSH 连接来连接到远程服务器。但是,不安全的默认配置也会带来各种安全风险。

具有开放 SSH 访问权限的服务器的 root 帐户可能存在风险。尤其是如果你使用的是公共 IP 地址,则破解 root 密码要容易得多。因此,有必要了解 SSH 安全性。

这是在 Linux 上保护 SSH 服务器连接的方法。

1. 禁用 root 用户登录

为此,首先,禁用 root 用户的 SSH 访问并创建一个具有 root 权限的新用户。关闭 root 用户的服务器访问是一种防御策略,可以防止攻击者实现入侵系统的目标。例如,你可以创建一个名为 exampleroot 的用户,如下所示:

useradd -m exampleroot
passwd exampleroot
usermod -aG sudo exampleroot

以下是上述命令的简要说明:

  • useradd 创建一个新用户,并且 - m 参数在你创建的用户的主目录下创建一个文件夹。

  • passwd 命令用于为新用户分配密码。请记住,你分配给用户的密码应该很复杂且难以猜测。

  • usermod -aG sudo 将新创建的用户添加到管理员组。

在用户创建过程之后,需要对 sshd_config 文件进行一些更改。你可以在 / etc/ssh/sshd_config 找到此文件。使用任何文本编辑器打开文件并对其进行以下更改:

# Authentication: #LoginGraceTime 2m PermitRootLogin no 
AllowUsers exampleroot

PermitRootLogin 行将阻止 root 用户使用 SSH 获得远程访问。在 AllowUsers 列表中包含 exampleroot 会向用户授予必要的权限。

最后,使用以下命令重启 SSH 服务:

> rumenz@rumenz /home/rumenz/www.rumenz.com                              
> sudo systemctl restart ssh

如果失败并且你收到错误消息,请尝试以下命令。这可能因你使用的 Linux 发行版而异。

> rumenz@rumenz /home/rumenz/www.rumenz.com
> sudo systemctl restart sshd

2. 更改默认端口

默认的 SSH 连接端口是 22。当然,所有的攻击者都知道这一点,因此需要更改默认端口号以确保 SSH 安全。尽管攻击者可以通过 Nmap 扫描轻松找到新的端口号,但这里的目标是让攻击者的工作更加困难。

要更改端口号,请打开 / etc/ssh/sshd_config 并对文件进行以下更改:

Include /etc/ssh/sshd_config.d/*.confPort 22099

在这一步之后,使用 sudo systemctl restart ssh 再次重启 SSH 服务。现在你可以使用刚刚定义的端口访问你的服务器。如果你使用的是防火墙,则还必须在此处进行必要的规则更改。在运行 netstat -tlpn 命令时,你可以看到你的 SSH 端口号已更改。

3. 禁止使用空白密码的用户访问

在你的系统上可能有你不小心创建的没有密码的用户。要防止此类用户访问服务器,你可以将 sshd_config 文件中的 PermitEmptyPasswords 行值设置为 no。

PermitEmptyPasswords no

4. 限制登录 / 访问尝试

默认情况下,你可以根据需要尝试多次输入密码来访问服务器。但是,攻击者可以利用此漏洞对服务器进行暴力破解。通过指定允许的密码尝试次数,你可以在尝试一定次数后自动终止 SSH 连接。

为此,请更改 sshd_config 文件中的 MaxAuthTries 值。

MaxAuthTries 3

5. 使用 SSH 版本 2

SSH 的第二个版本发布是因为第一个版本中存在许多漏洞。默认情况下,你可以通过将 Protocol 参数添加到 sshd_config 文件来启用服务器使用第二个版本。这样,你未来的所有连接都将使用第二个版本的 SSH。

Include /etc/ssh/sshd_config.d/*.conf Protocol 2

6. 关闭 TCP 端口转发和 X11 转发

攻击者可以尝试通过 SSH 连接的端口转发来访问你的其他系统。为了防止这种情况,你可以在 sshd_config 文件中关闭 AllowTcpForwarding 和 X11Forwarding 功能。

X11Forwarding no 
AllowTcpForwarding no

7. 使用 SSH 密钥连接

连接到服务器的最安全方法之一是使用 SSH 密钥。使用 SSH 密钥时,无需密码即可访问服务器。另外,你可以通过更改 sshd_config 文件中与密码相关的参数来完全关闭对服务器的密码访问。

创建 SSH 密钥时,有两个密钥:Public 和 Private。公钥将上传到你要连接的服务器,而私钥则存储在你将用来建立连接的计算机上。

在你的计算机上使用 ssh-keygen 命令创建 SSH 密钥。不要将密码短语字段留空并记住你在此处输入的密码。如果将其留空,你将只能使用 SSH 密钥文件访问它。但是,如果你设置了密码,则可以防止拥有密钥文件的攻击者访问它。例如,你可以使用以下命令创建 SSH 密钥:

ssh-keygen

8. SSH 连接的 IP 限制

大多数情况下,防火墙使用自己的标准框架阻止访问,旨在保护服务器。但是,这并不总是足够的,你需要增加这种安全潜力。

为此,请打开 / etc/hosts.allow 文件。通过对该文件进行的添加,你可以限制 SSH 权限,允许特定 IP 块,或输入单个 IP 并使用拒绝命令阻止所有剩余的 IP 地址。

下面你将看到一些示例设置。完成这些之后,像往常一样重新启动 SSH 服务以保存更改。

福利

Linux系统/应用运维人员的交流圈子,不定期为您提供Linux技术领域前沿资讯/培训课程/独家技术手册/Linux工具/文档模板等,行业大咖分享交流/同行经验分享互动,期待你的加入!扫码即可加入。

随着材料不断增多社群会不定期涨价早加入更优惠

公众号发送如下关键字获取免费资料:

1.网络安全技术资料--回复"1"

2.容器云运维资料包--回复"2"

3.Python学习资料--回复"3"

4.Devops学习视频课件--回复"4"

5.Linux运维技术资料--回复"5"

免责声明:

本公众号部分分享的资料来自网络收集和整理,所有文字和图片版权归属于原作者所有,且仅代表作者个人观点,与本公众号无关,文章仅供读者学习交流使用,并请自行核实相关内容,如文章内容涉及侵权,请联系后台管理员删除。

更多推荐

收藏:Linux内核概念和学习路线

教你如何在Linux中列出已安装的 rpm 包

linux安全加固十六法则

100 个 Linux Shell 脚本经典案例解析

Linux 怎么防止 ssh 被暴力破解相关推荐

  1. Linux SSH密码暴力破解技术及攻防实战

    对于Linux操作系统来说,一般通过VNC.Teamviewer和SSH等工具来进行远程管理,SSH是 Secure Shell的缩写,由IETF的网络小组(Network Working Group ...

  2. 开源服务专题之------ssh防止暴力破解及fail2ban的使用方法

    15年出现的JAVA反序列化漏洞,另一个是redis配置不当导致机器入侵.只要redis是用root启动的并且未授权的话,就可以通过set方式直接写入一个authorized_keys到系统的/roo ...

  3. SSH密码暴力破解及防御实战

    前言:本文对目前流行的 SSH 密码暴力破解工具进行实战研究.分析和总结,对渗透攻击测试和安全防御具有一定的参考价值. 首先介绍几款常用的ssh暴力破解工具: 1. hydra [海德拉] 指定用户破 ...

  4. kali-linux教程 ssh密码暴力破解和防御实战

    1 hydra[海德拉] Hydra是世界顶级密码暴力破解工具,支持几乎所有协议的在线密码破解,功能强大,其密码能否被破解关键取决于破解字典是否足够强大,在网络安全渗透过程中是一款必备的测试工具. 指 ...

  5. Linux 利用hosts.deny 防止暴力破解ssh

    一.ssh暴力破解 利用专业的破解程序,配合密码字典.登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果. 二.暴力破解演示 2.1.基础环境:2台linux主机(centos 7 ...

  6. Linux 安装DenyHost防止ssh被暴力破解

    DenyHosts介绍 当你的linux服务器暴露在外网当中时,服务器就极有可能会遭到互联网上的扫描软件进行扫描,然后试图连接ssh端口进行暴力破解(穷举扫描).如果遇到这个问题,一款非常有用的工具D ...

  7. LINUX防御ssh远程暴力破解

    在购买好服务器后,去查看主机登录日志和登录失败日志,如果发现入下图所示的长时段短时间内多IP登录失败日志,不要怀疑,你的服务器正在经受试图远程登录主机的暴力破解行为,一旦成功破解,则会进行例如植入AR ...

  8. 拒绝ssh远程暴力破解-以centos7及centos8为例

    一.centos8 参考: 如何在CentOS 8上安装和配置Fail2ban - A5互联 - 博客园 (cnblogs.com)https://www.cnblogs.com/a5idc/p/13 ...

  9. linux之fail2ban之预防暴力破解

    本测试需要的环境: 1)系统: centos7 python 版本大于2.4 fail2ban原理:工作的原理是通过分析一定时间内的相关服务日志,将满足动作的相关IP利用iptables加入到drop ...

  10. SSH密码暴力破解及防御实战----攻

    1.实验环境 准备一台装有kali的虚拟机和一台ssh端口开放的虚拟机 这里面的暴力破解全是使用的kali里面自带的软件破解的. kali 192.168.13.145 #装有kali的虚拟机 loc ...

最新文章

  1. Glide二次封装库的使用
  2. 1、ios开发之 内购
  3. 工商银行信用卡如何通过刷星提额?
  4. Golang系列:打印命令行参数
  5. DNS练习之反向解析
  6. HTML5 dataset遍历,H5中data-xxxx属性
  7. Java 多态,接口
  8. oracle用exp定时备份数据库,使用exp和imp对Oracle数据库进行简单的备份
  9. HiveSQL正则表达式的应用
  10. oracle查询排序id,Oracle查询数据怎么按照甲乙丙丁排序?谢谢
  11. 阿里云获取手机验证码
  12. pytorch是什么?解释pytorch的基本概念
  13. 使用selenium爬取唯品会
  14. 备战数学建模35-时间序列预测模型
  15. matlab 差分方程的解(解答qq网友)
  16. 005:魔兽世界之一:备战
  17. 超级内存NVDIMM--要和内存说再见?Intel将推存储界新物种NVDIMM内存
  18. linux zip和gzip的区别
  19. cocos creator android 真机调试配置密匙
  20. trick2-mobilenetv1、mobilenetv2、mobilenetv3替换YOLO主干

热门文章

  1. ios+手机壳+瞬间切换android,不只是双卡双待,这个手机壳能让你的 iPhone 运行 iOS + Android 双系统...
  2. linux+新浪行情接口,新浪天气API接口
  3. 非相参积累 matlab,非相参积累增益,比相参积累增益更难计算?
  4. 常微分方程和偏微分方程的区别
  5. Spring - 解决 SpringUtil getBean NPE 问题
  6. docker stop 失败处理方法
  7. 关于HF-lpt130A与GoKit2.1(stm32)底版的链接通信(持更...)
  8. chrome插件实现简单网页实时翻译
  9. Arcgis使用教程(九)ARCGIS空间数据符号化
  10. C#输入身高体重求BMI