Próbuję zabezpieczyć pewne rejony serwera www przez .htaccess i mod_authnz_external gdzie hasłem będzie hasło z bazy lms w tabeli users. W jaki sposób przez perl wygenerować hasła identyczne jak to w kolumnie passwd? To jest php crypt z id usera jako salt? Perl tworzy krótsze hasło.
Temat mniej istotny... "Migruję" z mod_auth_mysql, który nie działał poprawnie z aktualnym apache. Co jakiś czas jestem pytany o hasło mimo wcześniejszego poprawnego uwierzytelnienia. Ktoś ma na to receptę?
uzyj do tego modułu auth_mysql
Po wlaczeniu do dajesz na koncu apache2.conf: AuthMySQL_DefaultHost localhost AuthMySQL_DefaultUser USER AuthMySQL_DefaultPassword HASLO Auth_MySQL_General_DB lms
do .htaccess: AuthName "Private Site" AuthType Basic
<Limit GET POST> Auth_MySQL_Password_Table users Auth_MySQL_Username_Field login Auth_MySQL_Password_Field passwd AuthMySQL_Empty_Passwords off Auth_MySQL_Password_Clause " and deleted=0" AuthMySQL_Encryption_Types Crypt # PHP_MD5 SHA1Sum MySQL Plaintext Crypt_DES Crypt_MD5 Auth_MySQL On AuthUserFile /dev/null AuthBasicAuthoritative Off require valid-user </Limit>
i po temacie :)
----- Oryginalna wiadomość -----
Od: "node" node@satfilm.net.pl Do: "lista użytkowników LMS" lms@lists.lms.org.pl Wysłane: środa, 14 wrzesień 2011 8:30:05 Temat: [lms] Algorytm tworzenia hasła w lms.users
Próbuję zabezpieczyć pewne rejony serwera www przez .htaccess i mod_authnz_external gdzie hasłem będzie hasło z bazy lms w tabeli users. W jaki sposób przez perl wygenerować hasła identyczne jak to w kolumnie passwd? To jest php crypt z id usera jako salt? Perl tworzy krótsze hasło.
Temat mniej istotny... "Migruję" z mod_auth_mysql, który nie działał poprawnie z aktualnym apache. Co jakiś czas jestem pytany o hasło mimo wcześniejszego poprawnego uwierzytelnienia. Ktoś ma na to receptę? _______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
W dniu 2011-09-14 08:51, jczarniak@jarsat.pl pisze:
uzyj do tego modułu auth_mysql
Po wlaczeniu do dajesz na koncu apache2.conf: AuthMySQL_DefaultHost localhost AuthMySQL_DefaultUser USER AuthMySQL_DefaultPassword HASLO Auth_MySQL_General_DB lms
do .htaccess: AuthName "Private Site" AuthType Basic
<Limit GET POST> Auth_MySQL_Password_Table users Auth_MySQL_Username_Field login Auth_MySQL_Password_Field passwd AuthMySQL_Empty_Passwords off Auth_MySQL_Password_Clause " and deleted=0" AuthMySQL_Encryption_Types Crypt # PHP_MD5 SHA1Sum MySQL Plaintext Crypt_DES Crypt_MD5 Auth_MySQL On AuthUserFile /dev/null AuthBasicAuthoritative Off require valid-user </Limit>
i po temacie :)
Dziękuję za nawiązanie dialogu, mogłem porównać konfigurację z .htaccess, tam więc nie popełniłem błędu. Dość jednak mod_auth_mysql... Oto działający mod_authnz_external:
wpis w htaccess: - - - 8< - - - AuthType Basic AuthName "Authorized access only!" AuthBasicProvider external AuthExternal auth require valid-user - - - 8< - - -
wpis w virtualce apache: - - - 8< - - - AddExternalAuth auth /var/www/.common/mysql-auth.pl SetExternalAuthMethod auth pipe - - - 8< - - -
oraz kod programu sprawdzającego wskazanego wyżej: - - - 8< - - - #!/usr/bin/perl -Tw # MySQL-auth version 1.0b # Anders Nordby anders@fix.no, 2002-01-20 # This script is usable for authenticating users against a MySQL database with # the Apache module mod_auth_external. See # http://www.wwnet.net/~janc/mod_auth_external.html for mod_auth_external. # # Updates to this script will be made available on: # http://anders.fix.no/software/#unix
my $dbhost="localhost"; my $dbuser="apache"; my $dbpw="apache-haslo"; my $dbname="lms"; my $dbport="3306"; my $mychars="01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_,.";
# Below this, only the SQL query should be interesting to modify for users.
use DBI;
sub validchars { # 0: string 1: valid characters my $streng = $_[0];
my $ok = 1; my $i = 0; while ($ok && $i < length($_[0])) { if (index($_[1], substr($_[0],$i,1)) == -1) { $ok = 0; } $i++; } return($ok); }
# Get the name of this program $prog= join ' ',$0,@ARGV; $logprefix='[' . scalar (localtime) . '] ' . $prog;
# Get the user name $user= <STDIN>; chomp $user;
# Get the password name $pass= <STDIN>; chomp $pass;
# check for valid characters if (!validchars($user, $mychars) || !validchars($pass, $mychars)) { print STDERR "$logprefix: invalid characters used in login/password - Rejected\n"; exit 1; }
# check for password in mysql database #if my $dbh = DBI->connect("DBI:mysql:database=$dbname:host=$dbhost:port=$dbport",$dbuser,$dbpw,{PrintError=>0});
if (!$dbh) { print STDERR "$logprefix: could not connect to database - Rejected\n"; exit 1; }
my $dbq = $dbh->prepare("select login as username, passwd as password from users where login=?;"); $dbq->bind_param(1, $user); $dbq->execute; my $row = $dbq->fetchrow_hashref();
if ($row->{username} eq "") { print STDERR "$logprefix: could not find user $user - Rejected\n"; exit 1; } if ($row->{password} eq "") { print STDERR "$logprefix: empty password for user $user - Rejected\n"; exit 1; }
if ($row->{password} eq crypt($pass,$row->{password})) { print STDERR "$logprefix: password for user $user matches - Accepted\n"; exit 0; } else { print STDERR "$logprefix: password for user $user does not match - Rejected\n"; exit 1; }
$dbq->finish; $dbh->disconnect; - - - 8< - - -
kurde... nie doczytałem, ze juz tego uzywałes i Ci nie dziala.... Sorry... Efekt czytania "po łebkach"...
----- Oryginalna wiadomość -----
Od: "node" node@satfilm.net.pl Do: "lista użytkowników LMS" lms@lists.lms.org.pl Wysłane: środa, 14 wrzesień 2011 8:30:05 Temat: [lms] Algorytm tworzenia hasła w lms.users
Próbuję zabezpieczyć pewne rejony serwera www przez .htaccess i mod_authnz_external gdzie hasłem będzie hasło z bazy lms w tabeli users. W jaki sposób przez perl wygenerować hasła identyczne jak to w kolumnie passwd? To jest php crypt z id usera jako salt? Perl tworzy krótsze hasło.
Temat mniej istotny... "Migruję" z mod_auth_mysql, który nie działał poprawnie z aktualnym apache. Co jakiś czas jestem pytany o hasło mimo wcześniejszego poprawnego uwierzytelnienia. Ktoś ma na to receptę? _______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
Dnia 14 wrzesień 2011 09:02:50 jczarniak@jarsat.pl pisze:
kurde... nie doczytałem, ze juz tego uzywałes i Ci nie dziala.... Sorry... Efekt czytania "po łebkach"...
Oto mój fragment .htaccess odpowiedzialny za to zadanie:
AuthName "Authorized access only!" AuthType Basic AuthBasicAuthoritative Off AuthMYSQLEnable on AuthMySQLUser apache AuthMySQLPassword mojetajnehaslo AuthMySQLDB lms AuthMySQLHost localhost AuthMySQLUserTable users AuthMySQLNameField login AuthMySQLPasswordField passwd AuthMySQLPwEncryption crypt AuthMySQLGroupField rights AuthMySQLUserCondition "users.deleted = '0'" AuthUserFile /dev/null require valid-user
Jednak raz na jakiś czas jestem pytany ponownie o login i hasło mimo wykonania tej czynności już raz poprawnie, mogę np anulować ten proces i wracam do LMS np z brakiem kilku rysunków. Tymczasem w logach apache:
... MySQL ERROR: Lost connection to MySQL server during query: /lms/img/customer.gif, referer: http://admin.domain.pl/lms/? ... MySQL user admin not found: /lms/img/customer.gif, referer: http://admin.domain.pl/lms/? ... MySQL ERROR: Lost connection to MySQL server at 'reading initial communication packet', system error: 0, referer: http://a dmin.domain.pl/lms/? ... MySQL user admin not found: /lms/img/users.gif, referer: http://admin.domain.pl/lms/?
Problem podobno jest znany i wiele osób godzi się na to ciesząc się, że nieaktualizowany od wieków moduł jeszcze jako tako działa. Mnie to drażni, trafiłem na mod_auth_external, który może realizować to zadanie, mam jednak problem z porównaniem hasła, trzeba tutaj utworzyć "program" sprawdzający hasło, nie mogę zamienić to wpisywane przy uwierzytelnianiu na crypt pola passwd w lms.users. Ktoś wie jak to uzyskać?
W jakiej konfiguracji to Tobie działa? Mój zestaw: PHP 5.3.8-pl0-gentoo (cli) (built: Aug 26 2011 11:22:38) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
Server version: Apache/2.2.20 (Unix) Server built: Sep 5 2011 08:31:02
www-apache/mod_auth_mysql-3.0.0-r2
Oto mój fragment .htaccess odpowiedzialny za to zadanie:
AuthName "Authorized access only!" AuthType Basic AuthBasicAuthoritative Off AuthMYSQLEnable on AuthMySQLUser apache AuthMySQLPassword mojetajnehaslo AuthMySQLDB lms AuthMySQLHost localhost AuthMySQLUserTable users AuthMySQLNameField login AuthMySQLPasswordField passwd AuthMySQLPwEncryption crypt AuthMySQLGroupField rights AuthMySQLUserCondition "users.deleted = '0'" AuthUserFile /dev/null require valid-user
Jednak raz na jakiś czas jestem pytany ponownie o login i hasło mimo wykonania tej czynności już raz poprawnie, mogę np anulować ten proces i wracam do LMS np z brakiem kilku rysunków. Tymczasem w logach apache:
... MySQL ERROR: Lost connection to MySQL server during query: /lms/img/customer.gif, referer: http://admin.domain.pl/lms/? ... MySQL user admin not found: /lms/img/customer.gif, referer: http://admin.domain.pl/lms/? ... MySQL ERROR: Lost connection to MySQL server at 'reading initial communication packet', system error: 0, referer: http://a dmin.domain.pl/lms/? ... MySQL user admin not found: /lms/img/users.gif, referer: http://admin.domain.pl/lms/?
Problem podobno jest znany i wiele osób godzi się na to ciesząc się, że nieaktualizowany od wieków moduł jeszcze jako tako działa. Mnie to drażni, trafiłem na mod_auth_external, który może realizować to zadanie, mam jednak problem z porównaniem hasła, trzeba tutaj utworzyć "program" sprawdzający hasło, nie mogę zamienić to wpisywane przy uwierzytelnianiu na crypt pola passwd w lms.users. Ktoś wie jak to uzyskać?
W jakiej konfiguracji to Tobie działa? Mój zestaw: PHP 5.3.8-pl0-gentoo (cli) (built: Aug 26 2011 11:22:38) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
Server version: Apache/2.2.20 (Unix) Server built: Sep 5 2011 08:31:02
www-apache/mod_auth_mysql-3.0.0-r2
Jakiś czas temu też z tym walczyłem (ale używam na mniejszą skalę do statystyk WWW dla klientów za to też na Gentoo :). O ile pamiętam, to ten wpis zakończył zabawe: set-variable =wait_timeout=600
Ale głowy nie dam sobie uciąć :) Sprawdź też limity ilości połączeń (max_connections itd.)
W dniu 2011-09-14 09:40, Sarenka pisze:
Jakiś czas temu też z tym walczyłem (ale używam na mniejszą skalę do statystyk WWW dla klientów za to też na Gentoo :). O ile pamiętam, to ten wpis zakończył zabawe: set-variable =wait_timeout=600
Ale głowy nie dam sobie uciąć :) Sprawdź też limity ilości połączeń (max_connections itd.)
Zmieniłem te wartości, problem pozostał. Mysql_auth kompletnie mnie już zniechęcił, wystarczy : ) Mimo, że u mnie się nie sprawdziła dziękuję za podpowiedź.
Jesli dobrze rozumiem twoj problem to sprawa jest banalnie prosta.
<?php echo crypt($passwd); ?>
powinno wypluc dokladnie taki sam hash jaki jest w lms'ie.
----- Oryginalna wiadomość -----
Od: "node" node@satfilm.net.pl Do: "lista użytkowników LMS" lms@lists.lms.org.pl Wysłane: środa, 14 wrzesień 2011 9:31:21 Temat: Re: [lms] Algorytm tworzenia hasła w lms.users
Oto mój fragment .htaccess odpowiedzialny za to zadanie:
AuthName "Authorized access only!" AuthType Basic AuthBasicAuthoritative Off AuthMYSQLEnable on AuthMySQLUser apache AuthMySQLPassword mojetajnehaslo AuthMySQLDB lms AuthMySQLHost localhost AuthMySQLUserTable users AuthMySQLNameField login AuthMySQLPasswordField passwd AuthMySQLPwEncryption crypt AuthMySQLGroupField rights AuthMySQLUserCondition "users.deleted = '0'" AuthUserFile /dev/null require valid-user
Jednak raz na jakiś czas jestem pytany ponownie o login i hasło mimo wykonania tej czynności już raz poprawnie, mogę np anulować ten proces i wracam do LMS np z brakiem kilku rysunków. Tymczasem w logach apache:
... MySQL ERROR: Lost connection to MySQL server during query: /lms/img/customer.gif, referer: http://admin.domain.pl/lms/? ... MySQL user admin not found: /lms/img/customer.gif, referer: http://admin.domain.pl/lms/? ... MySQL ERROR: Lost connection to MySQL server at 'reading initial communication packet', system error: 0, referer: http://a dmin.domain.pl/lms/? ... MySQL user admin not found: /lms/img/users.gif, referer: http://admin.domain.pl/lms/?
Problem podobno jest znany i wiele osób godzi się na to ciesząc się, że nieaktualizowany od wieków moduł jeszcze jako tako działa. Mnie to drażni, trafiłem na mod_auth_external, który może realizować to zadanie, mam jednak problem z porównaniem hasła, trzeba tutaj utworzyć "program" sprawdzający hasło, nie mogę zamienić to wpisywane przy uwierzytelnianiu na crypt pola passwd w lms.users. Ktoś wie jak to uzyskać?
W jakiej konfiguracji to Tobie działa? Mój zestaw: PHP 5.3.8-pl0-gentoo (cli) (built: Aug 26 2011 11:22:38) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
Server version: Apache/2.2.20 (Unix) Server built: Sep 5 2011 08:31:02
www-apache/mod_auth_mysql-3.0.0-r2
lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
Dnia 14 wrzesień 2011 11:27:34 jczarniak@jarsat.pl pisze:
Jesli dobrze rozumiem twoj problem to sprawa jest banalnie prosta.
<?php echo crypt($passwd); ?>
powinno wypluc dokladnie taki sam hash jaki jest w lms'ie.
Niestety co każde wywołanie funkcji inne hasło. Konieczny parametr salt? Wtedy jest stałe hasło dla wybranego tekstu i powtórzę pytanie jaki jest salt w lms aby ciągi znaków się zgadzały z tymi w LMS?
zobacz w kod lms, wszedzie jest: crypt($account['passwd1']) array(crypt($account['passwd1']), $id)); crypt($useradd['password'])
czyli nie ma soli.
----- Oryginalna wiadomość -----
Od: "node" node@satfilm.net.pl Do: "lista użytkowników LMS" lms@lists.lms.org.pl Wysłane: środa, 14 wrzesień 2011 11:54:31 Temat: Re: [lms] Algorytm tworzenia hasła w lms.users
Niestety co każde wywołanie funkcji inne hasło. Konieczny parametr salt? Wtedy jest stałe hasło dla wybranego tekstu i powtórzę pytanie jaki jest salt w lms aby ciągi znaków się zgadzały z tymi w LMS? _______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
W dniu 2011-09-14 08:30, node pisze:
Próbuję zabezpieczyć pewne rejony serwera www przez .htaccess i mod_authnz_external gdzie hasłem będzie hasło z bazy lms w tabeli users. W jaki sposób przez perl wygenerować hasła identyczne jak to w kolumnie passwd? To jest php crypt z id usera jako salt? Perl tworzy krótsze hasło.
Temat mniej istotny... "Migruję" z mod_auth_mysql, który nie działał poprawnie z aktualnym apache. Co jakiś czas jestem pytany o hasło mimo wcześniejszego poprawnego uwierzytelnienia. Ktoś ma na to receptę? _______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
Odpowiadam sam sobie. Wyjęte z Auth.class.php
<------>function VerifyPassword($dbpasswd = '') <------>{ <------><------>if(crypt($this->passwd,$dbpasswd)==$dbpasswd) <------><------><------>return TRUE; <------> <------><------>$this->error = trans('Wrong password or login.'); <------><------>return FALSE;<-> <------>}
Czyli solą jest samo hasło zapisane w bazie.
uczestnicy (3)
-
jczarniak@jarsat.pl
-
node
-
Sarenka