Archives par étiquette : serveur

[Jeux] sauerbraten : un FPS F2P (gratuit) et surtout Open-Source avec le moteur de Cube2

logo de dube2, sauerbraten

Initialement nous jouions à Warsow au travail [Link] pendant notre pause déjeuner. Avec le temps nous avions des niveaux assez intéressants mais aussi notre propre serveur privé et nous regardions pour personnaliser les configurations. Il est vrai que nous avions perdu une bonne moitié du service technique lors que passage de Quake 3 à celui ci mais du moment que nous pouvions nous détendre… En revenant de congés cet été, j’ai pu découvrir que mes collègues directs s’étaient attaqués à un nouveau jeu, Sauerbraten. Et bien j’ai vraiment accroché aussi, et nous avons même vu revenir les joueurs initialement perdu, surtout en mode CTF (Capture the Flag).

Sauerbraten est à la fois un moteur de jeu en 3D et un jeu de tir subjectif (FPS). Le code source du moteur de jeu est distribué sous la licence libre ZLib2 de type BSD. Cependant, les médias du jeu (cartes, images…) sont propriétaires. Nous trouvons sur le site officiel [Link] des clients pour tous les systèmes, Windows, Linux et MAC. Au travail j’y joue sous Linux et à la maison sous Windows avec un plaisir équivalent. Nous pouvons donc tous nous y rejoindre sans souci.

Les graphismes ne sont pas les plus aboutis du marché mais je crois bien que ce qui était visé c’était la vitesse dans le jeu. Cela nous donne un jeu assez rapide, et surtout nerveux. Un bon défouloir donc. Pour mieux découvrir vous pouvez voir des vidéos du gameplay sur le net comme celle-ci [Link] où le instant_ctf (Capture the Flag en mort subite) est assez bien présenté ou bien cette vidéo en français [Link] sur une ancienne version mais qui explore un grand nombre de mode de jeu. On ne compte pas moins de 20 modes de jeu dont la plupart sont prévus pour jouer en ligne. Un mode solo de type campagne est aussi disponible, et aussi contre des bots sur tous les modes. Le côté campagne est plutôt à l’abandon de ce que j’ai pu lire. Personnellement j’ai un faible pour l’insta ctf et pour le regen capture (illustré ci-dessous).

4 images de sauerbraten

La communauté est très active avec quelques groupes plus actifs que d’autres. On trouve facilement une vingtaine de serveurs avec des joueurs de toutes les nationalités en ligne. On peut décompter quasiment 20 modes de jeu dans l’ordre ffa, coop_edit, teamplay, instagip, instagip_team, efficiency, efficiency_team, tactics, tactics_team, capture, regen_capture, ctf, insta_ctf, efficiency_ctf, protect, insta_protect, efficiency_protect, hold, insta_hold et efficiency_hold. A noter que pour chaque mode ou presque, nous avons des versions en équipe.

Ce que j’aime aussi c’est l’éditeur de cartes. Vous pouvez modifier ou créer vos propres cartes très facilement, et ce comme en jouant à Minecraft (pour ceux qui connaissent) ;-). J’ai d’ailleurs un collègue qui a commencé une carte inspirée de nos locaux. Vivement qu’il la termine, que nous puissions la partager en ligne. D’une discussion sur le serveur Nooblounge j’ai pu comprendre que le seul défaut vient de la mise à disposition des cartes. En effet pas de moyen pour que le serveur l’envoie au client, que ce soit directement ou via un serveur http (web). Il faut donc posséder la carte soit même pour y jouer. Cette communauté utilise un dépôt de code (subversion) pour se partager les cartes. Enfin pas grave, c’est un défaut vraiment minime 😉

Sur le site officiel vous pouvez télécharger l’exécutable ou bien une archive contenant les fichiers nécessaires. Chacun possède le serveur, il est donc très facile de faire tourner son propre serveur et on trouve des tutoriaux en ligne [Link]. Nous nous sommes contentés de décompresser l’archive dans un dossier, de jouer un petit peu avec le fichier de configuration (fichier texte) et nous avons pu exécuter notre propre serveur très facilement. Tout est expliqué sur les différents sites de la communauté, mais la plupart du temps en anglais. Au pire utilisez Google Translate pour passer outre ce léger inconvénient.

Autre plus, la possibilité de rajouter des scripts pour avoir plus de fonctionnalités. Par exemple un module de statistiques comme sur la capture ci-dessous en mode capture de drapeau par équipe.

Capture d'écran sauerbraten pour illustrer les statistiques affichées par un script

Regardez dans le coin en bas à droite. Ce n’est bien sûr qu’un exemple. la communauté Nooblounge propose tout un script avec excuses automatiques et tout et on peut aussi trouver des listes plus complètes sur Quadropolis [New ScriptsBest Scripts]. Pour intégrer ces scripts il suffit de modifier quelques fichiers de configuration au format texte. D’ailleurs le plus casse-pied est de trouver le bon fichier de configuration, La FAQ-Wiki nous aide bien pour le coup [Link]. Si au travail j’ai trouvé sans souci sous Linux, j’ai eu plus de mal sur mon portable avec Seven …

Voila donc pour une plutôt longue présentation. J’avoue ne jouer qu’à ce jeu en ce moment. C’est facile d’accès, cela détend en servant de défouloir. C’est rapide et fluide. Cela ne prend presque pas de place sur le disque dur. Bref j’adhère complètement. N’hésitez pas à me rejoindre de temps à autre le soir. Je suis souvent sur Nooblounge.net et pour le pseudo je pense que vous aviez deviné, Gals.

Pour l’anecdote, le Sauerbraten est initialement un plat allemand à base de viande de bœuf avec une sauce aigre-douce. Et bien un collègue nous a invité à dîner chez lui et nous l’a cuisiné. Félicitations à lui car c’était vraiment très bon 😉 Par contre pour en savoir plus sur cette recette je vous invite à lire la page Wikipedia [Link] ou à chercher rapidement via Google 😉

Photo d'un plat de sauerbraten

Liens :

une capture d'écran en capture de drapeau dans sauerbraten

Installation et configuration de pure-ftp sur Ubuntu serveur Hardy Heron (8.04 LTS)

Voici peu de temps j’ai du procéder à la re-installation complète de mon serveur Web. En effet suite à un crash de la machine physique, le serveur virtuel avait prit un léger coup. Sa restauration sur un nouveau système de virtualisation (Xen au lieu de vserver) semblant difficile, j’ai préféré repartir avec une installation propre du système. Mon hébergeur a donc installé le même OS, Ubuntu 8.04LTS server (Hardy Heron). Oui je sais que la version date un peu mais nous étions dans l’urgence et nous avons fait au plus simple pour la restauration derrière 🙂

Ayant rencontré quelques difficultés pour installer de nouveau le serveur FTP, j’ai décidé de faire profiter d’autres de ma méthode afin de leur faciliter la vie plus tard. A l’époque, étant en train de développer un site Web qui devait accueillir une page de téléchargement avec potentiellement pas mal de connexions, j’avais choisi Pure-FTP. En effet avec son système d’utilisateurs virtuels, il présentait un fonctionnement plus simple et la possibilité d’un utilisateur virtuel en lecture seulement afin de créer des liens ftp et non http, ce qui aurait permit une sérieuse économie sur les ressources du serveur. Cette interface na jamais été mise en production, mais j’ai conservé ce serveur FTP car il était simple de configuration et de fonctionnement, du moins à mon goût.

Tout d’abord installons le serveur :

sudo apt-get install pure-ftpd pure-ftpd-common

Si vous n’êtes pas sur un serveur, mais sur un bureau (desktop), je vous invite à installer aussi pureadmin. Reportez-vous aux documentations accessibles par les liens plus bas pour ce point.

Une fois le serveur installé, nous avons un groupe pour les utilisateurs ftp et un utilisateur réel pour le serveur.

sudo groupadd ftpgroup
sudo useradd -g ftpgroup -d /dev/null -s /usr/sbin/nologin ftpuser

Il est possible d’apporter de nombreuses configurations au serveur FTP en lui même comme une limitation sur le type d’IP pouvant se connecter (IP V4 ou V6), des logs plus verbeux, …etc… Suivre les deux liens suivants pour consulter ces options [link1link2].

Une fois cette étape terminée, nous allons pouvoir créer nos utilisateurs virtuels. Attention dans cette partie je n’utilise que la ligne de commande car je suis sur un serveur, mais étonnamment il est conseillé de n’utiliser que cette méthode, même si vous avez installé pureadmin 😉

sudo pure-pw useradd user1 -u ftpuser -g ftpgroup -d /var/www/html/site1
sudo pure-pw useradd user2 -u ftpuser -g ftpgroup -d /var/www/html/site2

A chaque utilisateur ajouté, il vous sera demandé de saisir le mot de passe de ce dernier (deux fois). Il est bien sûr possible de rajouter diverses options pour les utilisateurs comme des quotas, une IP/mask pour un compte donné et ainsi de suite. Toutes ces options se retrouvent dans la documentation de Pure-FTP mais en voici déjà une bonne vision :

pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>]
-D/-d <home directory> [-c <gecos>]
[-t <download bandwidth>] [-T <upload bandwidth>]
[-n <max number of files>] [-N <max Mbytes>]
[-q <upload ratio>] [-Q <download ratio>]
[-r <allow client host>[/<mask>][,<allow client host>[/<mask>]]…]
[-R <deny client host>[/<mask>][,<deny client host>[/<mask>]]…]
[-i <allow local host>[/<mask>][,<allow client host>[/<mask>]]…]
[-I <deny local host>[/<mask>][,<deny local host>[/<mask>]]…]
[-y <max number of concurrent sessions>]
[-z <hhmm>-<hhmm>] [-m]

Une fois les utilisateurs créés il faut générer leur fichier. Utilisez pour cela la commande suivante :

sudo pure-pw mkdb

Si nous nous arrétions là nous obtiendrions une erreur 530 en essayant de nous connecter. Afin d’activer ll’authetification liée à Pure-FTP, il faut créer un lien symbolique vers le fichier PureDB dans le dossier auth :

sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure

On peut trouver dans ce dossier d’autres liens symboliques. Personnellement j’ai toujours du réaliser cette étape. D’après certains sites il faudrait idéalement que le lien symbolique de l’identification choisie soit en premier dans le dossier. Si l’erreur 530 persiste, il est conseillé de désactiver l’identification PAM en remplaçant « yes » par « no » dans le fichier « /etc/pure-ftpd/conf/PAMAuthentication ».

Si à l’issue cela persistait encore et que dans le fichier /var/log/syslog vous avez un affichage proche du suivant :

Jun  9 11:46:41 monserveur pure-ftpd: (?@monserveur) [INFO] New connection from monserveur
Jun  9 11:46:46 monserveur pure-ftpd: (?@monserveur) [INFO] PAM_RHOST enabled. Getting the peer address
Jun  9 11:46:47 monserveur pure-ftpd: (?@monserveur) [WARNING] Authentication failed for user [monuserftp]
Jun  9 11:46:53 monserveur pure-ftpd: (?@monserveur) [INFO] Logout.

Je vous invite alors à redémarrer votre serveur. Oui je sais que cela peut-être considéré comme hérétique que de vouloir redémarrer un serveur Linux mais dans le cadre présent cela peut aider 😉

Si au démarrage du serveur FTP vous obtenez l’erreur suivante dans le fichier /etc/var/syslog :

Jun 9 16:55:37 monserveur pure-ftpd: (?@?) [ERROR] Sorry, invalid address given

Il y a fort à parier que la résolution DNS de votre serveur soit dans les choux. Je vous invite alors à vérifier la configuration des serveur DNS disponibles dans le fichier /etc/resolv.conf.

Voici maintenant quelques commandes utiles pour le fonctionnement immédiat de votre serveur.

Lister les utilisateurs virtuels :

sudo pure-pw list

Lister les utilisateurs connectés et leurs états :

sudo pure-ftpwho

Changer le mot de  passe d’un utilisateur :

pure-pw passwd monuser -f /etc/pure-ftpd/pureftpd.passwd

Il est aussi possible d’ajouter un message personnalisé pour chaque utilisateur. Pour cela je vous inviterai à consulter la première documentation sur Doc Ubuntu 🙂 Voila pour toute cette partie. J’espère que cela sera utile à certains 🙂

Liens complémentaires / sources :

 

Serveur de temps et Windows 2008

J’avais déjà fait un article sur la configuration d’un serveur Windows avec le pool français afin de rester à la bonne heure (cf. ici), mais voici un petit complément. Cette méthode a été appliquée sur un contrôleur de domaine tournant sous Windows 2008 Server Standard. En ligne de commande (Démarrer, Exécuter, cmd) entrer la suite de commandes suivantes :

net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:fr.pool.ntp.org
w32tm /config /reliable:yes
net start w32time

Votre serveur se synchronisera alors avec le pool français et pourra donc synchroniser les postes clients. Pour plus d’informations sur la commande w32tm je vous invite à lire cette page de Microsoft TechNet. Cette commande peut aussi bien vous permettre de configurer le serveur de temps sous Windows que de travailler au diagnostique d’un problème avec le serveur de temps.

Serveur WoW privé & gratuit : Ad Vitam Aeternam

Ad Vitam Aeternam est un serveur WoW privé et gratuit. Il suffit d’installer le client dans une version donnée et de faire quelques modifications pour joindre un de leur deux serveur (pvp ou jdr).

http://www.aeternam-serveur.fr

Et si vous n’avez pas le client et bien ce n’est pas grave, tout est fournit : http://www.aeternam-serveur.fr/index-website-joinus.html

Bon il faut installer les MAJ manuellement avec les exe et empêcher le client de se mettre à jour tout seul, mais pour l’avoir testé, cela fonctionne bien. Ensuite soyez patient car c’est assez long mine de rien, surtout l’installation initiale. J’ai passé presque une journée pour réaliser l’installation 😉 Avant que quelqu’un pose la question, j’ai multi-boot avec un Windows XP Pro. Oui honte sur moi le linuxien, mais au moins cela m’oblige à redémarrer sous Windows si je veux jouer, ce qui n’est pas un mal 😉

J’ai testé sur 2/3 jours pour le moment le jeu, et l’XP et les sous (voire loot) sont améliorés, donc on va plus vite pour monter un personnage. En moins de quatre heures j’ai pu faire une humaine Mage lvl 10, et en moins de trois jours elle est level 23. Bon d’accord je ne peux pas beaucoup jouer car avec le CNAM et la vie réelle 😉 Et oui j’ai tendance à profiter de mes temps libres pour sortir de ma tanière bizarrement 😉 Si certains veulent tenter l’expérience c’est sympa. Par contre on est loin du nombre de joueurs qu’il peut y avoir sur les serveurs officiels donc ne soyez pas effrayés de ne pas toujours croiser du monde 🙂 Un point positif, contrairement aux serveurs officiels, c’est qu’ il y a un plus grand respect entre factions. En effet les gros level vous laisseront jouer tranquillement tant que vous serez des petits poissons 😉 Et si le PVP ne vous intéresse pas, je vous invite alors à tester Gloriam qui est vraiment orienté JDR.  Pour le moment je n’ai jamais vu Vitam dépasser les 1000 joueurs simultanés (800 en moyenne), et Gloriam les 300. Mais espérons que cela s’étoffera 😉

J’ai créé une mage Ally sur le serveur pvp : Lidéale. Donc n’hésitez pas si vous voulez me contacter en ligne, du moins quand j’y suis. Pas sûr que je continue longtemps avec tout ce qu’il y a à côté. Je suis en effet loin de l’état d’esprit que j’avais en 2005 quand j’ai joué sur les serveurs officiels. Et j’avoue que je ne retrouve pas forcément le même plaisir n’ayant plus d’amis en ligne.

Voila j’espère que certains aimeront, ou que cela sera utile. Ce n’est surement pas le seul à exister mais c’est celui qu’un collègue du travail m’a conseillé (il était côté alliance d’où la création de mon perso 😉 ).

En cherchant rapidement des infos j’ai trouvé un lien pour un autre serveur privé donc je vous le met ici aussi :

http://www.ivalice-serveur.com/

Ce dernier à trois royaumes (contre deux dans le précédent). Il en existe surement bien d’autres 🙂 Voila si certains veulent s’amuser n’hésitez pas. N’oubliez pas en tout cas le côté addictif de ces MMPORG, il serait dommage d’oublier le reste à cause d’eux 🙂

J’avais testé quelques autres MMPORG mais j’avoue que je n’ai jamais retrouvé le même plaisir sur ces derniers que sur WoW. Il en existe encore bien d’autres mais je n’ai plus la même curiosité pour les jeux vidéos, ni la même approche. Si vous voulez découvrir la richesse de titres, vous pouvez visiter Mondes Persistants par exemple qui est un magazine en ligne dédié à ces univers. Ensuite via Google on peut en trouver pleins d’autres avec différents schémas commerciaux 🙂

Maintenir ses machines linux à l’heure avec ntp (exemple sur une Mandriva)

Quand il s’agit de conserver nos machines Linux (ou même Windows) à l’heure, il y a toujours plusieurs solutions. La première est de le faire manuellement avec date ou ntpdate par exemple.

date MMJJhhmmAAAA

MM = mois sur deux chiffres (01 à 12)
JJ = jour du mois sur deux chiffres (01 à 31)
hh = heures sur deux chiffres (00 à 24)
mm = minutes sur deux chiffres (00 à 59)
AAAA = année sur quatre chiffres

exemple : date 032112352010

Cette première solution est plutôt longue et fastidieuse, de plus elle favorise les risques d’erreur par une saisie manuelle. On peut ensuite demande à se synchronise avec un serveur de temps. Pour cela il faudra installer ntp-client ( urpmi ntp-client )

[root@srv-test ~]# ntpdate fr.pool.ntp.org
21 Mar 16:55:50 ntpdate[3392]: step time server 193.55.167.1 offset -6335.455525 sec
[root@srv-test ~]#

La commande ntpdate permet de synchroniser une machine avec un serveur de temps sur Internet. C’est déjà un plus mais cela reste toujours manuel. Il est possible de l’automatiser en rajoutant une tâche planifiée dans la crontab, afin que cela tourne une fois par jour par exemple.

0 1 * * * ntpdate fr.pool.ntp.org >> /root/ntpd.sh.log

Un complément d’information car voici deux fois que j’utilise une URL sans l’avoir expliquée. Il existe un projet en ligne pour un ensemble de serveurs de temps qui se nomme NTP POOL PROJECT. On peut y trouver des listes de serveurs de temps en ligne pour se synchroniser pour l’ensemble des pays, et donc pour la France aussi : pool zone France.

Nous venons de voir comment réaliser une synchronisation simple, déclenchée à un instant « t », mais il peut-être intéressant d’avoir une synchronisation permanente avec la présence d’un serveur de temps sur notre machine ou dans notre réseau privé. Pour cela il nous faut installer ntp ( urpmi ntp ) et ensuite modifier le fichier de configuration :

vi /etc/ntp.conf

On doit y trouver ceci les lignes suivantes :

server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org

Nous allons les remplacer par les lignes suivantes :

server fr.pool.ntp.org prefer
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 3.fr.pool.ntp.org

Le paramètre « prefer » ici utilisé permet de définir le serveur par défaut, celui qui faudra utiliser en premier. Une fois ce paramètre enregistré il nous suffit de démarrer le service ntp.

service ntpd start

Il est possible qu’il ne se relance pas en cas de redémarrage machine, pour cela vérifier la liste des services qui sont planifiés au démarrage.

chkconfig –list

Pour passer ntpd en démarrage automatique, utilisez la commande suivante :

chkconfig –level 2345 ntpd on

Maintenant que notre service tourne, nous pouvons le vérifier avec la commande ntpq -p :

[root@srv-test ~]# ntpq -p
remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
LOCAL(0)        .LOCL.          10 l    –   64    0    0.000    0.000   0.001
ks35603.kimsufi .INIT.          16 u    –   64    0    0.000    0.000   0.001
ns1.azuria.net  .INIT.          16 u    –   64    0    0.000    0.000   0.001
digi00161.digic .INIT.          16 u    –   64    0    0.000    0.000   0.001
81.19.16.225    .INIT.          16 u    –   64    0    0.000    0.000   0.001
ns.e-madeinfran 192.93.2.20      2 u    3   64    1   42.936  -176568   0.001
[root@srv-test ~]#

Il est possible, comme dans l’exemple ci-dessus, d’avoir des INIT dans la deuxième colonne. Il suffit d’attendre un peu pour les voir disparaitre. Au fil du temps qui va passer, les valeurs de la colonne « reach » vont augmenter. La connexion est considérée comme stable quand vous aurez d’affiché 377.

[root@srv-test ~]# ntpq -p
remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
LOCAL(0)        .LOCL.          10 l   37   64  377    0.000    0.000   0.001
*ntp.univ-poitie 195.34.89.227    3 u  284 1024  377   47.650   -1.037   1.482
+ntp.univ-angers 195.220.94.163   2 u  196 1024  377   50.958    4.429   1.011
+sd-16014.dedibo 213.162.48.10    3 u  130 1024  377   40.630    6.772   2.567
+diane.ensma.fr  192.93.2.20      2 u  198 1024  377   52.104    2.234   1.397
+ddb3.europeacon 193.204.114.232  2 u  164 1024  377   36.599    4.849  41.804
[root@srv-test ~]#

La synchronisation n’est pas immédiate et peut prendre quelques minutes. Le serveur précédé d’une astérisque (*) est celui utilisé, ceux précédés d’un plus (+) sont les potentiels, ceux précédés d’un moins (-) seront retirés et ceux précédés d’un espace sont soit inaccessible, soit trop éloignés. Et voila votre machine ou serveur est maintenant synchronisé avec un serveur de temps et il devrait le rester tant que le service tournera. Il peut-être envisagé de se servir d’une machine synchronisée pour servir de serveur de temps au sein du réseau directement par la suite. Une configuration plus poussée peut-être envisagée dans ce cadre (je verrais si je rédige un nouvel article ultérieurement, mais en attendant vous pouvez consulter l’un des deux liens ci-dessous qui donne des procédures légèrement différentes, dont une sur nicolargo qui prend en compte plus de paramètres.

Installation d’un serveur NTP sous Ubuntu sur blog.nicolargo.com
Mettre vos serveurs à la bonne heure avec NTP sur system-Linux.eu