Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Rappelz > Rappelz Private Server
You last visited: Today at 13:43

  • Please register to post and access all features, it's quick, easy and FREE!

 

[Release] Rappelz Auth Emu v2.0

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2012
Posts: 450
Received Thanks: 771
[Release] Rappelz Auth Emu v3.0

Contents
NEW VERSION :


Introduction

Here is an Auth Server emu that can fully replace the official one. It support many database (default configuration is for SQL Server), clients/GS since epic 5 (running fine with 5.2 GS released by xXExiledXx, 8.1 GS and with current official GS) with additionnal support for epic 2 and 4 clients (just for proof of concept as there is no e2/4 GS or let me know where to find and support it )

I can compile it for several OS including linux, windows and also on raspberrypi (it's around 100 times slower but still more than adequate for a normal private server)

The download archive contains auth.opt configuration file with comments (beginning with #) made to work with a default environment configuration.

If someone want support to use it, just ask there


This server support any database that have an x86 32 bits ODBC driver, this include:
  • SQL Server
And even unusual stuff for a DB:
  • Microsoft Access ODBC Driver
  • Microsoft Textfile Driver (txt or csv file)
  • Microsoft Excel

For some of them you will need a correct connection string to give parameters to configure the connection. Connection string for almost all known database are available here: (for example, to get the connection string to a SQLite database, type "sqlite connection string odbc" in google, click on the first link and look for the driver you have in "ODBC drivers").
If you want to use a database but you can't make it works, just ask in this thread.

The list of available ODBC drivers can be retrieved with this tool in the driver tab:
On windows x64: C:\WINDOWS\SysWOW64\odbcad32.exe
On windows x86: C:\WINDOWS\System32\odbcad32.exe
Use Win+R shortcut or start menu => Run and put the command above then click.
You must register and activate your account in order to view images.

Example:
To connect to a MySQL database using the driver "MySQL ODBC 3.51 Driver" (like in the above image), use this config value:
Code:
auth.db.connectionstring:Driver={MySQL ODBC 3.51 Driver};Server=127.0.0.1;Database=Auth;Uid=myUsername;Pwd=myPassword;
To shutdown the emu, press Ctrl + C, close the console window or use the command "stop all" using the admin interface.


Features

The server has most of the feature of the official auth server with some additional features:
  • Support both methods of authentication: old DES and new RSA/AES, so clients/servers from at least 5.2 to 8.3 works on it
  • Auto reconnect to SQL database on failure
  • Track already connected clients and kick on duplicate login (if the account is already logged in)
  • Check the connection to the database at startup and show result (all authentications attempts will fail if the SQL server is not here (or if the query fail))
  • Integrate also an upload server and miniweb server for guild icons
  • Limit guild icon < 64KB images and check if it's really a JPG image
  • The miniweb server ignore directory part of the URL and only use the filename (the physical upload directory is configurable)
  • Support ban IP file (MAC address is not supported has this address require client side support and can be easily bypassed)
  • All supported config variables are dumped at startup with their value

New features from this version 2.0:
  • Configurable SQL queries (stored procedures and plain sql queries are supported)
  • Support hidding gameservers from some players
  • Server load color is supported (shown in the client's server list, was always blue before)
  • Better performance (x1.5~)
  • Kick idle connections (configurable timeout)
  • Accounts beginning with @ are refused (add @ to the beginning of an account name to ban it)
  • Reload banned ip file when restarting a server
  • Support PCBang value
  • Add %include feature in config file: allow to include another config file
  • Fixed the password issue with nvarchar column in previous release. The password is compared by the DB, the real password is not retrieved to the auth server
  • Listen the GS on 127.0.0.1 by default, so only clients are listened on every network cards by default
  • Support login for epic 2 and 4 official clients (but no GS to be able to use them fully it's possible to go to the character list of epic 2 client)
  • Add traffic dump (for all servers, it's possible to see every network traffic that goes out and in the emu)
  • Split log files with one per day

Changes in v3.0:
  • Support using official stored procedure smp_account (it check the password, auth_ok and block columns)
  • Support billing telnet interface (see config "auth.billing...") (the recognized command is "billing_notify blank <account id>")
  • Fix 2 bugs
  • More constraints on the account name: only ascii letters and digits are allowed unless "auth.clients.restrictchars" config is false (same characters as official auth)

Performance numbers :
  • Performance of miniweb server: 20k requests/sec, 4GBytes/sec on localhost (3Ghz cpu)
  • Performance of auth server: 25000 authentications / sec (~350000 packets/sec) (Using SQLite, server and client on localhost, 3Ghz, 2 core cpu, everything was CPU bound with both core used, see screenshots below)
  • Support at least 200 000 connections at once with the same performance as with few connections, ~17000/sec (using postgresql this time, SQLite use too much memory but it's slower) (200k was the maximum I could do, this require 4GB of RAM with 0.7GB for other processes, 1.5GB of kernel memory, 1GB for the auth server and 0.8GB for the client benchmarker, see screenshot below)
  • On the Raspberry Pi, I have done 270 auth/sec with CPU at 100% (not overclocked) using sqlite and over LAN + Wifi

Screenshots of performance benchmarks:

Auth benchmark, 1M authentications (from connection to server select), 64 concurrents connections, use SQLite database: 25k auth/sec, 350k packets/s, 188 Mbits/s, 3Ghz 2 core cpu (everything on localhost)
You must register and activate your account in order to view images.

Same benchmark but using postgresql:
You must register and activate your account in order to view images.

200k concurrents idle connections + benchmark: 64 concurrents connections. Using PostgreSQL database this time
Use all RAM so couldn't test more, 1.5 GB for the linux kernel, 1GB for the Auth Server (3Ghz, 2 core cpu)
You must register and activate your account in order to view images.


Usage guide


Auth Server Benchmarker Usage guide

The database must have accounts with a number suffix like this (account config value is "test"):
test1, test2, test3, ...
So several connections can be don concurrently with differents accounts.

To test a server, do this:
Code:
RappelzBenchmarkAuth.exe /ip:127.0.0.1 /port:4500 /count:64 /targetcount:1000000 /account:test /password:admin
If using /count:1, the account name is not suffixed, so if account value is "test", the connection will be made using account "test" and not "test1".

Don't use this tool on official servers, you can get your accounts banned because of limitations on daily connections / ip and maximum connections / ip.


Screen-shots

Auth Emu and SFrame on Linux with GS on WinXP VM
You must register and activate your account in order to view images.

Auth Emu and GS on WinXP VM, SFrame on Linux with guild icon
You must register and activate your account in order to view images.


Download

If Windows complains about missing msvcr100.dll or msvcp100.dll, install the Visual C++ 2010 runtime redistributable x86.

ATM there is only some binaries. Just ask for other platform (I can provide binaries for Windows 64 bits, Linux 32 & 64 bits, Linux ARM (Raspberry Pi))
Any comments/suggestions/bug reports/whatever are appreciated

For Linux binaries, you need the following packages (some might be already installed on your system):
  • libodbc1
  • libssl1.0.0
  • libstdc++6
  • libgcc1
  • libc6

[edit] I replaced the file with _full which contains the same files + libeay32.dll and a bat script + putty for the admin interface.
If you get an error 0xC000007B when starting the emu, you need the libeay32.dll matching the emu (either 32 or 64 bits).

NEW VERSION :
Attached Files
File Type: zip RappelzServerAuth-win-x64-v3.0.zip (222.3 KB, 1379 views)
File Type: zip RappelzServerAuth-win-x86-v3.0.zip (181.6 KB, 200 views)
File Type: zip RappelzEmu-win-x86-v3.0_full.zip (1.10 MB, 511 views)
File Type: zip libeay32_x64.zip (642.3 KB, 612 views)
File Type: zip libeay32_x86.zip (550.9 KB, 148 views)



glandu2 is offline  
Thanks
22 Users
Old   #2
 
elite*gold: 0
Join Date: Jan 2013
Posts: 4
Received Thanks: 3
u r awesome dude ty very much


sonaa is offline  
Old   #3
 
elite*gold: 30
Join Date: Mar 2012
Posts: 630
Received Thanks: 283
tyvm, very useful!
what about making a linux ver of an emu? with MySQL support
mongreldogg is offline  
Old   #4
 
elite*gold: 0
Join Date: Mar 2013
Posts: 75
Received Thanks: 5
Smile

ty:
i want to make the hole server work with mysql is that possible ?
if it is. can you make a guide for this purpose ?


hassuny is offline  
Old   #5
 
elite*gold: 0
Join Date: Apr 2012
Posts: 450
Received Thanks: 771
For linux version + MySQL

Install these 32 bits packages (debian/ubuntu packages):
  • libodbc1
  • libssl1.0.0
  • libmyodbc

Add these line in /etc/odbcinst.ini
Code:
[MySQL]
Description     = MySQL driver
Driver          = libmyodbc.so
Setup           = libodbcmyS.so
CPTimeout       =
CPReuse         =
Use this config:
Code:
auth.db.connectionstring:Driver={MySQL};Server=127.0.0.1;Database=Auth;Uid=root;Pwd=root;
Use these commands to create an initial database:
Code:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.37-1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database Auth;
Query OK, 1 row affected (0.00 sec)

mysql> use Auth;
Database changed
mysql> CREATE TABLE account
    -> (
    ->   account_id integer NOT NULL,
    ->   account character varying(61) NOT NULL,
    ->   password character varying(61) NOT NULL,
    ->   last_login_server_idx integer,
    ->   CONSTRAINT account_pkey PRIMARY KEY (account_id)
    -> );
Query OK, 0 rows affected (0.08 sec)

mysql> insert into account values (0, 'test1', '613b5247e3398350918cb622a3ec19e9', '0');
Query OK, 1 row affected (0.05 sec)
glandu2 is offline  
Thanks
4 Users
Old   #6
 
elite*gold: 0
Join Date: Dec 2012
Posts: 107
Received Thanks: 68
request for raspberry pi ARM, can u also write an PIos glandu ?
TheBrain_ is offline  
Old   #7
 
elite*gold: 0
Join Date: Apr 2012
Posts: 450
Received Thanks: 771
Writing an OS is time consuming and there are already existing OS for Raspberry Pi. I use Raspbian, which is Debian but compiled specially for Raspberry Pi (+ few other differences for a better hardware support).

So I recommend to use Rasbian has it works fine without any issues (and my binaries are compiled using this distribution)

(I added Raspberry Pi and Linux x86 binaries to main thread)
glandu2 is offline  
Thanks
1 User
Old   #8
 
elite*gold: 0
Join Date: Apr 2012
Posts: 450
Received Thanks: 771
I post here a new version, v3 with these changes:
  • Support using official stored procedure smp_account (it check the password, auth_ok and block columns)
  • Support billing telnet interface (see config "auth.billing...") (the recognized command is "billing_notify blank <account id>")
  • Fix 2 bugs
  • More constraints on the account name: only ascii letters and digits are allowed unless "auth.clients.restrictchars" config is false (same characters as official auth)

When using this version, check that no existing account has special characters. By default, special characters are not allowed in account name and a player won't be able to connect to it.
If you want to rename an account name, also update dbo.Characters table in Telecaster.
Special characters in account names can cause GS crashes (and these may be difficult to debug as they may be rare and random)
Attached Files
File Type: zip RappelzServerAuth-win-x64-v3.0.zip (222.3 KB, 55 views)
File Type: zip RappelzServerAuth-win-x86-v3.0.zip (181.6 KB, 16 views)
glandu2 is offline  
Thanks
5 Users
Old   #9
 
elite*gold: 0
Join Date: Apr 2013
Posts: 29
Received Thanks: 8
Keep up this Awesome work
MentalBrainer is offline  
Old   #10
 
elite*gold: 0
Join Date: Apr 2012
Posts: 450
Received Thanks: 771
I updated the example config to remove the dangerous line "admin.telnet.ip:0.0.0.0". (Remove it also from your config file if you have it)
glandu2 is offline  
Thanks
2 Users
Old   #11
 
elite*gold: 0
Join Date: Feb 2014
Posts: 146
Received Thanks: 34
Hi glandu2 please make database password update des genarating system ?
Aurorauser is offline  
Old   #12
 
elite*gold: 0
Join Date: Apr 2012
Posts: 450
Received Thanks: 771
you mean: to be able to put an encrypted database password in auth.opt ?
glandu2 is offline  
Old   #13
 
elite*gold: 0
Join Date: Feb 2014
Posts: 146
Received Thanks: 34
Quote:
Originally Posted by glandu2 View Post
you mean: to be able to put an encrypted database password in auth.opt ?
Yes
Aurorauser is offline  
Old   #14
 
elite*gold: 0
Join Date: Apr 2012
Posts: 99
Received Thanks: 34
guild icons problem

Hy glandu2 , i have an little problem at use AuthEmuV3 with gameserver 9.1
released by Ghost Informatics :

after configuration of common.opt and game.opt like on this thread
when i select an icon 20x20px under 60ko on guild admin pannel ,
the icon.file is created in upload folder
the icon.filename is updated on telecaster.dbo.guild entry
the icon never show in game ( icon guild pannel and icon over char head )

i'm sure is an error on my config but at this time i not found it

common.opt
Code:
upload.dir=/upload

upload.gameserver.ip:127.0.0.1
upload.gameserver.port:4616

upload.clients.ip:127.0.0.1
upload.clients.port:4617
upload.clients.webport:5000
game.opt

Code:
S:io.upload.port:4616
S:io.upload.ip:127.0.0.1
S:game.guild_icon_base_url:127.0.0.1/upload
S:game.url_list:guild_icon_upload.ip|127.0.0.1|guild_icon_upload.port|4617|guild_test_download.url|upload/|web_download|127.0.0.1:5000
at this time the server running fully on localhost no 192.168.1.___ or external ip .

i found two working settings for common.opt :

Code:
upload.iconserver.ip:127.0.0.1
upload.iconserver.port:80
but it's not resolve the problem .

if you can help me
nimoht is offline  
Old   #15
 
elite*gold: 0
Join Date: Apr 2012
Posts: 450
Received Thanks: 771
Try to open the icon in a browser (like firefox or chrome) using the address "http://127.0.0.1:5000/<icon_file_name.jpg>" Does it works ?
There is no error in the auth emu logs ?


glandu2 is offline  
Reply

Tags
auth, auth emu, auth server, emu, rappelz



« Previous Thread | Next Thread »

Similar Threads
[Release] Rappelz Auth Emu for Linux & Windows + Unpacked SFrame PH 8.1
Contents Introduction Features Usage guide Screen-shots What to do if it crash SFrame unpacked 8.1 Download (current version: v1.0)
13 Replies - Rappelz Private Server
rappelz auth server help me
What can these errors http://c1202.hizliresim.com/u/r/2yqx0.png
3 Replies - Rappelz Private Server
Rappelz Auth Server Error
http://img341.imageshack.us/img341/5175/hata1g.jpg http://img864.imageshack.us/img864/7154/hata2z.jpg Anyone help me pls? :o
5 Replies - Rappelz Private Server
Rappelz server Auth probleme
Hello, i have a problem creating my own rappelz pserver. When i put start_service i recive failed This is the image...
2 Replies - Rappelz Private Server



All times are GMT +2. The time now is 13:43.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.