禁止某些用户使用ssh 远程登录

Linux上SSH实现远程免密登录、SSH配置允许/禁止某些用户远程登录 SSH安全配置与免密登录实现 本文介绍了SSH协议的基本原理和配置方法。SSH是一种加密网络协议,通过版本协商、密钥交换和用户认证等步骤建立安全连接。详细讲解了两种配置免密登录的方法:服务器端存放客户端公钥或客户端使用ssh-copy-id命令传输密钥。同时对sshd_config配置文件进行解析,包括端口设置、认证方式等关键参数。最后演示了通过修改配置文件实现远程登录黑白名单控制,包括禁止root登录和限制特定用户访问。配置时需谨慎操作,避免因设置不当导致管理权限丢失。 阅读详情

禁止某些用户使用ssh 远程登录

 

vim /etc/pam.d/sshd

在第一行加入 auth required pam_listfile.so item=user sense=deny file=/etc/sshdusers onerr=succeed,注意一定要在第一行,因为pam中执行顺序是上面优先

vim /etc/sshdusers

在文件中加入root wp ,root 和wp是两个本地用户

service sshd restart

在另一个终端测试

[root@clone2 ~]# ssh clone1.rhel.com
root@clone1.rhel.com's password:
Permission denied, please try again.
root@clone1.rhel.com's password:
Permission denied, please try again.
root@clone1.rhel.com's password:
Permission denied (publickey,gssapi-with-mic,password).

[wp@clone2 ~]$ ssh clone1.rhel.com
wp@clone1.rhel.com's password:
Permission denied, please try again.
wp@clone1.rhel.com's password:
Permission denied, please try again.
wp@clone1.rhel.com's password:
Permission denied (publickey,gssapi-with-mic,password).
两个用户都无法使用ssh了。呵呵,目的达到了


                    pam_listfile的使用

说明:
pam_listfile        应用程序对文件的访问控制

[root@station203 pam.d]# uname -a
Linux station203.example.com 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686 i686 i386 GNU/Linux

首先先man一下再说。
[root@station203 security]# man pam_listfile
...........省略..............


所属类型:auth、account、password、session


用法:
pam_listfile.so item=[tty|user|rhost|ruser|group|shell] 
        sense=[allow|deny] 
        file=/path/filename
        onerr=[succeed|fail] 
        [apply=[user|@group]]

item:设置访问控制的对象类型。
sense:用来指定当在保存“item”对象的文件中找不到item指定的对象时的动作方式,如果在文件中找不到相应的对象,则执行相

反的动作。
file:指定保存有“item”对象的文件位置。
onerr:用来指定当某类事件(如无法打开配置文件)发生时的返回值。
apply:用指定使用非用户和组类别时,这些规则所适用的对象。当item=[user|ruser|group]时,这个选项没有任何意义,只有当

item=[tty|rhost|shell]时才有意义。


实例:
先安装好vsftp,我用这个软件做试验。
[root@station203 pam.d]# rpm -qa | grep vsftp
vsftpd-2.0.5-10.el5
[root@station203 pam.d]# service vsftpd start            ## 直接启动

[root@station203 pam.d]# vim vsftpd 

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
## 试着解读上面这行。

## 说明,vsftp默认允许localuser登陆ftp,我的系统已经有aaa,bbb两用户。

[root@station203 pam.d]# vim /etc/vsftpd/ftpusers 
## 在最后加上aaa

[root@station203 pam.d]# ftp 192.168.1.203            ## aaa用户测试登陆ftp,输入正确密码,登陆失败
Connected to 192.168.1.203.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.203:root): aaa
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.

[root@station203 pam.d]# ftp 192.168.1.203            ## bbb用户测试登陆ftp,输入正确密码,登陆成功
Connected to 192.168.1.203.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.203:root): bbb
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

[root@station203 pam.d]# vim vsftpd                 ## 如果我把sense=deny改成allow会变成什么样子?

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=allow file=/etc/vsftpd/ftpusers onerr=succeed

## 修改好后,vsftp只允许/etc/vsftpd/ftpusers文件中的用户登陆。
## 试验昨晚,改回deny吧。一个插曲,昨天做的pam_succeed_if试验,忘记改回来,结果今天开机root登陆不上,只能进单用户改

回来。

实例二:
[root@station203 pam.d]# useradd -s /bin/csh ccc        ## 新建用户ccc,他的登录shell是csh
[root@station203 pam.d]# passwd ccc
[root@station203 pam.d]# vim /etc/loginshell            ## 创建一个文件,内容如下
/bin/csh
## 注意,这里要写绝对路径
[root@station203 pam.d]# vim system-auth              ## 添加下面这行,想象会怎么样?
auth        required      pam_listfile.so item=shell sense=deny file=/etc/loginshell onerr=succeed

测试:
用ccc用户登陆,失败,查看/var/log/secure时pam_listfile起作用了。
假如我又把这行的sense=deny改成allow会怎么样?

OK,pam_listfile的用法就这些,其他的选项也差不多,不写了。


Pluggable Authentication Modules for Linux 可插拨认证模块
当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,最后根据服务文件的内容选择具体的PAM模块进行处理。

通过ldd查看服务程序在编译时是否使用了libpam.so,决定服务程序是否支持PAM认证。
具体的pam文件放在/lib/security目录下,服务文件放在/etc/pam.d目录下

PAM服务文件格式
eg:
auth required pam_security.so
auth required pam_stack.so service=system-auth
service表示调用子服务文件

Module-type:
auth 检查用户和密码,分配权限
account 检查账号是否过期,是否有权登录
session 从用户登录成功到退出的会话控制
password 控制用户改密码的过程
control-flag:
required 要求矣须通过,否则结束退出
requisite 如果不通过还可继续向下认证,后面有一通过即可。
sufficient 通过则不需要向下认证
optional 可选项

常用PAM服务文件
login -------/etc/pam.d/login
ipop3d -------/etc/pam.d/pop
vsftpd -------/etc/pam.d/ftp(编译安装)或/etc/pam.d/vsftpd(rpm安装)
sshd -------/etc/pam.d/sshd
su -------/etc/pam.d/su
imap -------/etc/pam.d/imap

/lib/security目录下,各个pam模块的作用,可参考/usr/share/doc/pam-0.99.3.0下的帮助文件。
相同类型Module-type组成一个堆栈。

常用PAM模块
pam_access.so 控制访问者地址与账号名称
pam_listfile.so 控制访问者的账号名称或登录位置
pam_limits.so 控制为用户分配的资源
pam_rootok.so 对管理员(uid=0)无条件允许通过
pam_userdb.so 设定独立用户账号数据库认证

pam_access.so模块的使用―――控制访问sshd服务的主机和用户
1.修改需使用这个模块的服务文件,如sshd: /etc/pam.d/sshd添加
account required pam_access.so
2.修改模块的配置文件
/etc/security/access.conf
- : redhat : ALL EXCEPT 192.168.0. (格式)
3.测试
ssh
ssh
pam_access.so根据主机、IP、用户、拒绝或允许访问。

pam_listfile.so的应用 (比pam_access.so更加详细控制)
1.首先查看它的帮助文件,看它的具体格式,参数如何
#less /usr/share/doc/pam-0.99.3.0/txts/README.pam_listfile
item user,tty,group 说明列表文件中的内容
sense allow,deny 拒绝或允许文件中的用户
file 指定一个文件,内容根据item项来添加
onerr succeed,fail 当模块本身产生错误时,返回的值,如无法打开file指定的文件,一般设为succeed
2.将模块应用到sshd服务
将上面添加的pam_access.so清掉,然后在/etc/pam.d/sshd中添加(第一行)
auth required pam_listfile.so item=user sense=deny file=/etc/denyuser onerr=succeed
注意添加的位置顺序,否则看不到效果
3.创建编缉列表文件
#echo “redhat” >/etc/denyuser
4.测试
#ssh -l redhat 192.168.0.22 失败
#ssh -l chinaitlab 192.168.0.22 成功

#w 显示已登录的用户及最近的一次操作

pam_limits.so的应用
1.查看帮助文件,确认它的配置文件位置,参数模式
#less /usr/share/doc/pam-0.99.3.0/txt/README.pam_limits
<domain> <type> <item> <value>
<domain> 用户名或组名
<type> soft软限制
hard硬限制(不能达到的)
<item> 限制的内容,fsize文件大小,nproc最大进程数,maxlogins用户登录次数
2.将模块应用到sshd服务,修改服务文件
#vi /etc/pam.d/sshd 添加:
session required pam_limits.so
session 控制用户进程的登录次数,文件大小,通过控制用户的会话进程来限制用户使用的资源
3.编缉pam_limits.so的配置文件/etc/security/limits.conf
redhat hard maxlogins 2
限制redhat登录到sshd服务的次数,不能达到2。
4.测试
#ssh -l redhat 192.168.0.22 第1个
#ssh -l redhat 192.168.0.22 第2个
表示同时最多可以有1个redhat用户登录

pam_rootok.so的应用
#chfn 改变用户的finger信息
普通用户使用这个命令修改信息时,需要输入密码才能使用,而root用户则不需要。
分析:
#more /etc/pam.d/chfn
第一行为auth sufficient pam_rootok.so
因为chfn的pam服务文件的第一行应用了pam_rootok.so模块,所以当root用户使用chfn时不需验证,不需要再往下,直接通过。

pam_userdb.so模块需要一个db数据库储存用户信息,具体如何使用可参考前面的vsftpd虚拟用户。

在使用PAM模块时,注意参考README.pam帮助

交换机远程登录telnet、SSH、禁止非法用户访问实验 telnet、SSH配置 阅读详情

相关推荐

linux网络服务[SSH安全远程管理]——————禁止使用密码登录、禁止远程登录root用户、修改默认端口、限制ssh监听IP、白名单、黑名单

文章目录1. 1.

mango_kid 2156

pam_listfile(sshd:auth):Refused user root for service sshd

vi/etc/ssh/sshd_config 修改PermitRootLoginyes 添加 AllowUserroot vi/etc/security/access.conf 添加+:ALL:ALL vi/etc/sshd_userlist查看 authrequiredpam_listfile.soitem=usersense=allo...

weixin_33910460的博客 790

Centos7(Ubuntu)密码登录失败锁定设置(亲测)

在工作中为了防止恶意访问者暴力破解openssh口令。所我们需要设置登录系统失败锁定用户策略。 我的环境是Centos7 服务器1:192.168.239.142 服务器2:192.168.239.145 一、pam_tally2模块 编辑192.168.239.142的 /etc/pam.d/sshd 在第二行添加红框内容 # vi /etc/pam.d/sshd #%PAM-1.0 auth required pam_tally2.so onerr=fail deny=3 unlock_time=300

qq_40907977的博客 7640

Linux SSH管理用户登录

Linux SSH管理用户登录 方法一:(allow 允许) 1、在/etc/pam.d/sshd文件中加入以下行 (注:加入到第一行) auth required /lib64/security/pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail 2、在/etc下建立sshusers文件,

明明 1万+

ADS学习笔记 2. 低噪声放大器设计

ADS学习笔记 2. 低噪声放大器设计。设计了一个中心频率433MHz,增益18.206dB,NF=0.134dB,S11带宽较好的低噪声放大器

u014087103的博客 9508

Rokid眼镜高精度图像识别的五大工程破局点

图像识别是AR交互的基础能力,其核心在于将现实图像映射为可计算的数字特征,并通过几何建模解算空间姿态。在专用AR眼镜场景中,该过程面临光学畸变、传感器时序错位、低延迟跟踪与人因适配等复合挑战。尤其在工业现场,Rokid Max系列的鱼眼镜头畸变、IMU-视觉异步采样、窄FOV下快速眼动等物理约束,使传统基于AR Foundation或OpenCV的识别方案失效。本文聚焦真实部署中的关键瓶颈,涵盖实时反畸变纹理渲染、原生SDK直调优化、端侧轻量CNN模型(TinyImageNet-Rokid)、IMU-视觉紧

weixin_33681778的博客 697

vsftpd 530 Login incorrect 根本原因和解决方案

1 背景分析: 参照其他网上教程的配置后,在账号、密码、主目录都是正确的情况下,可能会遇到账号登录提示 530 Login incorrect 的问题。 网络上有好多解决方案,例如修改/etc/vsftpd.conf文件 将pam_service_name=vsftpd 修改为 pam_service_name=ftp ,虽然能够解决这个问题,但是这种方法其实是错误的。这样由于/etc/pam...

wqh0830的博客 3万+

英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战:从安全手册到代码集成的避坑指南

本文深入探讨英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战应用,重点解析锁步核配置、ECC策略优化及SafeTlib库集成中的关键问题。通过代码示例和配置建议,帮助开发者实现ASIL D级别安全性,规避常见陷阱,提升汽车电子系统的功能安全合规性。

weixin_42558093的博客 405

linux设置登陆n次失败锁定账号

前言 为了防止黑客恶意尝试破解你的服务器密码,需要进行一定的防护措施 声明 此设置在centos7系统上操作配置 远程登陆限制配置 编辑/etc/pam.d/sshd,务必在字符"#%PAM-1.0"行内容下(换行)插入 auth required pam_tally2.so onerr=fail deny=5 unlock_time=300 even_deny_root root_unlock_time=300 注释: 策略表示: 普通帐户和 root 的帐户登录连续

weixin_42715225的博客 2526

基于PlatformIO与CMSIS的STM32库函数开发实战:从环境搭建到外设驱动

本文详细介绍了基于PlatformIO与CMSIS的STM32库函数开发实战,从环境搭建到外设驱动实现。通过对比传统IDE,PlatformIO结合CMSIS框架在跨平台开发、代码可移植性和调试体验上更具优势。文章包含PlatformIO.ini配置详解、GPIO/USART驱动开发实例及常见问题解决方案,帮助开发者高效完成STM32项目开发。

weixin_29190169的博客 423

Modbus4J vs EasyModbus4J:哪个Java库更适合你的工业项目?

本文深入对比了Java领域两大Modbus通信库Modbus4J与EasyModbus4J。Modbus4J设计稳健、类型安全,适合复杂业务集成;EasyModbus4J基于Netty,在高并发场景下性能更优。文章从架构、性能、API及生产环境多维度分析,为工业物联网项目选型提供决策依据。

weixin_28475533的博客 310

linux远程登录安全,禁止某些用户利用ssh远程登录[Linux安全]

赞助商链接本文“禁止某些用户利用ssh远程登录[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:vim /etc/pam.d/sshd在第一行加入 auth required pam_listfile.so item=user sense=deny file=/etc/ssh...

weixin_31586247的博客 561

2篇1章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算

本文详细介绍了R语言中常见的数据结构的向量和矩阵。通过掌握这些数据结构的基本概念和操作技巧,可以更高效地处理和分析数据。

MD Code 1243

linux 禁止root用户远程登录,禁止ROOT用户通过SSH远程登陆

一. Linux修改ssh端口221.1 修改端口配置文件# vi /etc/ssh/sshd_config取消Port前的#注释,并将端口22改成655351.2 重启sshd服务用root用户执行:[root@singledb ~]# service sshd restartStopping sshd: ...

weixin_39779530的博客 2570

Xilinx FPGA平台GTX简易使用教程(四)GTX IP核配置教程

干货来了,GTX IP核配置,搬砖全靠它~~

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

禁止用户远程登录ssh访问控制设置

SSH远程登录用户访问控制设置: 如果只是需要禁止root用户ssh远程登录,那么比较简单 编辑sshd服 务的配置文件 # vi /etc/ssh/sshd_config 找到下面这行:把值改为yes(允许)或no(不允许) PermitRootLogin yes 然后重新启动ssh服务就可以了. # /etc/rc.d/sshd restart 或# serv...

weixin_33928467的博客 1911

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

禁止root通过SSH远程登录访问与限制某些用户远程登录

1.禁止ROOT通过SSH远程登录访问 改/etc/ssh/sshd_config文件。找如下的一句 #PermitRootLogin yes 改为如下的;...

weixin_33781606的博客 328

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

修改ssh服务端口号、禁止root用户远程登录、允许特定用户远程登录

ssh配置文件:/etc/ssh/ [root@rhce ssh]# ls moduli ssh_config.d ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key ssh_config sshd_config ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub sshd_config:主配置文件 ssh_ho

Eliauk22的博客 1708

ssh禁止root用户远程登录

linux系统中root用户无所不能,为了系统安全ssh禁止root用户远程登录,必要的话使用sudo机制也是不错的选择编辑 /etc/ssh/sshd_config修改 PermitRootLogin将yes改为no重启ssh服务service sshd restart 或/e

kevin2089764的专栏 841

禁止某些用户使用ssh远程登录

[root@localhost ~]# vi /etc/pam.d/sshd 在第一行加入 auth required pam_listfile.so item=user sense=deny file=/etc/sshdusers onerr=succeed,注意一定要在第一行,因为pam中执行顺序是上面优先 auth r...

WinJay 86

禁止root通过SSH远程登录访问与限制某些用户远程登录(转)

1.禁止ROOT通过SSH远程登录访问改/etc/ssh/sshd_config文件。找如下的一句#PermitRootLogin yes改为如下的;PermitRootLogin no注意,要把前面的#号去掉。重启sshd服务...

183

ssh服务 及禁止root用户远程登录

ssh服务搭建 关闭防火墙与selinuxsystem systemctl status firewalld.service (查看防火墙状态) systemctl stop firewalld.service (临时关闭) systemctl disable firewalld(关闭开机自启) getenforce (查看selinux状态) setenforce 0 (临时关闭selin...

mdzznmsl的博客 1420

linux限制用户ssh登陆_禁止某些用户使用ssh远程登录

vim /etc/pam.d/sshd在第一行加入 auth required pam_listfile.so item=user sense=deny file=/etc/sshdusers onerr=succeed,注意一定要在第一行,因为pam中执行顺序是上面优先vim /etc/sshdusers在文件中加入root wp ,root 和wp是两个本地用户ser...

weixin_35942549的博客 1691
上一篇: Oracle spool格式化数据使用
下一篇: PVID的作用及和VID的区别
no pay no gay
博客等级 码龄14年 73粉丝 1原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值