blob: 4ba09f3eb7e8909812c98688889d4d624e8f74e8 [file] [log] [blame]
.Dd September 3, 2010
.Dt PAM_DUO 8
.Os
.Sh NAME
.Nm pam_duo
.Nd PAM module for Duo authentication
.Sh SYNOPSIS
pam_duo.so
.Op Cm conf= Ns Aq Ar FILENAME
.Sh DESCRIPTION
.Nm
provides secondary authentication (typically after successful
password-based authentication) through the Duo authentication service.
.Sh OPTIONS
PAM module configuration options supported:
.Pp
.Bl -tag -width ".Cm failmode"
.It conf
Specify an alternate configuration file to load. Default is
.Pa /etc/duo/pam_duo.conf
.It debug
Debug mode; send log messages to stderr instead of syslog.
.El
.Sh CONFIGURATION
The INI-format configuration file must have a
.Dq Li duo
section with the following options:
.Pp
.Bl -tag -width ".Cm failmode"
.It Cm host
Duo API host (required).
.It Cm ikey
Duo integration key (required).
.It Cm skey
Duo secret key (required).
.It Cm groups
If specified, Duo authentication is required only for users whose
primary group or supplementary group list matches one of the
space-separated
.Em pattern-lists
(see
.Sx PATTERNS
below).
.It Cm failmode
On service or configuration errors that prevent Duo authentication, fail
.Dq Li safe
(allow access) or
.Dq Li secure
(deny access). Default is
.Dq Li safe .
.It Cm pushinfo
Send command to be approved via Duo Push authentication. Default is
.Dq Li no .
.El
.Pp
An example configuration file:
.Bd -literal -offset 8n
[duo]
host = api-deadbeef.duosecurity.com
ikey = SI9F...53RI
skey = 4MjR...Q2NmRiM2Q1Y
pushinfo = yes
.Ed
.Pp
Other authentication restrictions may be implemented using
.Xr pam_listfile 8 ,
.Xr pam_access 8 ,
etc.
.Sh PATTERNS
A
.Em pattern
consists of zero or more non-whitespace characters,
.Sq *
(a wildcard that matches zero or more characters),
or
.Sq ?\&
(a wildcard that matches exactly one character).
.Pp
A
.Em pattern-list
is a comma-separated list of patterns. Patterns within pattern-lists
may be negated by preceding them with an exclamation mark
.Pq Sq !\& .
For example, to specify Duo authentication for all users (except those
that are also admins), and for guests:
.Pp
.Dl groups = users,!wheel,!*admin guests
.Sh FILES
.Bl -tag -width ".Cm failmode"
.It Pa /etc/duo/pam_duo.conf
Default configuration file path
.El
.Sh AUTHORS
.Nm
was written by
.An "Duo Security" Aq duo_unix@duosecurity.com
.Sh NOTES
When used with OpenSSH's
.Xr sshd 8 ,
only PAM-based authentication can be protected with this module;
pubkey authentication bypasses PAM entirely. OpenSSH's PAM
integration also does not honor an interactive
.Xr pam_conv 3
conversation, prohibiting real-time Duo status messages (such as
during voice callback).