Catégories
Le réseau

Serveur Internet sous Debian (Apache 1.3.x)

Cet article a pour objectif de vous aider à mettre en place un serveur internet complété par une base de données MySQL et un interpréteur PHP le plus rapidement possible sans avoir besoin de trop de préparation. Ce installation concerne les logiciels Apache 1.3.x, PHP 4.3.10 et MySQL 4.0.24.

1 – Installer Debian en mode console

1.2 – Quelle version

Si vous désirez mettre votre serveur web en production et que, par conséquent, vous voulez qu’il soit sécurisé au maximum, je vous conseille d’utiliser une Debian Stable (actuellement nommée Sarge). Dans le cas où vous désirez juste faire quelques tests sur un réseau local où vous n’êtes pas préoccupé par la sécurité, vous pouvez vous pencher sur une Debian Testing (actuellement nommé Etch).

1.2 – Plus d’informations sur l’installation

Vous pouvez utiliser l’installateur réseau de la Sarge disponible ici. Bien que je ne veuille pas m’étendre sur l’installation d’une Debian (cela fera l’objet d’un autre article) merci de prendre en considération ces quelques points:

  • N’installer ni gestionnaire de fenêtre ni interface graphique
  • En début d’installation choisissez de préférence un système de fichiers journalisé.
  • En fin d’installation n’exécuter ni tasktel ni dselect.
  • L’applicatif MC (Midnight Commander) peut vous simplifier la vie.

2 – Installer le serveur web Apache 1.3.33-6

2.1 – Récupérer les paquets et les installer

Comme d’habitude sous debian, rien de bien sorcier: il suffit de taper ceci: apt-get install apache à l’invite de commande.

2.2 – Comment le configurer

Toute la configuration d’Apache est localisée centralisée dans un seul fichier: /etc/apache/httpd.conf. Comme dans beaucoup de fichiers de configuration sous GNU/Linux, les commentaires sont précédés du symbole « # »

Exemple de fichier /etc/apache/httpd.conf :

# CONFIGURATION DE BASE 
#---------------------- 
ServerType standalone 
ServerRoot /etc/apache 
LockFile /var/lock/apache.lock 
PidFile /var/run/apache.pid
# PidFile: fichier conservant le numéro de processus d'apache
ScoreBoardFile /var/run/apache.scoreboard 
ResourceConfig /dev/null 
AccessConfig /dev/null 
#Les deux lignes précédentes limite l'accès à la configuration d'Apache 
# OPTIONS DE PERFORMANCE 
#----------------------- 
# Toutes ces options gèrent les accès au serveur Web 
Timeout 300 
KeepAlive On 
MaxKeepAliveRequests 100 
KeepAliveTimeout 15 
MinSpareServers 5 
MaxSpareServers 10 
StartServers 5 
MaxClients 150 
MaxRequestsPerChild 100 
# CHARGEMENT DES MODULES 
#----------------------- 
# Charge les modules d'apache 
LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so 
# config_log_module: module de gestion des journaux (logs) 
LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so 
# mime_module: détermination du type de document selon les extensions du fichier 
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
# dir_module: gestion du répertoire racine 
LoadModule access_module /usr/lib/apache/1.3/mod_access.so 
# access_module: prise en charge des droits d'accès 
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so 
# PARAMETRES GENERAUX 
#-------------------- 
# Paramètres du serveur à proprement parler 
Port 80 
User www-data 
Group www-data 
# Utilisateur et groupe utilisés par Apache pour accèder aux services du serveur 
ServerAdmin webmaster@MonServeur.com 
# ServerAdmin: coordonnées du responsable du serveur 
UseCanonicalName Off 
ServerSignature Off 
HostnameLookups Off 
ServerTokens Prod 
ServerName MonServeur 
# ServerName: nom du serveur 
DocumentRoot /var/www 
# Racine des sites internet 
# CONTROLES D'ACCES 
#------------------ 
# Droits d'accès à la racine du serveur via internet 

     Options None
     AllowOverride None
     Order deny,allow
     Deny from all 
 
# Droits d'accès au répertoire internet 

     Order allow,deny
     Allow from all
     Options FollowSymlinks
  
# OPTIONS DES MODULES 
#-------------------- 

     # Définition des types de fichier index
     DirectoryIndex index.html index.htm 
 

     # Association des types de fichier
     TypesConfig /etc/apache/conf/mime.types
     # Fichier annexe spécifiant les types de fichiers
     DefaultType text/plain
     AddEncoding x-compress Z
     AddEncoding x-gzip gz tgz
     AddType application/x-tar .tgz 
 
# JOURNAUX 
#--------- 
# Formatage de fichiers de log 
LogLevel warn 
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" 
combined LogFormat "%h %l %u %t \"%r\" %>s %b" 
common LogFormat "%{Referer}i -> %U" 
referer LogFormat "%{User-agent}i" agent 
ErrorLog /etc/apache/logs/error_log 
CustomLog /etc/apache/logs/access_log combined

Un fois ces modification effectuées, redémarrez Apache afin d’une part qu’elles soient prises en compte et, d’autre part, être sûr que le fichier fonctionne.

  • Les fichier de logs doivent pré-exister quitte à créer le repertoire correspondant avec mkdir et le fichier avec touch
  • Ce fichier est disponible ici

3 – Installer l’interpréteur PHP 4.3.10

3.1 – Récupérer les paquets et l’installer

Installez PHP4 avec apt-get install php4 (Pour PHP5 ce n’est possible qu’en ajoutant le dépôts de dotdeb à apt).

3.2 – Comment connecter PHP à Apache

Pour « connecter » PHP à Apache vous devez modifier le fichier de configuration d’Apache (voir ci-dessus) tel qu’apparaisse en plus les lignes suivantes:

  1. Dans le chargement des modules, pour charger automatiquement le module PHP4 avec Apache, rajoutez la ligne suivante: LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
  2. Et, dans les options des modules: AddType application/x-httpd-php .php .php3 DirectoryIndex index.php index.php3

3.3 – Configurer PHP4

Le fichier de configuration se localise ici: /etc/php5/apache/php.ini La configuration de base devrait suffire pour une utilisation classique. Dans le cas contraire je vous invite à consulter la documentation du site officiel

4 – Installer le gestionnaire de base de données MySQL 4.0.24

4.1 -Récupérer les paquets et les installer

Similairement à PHP… apt-get install mysql-server mysql-common mysql-client

4.2 – Comment le configurer en console

Pour lancer la commande d’administration de mysql il suffit de taper mysql -p à l’invite de commande (quit permet d’en sortir). C’est ici que vous pouvez créer vos tables, les effacer etc. Personnellement je préfére utiliser l’interface web de PHPMyAdmin. Cependant, par mesure sécurité, il est impératif, et ce dès l’installation de MySQL de changer le mot de passe root (administrateur) de MySQL avec la commande mysqladmin -u root password 'MonNouveauMotDePasse'

4.3 – Connecter MySQL à Apache et PHP

Il n’est pas nécessaire de connecter MySQL à Apache puisque celui-ci est incapable d’y accéder directement. Par contre, PHP doit être capable de se connecter au serveur MySQL pour ce faire il faut installer un package spécifique: apt-get install php5-mysql

5 – Conclusion

Votre serveur web est prêt à accueillir vos site. Il suffira juste de la placer au bon endroit (/var/www/) et d’y accéder par un navigateur internet en tapant l’adresse ou le nom du serveur.

Catégories
Les trucs du geek

Le click 'n' go avec EasyPHP

Cet article décrit comment réaliser simplement un serveur web de type Apache/PHP/MySQL sous Windows dans le but de développer des applications web. Attention, il ne s’agit pas ici de mettre en production un « gros » serveur Internet.

Catégories
Le réseau

m0n0wal, un firewall et bien plus encore

m0n0wall est un projet libre de firewall, initié et maintenu par Manuel Kasper et soutenue par une communauté d’utilisateurs et de contributeurs actifs. Basé sur freebsd, m0n0wall tient dans environs 5Mo.

1 – Présentation

a

1.1 – Aperçu

Des images disques prêtes à l’emploi sont disponible pour :

  • CD-ROM (iso à graver, fichier de configuration sauvegradé sur disquette)
  • x86 generic (à installer avec disque dur sur un support ide (disque dur, carte mémoire…)
  • x86 « embarqué » (Boitier type Soekris par exemple, ils sont disponibles ici

m0n0wall dispose d’une interface de gestion de type web sobre et efficace .Certains patch permettent de rajouter un service SSH, mais, plus judicieusement, on peut utiliser des scripts (shell ou perl) pour lancer des commandes à distance à laide de l’interface exec.php ou exec_raw.php. Autre originalité, m0n0wall utilise un fichier configuration xml qui est ensuite parsé par un interpréteur php puis divisé en différents fichiers de configuration (au standard unix).

1.2 – Fonctionnalité

Philosophie : small is beautifull

m0n0wall est un firewall, qui est typiquement utilisé comme passerelle gérant les accès entre réseau local et Internet. Conçu pour le pc embarqué type soekris utilisant une mémoire compact flash à la place d’un dique dur, il n’utilise donc pas de swap. De ce fait il nécessite un minimue de 64Mo de RAM pour fonctionner correctement.
m0n0wall n’est qu’un firewall et il le fait bien (remontée de syslog, agent SNMP, proxy ARP) . Il en fait même plus en permettant de services de concentrateur ou de portail captif. Certains considérerons que mettre un serveur http sur un firewall est une grave faille de sécurité, d’autres qu’il manque des fonctionnalités « avancées » (proxy-cache squid, ids, etc.) que l’on retrouve par exemple chez IPCop
C’est un problème de contexte, d’utilisation et de point de vue personnelle, m0n0wall à choix la robustesse et le dépouillement, la voie unix en quelque sorte.

2 – Installation et Configuration de sa m0n0box

Note: si plusieurs cartes réseau d’un même modèle co-existe dans votre m0n0box, pensez à relever leur adresse mac.

Après son installation proprement dite (gravure d’une iso ou copie avec dd) il convient de paramètrer une première fois sa m0n0box afin d’accéder à l’interface web:

  • Commencez par vous connecter en mode console (écran + clavier ou émulateur de terminal si vous avez la chance de posséder une soekris)
  • Choisissez l’option 2, entrez l’IP du LAN, le masque réseau (24 pour 255.255.255.0)
  • Sur le menu principal: dans le menu « options », assignez les cartes réseaux à leur interface respectives (wan, lan, opt1…).
  • La m0n0box redémarre.
  • Pointez votre navigateur web sur son ip lan, vous pouvez maintenant cliquez frénétiquement avec votre mulot.

Astuce : vous avez oublié le mot de passe de l’interface web, vous pouvez le changer en utilisant l’interface console, donc penser à sécuriser l’accès physique à votre m0n0box (local technique avec clef…)

3 – Liens et informations

Penser à consulter le site officiel de monowal ainsi que celui des projets m0n0

Catégories
Documents techniques

G4U, un "ghost" gratuit

On m’a, à plusieurs reprises, demandé comment je préparais mes répartition d’images de disque. Pour réaliser ces opération particuliérement pratique dans un grand parc de machine, j’utilise le logiciel Ghost for Unix…