= PAM Google-Authenticator
Installazione e configurazione modulo PAM Google-Authenticator
:authors: Celestino Amoroso
:docinfo: shared
:encoding: utf-8
:toc: right
:toclevels: 4
:toc-title: Indice Generale
:icons: font
:icon-set: fi
:numbered:
:table-caption: Tabella
:figure-caption: Diagramma
:docinfo1:
:sectlinks:
:sectanchors:
:source-highlighter: rouge
// :rouge-style: ThankfulEyes
:rouge-style: gruvbox
// :rouge-style: colorful
//:rouge-style: monokay

toc::[]

_Rif. https://dev.to/ssd71/pam-and-using-google-authenticator-on-fedora-2plh[PAM and Using Google Authenticator on Fedora]_

IMPORTANT: Operare con credenziali di _root_ o come utente amministratore nel gruppo _wheel_.

== Modulo PAM Google-Authenticator

.Installazione modulo PAM
[source,bash]
----
[user]$ sudo dnf install google-authenticator
----

== Installazione app per dispositivo mobile
Installare _Google Authenticator_ for Android oppure *FreeOTP* for iOS. NB: _Google Authenticator_ è disponibile anche per iOS.

Le applicazioni comprendono una procedura guidata per la messa in opera.

== Configurazione PAM per il demone SSH
In Fedora la configurazione PAM del demone SSH è definita nel file `/etc/pam.d/sshd`.  Aprirlo con un editor di testi ed effettuare le seguenti modifiche.

.Commentare il substack password-auth
[source,pam]
----
# Commentare la riga
auth       substack     password-auth
----

.Aggiungere la riga per GoogleAuthenticator
[source,pam]
----
# Aggiungere in fondo alla sezione auth
auth       sufficient   pam_google_authenticator.so secret=~/.ssh/.google_authenticator
----

L'argomento _source_ serve su Fedora per consentire l'integrazione SELinux.

NOTE: Il pacchetto RPM installa il file configurazione `.google_authenticator` nella directory home. Eventualmente, spostare il file in `.ssh`.

== Configurazione del demone _sshd_
Operare con credenziali di _root_ o come utente amministratore nel gruppo _wheel_.

.Modificare il file `/etc/ssh/sshd_config`
[source,ssh]
----
# Disabilitare l'autenticazione con password (opzionale)
PasswordAuthentication no

# Abilita l'autenticazione PAM
ChallengeResponseAuthentication yes # enable pam based auth

# Aggiungere la seguente linea
AuthenticationMethods keyboard-interactive

# Oppure, meglio, la seguente
AuthenticationMethods publickey,keyboard-interactive
----

.Riavviare il servizio _sshd_ con il comando
[source,bash]
----
[user]$ sudo systemctl restart sshd.service
----
