Info16.fr

Le blog de B@rtounet

Gnu/Linux

#Gnu/Linux

Serveur Team speak (toutes distributions)

Vous jouer beaucoup en ligne, vous connaissez surement le célèbre Teamspeak. TeamSpeak est un programme permettant de dialoguer entre plusieurs utilisateurs connectés à un même serveur Vous savez le petit serveur, que des hbergeur de serveur de jeux n'hésite pas à vous faire payer, alors que vous pouvez en monter un gratuitement...

Teamspeak est le logiciel de dialogue en ligne le plus connu dans le monde des joueurs, il est léger, paramétrable, et facile à installer. Il existe bien sur une manière de l'installer sous Windows, mais les "clics" "clics" ne m'interesse pas vraiment ;-)

Première chose à faire télécharger le logiciel sur le site officiel.

On obtient un fichiers archivé et compréssé : ts2_server_rc2_20201.tar.bz2

Placer le dans un dossier de votre choix, et décompressez le

#tar -xvjf ts2_server_rc2_20201.tar.bz2 -j etant l'option pour décompresser le format bz2

on se retrouve donc avec un dossier tss2_rc2: Dans de dossier on retrouve pas mal de fichier et notemment le fameux script à tout faire teamspeak2-server_startscript

Pour lancer le serveur teamspeak il suffirait d'activer ce script en faisant simplement teamspeak2-server_startscript start.

Mais comme il n'est jamais prudent de lancer un service en tant que root j'ai préféré faire quelque manip...

tout dabord creer un utilisateur: par exemple teamspeak

#useradd teamspeak

Lui donner un mot de pass:

#passwd teamspeak

Une fois cet utilisateur créer, qui n'a d'ailleur aucun droit ni de fichier à lui, changer le propriétaire du dossier tss2_rc2

#chown -R teamspeak /tss2_rc2

-R pour Récursif; tous le dossier.

Pour encore plus de sureté, ne donner les droit sur le fichier tss2_rc2 qu'à l'utilisateur teamspeak

#chmod 700 /tss2_rc2

voilà, votre dossier est sécurisé, seul teamspeak a le droit d'y entrer et d'executer des commandes.

Vous pouvez alors lancer le serveur en tant qu'utilisateur teamspeak

 su teampeak cd /tss2_rc2 ./teamspeak2-server_startscript start

Notre serveur demarre en tant que teamspeak.

teamspeak@Routeur:/tss2_rc2 $ ./teamspeak2-server_startscript start starting the teamspeak2 server TeamSpeak Server Daemon started with PID 3035

Voila votre serveur est lancé et prêt à recevoir du monde...

Pour l'administrer simplement, le daemon lance une interface web au : http://localhost:14534/ si vous avez une interface graphique sur votre serveur, sinon http://ip_du_serveur:14534/ a partir d'une machine cliente.

On arrive alors sur l'inerface Web....

Dernière chose, pour se loger il demande un login et un mot de passe: Vous trouverez le login et le mot de passe du superadmin qui à été généré au premier lancement dans le fichier server.log

 vi /tss2_rc2/server.log

Je vous laisse le soin de paramétrer le reste, par l'interface Web...

Pour se connecter sur le serveur a partir d'une machines cliente, il faut avoir le logiciel client de teamspeak disponible aussi sous linux ou sous windows sur le site du devellopeur.

Une fois le client installer il suffit de s'y connecter en entrant l'ip du serveur TS et son port..

Si vous ne l'avez pas changer le port est le 8767.

Pour que vos amis se connecte a distance sur votre serveur et que vous etes derrierees un routeur/firewall NAT, no'oublier pas de forwarder le port vers l'ip de votre serveur.

Un petit EDIT depuis le temps...

lancer le serveur par la voie normale est vite embetant... aller dans le repertoire de decompression, lancer le script etc... j'ai donc fait un petit script a mettre dans /etc/init.d qui facilite la vie.... ( a modifier le path selon votre configuration):

#!/bin/bash # # Teamspeak Server Lauching Script # # /etc/init.d/teamspeakserver #Antony MARTINEAU 2007 ### BEGIN INIT INFO # Provides:     bonding # Required-Start: $network # Required-Stop: # Default-Start: 3 5 # Default-Stop: # Description:  start the teamspeak server ### END INIT INFO path="/home/teamspeak/tss2_rc2" case "$1" in         start)                 cd $path                 su teamspeak -c $path/teamspeak2-server_startscript start                 echo "Lancement de teamspeak"                 ;;         stop)                 cd $path                 $path/teamspeak2-server_startscript stop                 echo "Fermeture du serveur teamspeak"                 ;;         status)                 cd $path                 $path/teamspeak2-server_startscript status                 ;;         *)                 echo "Usage: $0 start"                 exit 1 esac
27 juillet 2011 Aucun commentaire

#Gnu/Linux

Réinstaller Grub après une install de Windows

Vous aviez un beau Linux tout beau, mais vous avez eut le malheur, d'installer un Windaube par dessus croyant que Grub allait tout gérer...

Vous ne le savez peut être pas, mais par défaut le GRUB (chargeur de boot de Ubuntu) s'installe de base dans la MBR (master boot record) c'est à dire dans le premier secteur du premier disque.

Mais comme d'habitude notre cher et tendre Windows fait des siennes, et écrase la MBR lors de son installation, si bien qu'au reboot, nous n'avons plus le choix de notre multiboot...

N'ayez craintes, il y a une solution...

Tout d'abord un peu de technique... Linux nomme les disques présents un peu différemment de Windows...

Notation Linux

Et pour compliquer le tout voila la notation sue GRUB donne aux disques

Une fois qu'on sait tout cela... c'est beaucoup plus facile...

Votre Windows est installé et vous n'avez plus accès à votre partitions Linux...

Redemarrer avec un live CD Linux (ubuntu/knoppix etc ...) Ouvrez une console et mettez vous en root (ou utilisez la commande sudo)

tappez alors

grub

ca va prendre un peu de temps, pour qu'il scan les disques...

une fois au prompt vous pouvez entrez les commandes relatives à vos partitions... Pour ma part j'ai entré:

root (hd0,1)
setup (hd0) quit@@

En fait on dit juste à grub: - Ma partition contenant mon ancien / est sur la deuxième partition (1) du premier disque (hd0) - soit gentil de reinstaller grub sur la mbr de mon premier disque (hd0) - Au revoir ;-)

C'est tout simple, il faut bien sur l'adpater à votre configuration Si votre Linux etait sur la premiere partition de votre deuxieme disque ca sera (hda1,1)

Attention si vous utilisez du scsi ou du sata ce n'est plus hda et hdb, mais sda et sdb...

27 juillet 2011 Aucun commentaire

#Gnu/Linux

Serveur DNS Bind Dynamique Linux/Ubuntu

Le but de cet article est de configurer son DNS bind pour le rendre dynamique... C'est à dire que tous les clients qui utiliserons par défaut ce Serveur DNS seront enregistrés automatiquement dans la base DNS...

Nous partirons du principe que le serveur DNS est dejà installé et fonctionnel, (voir mon article sur l'installation d'un serveur DNS).

Nous nous étions arrété, sur un DNS qui n'autorisait aucune mise à jour, C'est à dire qu'il resolvait les noms en fonctions de pointeurs que nous avions rajouté manuellement..

C'est correct dans un petit réseau, mais dans une structure ou de nouveaux postes se connectent, ou bien qu'il y ait un serveur DHCP pas forcement configuré avec des hotes à ip fixes ceci n'est pas viable.

En effet, pour un même poste il peut se voir attribuer une autre addresse IP une fois que son bail est écoulé, c'est pourquoi il est interessant qu'il s'enregiste dynamiquement dans le DNS afin qu'on puisse le contacter par son nom d'hote n'importe quand et peu importe son ip...

Il existe plusieurs moyens de faire cela... En général soit le client s'enregiste directement dans le DNS soit c'est le serveur DHCP qui vient indiquer au dns l'ip qu'il vient d'attrivuer et à quel nom d'hote...

C'est cette deuxième solution que j'ai mis en oeuvre.

Commencons par reprendre notre fichier de configuration du DHCP

vi /etc/dhcp3/dhcpd.conf

on va alors rajouter quelques lignes...

#Mon Serveur DHCP #Mon domaine option domain-name "appart.lan"; ##Mise à jour des DNS en test ddns-domainname "appart.lan"; #Méthode de mise à jour du DNS ddns-update-style interim; #Mise à jour autorisée ddns-updates on; #ici on force la maj par le dhcp et non par le client ignore client-updates; #on force la maj des ipfixes update-static-leases on;__ #Les serveurs DNS option domain-name-servers 192.168.1.101, 212.27.53.252; #Le serveur Wins option netbios-name-servers 192.168.1.101; #Mon routeur passerelle #option routers 192.168.1.254; #Le bail default-lease-time 21600; #Les sous réseaux #Le sous reseau 192.168.1.0 subnet 192.168.1.0 netmask 255.255.255.0 {  range 192.168.1.110 192.168.1.115; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; } #le sous reseau 192.168.2.0 subnet 192.168.2.0 netmask 255.255.255.0 {  range 192.168.2.110 192.168.2.115; option subnet-mask 255.255.255.0; option broadcast-address 192.168.2.255; option routers 192.168.2.100; } #Le sous reseau 192.168.3.0 subnet 192.168.3.0 netmask 255.255.255.0 {  range 192.168.3.1 192.168.3.2; option subnet-mask 255.255.255.0; option broadcast-address 192.168.3.255; option routers 192.168.3.100; } #Configuration des IP fixes #Mon PC B@rtounet host Bartounet  { hardware ethernet 00:08:54:37:8b:3f; fixed-address 192.168.1.100; } #Le portable host Laptop { hardware ethernet 00:17:31:FA:68:7F; fixed-address 192.168.1.105; } #PC de Pascaline host Pascaline { hardware ethernet 00:e0:4d:0f:37:ef; fixed-address 192.168.1.102; } #PC de Salon host PCSALON { hardware ethernet 00:0f:ea:84:4a:c8; fixed-address 192.168.1.103; } #Les zones gérées zone appart.lan. { 	primary 127.0.0.1; 	} zone 1.168.192.in-addr.arpa. { 	primary 127.0.0.1; 	} zone 2.168.192.in-addr.arpa. { 	primary 127.0.0.1; 	} 

Mon fichier est assez bien commenté pour qu'on puisse comprendre tous les rajouts

Pour plus de sureté on ajoute aussi en fin de fichiers les zones que le dhcp doit gerer.

Nous en avons fini pour le dhcp.

Passons maintenant au DNS

sudo vi /etc/bind/named.conf

Mon fichiers est alors :

// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind9/README.Debian.gz for information on the // structure of BIND configuration files in Debian, *BEFORE* you customize // this configuration file. // // If you are just adding zones, please do that in /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; // prime the server with knowledge of the root servers zone "." { 	type hint; 	file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { 	type master; 	file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { 	type master; 	file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { 	type master; 	file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { 	type master; 	file "/etc/bind/db.255"; }; zone "appart.lan" {         type master;         file "/etc/bind/db.appart.lan"; 	allow-update { 		127.0.0.1; 		}; }; zone "1.168.192.in-addr.arpa" {         type master;         file "/etc/bind/db.appart.lan.inv"; 	allow-update { 		127.0.0.1; 		}; }; zone "2.168.192.in-addr.arpa" {         type master;         file "/etc/bind/db.appart.lan2.inv"; 	allow-update { 		127.0.0.1; 		}; }; // zone "com" { type delegation-only; }; // zone "net" { type delegation-only; }; // From the release notes: //  Because many of our users are uncomfortable receiving undelegated answers //  from root or top level domains, other than a few for whom that behaviour //  has been trusted and expected for quite some length of time, we have now //  introduced the "root-delegations-only" feature which applies delegation-only //  logic to all top level domains, and to the root domain.  An exception list //  should be specified, including "MUSEUM" and "DE", and any other top level //  domains from whom undelegated responses are expected and trusted. // root-delegation-only exclude { "DE"; "MUSEUM"; }; include "/etc/bind/named.conf.local";

Ici c'est assez simple, on a simplement rajouter qu'on acceptait les mise à jours dynamique pour chaque zone.

allow-update { 		127.0.0.1; 		};

Si vous aviez des pointeurs manuels creé dans vos fichiers db.* supprimez les, car la mise à jour dynamique va les creer tout seul.

Relancez les différents services et ca doit marcher...

Su vous avez des clients dhcp linux, il peuvent poser problême, car par défaut il n'envoient pas leur nom Netbios lors de l'attribution d'adresse comme le font les clients Windows.

C'est pourquoi il faut rajouter dans votre fichiers /etc/dhclient.conf la ligne

send host-name "lenomdelamachine" ;

27 juillet 2011 Aucun commentaire

#Gnu/Linux

Agent de relais DHCP

Le but de ce billet est d'installer un agent de relais DHCP sur un routeur Linux/Ubuntu

Vous avez configuré votre serveur DHCP, pour qu'il fournisse des adresses IP à tous votre réseau, et vous avez même été plus loin , puisque votre DHCP gère même plusieurs sous réseaux...

Par exemple 192.168.1.0/24 et 192.168.2.0/24

votre DHCP est situé sur le sous réseau 192.168.1.0/24 et attribue très bien les adresses à tous les postes de son sous réseau.

Mais le problême, c'est que le sous réseau 192.168.2.0/24 est situé derrière un routeur. (un routeur Linux ... Ouf on a de la chance ;-) )

On remarque alors que ce sous réseau ne se fait pas attribuer d'addresse IP par notre serveur.

Que se passe t'il ??

c'est pourtant Simple ;-)

la base d'une requete DHCP est le suivant:

1/ Lorsque le client DHCP démarre, il n'a aucune connaissance du réseau, du moins, en principe. Il envoie donc une trame "DHCPDISCOVER", destinée à trouver un serveur DHCP. Cette trame est un "broadcast", donc envoyé à l'adresse 255.255.255.255. N'ayant pas encore d'adresse IP, il adopte provisoirement l'adresse 0.0.0.0. Comme ce n'est pas avec cette adresse que le DHCP va l'identifier, il fournit aussi sa "MAC Address".

 

2/ Le, ou les serveurs DHCP du réseau qui vont recevoir cette trame vont se sentir concernés et répondre par un "DHCPOFFER". Cette trame contient une proposition de bail et la "MAC Address" du client, avec également l'adresse IP du serveur. Tous les DHCP répondent et le client normalement accepte la première réponse venue.

 

3/ Le client répond alors par un DHCPREQUEST à tous les serveurs (donc toujours en "Broadcast") pour indiquer quelle offre il accepte.

4/ Le serveur DHCP Concerné répond définitivement par un DHCPACK qui constitue une confirmation du bail. L'adresse du client est alors marquée comme utilisée et ne sera plus proposée à un autre client pour toute la durée du bail.

(cf : Le site de Caleca )

Une requete DHCP est donc un broadcast : et comme vous le savez tous, les routeurs bloquent les broadcast, afin d'isoler les sous réseau en domaine de broadcast.

Donc forcement notre requete DHCP est bloquée et éliminée par notre routeur.

Heureusement il existe une solution :

Installer un service relai DHCP.

Sous Linux c'est dhcp-relay

sudo apt-get install dhcp3-relay

Le script d'installation vous demande alors quel serveur dhcp vous voulez écouter... Mettez ici l'IP de votre serveur.

Le script vous demande sur quelles interfaces ecouter, Ne mettez rien, et il écoutera sur toutes les interfaces.

Vous pouvez de toute facon modifer ces options en éditant le fichier /etc/default/dhcp3-relay

 # Defaults for dhcp3-relay initscript # sourced by /etc/init.d/dhcp3-relay # installed at /etc/default/dhcp3-relay by the maintainer scripts # # This is a POSIX shell fragment # # What servers should the DHCP relay forward requests to? SERVERS="192.168.1.101" # On what interfaces should the DHCP relay (dhrelay) serve DHCP requests? INTERFACES="eth0 eth1" # Additional options that are passed to the DHCP relay daemon? OPTIONS=""

Voila à présent votre routeur va écouter les requetes dhcp et les rediriger vers les bonnes interfaces... autrement dit toutes puisque c'est un broadcast ;-)

27 juillet 2011 Aucun commentaire

#Gnu/Linux

Activer le routage sur Linux

Le problême est le suivant, vous avez un poste sous linux, avec deux interfaces eth0 et eth1 par exemple..

vous souhaitez que le poste se comporte comme un routeur afin de rediriger les paquets vers les interfaces appropriées.

Vous aurez beau mettre les ip que vous voulez et les routes statiques que vous voulez, cela ne marchera pas tant que vous n'aurez pas déverouillé le forwarding

La commande est simple :

echo 1 > /proc/sys/net/ipv4/ip_forward

après cela votre poste est capable de router ;-)

27 juillet 2011 Aucun commentaire