Pages

vendredi 6 juin 2014

Se faire un serveur PXE sur Debian

Tutorial installation d’un serveur PXE d’installation linux
Pour le tuto, je considère que mon serveur PXE sera en 192.168.1.253 et ce sera pour installer une debian. Déjà on installe une debian 6.0 ensuite ,  
1. installer serveur DHCP
On commence par installer les paquets nécessaires pour faire un serveur DHCP
apt-get install dhcp3-server
On va créer le fichier /etc/default/dhcp3-server et indiqué la carte réseau ou va fonctionné le DHCP :  INTERFACES= »eth0″ Ensuite nous allons éditez le fichier/etc/dhcp/dhcpd.conf  comme ci dessous:
authoritative; ddns-update-style interim;ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.120; 
option domain-name-servers 192.168.1.1;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;default-lease-time 43200;
max-lease-time 86400;
server-name « PXE »;
next-server 192.168.1.253;
filename « pxelinux.0″;
}
Fichier à adapté avec votre configuration réseau. La variable « next-server » est l’adresse ip de votre serveur PXE et oubliez pas « filename » c’est le fichier qui va faire «  booté » tout le bazar !  

2. installation serveur TFTP
On installe les paquets nécessaire :  
apt-get install tftpd-hpa
Il va nous demandé quelle sera le répertoire de travail de TFTP, on mettra/tftpboot en répertoire principale. On va édité le fichier /etc/default/tftpd-hpa :
TFTP_USERNAME= »tftp »
TFTP_DIRECTORY= »/tftpboot »
TFTP_ADDRESS= »192.168.1.253:69″
TFTP_OPTIONS= »–secure »
On crée le répertoire ou va bossé le serveur tftp  
mkdir /tftpboot chmod 777 /tftpboot

3. installé les images d’installation :
On va créer l’arborescence nécessaire au bon fonctionnement :
mkdir -pv /tftpboot/pxelinux.cfg
mkdir -pv /tftpboot/debian/squeeze/amd64
On va créer le fichier /tftpboot/pxelinux.cfg qui va nous donné le menu des commandes au boot :  
DISPLAY boot.txt 
DEFAULT squeeze_amd64_install

LABEL squeeze_amd64_install kernel debian/squeeze/amd64/linux append vga=normal initrd=debian/squeeze/amd64/initrd.gz – 
LABEL squeeze_amd64_linux
 kernel debian/squeeze/i386/linux append vga=normal initrd=debian/squeeze/amd64/initrd.gz –
LABEL squeeze_amd64_expert kernel debian/squeeze/amd64/linux append priority=low vga=normal initrd=debian/squeeze/amd64/initrd.gz – 
LABEL squeeze_amd64_rescue
 kernel debian/squeeze/amd64/linux append vga=normal initrd=debian/squeeze/amd64/initrd.gz rescue/enable=true – 
PROMPT 1
 
TIMEOUT 0
Et on va créer le boot.txt dans le même répertoire
- Boot Menu - 
=============

squeeze_amd64_installsqueeze_amd64_linuxsqueeze_amd64_expertsqueeze_amd64_rescue
Ensuite on va télécharger et placé les fichiers de boot dans l’arborescence, nous allons récupéré tout ces fichier directement sur internet :  
Voila tout est en place, on relance toute la mécanique !
service tftpd-hpa restart
service dhcp3-server restart
Et on essaie avec un pc avec une carte réseau capable de booté en PXE. Ce tuto est a adapté selon la version de linux a installé, on peut faire aussi un boot multi-installation en modifiant pxelinux,cfg/default et en ajoutant les images de boot nécessaire.

Oracle Java pour Debian Weezy


J’avais besoin d’installé Java sur ma Debian 7 Wheezy, car ce truc d’OpenJDKme sort par les yeux ! Je veux du proprio ! Voici la marche a suivre :
Bon alors déja, on va avoir besoin de « java-package » qui est dispo sur le dépot« contrib » (à activé dans /etc/apt/sources.list ) ou dans synaptic(Configuration>dépôts et coché le dépôt « logiciel libre avec dépendances non-libre ») et ensuite :
apt-get update
apt-get install java-package
Il faut ensuite allé cherché chercher le jre en tar.gz a cette adresse : http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html et la on est prêt !
make-jpkg jdk-7u2-linux-x64.tar.gz
On laisse bossé et quand il a généré le fichier .deb on l’installe
dpkg -i oracle-j2sdk1.7_1.7.0+update2_amd64.deb
Nous voulions avec Oracle-jre d’installé waii … Mais non car OpenJDK est toujours installé et prend le dessus (commande « java -version« ) pour vérifié.On va maintenant dire à Debian qu’il faut utilisé Oracle-jre et pas Openjdk avec « update-alternative » :
update-alternatives –display java
On voit les alternatives pour Java
update-alternatives –config java
On a la liste et on choisit la version de java qui sera utilisée par défaut (on va choisir j2re1.7-oracle). On refait un « java -version » pour confirmé qu’il a bien basculé sur Oracle-jre et c’est tout bon !

ia32-libs pour Debian Wheezy


L’installation des librairies 32 bits sous Debian est généralement simple mais la je suis tombé sur un petit OS (lol) . Petite manip à faire donc pour installé ia32-libs sous Debian 7 Wheezy.
Il faut activé l’architecture i386 dans dpkg sinon il dit que les dependances n’existe pas…
dpkg --add-architecture i386
- apt-get update
Et la miracle :
- apt-get install ia32-libs
Sa marche ^^ . Voila vous savez tout!

Crée un serveur vpn linux avec pptpd


Oui, je parle souvent de VPN car entre les liens de peering de merde de certains FAI, de la nécessité de surfer anonymement sur internet, de la sécurisation de communication entre 2 sites etc …
Se connecté a un VPN qui donne un accès a internet permet de surf avec l’IP de celui-ci et non pas la nôtre. Pratique si un site est disponible que pour certain pays ou certaines IPs.
J’ai supprimé l’ancien tuto car pas assez complet, celui-ci sera plus détaillé.
Le serveur PPTP !
Je vais détailler la mise en place d’un serveur VPN de type PPTP (Point to Point Tunneling Protocole) avec partage de connexion internet sur un système Linux Debian.
1. Installation du serveur VPN :
On va installé pptpd, un serveur VPN simple, pratique et efficace.
apt-get install pptpd
On va ensuite allé configuré en éditant le fichier /etc/pptpd.conf
vim /etc/pptpd.conf
On va s’intéressée a la fin du fichier, on va trouver les variables localip et remoteip. Voici un exemple de configuration :
localip 192.168.2.1                    <= Ip local du vpn (passerelle)
remoteip 192.168.2.10-15,192.168.2.20  <= Ips des clients (plage de 10 à 15)
On rentre ses paramètres et on enregistre. On va ensuite bidouillé le fichier /etc/ppp/pptpd-options, on va s’interessé ay cryptage. À vous de voir si vous voulez que votre VPN soit crypté ou non et la méthode d’authentification. On va décommenté ou non selon ses besoins :
# Encryption
# Debian: on systems with a kernel built with the package
# kernel-patch-mppe >= 2.4.2 and using ppp >= 2.4.2, … 

# {{{ 
refuse-pap 
refuse-chap 
refuse-mschap 
# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft 
# Challenge Handshake Authentication Protocol, Version 2] authentication. 
#require-mschap-v2 
# Require MPPE 128-bit encryption 
# (note that MPPE requires the use of MSCHAP-V2 during authentication) 
#require-mppe-128 
# }}}
Dans cette exemple, je refuse le pap,chap,mschap . Tout cela est bien sur optionnel, le serveur fonctionne avec les paramètres par défaut. On va s’intéressée ensuite a la variable ms-dns, celle-ci va fournir le serveur DNS auquel les clients vont faire leur requêtes dns.
ms-dns 8.8.8.8  <= Example avec le serveur dns de Google.
Si on a un serveur Wins, on peut remplir la variable ms-wins. Si vous ne savez pas, laissez par défaut. On va en avoir fini avec ce fichier. Pour finir, on va éditer le fichier /etc/ppp/chap-secrets , celui-ci contient les logins et les mots de passe pour se loggué au serveur VPN.
# Secrets for authentication using CHAP 
# client        server  secret                  IP addresses 
login1          pptpd   password1               * 
login2          pptpd   password2               *
Dans cette exemple, on a les logins dans la première colonne, le démon auquel il est lié dans la deuxième, le mot de passe dans la 3eme et dans la derniere ce sont les ip d’ou auquel ils peuvent se connecté. On enregistre et on ferme. On redémarre le serveur PPTP :
/etc/init.d/pptpd restart
Et notre serveur VPN est prêt !
2. Le Routage
Nous allons activer le routage sur Debian, par défaut celui-ci est désactivé. Pour cela nous allons allé dans le fichier /etc/sysctl.conf et on va s’intéressée a la variable net.ipv4.ip_forward et nous allons mettre la valeur à « 1″ :
net.ipv4.ip_forward=1
On enregistre et celui-ci prendra effet au prochain redémarrage de la machine ! Ça y est le routage est activé ! ( on peut taper aussi  » sysctl -p  » pour que cela prenne effet de suite)
3. Le NAT
Network Adressage Translation, Pour faire en sorte que toutes les IP derrière notre serveur VPN soit vue comme l’IP du serveur pendant le surf internet. Pour activer cette fonction, une simple règle dans Iptable ( le firewall de Linux) suffit. Pour cela, on tape :
iptables -t nat -A POSTROUTING -j SNAT –to-source [IP_WAN_DE_VOTRE_SERVEUR]
Et on enregistre la règle pour qu’elle reste au prochain redémarrage :
iptables-save
Et voila, on est prêt ! Pour être sur, on redémarre encore une fois le service PPTPD :
/etc/init.d/pptpd restart
Voila! Si vous aussi vous en avez marre des sauts d’humeur de votre FAI et que ce tuto vous a interessé, hésitez pas a le partagé!

Windows 7 ou 8 via PXE Synology


Aujourd’hui, nous allons mettre en place l’installation de Windows 7 ou 8 via un boot PXE sur un NAS Synology. Pour cela, nous allons avoir besoin d’activé le serveur PXE sur le NAS Synology, d’avoir un partage CIFS (Partage windows)avec le contenu du CD d’installation de Windows 7 ou 8 sur le NAS et d’une ISOWinPE personnalisée.
Étape 1 : le serveur PXE
Bon, je ne vais pas réinventé la roue, je vous invite à regarder le tuto que j’avais fait ici, et les fichiers du PXE sont la .
Étape 2 : un partage CIFS (Partage windows) avec l’installation de Windows 7 ou 8.
Sans rentrée dans les détails, il faut un partage Windows de préférence accessible aux invités c‘est plus simple. Sinon accessible avec un compte utilisateur, cela va juste rajouter des paramètres plus tard. Dans ce partage, on va y copier le contenue du cd d’installation de Windows 7 ou 8 (si vous avez une ISO, utilisez Daemon tools ou Winrar)
Étape 3 : création d’une mini ISO Windows Prebuild Environement
Alors dans un premier temps, on va installer le WAIK 2.0 de microsoft, que l’on peut trouvé ici
Et on va l’installer (vue que c’est une ISO, utilisez Daemon tools ou équivalent).
Ensuite, j’ai trouvé un petit script automatisé de génération de PE nomméQuickPE. Ce petit utilitaire est formidable car il fait tout à votre place !
EDIT: Selon l’image PE que vous voulez généré, il vous faudra MS AIK ou MS ADK
MS ADK pour WinPE 4 : http://www.microsoft.com/fr-fr/download/details.aspx?id=30652

Nous allons créer un répertoire  nous allons décompressé le contenu de l’archive. Les fichiers qui vont nous intéresser sont :
_RUN_ME..cmd                                      <= pour lancé tout le bouzin !
pe_files\windows\system32\winpeshl.ini  <= le fichier qui va lancé les appli au démarrage du PE
pe_extra\                                             <= tout ce qui est la sera rajouté dans le PE (appsetc…)
Dans le répertoire pe_extra\ on va crée un petit fichier install.bat contenant ceci :
net use Z: \\IP_DU_NAS_SYNOLOGY\partage_installation_windows
Example :
net use Z: \\192.168.1.2\Windows7
Cette commande va lancer le montage d’un lecteur réseau sur le partage des fichiers d’installation de Windows (crée étape 2), si ce répertoire nécessite unlogin et un mot de passe :
net use Z: \\IP_DU_NAS_SYNOLOGY\partage_installation_windows MOTDEPASSE/user:VOTRE_LOGIN
example :
net use Z: \\192.168.1.2\Windows7 password /user:sebastien
Et nous allons rajouter la ligne :
Z:\setup.exe
Qui aura pour effet de lancé l’installation via le disque réseau.
Contenu du fichier au complet :
net use Z: \\192.168.1.2\Windows7 password /user:sebastien
Z:\setup.exe

Voila, ensuite on va attaquer le fichier pe_files\windows\system32\winpeshl.ini .Par defaut le PE lance une petite appli pour avoir une console, un explorateur etc, nous on va désactiver ceci et lancé notre petit script install.bat a la place.Pour ceci, nous allons commenter la ligne :
%SYSTEMDRIVE%\windows\tinyshell.exe
En mettant un point-virgule devant comme ceci
;%SYSTEMDRIVE%\windows\tinyshell.exe
Et nous allons rajouter une ligne :
%SYSTEMDRIVE%\extra\install.bat
Du coup c’est notre fichier install.bat qui sera lancé au démarrage du PE.
Nous allons enfin générer notre ISO Windows PE, pour cela nous allons lancé le fichier
_RUN_ME..cmd

Au menu nous allons prendre l’option 2 (Make WinPE 4.0)
L’image ISO winpe4.iso va se générer automatiquement dans le répertoire X86\ . Cette ISO on va la placé dans le répertoire images\ du serveur PXE (voire étape 1, tuto serveur PXE sur synology)
Étape 4 : Configuration du serveur PXE
Sur le serveur PXE, nous allons éditer le fichier pxelinux.cfg\default avec un éditeur de texte et rajouté les lignes suivantes :
LABEL Installation win 7
  LINUX memdisk
  INITRD images/winpe4.iso
  APPEND iso raw
En traduction :
LABEL : titre au menu du PXE
LINUX memdisk : démarrage de l’application qui va faire booté l’ISO winpe
INITRD : emplacement de l’iso
APPEND : on précise que c’est une iso en données brutes.
On enregistre et c’est tout bon !
Étape 5 : on teste !
L’image ISO met un peu de temps a se lancé, le protocole tftp est pas rapide.Normalement vous devriez avoir un écran comme ceci :
Puis comme ça :

Si cela n’a pas fonctionné, quelques points a vérifié :
- Emplacement des fichiers d’installation de Windows sur le réseau.
- Est-ce que WinPE à les drivers de votre carte réseau ? (oui, je me suis fait avoir!)