freeradius 如何配置pam 模块

一.PAM 模块介绍

   PAM 的英文名全称为:Pluggable Authentication Module 系统,此程序是执行用户鉴别和账户维护的服务。鉴别通过质询-回应交互来完成的。

PAM有四部分组成,第一部分是:libpam,是实现PAM API 的库;第二部分是配置文件/etc/pam.conf(centos 6 以后没有该配置文件),第三部分,可以动态装载有两进制对象组成,常常用来处理一些实际鉴别工作的 服务模块;第四部分:PAM API  的系统命令。

二.在centos 7安装freeradius 

 1. 为了在pam 服务模块添加radiusd 服务模块,用yum 安装:

       yum -y install  freeradius 

   若yum 安装之后在安装目录/etc/raddb 目录下有  modules   模块则不需要执行第2步 

  2.源码编译安装freeradius 

     在freeradius 官网下载freeradius 源码 freeradius-server-2.2.9.tar (可以是任意版本的)

    tar -xvf  freeradius-server-2.2.9.tar
    cd freeradius-server-2.2.9
    make -->make install 

   上述的默认安装路径为:/usr/local/etc/raddb

3.配置freeradius 

 3.1 配置 radiusd.conf 修改下面内容

 log {
        .............  
                      #auth = no(改成auth = yes)
                         auth = yes
                      .............
   }
 security {
                     .............
# allow_vulnerable_openssl = no(修改为如下)
allow_vulnerable_openssl = yes
    .............                 
}

3.2 配置clients.conf 添加客户端的相关信息

      client 客户端ip地址{
        secret = radius server 密码
        shortname = 客户端域名
     }

 3.3 配置users 加入下面认证类型

           DEFAULT  Auth-Type = PAM
          Fall-Through = 1

 3.4 配置 vi sites-available/default  确保pam 没有被注释掉

authorize {
preprocess
files
expiration
logintime
}
     authenticate {
pam
      }

   preacct {
preprocess
  update request {
  FreeRADIUS-Acct-Session-Start-Time = "%{expr: %l - %{%{Acct-Session-Time}:-0} - %{%{Acct-Delay-Time}:-0}}"
}
acct_unique
files
}

 accounting {
detail
if (noop) {
ok
}

attr_filter.accounting_response
}
session {
radutmp
}
post-auth {
Post-Auth-Type REJECT {
}
}
pre-proxy {
}
post-proxy {
Post-Proxy-Type Fail {
detail
  }
}


  3.5 配置 sites-available/inner-tunnel  确保pam 一行没有被注释掉

  .............
authenticate {
pam
}
   .............


三. 配置PAM 模块

1.将所需要的动态库拷贝到 /usr/lib64/security/ 目录下改动态模块的有可执行权限

2.修改radiusd 服务模块,我所有的模块是pam_http.so 模块其主要作用是freeradius 使用该模块发起http 请求在第三方平台进行用户账号认证

如下例子: 

 #%PAM-1.0
#auth       include     password-auth
#account    required    pam_nologin.so
#account    include     password-auth
#password   include     password-auth
#session    include     password-auth
auth      required    pam_http.so   conf=/etc/pam_http.conf
account   required    pam_permit.so

第一列: 服务类型

第二列; 控制标志符

第三列: 动态服务器模块的路径

第四列:为服务器传参数的可选项

四.测试

  在终端启动freeradous radiusd -X调试模式

再打开一个终端: radtest janq jianq123 localhost 18120 testng123 


你可能感兴趣的:(freeradius,pam,freeradius)