Portál AbcLinuxu, 4. května 2025 09:16

Dotaz: Apache - mod_auth_pam

17.2.2010 22:34 kovariadam | skóre: 12 | blog: biased | Košice/Brno
Apache - mod_auth_pam
Přečteno: 623×
Odpovědět | Admin
Dobry den, snazim sa nakonfigurovat autentizaciu cez SSL v Apache2 na CentOS 5. Konfiguracia je:

1068        < LocationMatch /efs-server >
1069                 SetHandler mod_python
1070                 PythonInterpreter main_interpreter
1071                 PythonHandler trac.web.modpython_frontend
1072                 PythonOption TracEnv /var/trac/efs-server
1073                 PythonOption TracUriRoot /efs-server
1074                 #PythonDebug on
1075
1076                 AuthName "efs-server authentication system"
1077
1078                 #AuthPAM_Enabled On
1079                 AuthType Basic
1080                 Require group developers
1081                 Require valid-user
1082        < /LocationMatch >

Skusal som bez riadku 1081 a aj s odkomentovanym 1078. Stale to vyhadzuje tuto chybu(adam je skutocny uzivatel a zadavam spravne heslo, ss je vymysleny pre skusku, ale chybu to vracia rovnaku):

[Wed Feb 17 22:24:27 2010] [error] [client 147.229.216.224] PAM: user 'adam' - not authenticated: Authentication failure
[Wed Feb 17 22:24:32 2010] [error] [client 147.229.216.224] PAM: user 'ss' - not authenticated: Authentication failure

Uzivatel 'adam' je clenom skupiny developers:

[root@kovariadam conf]# id adam
uid=500(adam) gid=500(adam) groups=500(adam),501(developers)

Konfiguracia PAMu pre Apache je defaultna:

[root@kovariadam conf]# cat /etc/pam.d/httpd
#%PAM-1.0
auth       include      system-auth
account    include      system-auth
# Comment out the previous account line and uncomment the following line if
# you wish to allow logins that don't have a system account
#account    required     pam_permit.so

a system-auth:

[root@kovariadam conf]# cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so try_first_pass nullok
auth        required      pam_deny.so

account     required      pam_unix.so

password    required      pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so try_first_pass use_authtok nullok md5
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

Nevie niekto v com moze byt problem?

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.2.2010 04:09 Franta Hanzlik
Rozbalit Rozbalit vše Re: Apache - mod_auth_pam
Odpovědět | | Sbalit | Link | Blokovat | Admin
Není problém v tom, že mod_auth_pam vyžaduje aby program (apache) běžel s root právy, a apache běží (v Centos defaultně) pod UID "apache"?

IMHO je lepší pro PAM authentikaci použít SUID externí program (např. pwauth) a mod_authnz_external v apache serveru.
18.2.2010 09:50 kovariadam | skóre: 12 | blog: biased | Košice/Brno
Rozbalit Rozbalit vše Re: Apache - mod_auth_pam
Dakujem za odpoved, tak som teda skompiloval a nainstaloval modul mod_authnz_external presne podla navodu. Do konfiguracie som pridal nasledujuce(podla navodu pwauth):

 206 LoadModule authnz_external_module /usr/lib64/httpd/modules/mod_authnz_external.so

1052 AddExternalAuth pwauth /usr/local/libexec/pwauth
1053 SetExternalAuthMethod pwauth pipe

1081                 AuthName "efs-server authentication system"
1082
1083                 AuthType Basic
1084                 AuthBasicProvider external
1085                 AuthExternal pwauth
1086                 #Require group developers
1087                 require valid-user

Ale nerozumiem tejto chybe:
[Thu Feb 18 09:37:26 2010] [error] [client 147.229.216.224] Invalid AuthExternal keyword (pwauth)

pwauth je na svojom mieste:
[root@kovariadam conf]# ls -al /usr/local/libexec/pwauth
-rwxr-xr-x 1 root root 21473 Feb 17 18:15 /usr/local/libexec/pwauth

Este pre istotu:
[root@kovariadam conf]# cat /etc/pam.d/pwauth
auth     required  /lib/security/pam_unix.so
account  required  /lib/security/pam_unix.so

Zistil som ale, ze pwauth funguje spravne ako ho vola root, ale ak ho zavola iny uzivatel tak neurobi nic a skonci, mozno v tom moze byt chyba, len mi neni jasne preco sa tak sprava, ked prava na spustenie ma kazdy.
18.2.2010 10:36 kovariadam | skóre: 12 | blog: biased | Košice/Brno
Rozbalit Rozbalit vše Re: Apache - mod_auth_pam
Takze som prekompiloval pwauth so spravne nastavenym #define SERVER_UIDS 72,48,500. Teda uz ho uzivatel apache moze zavolat a funguje spravne, ale zda sa, ze ho ani apache nevola alebo neviem co robi. Stale ta ista chyba Invalid AuthExternal keyword (pwauth).
18.2.2010 10:55 Franta Hanzlik
Rozbalit Rozbalit vše Re: Apache - mod_auth_pam
AddExternalAuth moje-auth /usr/bin/pwauth
SetExternalAuthMethod moje-auth pipe
AuthType Basic
AuthName "Legitimujte se, pls"
AuthBasicProvider external
AuthExternal moje-auth
Require valid-user
Satisfy Any
18.2.2010 11:06 kovariadam | skóre: 12 | blog: biased | Košice/Brno
Rozbalit Rozbalit vše Re: Apache - mod_auth_pam
Tak som tieto riadky presunul do vnutra VirtualHosta:
 
AddExternalAuth moje-auth /usr/bin/pwauth
SetExternalAuthMethod moje-auth pipe

Ale teraz pise, ze heslo je zle, ale nie je:

[Thu Feb 18 11:05:10 2010] [error] [client 147.229.216.224] AuthExtern pwauth [/usr/local/libexec/pwauth]: Failed (53) for user adam
[Thu Feb 18 11:05:10 2010] [error] [client 147.229.216.224] user adam: authentication failure for "/efs-server/": Password Mismatch

Mozem vediet preco tam mate Satisfy Any ? Lebo ked ho dam, tak ani vobec nepyta heslo.
18.2.2010 11:51 Franta Hanzlik
Rozbalit Rozbalit vše Re: Apache - mod_auth_pam
Aha, omlouvám se za možnou dezinformaci s tím "Satisfy Any" - vzal jsem to bez rozmyslu z nějaké svojí konfigurace, a tam mám ještě nastaveno povolení přístupu z LAN, bez nutnosti autentikace.

Ta chyba 53 u pwauth - nejspíš není SUID root - nastavil bych mu práva/vlastnictví: chown root:apache pwauth; chmod 4750 pwauth
18.2.2010 12:04 kovariadam | skóre: 12 | blog: biased | Košice/Brno
Rozbalit Rozbalit vše Re: Apache - mod_auth_pam
Mate pravdu, bolo to v tych pravach, este tomu asi zjavne nerozumiem. Kazdopadne velmi vam dakujem za pomoc.
18.2.2010 09:53 NN
Rozbalit Rozbalit vše Re: Apache - mod_auth_pam
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jste si jisty, ze konfigurujete apache s podporou SSL?

NN
18.2.2010 10:00 kovariadam | skóre: 12 | blog: biased | Košice/Brno
Rozbalit Rozbalit vše Re: Apache - mod_auth_pam
Dakujem za odpoved, neviem ale co tym myslite. Ten LocationMatch je vo VirtualHoste pre 443 a pred nim je nakonfigurovany SSL modul. To funguje dobre, ale aj tak nechapem ako to suvisi s problemom.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.