[17] httpd – mod_authnz_pam

24 stycznia 2022 Wyłączono przez Adam [zicherka] Nogły

Skonfiguruj moduł [mod_authnz_pam] aby użytkownicy systemowi mogli korzystać z podstawowej autentykacji.

[1] Login i hasło są przesyłane otwartym tekstem, dlatego też wykorzystamy SSL/TSL aby zabezpieczyć komunikację: Certyfikat SSL – Let’s Encrypt.

[2] Zainstaluj [mod_authnz_pam].

[root@vlsr01 ~]# dnf install mod_authnz_pam
[root@vlsr01 ~]# mcedit /etc/httpd/conf.modules.d/55-authnz_pam.conf
#odkomentuj
LoadModule authnz_pam_module modules/mod_authnz_pam.so

[3] Skonfiguruj podstawową autoryzację + PAM. Przykładowo skonfigurujemy Basic Authentication dla katalogu [/var/www/html/auth-pam].

[root@vlsr01 ~]# mcedit /etc/httpd/conf.d/authnz_pam.conf
#dodaj na końcu pliku
<Directory "/var/www/html/auth-pam">
    SSLRequireSSL
    AuthType Basic
    AuthName "PAM Authentication"
    AuthBasicProvider PAM
    AuthPAMService httpd-auth
    Require valid-user
</Directory>

[root@vlsr01 ~]# mcedit /etc/pam.d/httpd-auth
#stwórz nowy
auth    required        pam_listfile.so item=user sense=deny file=/etc/httpd/conf.d/denyusers onerr=succeed
auth    include         system-auth
account include         system-auth

[root@vlsr01 ~]# mcedit /etc/httpd/conf.d/denyusers
#stwórz nowy
#wpisz użytkowników, którzy nie będą mogli przejść procesu autentykacji
root
zabronionyuser
administrator

[root@vlsr01 ~]# chgrp apache /etc/httpd/conf.d/denyusers
[root@vlsr01 ~]# chmod 640 /etc/httpd/conf.d/denyusers
#zezwól httpd czytać [shadow]
[root@vlsr01 ~]# chgrp apache /etc/shadow
[root@vlsr01 ~]# chmod 440 /etc/shadow
[root@vlsr01 ~]# systemctl restart httpd

#stwórz testową stronę
[root@vlsr01 ~]# mkdir /var/www/html/auth-pam
[root@vlsr01 ~]# mcedit /var/www/html/auth-pam/index.html
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
Strona testowa BASIC AUTHENTICATION + PAM
</div>
</body>

[4] Jeśli jest zainstalowany i działa SELinux, zmień jego politykę.

[root@vlsr01 ~]# setsebool -P httpd_mod_auth_pam 1

[5] Dostęp do strony testowej z dowolnego komputera klienckiego z przeglądarką internetową. Następnie wymagane jest uwierzytelnienie, jako użytkownik systemu operacyjnego.

[6] Jest w porządku, jeśli uwierzytelnianie przebiegło pomyślnie, a strona testowa jest wyświetlana normalnie.