前面提到的配置 MOTP 验证是在 users 文件中设置, 有时候需要将 MOTP 和其他认证联合起来配置双因素认证. 这个时候将 MOTP 配置为一个单独的 module 更为方便.
以下为配置步骤:
-
创建 motp module
在 mods-available/ 下新建 motp 文件
exec motp { wait = yes program = "/usr/local/bin/otpverify.sh %{User-Name} %{User-Password} %{reply:Secret} %{reply:Pin} %{reply:Offset}" input_pairs = request output_pairs = reply }
在 mods-enabled/ 下执行 “ln -s ../mods-availabe/motp .”
-
创建测试 motp module 的 virtual server
在 sites-available/ 下新建 site_motp 文件
server site_motp { listen { ipaddr = 0.0.0.0 port = 1828 type = auth } client local { ipaddr = 127.0.0.1 secret = testing123 } authorize { -sql files update { control:Auth-Type := motp } } authenticate { # define Auth-Type motp in authenticate, referenced in authorize Auth-Type motp { motp } } post-auth { Post-Auth-Type Reject { update reply { Reply-Message = "Otp authenticate. " } } } }
在 sites-enabled/ 下执行 “ln -s ../sites-available/site_motp .”
-
测试
启动 “radiusd -X” .
在另一个 shell 中执行执行
$ radtest user_name otp localhost:1828 0 testing123
如果收到 “Access-Accept”则证明配置成功.