| .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 . |
| .It Cm http_proxy |
| Use the specified HTTP proxy, same format as the HTTP_PROXY environment |
| variable. |
| .It Cm autopush |
| Automatically send a login request to the first factor (usually push), |
| instead of prompting the user. Default is "no". |
| .It Cm prompts |
| Set the maxiumum number of prompts pam_duo will show before denying access. |
| Default is 3. |
| .It Cm fallback_local_ip |
| If unable to detect the authorizing user's IP address, fallback on the server's |
| IP. Default is "no". |
| .It Cm send_gecos |
| Instead of using the unix username, send Duo the contents of the GECOS field |
| from /etc/passwd. Default is "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 |
| autopush = 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 support@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). |