banneer2

Réducteur d'URL tinad:

Collez l'adresse du site:

Rechercher sur le blog du grouik:

Ça fait longtemps que j'ai mis ça en place au travail, rien de bien neuf.

Commençons par lister les intérêts d'installer une passerelle sur un serveur, et non simplement d'utiliser une box ou un rooter avancé:

  • Certains éléments pourront être greffés sur cette passerelle. L'idéal pour un serveur smtp, c'est d'être sur la passerelle, il filtrera comme ça le port 25. Pareil pour un petit serveur web, c'est sa place idéale[1]
  • Installer un proxy
  • Faciliter la supervision des flux. Vous monitorez vos modems et rooters vous? un serveur linux, c'est plus simple
  • Pouvoir aller plus loin dans les règles de filtrage.
  • Un accès SSH sur la passerelle avec clé et pas mot de passe, vous donne une porte entièrement sécurisée sur votre LAN de l'extérieur.
  • Pour le coté geek, et le plaisir du Do It Yourself

Pour la rédaction de ce billet, le réseau est virtuel, dans des virtualbox. L'installation du serveur avec deux cartes réseau est expliquée dans le billet précédent.

Voici un schéma de principe: lan-avec-passerelle.jpg

Le modem est en mode router, il a une IP locale: 192.168.0.254

Le serveur passerelle a deux cartes réseau:

  • eth0, qui est reliée au modem a l'adresse IP 192.168.0.1
  • eth1 qui est relié au LAN a l'adresse IP 192.168.1.1

Les équipements du LAN on des IP qui commencent par 192.168.0.

Configurer les adresses ip de la passerelle:

Editer /etc/network/interfaces comme ceci:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

#les interfaces démarrées lors du boot du systeme
auto lo eth0 eth1

# The loopback network interface
iface lo inet loopback

#carte dans le LAN
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254

#carte vers le modem
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

Pour appliquer les changements:

  1. /etc/init.d/networking restart

Dans les réseaux de classe C, les équipements n'écoutent que les communications provenant d'une IP de la même tranche. Ces différentes tranches d'IP constituent des VLANS. Notre passerelle a deux pattes, une dans chaque VLAN, celui constitué par la box et elle même, et celui qui contient les ordinateurs. C'est elle qui permettra de faire le lien, encore faut-il lui dire de le faire.

Passerelle

Un premier script Iptables pour en faire une passerelle (passoire).

IPtables, en plus de savoir filtrer en entrée ou en sortie des paquets, a aussi des fonctions NAT.

Voici le script de base:

  1. #!/bin/bash
  2.  
  3. # Vider les tables actuelles
  4. iptables -t filter -F
  5. iptables -t filter -X
  6. iptables -t nat -F
  7. iptables -t nat -X
  8. echo - Vidage : [OK]
  9.  
  10. #activer le forwarding
  11. echo 1 > /proc/sys/net/ipv4/ip_forward
  12. #lui demander de transmettre via eth0
  13. iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
  14. echo - Autoriser le forwarding : [OK]

Enregistrez le dans le fichier /etc/init.d/firewall,

Le rendre exécutable et le lancer.

  1. chmod +x /etc/init.d/firewall
  2. /etc/init.d/firewall

Sur mon petit réseau de virtualbox, en fond la passerelle et au premier plan une xubuntu ayant le réseau configuré ainsi:

  • Adresse: 192.168.1.3
  • Masque 255.255.255.0
  • Passerelle 192.168.1.1 (La passerelle en question)
  • DNS: 8.8.8.8

Capture-30.jpg

ça marche!

Tout passe, on a créé une passerelle, passoire.

Un peu plus de sécurité, améliorons le script.

L'objectif est de pouvoir considérer que le LAN sera une zone démilitarisée, pouvoir donc y abaisser tous les pare-feu. La passerelle devient un seul gros pare feu pour tout le LAN. Lorsqu'on a régulièrement à déployer des nouvelles applications réseau, le gain de temps ainsi est énorme.

Je ne vais cependant pas faire un vrai explicatif des IPtables, ce serait super long, et il existe plein de documentation sur cette technologie (pas toute jeune).

Je ne ferai pas mieux que cet exemple facilement adaptable de script

Changez votre fichier firewall par celui proposé dans le lien.

Ajoutez juste:

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

et les variables en début de script, je les ai défini ainsi:

  1. # Interface qui est sur Internet (WAN)
  2. WAN_IFACE="eth0"
  3.  
  4. # Interface Wireless
  5. WLAN_IFACE="wlan0"
  6.  
  7. # Interface qui est dans votre réseau local (LAN)
  8. LAN_IFACE="eth1"
  9.  
  10. # Adresse de votre passerelle (Firewall)
  11. LAN_IP="192.168.0.1"
  12.  
  13. LAN_NET="192.168.1.0/24" #(Sous-réseau avec le masque 255.255.255.0)
  14.  
  15. LAN_BCAST="192.168.1.255" # (Adresse de broadcast.)

Voici tel que j'ai mis ce script à cette étape: firewall.txt

Notre passerelle fait à présent firewall. Pour concurrencer une box, on va ajouter un cache DNS et un serveur DHCP:

Le serveur de cache DNS

Installer bind9

  1. apt-get install bind9

Configuration en cache

Editez le fichier /etc/bind/named.conf.options et décommentez les lignes suivantes, en prenant soin d'y mettre des serveurs DNS (ceux de votre FAI, ou de google par exemple):

forwarders {
        8.8.8.8;
        8.8.4.4;
};

Et tant qu'à avoir un serveur de cache, autant en faire profiter le serveur lui meme; Editez le fichier /etc/resolv.conf et mettez y juste la ligne suivante:

nameserver 127.0.0.1

Le serveur DHCP

  1. apt-get install dhcp3-server

Afin de choisir l'interface sur laquelle il devra écouter, editer le fichier de configuration /etc/default/isc-dhcp-server Et preciser l'interface sur laquelle il doit fonctionner. eth1 dans on cas:

INTERFACES="eth1"

Editer le fichier de configuration /etc/dhcp/dhcpd.conf et pour ça l'exemple de ubuntu est tres bien.

Ce qui donne dans mon cas:

##### Option generale par defaut #####
### ReSEAU ###
## Nom du serveur DHCP
server-name "debian.lan";

## Mode autoritaire (autoritaire)
authoritative;

## Masque de sous-réseau

### DOMAINE ###
## Nom du domaine
option domain-name "lan";

## Adresse IP du serveur DNS
# a remplacer par l ip de votre serveur dns ou par celle de votre fai
option domain-name-servers 192.168.1.1;

## Type de mise à jour du DNS (aucune)
ddns-update-style none;


### TEMPS DE RENOUVELEMENT DES ADRESSES ###

## par défaut en s (1 h)
default-lease-time 3600;

## maximum (2 h)
max-lease-time 7200;

### Sécurité ###
## refus(deny)/autorise(allow) les clients inconnus (refuse client inconnu)
allow unknown-clients;

## Use this to send dhcp log messages to a different log file (you also
## have to hack syslog.conf to complete the redirection).
log-facility local7;

### PXE ###
## Permet le boot réseau pour TFTP 
allow bootp;
allow booting;


##### RéSEAUX #####
# # déclaration sous réseau 192.168.1.1.*
subnet 192.168.1.1 netmask 255.255.255.0 {
	authoritative;
	# Adresse de diffusion 
	option broadcast-address 192.168.1.255;
	# # routeur par défaut
	option routers 192.168.1.1;
	# La plage ne contient qu'1 adresse ce qui empèche l'attribution sauf au client dont celle-ci est fixée.
	range 192.168.1.111 192.168.1.140;
	# Le fichier peut être spécifié dans la section  host , il deviendra alors prioritaire sur celui-ci 
	filename "pxelinux.0";
	# exemple de fixage d'une adresse: 68pc
	host 68pc {
		hardware ethernet 00:1E:58:A6:FD:C4;
		fixed-address 192.168.1.122;
		}
	}
  1. /etc/init.d/isc-dhcp-server restart

:Conclusion:

Voila, on a les fonctions principales d'une box. Reste à faire mumuse, y ajouter un proxy, un serveur de mail, un ftp public toussa ;)

Notes

[1] Enfin je trouve quand même dangereux de mettre un serveur web et un serveur e-mail sur la même machine car au moindre script PHP ayant une faille, les conséquences peuvent être dramatiques.

Commentaires

1. Le jeudi, septembre 15 2011, 22:43 par m4as
gravatar

Ca tombe bien, j'ai une "vieille" bécane qui me servait de PC de salon, mais manque de patate CPU pour en faire une bonne station multimedia, je crois que je vais la recycler dans les prochains jours!

Et merci pour tou(e)s les tutos / infos présent(e)s sur ton blog! :)

2. Le jeudi, septembre 15 2011, 22:56 par gnieark
gravatar

De rien m4as, ça me fait toujours super plaisir d'avoir ce genre de retour sur mon blog!

Ajouter un commentaire

Nom ou pseudo:
Adresse email:
Site web (facultatif):
Commentaire:

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://blog-du-grouik.tinad.fr/trackback/819

Fil des commentaires de ce billet

Dans la même catégorie:
Serveurs http web et autres


Test de Mumble et tuto d'installation du serveur Murmur

myvoice.jpg
Après teamspeak, voici le test de mumble, dans le domaine des systèmes de conférences VOIP. L'avantage de mumble c'est qu'il est libre et se trouve dans les dépôts de la plupart des distributions (donc facile à installer)! Je vais rapidement présenter en quelques impressions d'écran l'interface de

Lire la suite...



test de Teamspeak

myvoice.jpg
Je cherche des alternatives à skype pour l'enregistrement des podcasts parceque: Le logiciel "Pamela" qui nous servait à l'enregistrement... était en période d'essai. Le son est tres déformé par skype [1]. Skype est très bien pour du téléphone et de la visio mais est trop limité. Ce

Lire la suite...


Traduction des messages d'erreur d'une messagerie postfix

retour-a-l-envoyeur.jpg
Lors de l'erreur sur l'adresse d'un destinataire par exemple, le serveur postfix retourne un e-mail en anglais qui fait qu'en général, ça se termine par: _ Allo Gnieark! Je n'arrive pas à envoyer un message, et je ne comprends rien aux trucs bizarres que j'ai reçu. Pour remédier définitivement à ça,

Lire la suite...


Piwik test

piwik-home.jpeg
Piwik http://piwik.org/ est un outil de statistiques de visites pour les sites web. Il fonctionne comme google Analitycs, c'est à dire un morceau de code javascript sur chaque page. Vos utilisateurs feront du coup une requête vers le site piwik que vous avez précédemment installé. @madm4as m'a

Lire la suite...


Deux tips pour héberger un Wordpress sur un mutualisé Online

wordpress-logo.jpg
Après avoir créé ses identifiants ftp et sa base mysql sur l'interface de Online, Il y a deux petits trucs à savoir si vous souhaitez héberger un wordpress. Changer la version de php par défaut. Votre serveur utilise la version 4.4.9-1.standard de PHP mais Wordpress 3.2 nécéssite au moins la version

Lire la suite...


Propulsé par Dotclear