Archives 2011
#Gnu/Linux
Mise en place d'un Serveur Proxy Squid Linux/Ubuntu
Vous êtes dans une entreprise, et vous voulez fermer les accès afin de controler vraiment ce qui sort de votre réseau... Squid est fait pour vous
Un serveur Squid est un serveur proxy performant, il est capable d'utiliser les protocoles FTP, HTTP, Gopher, et HTTPS. Contrairement aux serveurs proxy classiques, un serveur Squid gère toutes les requêtes en un seul processus d'entrée/sortie, non bloquant.
Squid garde les meta-données et plus particulièrement les données les plus fréquemment accédées en mémoire. Il conserve aussi en mémoire les requêtes DNS, ainsi que les requêtes ayant échoué. Les requêtes DNS sont non bloquantes. (cf wikipedia) Autrement dit il permet d'être le seul poste qui accede à l'internet sur votre réseau local; il va faire les requetes à la place des postes clients et leur fournir les pages demandés, mais aussi les fichiers ... Il permet d'optimiser la bande passante, puisqu'il possède un cache.
Une page demandée la première fois est mise en cache, si bien que la même requète faite par un autre poste sera fournie directement par le proxy grace a son cache.
Passons directement à l'installation du proxy @@ sudo apt-get install squid @@
vous avez dejà votre proxy!!! Par défaut squid écoute par défaut sur le port 3128
Essayez déja de configurer votre navigateur favoris afin qu'il utilise votre serveur mandataire (on appelle aussi un proxy comme ca).
Essayez de charger une page internet et là c'est la cata, squid vous bloque l'accès. Pas de panique, squid par défaut bloque l'accès à tout le monde...
Il faut donc creer une ACL qui permet de donner accès au LAN.
Pour cela, comme très souvent, je ne me complique pas la vie, j'utilise webmin...
Pour ma part j'ai creer une nouvelle ACL nommé ACCEPTLAN de type client address qui correspond à l'adresse de mon réseau local... 192.168.1.0/24
et je l'ai placé au dessus de l'acl denyall (celle qui nous bloquait)
Refaite le test avec votre navigateur ho miracle ca marche....
#Gnu/Linux
Serveur de Messagerie d'entreprise: Postfix--- Fsecure ---- Exchange
Je me replonge encore une fois dans la messagerie... Ce billet me sert de mémoire pour l'installation d'un serveur de messagerie sécurisé regroupant le MTA Postfix en frontal ( idéalement dans la DMZ) l'interfacage avec l'antivirus Fsecure, et la livraison à un autre MTA dans le LAN de l'entreprise qui n'est autre que Exchange Server 2003.
Après cette longue période durant laquelle je n'ai rien posté, j'ai décidé de remettre à plat ce que j'avais un peu bossé en entreprise.
J'avais déja montré comment creer un serveur de messagerie sous linux dans mes derniers posts, mais pour des boites locales... C'est à dire que postfix après avoir passé les mails à la moulinette les délivrait directement dans les Maildir Locaux... /home/user/Maildir
Bien que cette solution serait exploitable en production, vous vous doutez bien que nos chers utilisateurs ne se contente pas d'un vulgaire Webmail ou d'un simple boite, ils leur Faut des fonctionnalités avancées que seuls des grosses usines à Gaz comme Notes d'IBM ou Exchange de Microsoft peuvent leur apporter...
Ce qu'il faut savoir c'est que de base, Exchange server est capable de faire MTA à part entière et se placer en frontal dans la DMZ, mais beaucoup d'entreprises et je partage cet avis, aiment en général ne présenter que des solutions robustes et libres en frontal... Donc du linux ;-)
Me voici en grande pompe en train d'essayer de faire marcher le bazar...
Suivez mon conseil, pour s'y retrouver, rien de tel qu'un Schéma....
Commencons par installer posfix
sudo apt-get install postfix
Paramétrons postfix
sudo vi /etc/postfix/main.cf
# Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = mail.appart.lan alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = serveur, serveur.appart.lan, appart.lan, info16.fr localhost, localhost.localdomain, localhost relay_domains = info16.fr, appart.priv, appart.lan relay_recipient_maps = hash:/etc/postfix/relay_recipients_maps transport_maps = hash:/etc/postfix/transport myorigin = /etc/mailname mynetworks = 127.0.0.0/8 192.168.1.0/24 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all @@
Je pars du principe que vous avez bien sur un nom de domaine, pour une entreprise c'est quasiment indispensable afin que les utilisateurs puissent recevoir leur mails sur user@entreprise.fr par exemple...
Je prend comme exemple l'entreprise info16.fr Ce qui change par rapport au premier tuto c'est que cette fois on veux que notre postfix n'accepte que les mails à destination de info16.fr Pour cela :
relay_domains = info16.fr
relay_recipient_maps = hash:/etc/postfix/relay_recipients_maps
/etc/postfix/relay_recipients_maps contenant:
user1@info16.fr motQueTuVeux
"postmap /etc/postfix/relay_recipients_maps
"
Cela va creer la base de données regroupant tous les utilisateurs de votre domaine... Vous vous doutez bien que vous n'allez pas entrer dans ce fichiers tous les utilisateurs à la main... En pratique il faut mettre en place une synchronisation en un annuaire LDAP (active directory ou notes) qui vient mettre à jour cette base de donnée plusieurs fois par jour par l'intermédiaire d'un job Cron par exemple... Ceci est une sécurité supplémentaire que vous n'etes pas obligé de mettre en place, mais qui est conseillée... sachant que de toute facon quand les mails arriverons sur le serveur exchange il seront là aussi vérifié afin de savoir si la boite existe belle et bien.
Après cela on veut que tous les mails reçus et acceptés par postfix soit redirigé sur le port 9025 de F-secure qui est notre antivirus...
Pour cela : dans le main.cf on doit avoir transport_maps = hash:/etc/postfix/transport
/etc/postfix/transport contenant: info16.fr smtp:192.168.1.100:9025
"postmap /etc/postfix/transport
" apres les modifs
La délivrance des mails sur un serveur distant est quasiment plus simple qu'en local, car ce n'est qu'un echange de paquet de port en port
à partir de là, tous les mails à destinations de info16.fr seront redirigé vers le port 9025 du serveur... Et qui écoute sur le port 9025: L'Antivirus F-Secure.
Bon ici, je vais vous présenter brièvement la page qui m'interesse sur F-Secure...
Après avoir installer F Secure et payer la licence... Vous pouvez le paramétrer avec une superbe page Web
On voit bien sur l'image la simplicité du paramétrage... On dit à F-Sécure... -Ecoute tous les transfert SMTP arrivant sur le port 9025 -Scan Les et renvoie le tout au serveur 192.168.1.1 sur son port 25 (autrement dit le port sur lequel ecoute Exchange) -Notifie l'admin si un mail est vérolé
On Récapitule, à partir de là
Les mails venant de l'internet, à destination de votre nom de domaine info16.fr, arrive sur le port 25 de postfix, ce dernier les renvoie sur le port 9025 de F-Secure, lequel scan les mails et les envoie sur le port 25 du Serveur de Messagerie Exchange...
On à fait une première partie du boulot... Nos mails sortent de Fsecure complétement scanné...
Maintenant Exchange... Je ne vais pas vous détailler complètement l'installation du serveur Exchange 2003, vous avez de très bon tutos sur le site de supinfo par exemple...
Je vais juste vous montrer deux copies d'ecran qui vous aiderons à paramétrer votre serveur afin qu'il recoivent bien les mails de votre domaine
De base, quand vous venez juste d'installer votre Serveur de messagerie exchange, il ne sait recevoir que les mails du domaine Active directory. Par exemple info.lan et non info.16 Pour que votre serveur accepte les mails de info16.fr il faut changer la stratégie SMTP des destinataires de messages...
A partir de maintenant, votre serveur acceptera les mails en provenance de votre domaine public
Après que les mails soient scannés par F-Secure ils seront envoyé au serveur exchange qui lui les dispatchera dans les boites aux lettres...
Rappelez vous, vous aviez déjà un un premier filtrage du nom utilisateur sous postfix avec le relay_recipient_maps, vous avez ici un deuxième controle, exchange ne l'acceptera que si la boite existe bien dans son annuaire...
A partir d'ici si vous donnez à votre serveur le droit d'envoyer directement les mails sur internet, il est capable de le faire... Mais comme je ne met jamais de machine Microsoft en frontal, je préfère que pour que pour l'envoie des mails provenant du LAN vers l'extérieur on repasse par postfix.
Pour cela encore une petite astuce dans exchange: il faut lui définir un connecteur SMTP : je l'ai nommé postfix
Notre serveur exchange enverra maintenant tous les mails vers postfix...
#Gnu/Linux
WPA sous Ubuntu/linux
Le WPA étant très bien géré en natif sous Windows 2000/XP/Vista, il l'est beaucoup moins sous Linux J'ai réussi à la paramétrer tout de même
Si vous utilisez une carte Wifi reconnue sous Linux en natif et qui n'est pas à base de chipset RT2500 comme la mienne, le plus simple est d'utiliser network manager... C'est un outil de gestion réseau totalement graphique.
si vous avez comme moi une carte à base de RT2500 cette méthode ne marchera pas.
J'ai donc après recherche intensive réussi a faire fonctionner le WPA TSK en éditant mon fichier /etc/network/interfaces de la manière suivante
@@auto ra0 iface ra0 inet dhcp pre-up iwconfig ra0 essid votre-ssid pre-up iwconfig ra0 mode managed pre-up iwpriv ra0 set Channel=votre-channel pre-up iwpriv ra0 set AuthMode=WPAPSK pre-up iwpriv ra0 set EncrypType=TKIP pre-up iwpriv ra0 set WPAPSK="votre_mot_de_passe" pre-up iwpriv ra0 set TxRate=0@@
#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
#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...