From: Benni Bärmann Date: Sun, 23 Sep 2012 14:40:53 +0000 (+0200) Subject: added INSTALL (german installation manual) and started with crypt()ing X-Git-Url: http://aymargeddon.de/gitweb/?p=aymargeddon%2Fcurrent.git;a=commitdiff_plain;h=25bbd909646c776fd050e9413fd7649f53a11c74 added INSTALL (german installation manual) and started with crypt()ing of passwords --- diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..3df2e3c --- /dev/null +++ b/INSTALL @@ -0,0 +1,56 @@ +Hier wird der Installationsvorgang eines Aymargeddon-Spiels beschrieben. Das ist leider alles noch sehr hakelig, wir entschuldigen uns für die Strapazen. + + +Vorraussetzungen +================ + +Ihr benötigt: + +* Einen Rechner mit Linux als Betriebssystem (möglicherweise läuft es auch auf anderen Systemen, aber das hat bisher noch niemand probiert) +* den Sourcecode (zu beziehen über "git clone http://aymargeddon.de/aymargeddon.git") +* einen Apache2-Webserver +* Embedded Perl auf diesem Server. Unter Debian squeeze tut es ein: + +apt-get install libembperl-perl + +* folgende Perl-Module müssen vorhanden sein: + + Date::Calc; + Mail::Mailer; + Data::Dumper; + +* MySQL als DBMS + +Wenn das alles läuft, könnt ihr loslegen. + +Eigentliche Installation +======================== + +* Ihr müsst den Apache so konfigurieren, dass das Verzeichnis html/ aus dem Source zugänglich ist von außen und dort epl-Dateien ausgeführt werden können und das Embperl im src-Verzeichnis Module nachladen kann; zB via "PerlPostConfigRequire /etc/apache/startup.pl" und da dann so was in der Art: + + use lib qw( /var/www/benni/aymargeddon.de/game/src ); + 1; + +* Ihr müsst die Datei src/FROGS/Config.pm an eure Gegebenheiten anpassen. Dabei erstmal nur den oberen Abschnitt anfassen. + +* Ihr müsst eine Datenbank RAGNAROEK in MySQL anlegen. + +* Ihr müsst einen DB-user "aymargeddon" in MySQL anlegen, der alle Rechte auf dieser DB hat (oder alternativ den Benutzernamen zusätzlich zu Config.pm in ein paar nicht-Perl-scripten ändern) + +* Ihr müsst eine lesegeschützte Datei an dem Ort anlegen, der in der Config beschrieben ist. In dieser Datei liegt das Datenbankpasswort. + +* Ihr müsst im Verzeichnis var/ den Befehl ./do_sql < RAGNAROEK.sql sowie ./do_sql < LOCALIZE.sql eingeben. (oder evntl.: ./init_server) + +* Ihr müsst im Verzeichnis src/ den Befehl create.pl ausführen. Dort dann den Namen des Spiels sowie die Spielgeschwindigkeit eingeben. + +* Ihr müsst im Verzeichnis src/FROGS/ den Befehl ./start_scheduler ausführen. + +Jetzt kanns losgehen. + + +Maintainance +============ + +* Das start_scheduler-script schreibt die logs in die Datei src/FROGS/++out. In der Standardkonfiguration wird noch eine Datei src/FROGS/+out mit sehr detailierten logs erzeugt. + +* Mit dem Script backup in var kann man Backups der Datenbank dumpen. diff --git a/TODO b/TODO index 3a40fd6..58d210d 100644 --- a/TODO +++ b/TODO @@ -6,8 +6,7 @@ Dinge in dieser Rubrik sollten vor dem nächsten Spielstart erledigt sein. Bugs ---- -- Passwörter nicht mehr im Klartext in der Datenbank ablegen und -schon gar nicht im Klartext in der URL stehen haben! Urgs. +- Passwörter nicht mehr im Klartext in der URL stehen haben! Urgs. - $::conf->{-EPL_DEBUG} funktioniert nicht. Es wird -DEBUG verwendet, auch wenn man in einem epl-script ist. @@ -168,6 +167,9 @@ gesetzt wenn ATTACKER da. UNWICHTIG: +- Der Link zur Mailingliste in der Registrierungsmail sollte in die +Config und von dort eingelesen werden. + - In player.epl wird die Rollenauswahl angezeigt, wenn man das Spiel in dem der Client sich befidet ($udat->{-game}) auf dem server gelöscht hat. Bei Ereignissen, die jetzt oder in der Vergangenheit @@ -211,8 +213,3 @@ Datenbank eintragen und bei MOVE anpassen? dafür ist eigene Tabelle nötig. aber: message_to_field() wird eh nur noch selten benutzt, lohnt also der aufwand überhaupt? -TEST - -Diese Datei wird inzwischen im Wiki gepflegt: - -http://www.aymargeddon.de/wiki/index.php/TODO diff --git a/src/FROGS/Config.pm b/src/FROGS/Config.pm index 4244760..35b79d0 100644 --- a/src/FROGS/Config.pm +++ b/src/FROGS/Config.pm @@ -39,8 +39,8 @@ $::conf = { -GAME_NAME => 'Aymargeddon', -DEFAULT_LANGUAGE => 'EN', -LOG_TIME_IN_LOOP => 1000, # loops until next time output in log - -DEBUG => 1, - -EPL_DEBUG => 1, + -DEBUG => 2, + -EPL_DEBUG => 2, -MESSAGE_IN_LOG => 0, -FULL_DEBUG_FILE => '/home/benni/aymargeddon/current/src/FROGS/+out', -SCHEDULER_SLEEP => 2, diff --git a/src/FROGS/DataBase.pm b/src/FROGS/DataBase.pm index 9a43f69..38921dd 100644 --- a/src/FROGS/DataBase.pm +++ b/src/FROGS/DataBase.pm @@ -392,26 +392,11 @@ sub new_account{ REALNAME => $name, LOGIN => $login, EMAIL => $email, - PASSWORD => $pwd, + PASSWORD => crypt($pwd,'5g'), LANGUAGE => $lang, }); $self->commit(); - # my $mail = "From: registration\@aymargeddon.de\nTo: $name <$email>\n" - # . "Subject: ".$self->loc('REGISTER_MAIL_SUBJECT')."\n\n" - # . $self->loc('REGISTER_MAIL_TEXT', $name, $login, $pwd)."\n"; - - # print $mail; -# aus man mail: -# env MAILRC=/dev/null from=scriptreply@domain smtp=host \ -# smtp-auth-user=login smtp-auth-password=secret \ -# smtp-auth=login mailx -n -s "subject" \ -# -a attachment_file recipient@domain new(); @@ -434,9 +419,10 @@ sub authenticate{ # you can log into any account with adminpassword my ($adminpwd) = $self->single_select("SELECT PASSWORD FROM PLAYER ". "WHERE LOGIN=$admin"); + $pwd = crypt($pwd,'5g'); + $adminpwd = crypt($adminpwd,'5g'); ($user,$pwd,$adminpwd) = $self->quote_all($user,$pwd,$adminpwd); - # Util::log("Adminpassword: $adminpwd, password: $pwd",2); my ($player, $sec); @@ -452,12 +438,14 @@ sub authenticate{ if($player){ if($pwd2 and $pwd3 and $pwd2 eq $pwd3){ - # change password! - $self->update_hash('PLAYER', + # change password! + $pwd2 = crypt($pwd2,'5g'); + $self->update_hash('PLAYER', "LOGIN=$user", {'PASSWORD' => $pwd2}); - Util::log("password changed!",0); # todo: localize and aufhübschen + Util::log("password changed for player $player!",0); } + # TODO? error if passwords did not match # TODO: write last_login return $player; } diff --git a/var/LOCALIZE.sql b/var/LOCALIZE.sql index 0752880..eb579a2 100644 --- a/var/LOCALIZE.sql +++ b/var/LOCALIZE.sql @@ -49,4 +49,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2012-09-23 12:14:38 +-- Dump completed on 2012-09-23 14:19:16 diff --git a/var/README b/var/README index 9cb8dac..0e92f00 100644 --- a/var/README +++ b/var/README @@ -8,11 +8,18 @@ The script backup generates a backup in ./+RAGNAROEK_BACKUP.sql The script from_scratch generates a complete empty database but with the old PLAYER and LOCALIZE tables. -The script do_sql executes his first command with mysql +The script init_server deletes PLAYER to and uses LOCALIZE_INIT +instead of LOCALIZE. this should only be uses if you start a new server or +want to get rid of your players. (TODO: does not work properly) + +The script do_sql executes his standard input with mysql in the +database RAGNAROEK with the appropriate user and password. in my.cnf is my configuration file for mysql to work with -InnoDB tabletype. make shure InnoDB tabletype works for you. mysql +InnoDB tabletype. make shure InnoDB tabletype works for you. old +versions of mysql sets default tabletype to MyISAM if it does not work without complaining! But FROGS and Aymargeddon wont work without the -transaction-capability from InnoDB +transaction-capability from InnoDB. This should not be used for newer +versions of Mysql.