zoukankan      html  css  js  c++  java
  • 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模块文件,支持哪些鉴权功能:

    [liuyan@localhost ~]$ ls /lib64/security/
    pam_access.so        pam_env.so            pam_group.so     pam_localuser.so         pam_permit.so          pam_shells.so      pam_umask.so         pam_winbind.so
    pam_cap.so           pam_exec.so           pam_issue.so     pam_loginuid.so          pam_postgresok.so      pam_smbpass.so     pam_unix_acct.so     pam_xauth.so
    pam_chroot.so        pam_faildelay.so      pam_keyinit.so   pam_mail.so              pam_pwhistory.so       pam_sss.so         pam_unix_auth.so
    pam_ck_connector.so  pam_faillock.so       pam_krb5         pam_mkhomedir.so         pam_rhosts.so          pam_stress.so      pam_unix_passwd.so
    pam_console.so       pam_filter            pam_krb5afs.so   pam_motd.so              pam_rootok.so          pam_succeed_if.so  pam_unix_session.so
    pam_cracklib.so      pam_filter.so         pam_krb5.so      pam_namespace.so         pam_securetty.so       pam_tally2.so      pam_unix.so
    pam_debug.so         pam_fprintd.so        pam_lastlog.so   pam_nologin.so           pam_selinux_permit.so  pam_time.so        pam_userdb.so
    pam_deny.so          pam_ftp.so            pam_limits.so    pam_oddjob_mkhomedir.so  pam_selinux.so         pam_timestamp.so   pam_warn.so
    pam_echo.so          pam_gnome_keyring.so  pam_listfile.so  pam_passwdqc.so          pam_sepermit.so        pam_tty_audit.so   pam_wheel.so
    pam_access.so 控制访问者地址与账号名称
    pam_listfile.so 控制访问者的账号名称或登录位置
    pam_limits.so 控制为用户分配的资源
    pam_rootok.so 对管理员(uid=0)无条件允许通过
    pam_userdb.so 设定独立用户账号数据库认证

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

    [liuyan@localhost ~]$ 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

    [liuyan@localhost ~]$ 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。
  • 相关阅读:
    FusionCharts的类
    FusionCharts图表控件中文版使用手册
    java Integer
    java --final关键字
    HTTP缓存机制及原理
    java颜色代码对照表
    centos svn 服务器间的数据迁移
    tp3.2 URL_MODEL为2 配置
    order by group by
    jpgraph 折线图--解决中文乱码的问题(标题和图例)
  • 原文地址:https://www.cnblogs.com/LiuYanYGZ/p/12381651.html
Copyright © 2011-2022 走看看