×

【每日一记7】+第1天+如何在 Linux 上为特定的用户或用户组启用或禁用 SSH?
  

新手128605 861

{{ttag.title}}
由于你的公司标准规定,你可能只能允许部分人访问 Linux 系统。或者你可能只能够允许几个某公司公司组中的某公司公司访问 Linux 系统。那么如何实现这样的要求呢?最好的方法是什么呢?如何使用一个简单的方法去实现呢?
是的,我们会有很多种方法去实现它。但是我们应该使用简单轻松的方法。为了简单轻松的完成目的,我们可以通过对 /etc/ssh/sshd_config 文件做必要的修改来实现。在这篇文章中我们将会向你展示实现要求的详细步骤。
为什么我们要这样做呢?是出于安全的原因。你可以访问这个链接来获取更多关于 openSSH 的使用方法。
什么是 SSH ?openssh 全称为 OpenBSD Secure Shell。Secure Shell(ssh)是一个自由开源的网络工具,它能让我们在一个不安全的网络某公司公司过使用 Secure Shell(SSH)协议来安全访问远程主机。
它采用了客户端-服务器架构(C/S),拥有某公司公司身份认证、加密、在计算机和隧道之间传输文件等功能。
我们也可以用 telnet 或 rcp 等传统工具来完成,但是这些工具都不安全,因为它们在执行任何动作时都会使用明文来传输密码。
如何在 Linux 中允许某公司公司使用 SSH?通过以下内容,我们可以为指定的某公司公司或某公司公司列表启用 ssh 访问。如果你想要允许某公司公司某公司公司,那么你可以在添加某公司公司时在同一行中用某公司公司来隔开他们。
为了达到目的只需要将下面的值追加到 /etc/ssh/sshd_config 文件中去。 在这个例子中, 我们将会允许某公司公司 user3 使用 ssh。
  • # echo "AllowUsers user3" >> /etc/ssh/sshd_config


你可以运行下列命令再次检查是否添加成功。
  • # cat /etc/ssh/sshd_config | grep -i allowusers
  • AllowUsers user3


这样就行了, 现在只需要重启 ssh 服务和见证奇迹了。(下面这两条命令效果相同, 请根据你的服务管理方式选择一条执行即可)
  • # systemctl restart sshd
  • # service restart sshd


接下来很简单,只需打开一个新的终端或者会话尝试用不同的某公司公司身份访问 Linux 系统。是的,这里 user2 某公司公司是不被允许使用 SSH 登录的并且会得到如下所示的错误信息。
  • user2@192.***.1.4's password:
  • Permission denied, please try again.


输出:
  • Mar 29 02:某公司:35 CentOS7 sshd[49某公司]: User user2 from **2.168.1.6 某公司t allowed because 某公司t listed in AllowUsers
  • Mar 29 02:某公司:35 CentOS7 sshd[49某公司]: input_userauth_request: invalid user user2 [preauth]
  • Mar 29 02:某公司:40 CentOS7 unix_chkpwd[4902]: password check failed for user (user2)
  • Mar 29 02:某公司:40 CentOS7 sshd[49某公司]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.6  user=user2
  • Mar 29 02:某公司:43 CentOS7 sshd[49某公司]: Failed password for invalid user user2 from 192.168.1.6 port 42568 ssh2


与此同时某公司公司 user3 被允许登入系统因为他在被允许的某公司公司列表中。
输出:
  • Mar 29 02:01:13 CentOS7 sshd[4939]: Accepted password for user3 from ***.168.1.6 port 42590 ssh2
  • Mar 29 02:01:13 CentOS7 sshd[4939]: pam_unix(sshd:session): session opened for user user3 by (uid=0)


如何在 Linux 中阻止某公司公司使用 SSH ?通过以下内容,我们可以配置指定的某公司公司或某公司公司列表禁用 ssh。如果你想要禁用某公司公司某公司公司,那么你可以在添加某公司公司时在同一行中用某公司公司来隔开他们。
为了达到目的只需要将以下值追加到 /etc/ssh/sshd_config 文件中去。 在这个例子中, 我们将禁用某公司公司 user1 使用 ssh。
  • # echo "DenyUsers user1" >> /etc/ssh/sshd_config


你可以运行下列命令再次检查是否添加成功。
  • # cat /etc/ssh/sshd_config | grep -i denyusers
  • DenyUsers user1


这样就行了, 现在只需要重启 ssh 服务和见证奇迹了。
  • # systemctl restart sshd
  • # service restart sshd


接下来很简单,只需打开一个新的终端或者会话,尝试使用被禁用的某公司公司身份被访问 Linux 系统。是的,这里 user1 某公司公司在禁用名单中。所以,当你尝试登录时,你将会得到如下所示的错误信息。
  • user1@**2.168.1.4's password:
  • Permission denied, please try again.


输出:
  • Mar 29 01:53:42 CentOS7 sshd[4753]: User user1 from 192.168.1.6 某公司t allowed because listed in DenyUsers
  • Mar 29 01:53:42 CentOS7 sshd[4753]: input_userauth_request: invalid user user1 [preauth]
  • Mar 29 01:53:46 CentOS7 unix_chkpwd[4755]: password check failed for user (user1)
  • Mar 29 01:53:46 CentOS7 sshd[4753]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.6  user=user1
  • Mar 29 01:53:48 CentOS7 sshd[4753]: Failed password for invalid user user1 from 192.168.1.6 port 42522 ssh2


如何在 Linux 中允许某公司公司组使用 SSH?通过以下内容,我们可以允许一个指定的组或某公司公司组使用 ssh。
如果你想要允许某公司公司组使用 ssh 那么你在添加某公司公司组时需要在同一行中使用某公司公司来隔开他们。
为了达到目的只需将以下值追加到 /etc/ssh/sshd_config 文件中去。在这个例子中,我们将允许 2g-** 组使用 ssh。
  • # echo "AllowGroups 2g-**" >> /etc/ssh/sshd_config


你可以运行下列命令再次检查是否添加成功。
  • # cat /etc/ssh/sshd_config | grep -i allowgroups
  • AllowGroups 2g-**


运行下列命令查看属于该某公司公司组的某公司公司有哪些。
  • # getent group 2g-**
  • 2g-**:x:1某公司5:user1,user2,user3


这样就行了, 现在只需要重启 ssh 服务和见证奇迹了。
  • # systemctl restart sshd
  • # service restart sshd


是的, user1 被允许登入系统因为某公司公司 user1 属于 2g-** 组。
输出:
  • Mar 29 02:10:21 CentOS7 sshd[5165]: Accepted password for user1 from 1**.168.1.6 port 42640 ssh2
  • Mar 29 02:10:22 CentOS7 sshd[5165]: pam_unix(sshd:session): session opened for user user1 by (uid=0)


是的, user2 被允许登入系统因为某公司公司 user2 同样属于 2g-** 组。
输出:
  • Mar 29 02:10:38 CentOS7 sshd[5225]: Accepted password for user2 from 1**.168.1.6 port 42642 ssh2
  • Mar 29 02:10:38 CentOS7 sshd[5225]: pam_unix(sshd:session): session opened for user user2 by (uid=0)


当你尝试使用某公司公司不在被允许的组中的某公司公司去登入系统时, 你将会得到如下所示的错误信息。
  • l**@1**.168.1.4's password:
  • Permission denied, please try again.


输出:
  • Mar 29 02:12:36 CentOS7 sshd[5306]: User l** from 1**2.168.1.6 某公司t allowed because 某公司ne of user's groups are listed in AllowGroups
  • Mar 29 02:12:36 CentOS7 sshd[5306]: input_userauth_request: invalid user l** [preauth]
  • Mar 29 02:12:56 CentOS7 unix_chkpwd[5310]: password check failed for user (l**)
  • Mar 29 02:12:56 CentOS7 sshd[5306]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.6  user=l**
  • Mar 29 02:12:58 CentOS7 sshd[5306]: Failed password for invalid user l** from 1**.168.1.6 port 42674 ssh2


如何在 Linux 中阻止某公司公司组使用 SSH?通过以下内容,我们可以禁用指定的组或某公司公司组使用 ssh。
如果你想要禁用某公司公司某公司公司组使用 ssh,那么你需要在添加某公司公司组时在同一行中使用某公司公司来隔开他们。
为了达到目的只需要将下面的值追加到 /etc/ssh/sshd_config 文件中去。
  • # echo "DenyGroups 2g-**" >> /etc/ssh/sshd_config


你可以运行下列命令再次检查是否添加成功。
  • # # cat /etc/ssh/sshd_config | grep -i denygroups
  • DenyGroups 2g-**

  • # getent group 2g-**
  • 2g-**:x:1某公司5:user1,user2,user3


这样就行了, 现在只需要重启 ssh 服务和见证奇迹了。
  • # systemctl restart sshd
  • # service restart sshd


是的 user1 不被允许登入系统,因为他是 2g-** 某公司公司组中的一员。他属于被禁用 ssh 的组中。
  • user1@1**.168.1.4's password:
  • Permission denied, please try again.


输出:
  • Mar 29 02:17:32 CentOS7 sshd[54某公司]: User user1 from 192.168.1.6 某公司t allowed because a group is listed in DenyGroups
  • Mar 29 02:17:32 CentOS7 sshd[54某公司]: input_userauth_request: invalid user user1 [preauth]
  • Mar 29 02:17:38 CentOS7 unix_chkpwd[5402]: password check failed for user (user1)
  • Mar 29 02:17:38 CentOS7 sshd[54某公司]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.6  user=user1
  • Mar 29 02:17:41 CentOS7 sshd[54某公司]: Failed password for invalid user user1 from 192.168.1.6 port 42710 ssh2


除了 2g-** 某公司公司组之外的某公司公司都可以使用 ssh 登入系统。 例如,l** 等某公司公司就允许登入系统。
输出:
  • Mar 29 02:19:13 CentOS7 sshd[5432]: Accepted password for l** from 1**.168.1.6 port 42716 ssh2
  • Mar 29 02:19:13 CentOS7 sshd[5432]: pam_unix(sshd:session): session opened for user l** by (uid=0)



打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

sangfor_闪电回_小六 发表于 2020-5-19 18:56
  
感谢楼主分享,沉淀技术,积累经验!坚持每日一记,赚额外成长收益!累计分享满2天可获得500s豆激励,累计满10天可获得2000s豆激励,更多累计奖励等你领取哦!继续加油~
sangfor_闪电回_小六 发表于 2020-5-19 18:56
  
您好,感谢楼主分享,如文章为转载的内容需附上原文链接哦!

关于笔记内容社区建议如下↓
创作笔记指南:
内容图文结合,文章不用太长,条理清晰,有实质性的参考价值,能解决实际问题;
建议笔记采用的结构:
QA(问题-答案)式结构,先说问题,再给建议或者解决方案(可以多条并列)以故障排错为例:问题现象--原因分析---排查思路和解决方法--排查结果--注意事项” 可以参考这样的组织结构写作;
杜绝复制粘贴式、抄袭、滥竽充数、灌水、过于简单的内容(否则将取消激励,造成个人时间浪费!小编会审核每一条笔记的哦)
参考案例:https://bbs.sangfor.com.cn/forum ... read&tid=100181
汇友赵辉 发表于 2021-6-8 10:17
  
感谢楼主分享,学习到了!
发表新帖
热门标签
全部标签>
技术盲盒
西北区每日一问
安全效果
干货满满
每日一问
【 社区to talk】
新版本体验
技术笔记
功能体验
技术咨询
产品连连看
GIF动图学习
标准化排查
2023技术争霸赛专题
每周精选
通用技术
自助服务平台操作指引
信服课堂视频
秒懂零信任
技术晨报
安装部署配置
排障笔记本
答题自测
原创分享
升级&主动服务
社区新周刊
POC测试案例
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
高频问题集锦
全能先锋系列
云化安全能力

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人