linux系统pam配置

摘自:https://blog.csdn.net/jhcsdb/article/details/15780433

PAM--- Pluggable Authentication Module
Linux下可扩展的鉴权模块,用户进程服务某服务进程,服务进程先把请求送到PAM模块进行鉴权,PAM根据服务名从/etc/pam.d/目录选择一个服务文件,根据服务文件的配置内容进行鉴权。

通过ldd命令查看服务名,确定服务是否使用pam功能(pam服务对应libpam*.so库文件):
ldd /usr/sbin/sshd
        linux-vdso.so.1 =>  (0x00007fff1b8ef000)
        libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f579f2d8000)
        libpam.so.0 => /lib64/libpam.so.0 (0x00007f579f0cb000)

/lib/security目录存放pam模块文件,支持哪些鉴权功能:

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

/etc/pam.d目录存放使用pam的服务名,哪些进程会使用pam模块:

[[email protected] ~]$ ls /etc/pam.d/
atd             cups                 gdm-password       ksu               poweroff   smartcard-auth     sudo-i                        system-config-network
authconfig      cvs                  gnome-screensaver  login             ppp        smartcard-auth-ac  su-l                          system-config-network-cmd
authconfig-gtk  eject                halt               newrole           reboot     smtp               system-auth                   system-config-users
authconfig-tui  fingerprint-auth     kcheckpass         other             remote     smtp.postfix       system-auth-ac                xdm
chfn            fingerprint-auth-ac  kdm                passwd            run_init   sshd               system-config-authentication  xserver
chsh            gdm                  kdm-np             password-auth     runuser    ssh-keycat         system-config-date
config-util     gdm-autologin        kppp               password-auth-ac  runuser-l  su                 system-config-kdump
crond           gdm-fingerprint      kscreensaver       polkit-1          setup      sudo               system-config-keyboard
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

/etc/security/目录存放pam认证、鉴权时使用的配置文件,如limits.conf

[[email protected] ~]$ ls /etc/security/
access.conf   console.handlers  group.conf   namespace.conf  opasswd           sepermit.conf
chroot.conf   console.perms     limits.conf  namespace.d     pam_env.conf      time.conf
console.apps  console.perms.d   limits.d     namespace.init  pam_winbind.conf

一个服务进程AA使用pam鉴权功能需要做两步:

第一步:修改/etc/pam.d/AA 文件,指定AA服务需要加载一个libpam_XXXX.so动态库。
第二步:修改/etc/security/XXXX.conf,指定XXXX操作需要满足哪些鉴权规则。

通过配置文件增改删进程的鉴权规则,下面介绍两个常用的pam模块

  • pam_access.so模块的使用―――控制访问sshd服务的主机和用户
1.修改需使用这个模块的服务文件/etc/pam.d/sshd
添加 account required pam_access.so
2.修改模块的配置文件 /etc/security/access.conf
- : redhat : ALL EXCEPT 192.168.0. (ip为192.168.0.X的redhat机器无权访问)
结果:ip为192.168.0.X的redhat机器执行ssh时,无法登录该机器。
  • pam_limits.so 模式使用
1.模块应用到sshd服务,修改服务文件
#vi /etc/pam.d/sshd 添加:
session required pam_limits.so
session控制用户进程的登录次数,文件大小,通过控制用户的会话进程来限制用户使用的资源。
2.编缉pam_limits.so的配置文件/etc/security/limits.conf
*                hard    nofile          65536
*                soft    nofile          65535
任意用户进程的句柄上限都是65535。

原文地址:https://www.cnblogs.com/LiuYanYGZ/p/12381651.html

时间: 2025-01-17 16:20:19

linux系统pam配置的相关文章

虚拟机Linux系统下配置网络

虚拟机上安装Redhat9.0后是没有网络的,而本来的Windows系统是可以上网的,此时想在Redhat上网就需要在Linux系统上配置网络,以下是笔者自己配置的一点心得. 1.电脑本机系统打开网络连接,启用VMnet1和VMnet8(设置—>主页—>网络和Internet—>更改适配器选项) 2.打开虚拟机,选中RedHat,在虚拟机设置中,将网络连接模式设为“Bridged”,确定.3.启动Redhat操作系统.打开终端. 4.输入命令:ifconfig  回车 这是我配置成功以后

OSSEC 加固linux系统详细配置

ossec官方网站http://www.ossec.net/ ossec帮助文档http://ossec-docs.readthedocs.org/en/latest/manual/index.html OSSEC是一个开源的基于主机的入侵检测系统,执行日志分析,文件完整性检查,政策监控,rootkit检测,实时报警和积极响应. 它可以运行在大多数的操作系统,包括Linux,MacOS的时,Solaris,HP-UX,AIX和Windows 最新稳定版为2.8 下载页面http://www.os

[Linux][VMWare] 学习笔记之安装Linux系统-网络配置

最近开始折腾Linux,在本机装了个VMWare和Centos,装完之后虚拟机里面的OS可以上网,但是使用SecureCRT连接不上虚拟机,开始折腾这个网络. vmware安装好以后,会自动添加两张网卡(vmnet1和vmnet8),中间网卡),整个机器的结构就可以抽象成:虚拟机系统(虚拟机网卡vmnet0)--(vmnet1 vmnet8),中间网卡)--实际系统网卡 vmware的网卡设置的几种方式: 1. Bridged(桥接)方式     用这种方式,虚拟系统的IP可设置成与本机系统在同

Linux 系统安全配置 Debian => 禁止root SSH登陆+配置SSH Key+配置iptables

Linux 系统安全配置 Debian => 禁止root SSH登陆+配置SSH Key+配置iptables 当我们安装完Linux系统作为服务器后,总有一系列的安全配置需要进行.特别是当你的服务器Ip是对外网开放的话.全世界有很多不怀好意的人,不断试图穷举你的root密码,尝试登陆.那么为Linux服务器增加一些安全措施,是很有必要的.本文基于Debian 9.5. 本文读者需要有一定的linux基础,有一定的网络与英语基础.知道如何使用nano/vim编辑器.不过总体而言,本文是为初级用

Linux系统安全配置基线

一:共享账号检查 配置名称:用户账号分配检查,避免共享账号存在 配置要求:1.系统需按照实际用户分配账号: 2.避免不同用户间共享账号,避免用户账号和服务器间通信使用的账号共享. 操作指南:参考配置操作:cat /etc/passwd查看当前所有用户的情况: 检查方法:命令cat /etc/passwd查看当前所有用户的信息,与管理员确认是否有共享账号情况存在. 配置方法:如需建立用户,参考如下: #useradd username #创建账号 #passwd username #设置密码 使用

linux系统初始化--​配置主机网络

配置主机网络 安装完成linux 系统后,我们需要为主机配置一个可用的网络地址 下面以配置eth0接口为例来说明下 说明 在RHEL7中重新定义了Linux网卡的命名规则,不再遵循原来的eth[0,1,--].下面的例子中全部使用RHEL6的示例. 关于RHEL7的网卡命名原则 在进行centos7的pxe安装测试中发现了网卡命名不再遵从来有的命名规则而启用了最新的命名方式,官网文档描述如下: 在 Red Hat Enterprise Linux 7 中,systemd 和 udevd 支持大量

Linux系统下配置环境变量

一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量. 所以管理环境变量的文件也分为系统级和用户级的,下面贴一个网上找到的讲的比较明白的文件介绍(略作修改)[1]: 1.系统级: (1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个

Linux系统批量配置脚本

系统批量配置脚本使用手册 使用要求 linux操作系统(RHEL,kylin,凝思磐石均可用) 本地计算机expect命令可用 ssh.scp命令可用 脚本组成及功能说明 引导脚本 - config.sh 该脚本会引导整个脚本组合的执行,提示用户输入远程计算机IP地址(范围)及root密码. 系统配置脚本 - sysinfo-collect.sh 该脚本中可以自行定制需要在远程计算机上执行的命令,配合引导脚本及响应脚本使用,可以完成的任务有: 在远程计算机批量执行命令: 修改远程计算机配置文件:

linux系统初始化配置脚本分享

这个脚本是我借鉴某大神的脚本改写的(其实是赤裸裸的拿来用了),功能主要是实现系统自定义配置,搭建原始的linux环境模板,分享给大家,顺便分享个小诀窍: 复制代码后,请使用"notepad++"或其它编辑器打开此文档, "alt+0"将函数折叠后方便查阅 . 插句话,这个方法我是从雪松大神的[python实例手册] [shell实例手册]学到的,感谢他们的共享精神,一直在维护这两个手册的更新,  分享下着两个手册的地址: [python实例手册] [shell实例手