Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Howto [dns, dhcp, serveur web, mta]
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Mon Sep 19, 2005 8:06 pm    Post subject: Howto [dns, dhcp, serveur web, mta] Reply with quote

J'ai passé pas mal de temps à configurer mon réseau que se soit pour chercher de la documentation ou la configuration. Je met donc ici tous ce que j'ai fais. J'ai essayé d'être a peu pres clair.
Alors soit bonne lecture soit bonne sieste :)
Si des erreurs se sont glissées n'hésitez pas à me prevenir. :lol:
Une partie de la Documentation est tirée en parti
de Formation Debian GNU/Linux
de https://vogelweith.homeftp.net/debian_server/mails.php
de la documentation gentoo
et de mes expériences ;-)

Configuration reseau coté serveur

1. Serveur DHCP
2. Serveur DNS (bind)
3. Serveur de mails (postfix)
4. Serveur de mailing-listes (ecartis)
5. Serveur Web (Apache / Php / mysql)
6. FTP (proftpd)
7. Mirroir GENTOO
8. Antispam (Spamassassin)
9. Antivirus (clamav)
10. Firewall et partage de connexion Internet (iptables)
11. Messagerie instantanée (Jabber)

1. Serveur DHCP

1.1 Installer le serveur DHCP
Plusieurs serveur DHCP sont disponibles, j'ai installé le serveur DHCP de l'Internet Software Consortium :
# emerge dhcp
Il faut modifier le fichier /etc/dhcp/dhcpd.conf afin de lister les interfaces réseaux

1.2 Configurer le serveur DHCP
La configuration du serveur DHCP se fait dans le fichier /etc/dhcp/dhcpd.conf
Exemple de configuration:

Code:
# /etc/dhcp/dhcpd.conf
# Consultez "man dhcpd.conf" pour avoir toutes les informations sur les options
# DEBUT des options GLOBALES
# Les options globales s'appliqueront par défaut à tous les sous-réseaux
# Nom de domaine
option domain-name "exemple.org";
# Adresses des serveurs DNS (séparées par une virgule)
option domain-name-servers 192.168.0.4, 192.168.0.5;
# Durée du bail en secondes
default-lease-time 6000;
max-lease-time 6000;
# Le serveur DHCP est autoritaire pour les sous-réseaux déclarés ci-dessous
authoritative;
# FIN des options GLOBALES
# DEBUT de la déclaration des sous-réseaux et des machines
# Déclaration du sous-réseau 192.168.0.0/255.255.255.0
subnet 192.168.0.0 netmask 255.255.255.0
{
  # Plage d'adresses à attribuer pour les machines non déclarées
  range 192.168.0.100 192.168.0.200;
  # Adresse du routeur
  option routers 192.168.0.1;
}
# Déclaration de la machine "ordi1"
# La déclaration d'une machine permet de lui attribuer une adresse IP fixe
host ordi1
{
  # Adresse MAC de la machine
  hardware ethernet 00:d0:59:c9:22:06;
  # Adresse IP à attribuer
  fixed-address 192.168.0.12;
}
# FIN de la déclaration des sous-réseaux et des machines

Lancement au démarrage du serveur dhcp :
# rc-update add dhcp default

2. Configurer le serveur DNS
2.1. Installation et fichiers de configuration
# emerge bind
# emerge bind-tools
Les fichiers de configuration de Bind se trouvent dans le répertoire /etc/bind/. On trouve aussi le fichier /var/bind/root.cache, qui contient les adresses IP des serveurs DNS racines (i.e. les serveurs centraux du système DNS), et le fichier named.conf qui est le fichier de configuration principal de Bind.
Le répertoire /var/bind/ est destiné à accueillir les fichiers de zone pour ceux qui veulent configurer un serveur DNS primaire ou secondaire.
Dans /etc/conf.d/domainname indiquer votre domaine.
Dans /etc/conf.d/hosts indiquer le nom de la machine
127.0.0.1 tuxgentoo frogdev.dyndns.org

2.2. Configurer un serveur indépendant
Par défaut, Bind est configuré en tant que serveur DNS "indépendant", qui n'est primaire ou secondaire pour aucun domaine. Quel est l'intérêt d'un tel serveur ? Faire office de cache DNS. En effet, le serveur DNS va retenir dans son cache les correspondances IP-DNS demandées par les clients, et ne sera pas obligé d'aller chercher chaque fois auprès des autres serveurs DNS la réponse aux requêtes.

Par exemple, si vous trouvez que le serveur DNS de votre fournisseur d'accès est trop long à répondre, vous aurez intérêt à installer un serveur DNS sur votre ordinateur et configurer votre système pour qu'il interroge en priorité le serveur local. Pour optimizer les temps de requêtes, configurez votre serveur DNS pour qu'il demande les enregistrements qu'il n'a pas dans son cache aux serveurs DNS de votre fournisseur d'accès au lieu d'aller les demander lui-même auprès des autres serveurs DNS.

Pour cela, éditez le fichier named.conf et décommentez les lignes de la sous-section forwarders de la section options en y inscrivant les adresses IPs des serveurs DNS de votre fournisseur d'accès. Le début du fichier named.conf ressemble alors à cela :
Code:

options {
        directory "/var/bind";
        forwarders {
                80.10.246.230;
                80.10.246.129;
         };
        auth-nxdomain no;
};


où 80.10.246.230 et 80.10.246.129 sont les adresses IPs des serveurs DNS de votre fournisseur d'accès.
Modifiez le fichier /etc/resolv.conf et mettez votre serveur en première position dans la liste des serveurs DNS:

Code:

nameserver 192.168.0.3
nameserver 80.10.246.230
nameserver 80.10.246.129


2.3. Configurer un serveur DNS primaire pour une zone
Vous avez acheté un nom de domaine et vous souhaitez héberger votre DNS primaire ? Il vous faut configurer votre Bind comme autoritaire (ou master) pour votre domaine et donner à l'organisme auquel vous avez acheté votre domaine l'adresse IP de votre serveur.
Modification de named.conf
Ajoutez à la fin du fichier named.conf les lignes suivantes :

Code:

zone "mondomaine.org" {
        type master;
        file "mondomaine.org.zone";
};

où :
mondomaine.org est le nom de domaine pour lequel votre serveur sera primaire,
mondomaine.org.zone désigne le fichier /var/bind/mondomaine.org.zone où seront stockés les enregistrements de la zone.

Exemple du fichier zone fichier de zone
Code:

; /var/cache/bind/mondomaine.org.zone
; Fichier de zone "type" pour le domaine "mondomaine.org"
; Utiliser la commande
; "named-checkzone mondomaine.org /var/bind/mondomaine.org.zone"
; pour vérifier la validité du fichier de zone.
; Utiliser la commande "named-checkconf" pour vérifier la validité du fichier
; de configuration /etc/bind/named.conf
; ATTENTION : ne pas oublier de mettre à jour le "serial" à chaque
; modification des enresgitrements de ce fichier.
; ATTENTION : dans les fichiers de zone, les noms DNS complets doivent se
; terminer par des points (par exemple "master.mondomaine.org.")
; Tous les noms DNS qui ne sont pas complets (i.e. qui ne se terminent
; pas par un point) se terminent implicitement par "mondomaine.org."
; TTL (Time To Live) par défaut.
; Le TTL permet de dire aux serveurs DNS tiers qu'ils ne devront pas
; garder les enregistrements de notre zone en cache au dela de cette
; durée. On met une journée (86400 secondes).
$TTL 86400
; ENREGISTREMENT "SOA" (Start Of a zone of Authority).
; Cet enregistrement donne le nom du serveur DNS primaire et l'adresse mail
; à laquelle on peut joindre l'administrateur du domaine.
; Par exemple, le serveur DNS primaire s'appellera "master" et
; l'adresse mail de l'administrateur sera <root@master.mondomaine.org>
@   IN   SOA   master.mondomaine.org.   root.dns.mondomaine.org. (
; Serial (ou "Numéro de série") de la zone.
; Il permet aux serveurs secondaires de savoir s'ils ont besoin
; de se mettre à jour en faisant un transfert de zone avec le serveur
; primaire ou non en comparant leurs "serial" pour cette zone.
; Par convention, il est constitué de la date du jour au format AAAAMMJJ
; suivi du nombre de modifications déjà effectuées sur le fichier de zone
; dans la journée + 1.
; Par exemple, nous sommes le 13 septembre 2005, et c'est la deuxième fois
; que je modifie le fichier de zone aujourd'hui :
   2005090132
; Refresh.
; Intervalle de temps en secondes pendant lequel les serveurs DNS
; secondaires attendent avant de vérifier (et éventuellement de
; mettre à jour) l'enregistrement SOA du serveur DNS primaire.
; On met un 1 journée (86400 secondes).
   86400
; Retry.
; Intervalle de temps en secondes durant lequel les serveurs DNS
; secondaires attendent avant de réessayer une requête vers le serveur DNS
; primaire si ce dernier n'est pas accessible.
; On met 5 minutes (300 secondes).
   300
; Expire.
; Intervalle de temps en secondes durant lequel les serveurs DNS
; secondaires attendent avant de rejeter les informations de zones s'ils
; n'ont pas pu contacter le serveur DNS primaire.
; On met 1 mois (2592000 secondes).
      2592000
; TTL (Time To Live) minimum.
; Durée minimum du TTL d'un enregistrement DNS de la zone.
; On met 1 journée (86400 secondes).
   86400
)
; ENREGISTREMENTS "NS"
; Ces enregistrements donnent les noms DNS des serveurs primaires
; et secondaires
mondomaine.org.      IN   NS   ns0
mondomaine.org.      IN   NS   ns1
; ENREGISTREMENTS "A"
; Les enregistrements "A" donnent les correspondances DNS <-> IP classiques
; Pour qu'une requête DNS "ordi1.mondomaine.org" renvoie "12.42.112.201"
ordi1      IN   A   12.42.112.201
ordi2      IN   A   12.42.112.202
ordi3      IN   A   12.42.112.203
ns0      IN   A   12.42.102.188
ns1      IN   A   42.128.241.12
; ENREGISTREMENTS "CNAME"
; Le champ "CNAME" est utilisé pour faire des "alias DNS",
; c'est-à-dire avoir une IP qui répond à plusieurs noms DNS.
; Par exemple, pour qu'une requête DNS "www.mondomaine.org" renvoie
; aussi l'IP d'ordi1" :
www      IN   CNAME   ordi1
mailhost   IN   CNAME   ordi1
ftp      IN   CNAME   ordi2
irc      IN   CNAME   ordi3
; ENREGISTREMENTS "MX"
; Le champ "MX" est utilisé pour les envois de mail.
; Quand un serveur de mail doit envoyer un mail à l'adresse
; <bouleetbil@frogdev.dyndns.org>, il fait une requête DNS de type "MX" sur
; "frogdev.dyndns.org". Il obtient en retour une liste d'adresses IP classées
; avec des priorités. Il essaye alors d'envoyer le mail au serveur
; principale, s'il est injoignable au serveur secondaire, etc...
; Pour les adresses @mondomaine.org, le serveur principal est "ordi1",
; le serveur secondaire est "ordi2" et le tertiaire est "ordi3" :
mondomaine.org.      IN   MX   10   ordi1
mondomaine.org.      IN   MX   20   ordi2
mondomaine.org.      IN   MX   30   ordi3
; ATTENTION : on ne met pas de "MX" sur un "CNAME",
; mais uniquement sur un "A" !
; Si on veut inclure un autre fichier de ce fichier :
;$INCLUDE nom_de_l'autre_fichier


2.4 Vérifications et relance
Vérifiez que vous n'avez pas fait d'erreur de syntaxe dans le fichier named.conf :
# named-checkconf
Si la commande n'affiche rien, c'est que le fichier named.conf est valide. Ensuite, vérifiez la syntaxe du fichier de zone :
# named-checkzone mondomaine.org /var/bind/mondomaine.org.zone
zone mondomaine.org/IN: loaded serial 2005091302
OK
Si la commande n'affiche aucun message d'erreur, alors il n'y a pas d'erreur de syntaxe dans le fichier de zone. Vous pouvez alors dire à Bind de relire son fichier de configuration :
# /etc/init.d/named start
# rc-update add named default
Note : Attention, si vous faites un restart au lieu d'un reload, le cache de votre serveur DNS se videra !

2.5 Configurer un serveur secondaire pour une zone

Il faut modifier named.conf
Rajoutez à la fin du fichier named.conf les lignes suivantes :
zone "domaine-ami.org" {
type slave;
file "domaine-ami.org.zone";
masters { 12.42.112.242; };
};
où :
domaine-ami.org est le nom de domaine pour lequel votre serveur sera secondaire
domaine-ami.org.zone désigne le fichier /var/cache/bind/domaine-ami.org.zone où sera écrite la zone à l'issue du premier transfert depuis le serveur DNS primaire,
12.42.112.242 est l'adresses IP du serveur primaire de la zone.
Votre serveur DNS fera alors régulièrement des transferts de zone depuis le serveur primaire (et notamment à chaque fois que le serveur primaire lui notifiera d'un changement dans la zone) et l'écrira dans le fichier /var/bind/domaine-ami.org.zone.

2.6 Tester le serveur DNS
L'utilitaire dig permet de faire des requêtes DNS évoluées et fournit un maximum d'informations sur la requête. Il est très utile pour vérifier la bonne configuration d'un serveur DNS.
Exemples d'utilisation de dig :
Requête sur le champ "A" du nom www.mondomaine.org auprès du serveur DNS 12.42.112.242 :
# dig @12.42.112.242 www.mondomaine.org A
Requête sur la champ "MX" du nom mondomaine.org auprès du serveur DNS 12.42.112.242 :
# dig @12.42.112.242 mondomaine.org MX
Requête sur tous les champs du nom mondomaine.org auprès du serveur DNS 12.42.112.242 :
# dig @12.42.112.242 mondomaine.org ANY
Requête AXFR sur le domaine mondomaine.org auprès du serveur DNS 12.42.112.242 :
# dig @12.42.112.242 mondomaine.org AXFR
Requête inverse (i.e. reverse DNS) sur l'IP 12.42.111.422 auprès du serveur DNS 12.42.112.242 :
# dig @12.42.112.242 -x 12.42.111.422


Pour le serveur de domaine
# /etc/init.d/domainname start
# rc-update add domainname default



3.Configurer Postfix
3.1 Installer Postfix
# emerge postfix
La configuration de Postfix se fait dans le fichier /etc/postfix/main.cf. Voici un fichier d'exemple documenté:
Code:

#default_destination_concurrency_limit = 20

# DEBUGGING CONTROL
#
# The debug_peer_level parameter specifies the increment in verbose
# logging level when an SMTP client or server host name or address
# matches a pattern in the debug_peer_list parameter.
#
debug_peer_level = 2

# The debug_peer_list parameter specifies an optional list of domain
# or network patterns, /file/name patterns or type:name tables. When
# an SMTP client or server host name or address matches a pattern,
# increase the verbose logging level by the amount specified in the
# debug_peer_level parameter.
#
#debug_peer_list = 127.0.0.1
#debug_peer_list = some.domain

# The debugger_command specifies the external command that is executed
# when a Postfix daemon program is run with the -D option.
#
# Use "command .. & sleep 5" so that the debugger can attach before
# the process marches on. If you use an X-based debugger, be sure to
# set up your XAUTHORITY environment variable before starting Postfix.
#
debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    xxgdb $daemon_directory/$process_name $process_id & sleep 5

# If you don't have X installed on the Postfix machine, try:
# debugger_command =
#   PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
#   echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
#   >$config_directory/$process_name.$process_id.log & sleep 5

# INSTALL-TIME CONFIGURATION INFORMATION
#
# The following parameters are used when installing a new Postfix version.
#
# sendmail_path: The full pathname of the Postfix sendmail command.
# This is the Sendmail-compatible mail posting interface.
#
sendmail_path = /usr/sbin/sendmail

# newaliases_path: The full pathname of the Postfix newaliases command.
# This is the Sendmail-compatible command to build alias databases.
#
newaliases_path = /usr/bin/newaliases

# mailq_path: The full pathname of the Postfix mailq command.  This
# is the Sendmail-compatible mail queue listing command.
#
mailq_path = /usr/bin/mailq

# setgid_group: The group for mail submission and queue management
# commands.  This must be a group name with a numerical group ID that
# is not shared with other accounts, not even with the Postfix account.
#
setgid_group = postdrop

# html_directory: The location of the Postfix HTML documentation.
#
html_directory = no

# manpage_directory: The location of the Postfix on-line manual pages.
#
manpage_directory = /usr/share/man

# sample_directory: The location of the Postfix sample configuration files.
# This parameter is obsolete as of Postfix 2.1.
#
sample_directory = /etc/postfix

# readme_directory: The location of the Postfix README files.
#
readme_directory = /usr/share/doc/postfix-2.1.3/readme
default_destination_concurrency_limit = 2
alias_database = hash:/etc/mail/aliases
local_destination_concurrency_limit = 2
alias_maps = hash:/etc/mail/aliases
home_mailbox = .maildir/
mynetworks = 127.0.0.0/8 192.168.0.0/24
mydomain = frogdev.dyndns.org
myhostname = tuxgentoo.$mydomain   
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, $mydomain
relay_domains = $mydestination, free.fr


3.2 Les alias
Les alias permettent de faire des correspondances entre des adresses mail et des comptes locaux, d'autres adresses mail ou encore des commandes à exécuter. Ils sont définis dans le fichier /etc/mail/aliases.
La syntaxe de ce fichier est très simple :

Code:
# aliases
# Fichier d'alias mail
# NE PAS OUBLIER d'exécuter "newaliases" après chaque modification
# Fait suivre le mail reçu à l'adresse <bouleetbil@nom_de_domaine>
# au compte local "test" :
bouleetbil:        test
# Fait suivre le mail reçu à l'adresse <toto@nom_de_domaine>
# à l'adresse <titi@yahoo.fr> :
toto:                   titi@yahoo.fr
# Fait suivre le mail reçu à l'adresse <machin@nom_de_domaine>
# aux comptes "user1" et "user2" et à l'adresse <bidulle@exemple.org> :
machin:                 user1,user2,bidulle@exemple.org
# A la réception d'un mail à l'adresse <bruit@nom_de_domaine>,
# exécute la commande "/usr/lib/ecartis/ecartis -s bruit" :
bruit:                  "|/usr/lib/ecartis/ecartis -s bruit"


Normalement, on définit aussi dans ce fichier à quel compte local (ou à quelle adresse) le serveur de mail doit faire suivre le mail destiné à l'utilisateur root. En effet, comme il n'y a pas besoin d'avoir tous les pouvois pour lire le mail du root, il serait absurde (et même dangereux) de lire les mails du root en tant que root. Il est préférable de faire suivre le mail du root vers un autre compte ou une autre adresse.

Il faut également faire des alias pour les adresses postmaster et abuse, qui sont deux adresses standard pour pouvoir joindre les administrateurs du serveur de mail d'un domaine. Par exemple, si vous utilisez un compte local admin pour lire les logs et les mails d'administration, ajoutez les lignes suivantes au fichier d'alias :
Code:
root:                   admin
postmaster:             admin
abuse:                  admin


Ensuite, exécutez la commande suivante pour qu'il regénère la base de donnée d'alias (ne pas oublier d'exécuter cette commande après chaque modification du fichier aliases) :
# newaliases

3.3 Les adresses virtuelles
Quand le domaine de l'adresse mail n'est pas celui de la machine, on passe par un mécanisme d'adresses virtuelles pour faire correspondre ces adresses mail à des comptes locaux, à d'autres adresses mail ou encore à des commandes à exécuter.
Le nom du fichier contenant les correspondances pour les adresses virtuelles est définit dans le fichier de configuration de Postfix /etc/postfix/main.cf par le paramètre virtual_maps :
virtual_maps = hash:/etc/postfix/virtual
La syntaxe du fichier est semblable à celle du fichier d'alias, mais sans la séparation par les deux-points :
Code:

# /etc/postfix/virtual
# Fichier de correspondance pour les adresses virtuelles
# NE PAS OUBLIER d'exécuter "postmap /etc/postfix/virtual"
# après chaque modification
# Fait correspondre une adresse virtuelle à un compte local
postmaster@exemple.org      admin
bouleetbil@exemple.org      bouleetbil
# Fait correspondre une adresse virtuelle à une autre adresse mail
toto@exemple.org        titi@yahoo.fr
# Fait correspondre une adresse virtuelle à une commande à exécuter
bruit@exemple.org       "|/usr/lib/ecartis/ecartis -s bruit"
Ensuite, exécutez la commande suivante pour qu'il tienne compte des
modifications :
# postmap /etc/postfix/virtual


3.4 Les commandes de base d'administration
Voici une liste de commandes de base d'administration de Postfix :
Liste la queue de mails en attente d'envoi :
# mailq
Cette commande est équivalente à la commande postqueue -p.
Force Postfix à réessayer d'envoyer les mails en attente d'envoi immédiatement :
# postqueue -f
Supprime un mail de la queue des mails en attente d'envoi :
# postsuper -d mail_ID
où mail_ID est l'identifiant du mail dans la queue (il apparaît à gauche dans la sortie de la commande mailq).
Activer postfix au démarrage de l'ordinateur:
# rc-update add postfix default

Pensez à copier le « /etc/resolv.conf » sur « /var/spool/postfix/etc/resolv.conf

3.5 Ajouter des serveurs POP et/ou IMAP
Attention, les protocoles POP et IMAP font transiter les mots de passe en clair sur le réseau.

3.5.1 Installer un serveur POP3 / IMAP
#emerge courier-imap courier-authlib

Pour ne pas utiliser le support Mysql d'identification mais pam, chaque utilisateur du systeme possede une boite aux lettres. Il faut modifier le fichier /etc/courier/authlib/authdaemonrc
Code:
authmodulelist="authshadow authpam"
authmodulelistorig="authshadow authpam"


Pour créer les boites aux lettres des utilisateurs:
$ maildirmake ~/.maildir/

Pour activer les services :
# /etc/init.d/courier-imapd start
# /etc/init.d/courier-pop3d start


Astuces:
Pour que votre serveur Mail soit visible de l'extérieur il faut définir une Zone MX chez votre registar.
Pour dyndns par exemple j'ai:
Hostname: frogdev.dyndns.org
IP Address: 82.236.233.24
Wildcard: N
Mail Exchanger: frogdev.dyndns.org
Backup MX: N

4. Monter un serveur de mailing-listes
Vos serveurs DNS et mail fonctionnent bien ? Vous avez appris à faire des alias qui pointent vers plusieurs comptes et/ou adresses mail, mais vous voudriez aller plus loin pour communiquer au sein d'une communauté ? Alors suivez ce qui suit pour mettre en place des mailing-lists avec archivage sur le Web...

4.1 Monter le serveur, installer et configurer Ecartis
Je n'ai pas trouvé d'ebuild pour ecartis donc il va falloir l'installer à l'ancienne. Vous pouvez le trouverais ici:
http://www.ecartis.org Télécharger les sources et lancer la compilation.
Si quelqu'un a un peu de temps pour créer un ebuild ;-)
Ecartis possède un fichier de configuration global /etc/ecartis/ecartis.cfg. Editez-le et personnalisez les paramètres suivants en vous aidant des commentaires (dans la plupart des cas, il suffira de remplacer localhost par le nom de domaine de la machine) :

Code:
     mailserver
     listserver-address
     listserver-admin
     list-owner


Ajoutez les aliases nécessaires au bon fonctionnement d'Ecartis :
# cat /usr/share/doc/ecartis/examples/aliases >> /etc/aliases
# newaliases

4.2 Créer une mailing-list
Nous allons créer une première mailing-list bruit, qui servira à des fins de test, pour se familiariser avec Ecartis :
# /usr/lib/ecartis/ecartis -newlist bruit
Creating new list 'bruit'...
List admin e-mail:

Il vous demande l'adresse mail de l'administrateur de la mailing-list: entrez votre adresse mail. C'est avec cette adresse que vous pourrez administrer la mailing-list.
Il crée ensuite le répertoire et les fichiers nécessaires au bon fonctionnement de la mailing-list dans le répertoire
/var/lib/ecartis/lists/ :
Writing config file...done.
Creating default user file...done.

Enfin, il affiche une liste d'alias à créer dans votre serveur de mail:

Sending aliases for sendmail/Exim/Postfix/Zmailer to stdout.
# Aliases for 'bruit' mailing list.
bruit: "|/usr/lib/ecartis/ecartis -s bruit"
bruit-request: "|/usr/lib/ecartis/ecartis -r bruit"
bruit-repost: "|/usr/lib/ecartis/ecartis -a bruit"
bruit-admins: "|/usr/lib/ecartis/ecartis -admins bruit"
bruit-moderators: "|/usr/lib/ecartis/ecartis -moderators bruit"
bruit-bounce: "|/usr/lib/ecartis/ecartis -bounce bruit"

Copiez-collez le bloc ci-dessus, qui comprend les 6 alias nécessaires au fonctionnement de la mailing-list, dans le fichier d'alias de votre serveur de mail puis mettez à jour la base d'alias :

# newaliases

4.3 Configurer la mailing-list
La configuration de la mailing-list se fait dans le fichier /var/lib/ecartis/lists/bruit/config. Il existe un très grand nombre de paramètres de configuration, et le fichier de configuration installé par défaut les explique tous dans les commentaires.

Les paramètres les plus importants que vous devez absolument personnaliser sont les suivants (certains ont déjà été décommentés et personnalisés à la création de la liste) :
* list-owner : adresse e-mail du responsable de la mailing-list (c'est celle que vous avez donné lors de la création de la mailing-list)
* subject-tag : tag éventuel rajouté aux sujets des mails postés dans la mailing-list (commentez la ligne si vous ne voulez pas de tag)
* reply-to : permet de forcer le champ Reply-to sur une certaine adresse (par exemple l'adresse de la mailing-list pour que les réponses aux posts aillent par défaut dans la mailing-list)
*administrivia-address : adresse e-mail d'administration de la mailing-list où sont envoyé les notifications(et les autorisations si la mailing-list est en subscribe-mode = closed) d'abonnement et de désabonnement (ne pas modifier)
* approved-address : adresse e-mail où sont renvoyés les posts acceptés ou refusés à la modération : mettre <$list>-repost@serveur.exemple.org, où serveur.exemple.org est le nom de domaine du serveur
* mbox-archive-path : répertoire dans lequel sont stockées les archives au format mbox (si vous voulez en avoir)
* humanize-mime : mettre à false si vous voulez que les pièces jointes qui ne sont pas des fichiers texte ne soient pas supprimées !
* closed-post : les personnes qui ne sont pas abonnées à la mailing-list sont-elles autorisées à y poster ? (si vous répondez true, les posts des personnes extérieures à la mailing-list sont alors modérés)
* moderated : tous les posts doivent-ils être approuvés par les modérateurs ?
* moderator : adresse e-mail pour les modérateurs (ne pas modifier)
* send-as : adresse du chemin de retour SMTP (ne pas modifier)
* subscribe-mode : il y a 3 choix :
+ open pour que n'importe qui puisse s'abonner,
+ confirm pour que n'importe qui puisse s'abonner après confirmation du futur abonné,
+ closed pour que toutes les demandes d'abonnement soient soumises à l'approbation des administrateurs
*unsubscribe-mode : idem que le paramètre précédent pour les désabonnements

4.4 Le fichier des abonnés
Le fichier des abonnés est le fichier /var/lib/ecartis/lists/bruit/users.
Sa syntaxe est simple : une ligne par abonné, chaque ligne est composée des éléments suivants dans l'ordre et séparés par des espaces :
* une adresse e-mail ;
* le caractère deux-points ;
* une liste de flags encadrés et séparés par le caractère |.

Les flags possibles sont les suivants :

* ECHOPOST pour les abonnés à la mailing-list,
* ADMIN pour les administrateurs de la mailing-list,
* SUPERADMIN : [TODO : quel est la différence avec ADMIN ?],
* MODERATOR pour les modérateurs de la mailing-list,
* CCERRORS pour recevoir les mails d'erreur de la mailing-list (par exemple quand l'adresse d'un abonné ne marche pas),
* REPORTS pour recevoir les rapports réguliers sur le fonctionnement de la mailing-list.

Pour l'administrateur, la ligne suivante est générée à la création de la mailing-list :
bouleetbil@frogdev.dyndns.org.fr : |ADMIN|SUPERADMIN|MODERATOR|CCERRORS|REPORTS|ECHOPOST|
Si l'utilisateur toto@yahoo.fr est un simple abonné, on trouvera dans le fichier une ligne :
toto@yahoo.fr : |ECHOPOST|
Si l'utilisateur titi@caramail.com est abonné et modérateur, on trouvera une ligne :
titi@caramail.com : |ECHOPOST|MODERATOR|

4.4 Administrer la mailing-list
Toute l'administration de la mailing-list se fait en envoyant des commandes dans le sujet de mails envoyés à l'adresse ecartis@serveur.exemple.org. Le contenu du mail peut-être quelconque.

Si la commande contenue dans le sujet est valide, le reste du mail ne sera pas lu par Ecartis.
Par exemple, si vous envoyez un mail à l'adresse ecartis@serveur.exemple.org avec un sujet lists, vous aurez en retour un mail contenant la liste des mailing-listes hébergées sur le serveur.

Quand un utilisateur veut s'abonner à la mailing-list bruit, il suffit qu'il envoie un mail à l'adresse ecartis@serveur.exemple.org avec un sujet subscribe bruit :

* si la mailing-list est en subscribe-mode = open, l'utilisateur recevra confirmation de son abonnement par mail
* si la mailing-list est en subscribe-mode = confirm, l'utilisateur recevra un mail lui donnant les instructions pour confirmer son abonnement
* si la mailing-list est en subscribe-mode = closed, un administrateur devra approuver l'abonnement. Idem pour un désabonnement, mais en mettant dans le sujet unsubscribe bruit.

Pour avoir une liste complète des commandes, envoyez un mail à l'adresse ecartis@serveur.exemple.org avec un sujet commands.
Pour la modération des mail, les modérateurs reçoivent des mails indiquant les instructions pour approuver ou rejeter les posts.
Pour avoir de l'aide sur Ecartis, envoyez un mail à l'adresse ecartis@serveur.exemple.org avec un sujet help.

4.5 Poster dans la mailing-list
Pour poster dans la mailing-list, il suffit d'envoyer un mail à l'adresse bruit@serveur.exemple.org. Les abonnés reçoivent alors le post après quelques secondes, sauf si le mail doit passer en modération, i.e. dans les cas suivants :

* si la mailing-list est modérée ;
* si la mailing-list n'est pas modérée, mais en closed-post = true et que la personne qui poste n'est pas abonnée à la mailing-list.

5. Apache / Php / Mysql

5.1 Installation
# nano -w /etc/make.conf
Ajouter à votre variable use: Php mysql apache2
# emerge mod_php
apache sera installé ainsi que mysql
5.2 Configuration
Dans /etc/conf.d/apache2 mettre APACHE2_OPTS="-D PHP4"
La commande ci-dessous permet d'installer la base de données mysql:
# /usr/bin/mysql_install_db
Mysqlcc est tres bien pour administrer pour votre base de données Mysql.(n'oublier pas de changer votre mot de passe root)
Ne pas oublier de modifier httpd.conf afin d'indiquer votre nom de domaine.
Activer Mysql et apache au démarrage de l'ordinateur
# rc-update add mysql default
# rc-update add apache2 default

6. FTP

Proftpd est serveur FTP assez facile à installer et à configurer et frontend qui fonctionne bien est disponible alors pourquoi se priver.
# emerge ProFTPD
Installation du frontal en gtk:
# emerge gproftpd
Le fichier de configuration se trouve dans /etc/proftpd/proftpd.conf.

7. Mirroir GENTOO

7.1 Mise en place de Rsync:
Pour installer un serveur rsync il n'est pas néccessaire d'installer de paquet. Seulement gentoo-rsync-mirror contient des exemples de scripts qui peuvent être utile.
Structure de /etc/rsync/rsyncd.conf:
Code:

uid = nobody
gid = nobody
use chroot = yes
max connections = 15
pid file = /var/run/rsyncd.pid
motd file = /etc/rsync/rsyncd.motd
log file = /var/log/rsync.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

[gentoo-x86-portage]
# Pour des raisons de compatibilité
path = /usr/portage
comment = Arbre de portage gentoo
exclude=distfiles/ packages/
[gentoo-portage]
# Les versions modernes de portage utilisent cette section.
path = /usr/portage
comment = Arbre de portage gentoo
exclude=distfiles/ packages/

[portage]
path=/usr/portage
comment=Gentoo Portage
exclude=distfiles/ packages/


Si vous désirez faire un serveur local rajouter ces deux lignes:
hosts allow = 192.168.0.1 192.168.0.2 192.168.1.0/24
hosts deny = *
Il faut les adapter selon votre configuration.

Configuration des postes clients:
(Utilisez l'adresse IP du serveur)
SYNC="rsync://192.168.0.1/portage"
(Ou utilisez son nom)
SYNC="rsync://le_nom_du_serveur/portage"
Il est conseillé de synchroniser deux fois par heure son arbre de portage. Pour cela, il est possible d'utiliser cron.
# crontab -e root
Ajouter des lignes qui ressemble à cela:
0 20 * * * mirrorselect -a && emerge sync
Cela signifie que tous les jours à 20heures, le meilleur serveur est sélectionné puis l'arbre de portage mis à jour. N'oublier pas d'activer un démon cron au démarrage.

7.2 Serveur de sources:
Il faut déjà disposer d'un serveur http ou ftp. Ensuite, il faut télécharger les sources et les maintenir à jour. Pour cela vous pouvez utiliser ce script:

Code:

#!/bin/bash
RSYNC="/usr/bin/rsync"
OPTS="--quiet --recursive --links --perms --times --devices --delete --timeout=300"
#exclure grp et releases
#pour les distfiles seulement
SRC="ftp.ussg.iu.edu::gentoo-distfiles"
#Il est possible d'utiliser un autre serveur
DST="/mnt/space/gentoo/"
#Emplacement des sources à télécharger
echo "Mise à jour commencée à" `date` >> $0.log 2>&1
logger -t rsync "Mise à jour des sources Gentoo"
${RSYNC} ${OPTS} ${SRC} ${DST} >> $0.log 2>&1
echo "Fin: "`date` >> $0.log 2>&1


Il se peut que le serveur "ftp.ussg.iu.edu" ne soit plus actif dans ce cas sur la page des serveur Gentoo cherchez un serveur rsync qui partage les sources

N'oublier pas d'insérer ce script à cron.
Vous pouvez inserer vos sources à rsync de cette manière d'autre serveur pourront se synchroniser sur votre serveur. Pour cela ajouter ces lignes à /etc/rsync/rsyncd.conf

Code:

[gentoo-distfiles]
# Sources Gentoo.
path = /mnt/space/gentoo
comment = Sources gentoo


Astuce: si vous utilisez apache comme serveur http, ajouter à /etc/apache2/conf/commonapache2.conf
<Directory Emplacement des fichiers sources>
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Cela permet d'afficher les fichiers présent dans le répertoire via un navigateur.

Il faut activer rsync au démarrage:
# rc-update add rsyncd default

8. Spamassassin

8.1 Installation
# emerge spamassassin
# nano /etc/mail/spamassassin/local.cf
Il faut ajouter ces options
required_hits 6
skip_rbl_checks 1

8.2 Activation
Pour activer spamassassin
# rc-update add spamd default
# /etc/init.d/spamd start

9. Antivirus Clamav

9.1 Installation
# emerge clamav

9.2 Configuration
# nano /etc/conf.d/clamd
Mettez START_CLAMD=yes
# nano /etc/clamd.conf
Configurez selon vos paramêtres

9.3 Activer clamav
# rc-update add clamd default
# /etc/init.d/clamd start

9.4 Scanner les mails
# emerge amavisd-new
La configuration de Amavis se fait dans le fichier /etc/amavisd.conf. Il faut modifier quelques options pour l'adapter a votre configuration :
$mydomain = 'example.com';
$final_bad_header_destiny = D_BOUNCE;
$warnvirusrecip = 1;
$warnbannedrecip = 1;
$warn_offsite = 1;
$virus_admin = 'postmaster@example.com';
$hdrfrom_notify_sender = 'amavisd-new <postmaster@example.com>';

Pour que postfix envoie les messages à Amavis, il faut ajouter la ligne suivante dans /etc/postfix/main.cf :
# Use AMaVis
content_filter = amavis:[127.0.0.1]:10024


Pour verifier le bon fontionnement de l'antivirus, on peut utiliser des sites prévus a cet effet comme testvirus.org ou gfi.com/emailsecuritytest/. Ces sites permetent d'envoyer des mails infectés avec un virus de test (non dangereux) vers votre serveur. En fonction des paramètres de notification qui ont été choisit, la réception de ce mail devrait, ou non, déclencher une alerte à l'administrateur du serveur. On peut par ailleurs consulter le contenu détaillé des headers des mails reçus pour s'assurer qu'ils contiennent une ligne du type :

X-Virus-Scanned: by amavisd-new at example.com

Il existe un frontend pour clamav afin de scanner des fichiers "clamav-tk" vous trouverez un ebuild sur http://frogdev.dyndns.org dans la section download

10.Firewall et partage de connexion Internet


1. Introduction
L'idée est de définir une machine faisant office de routeur et de firewall. Celle-ci doit disposer de deux interfaces réseaux:
Une pour le réseau local
Une connécté à internet

2. Etablir des règles de firewalling et/ou de partage de connexion

2.1. Configuration

Configuration du noyau:
Le noyau doit avoir les fonctions de firewalling activées. Si vous ne les avez pas compilées dans votre noyau actuel, vous devrez recompiler avec ces options:
Liste des modules à inclure:
ip_nat_ftp
ip_nat_irc
iptable_filter
iptable_mangle
iptable_nat
Installation iptables:
# emerge iptables

2.2. La syntaxe iptables
La sytaxe d'iptables est très complète, je ne vais pas la détailler ici. Je vais vous fournir mes scripts commentés:
Le fichier /etc/conf.d/firewall.start
Code:

#!/bin/sh
# mettez ici l'emplacement d'iptables :
IPTABLES=/sbin/iptables
# mettez ici le nom de l'interface réseau vers internet :
EXTERNAL_IF="ppp0"
# mettez ici le nom de l'interface réseau vers votre lan :
INTERNAL_IF="eth0"
#charge les modules
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ip_masq_ftp
modprobe ip_masq_user
echo "Module Chargé"
#partage de connexion
echo 1 > /proc/sys/net/ipv4/ip_forward
#autorise le reseau a envoye des donnees sur internet
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo "Partage de connexion actif"
#masque les machines local
$IPTABLES -A POSTROUTING -t nat -o $EXTERNAL_IF -j MASQUERADE

#liste des modules possible
#ls /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/

#refus de tout
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
echo "Refus de toutes les connexions"

# DROP des paquets NETBIOS
iptables -A INPUT -i $EXTERNAL_IF -p udp --dport 137:139 -j DROP
iptables -A INPUT -i $EXTERNAL_IF -p tcp --dport 137:139 -j DROP
echo "Netbios actif"$IPTABLES -A tcp_inbound -p TCP -s 0/0 --destination-port 6891:6900 -j ACCEPT

#regles reseau local on accepte tous
# "On accepte le traffic sur 'lo'"
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A FORWARD -i lo -j ACCEPT
$IPTABLES -A FORWARD -o lo -j ACCEPT
echo "Toutes les connexions internes sont actives"

# "On accepte le traffic sur le réseau local"
# Vous pouvez personaliser cette règle en s'appuyant sur les regles du traffic vers internet
$IPTABLES -A INPUT -i $INTERNAL_IF -j ACCEPT
$IPTABLES -A OUTPUT -o $INTERNAL_IF -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_IF -j ACCEPT
$IPTABLES -A FORWARD -o $INTERNAL_IF -j ACCEPT
echo "Réseau local actif"

#Logguer les packets DROPés
#Logguer les packets au début afin de vérifier que tous fonctionne
#Apres commentez ces lignes car cela prend beaucoup de place
$IPTABLES -N LOG_DROP
$IPTABLES -A LOG_DROP -j LOG --log-prefix "[FIREWALL refus] "
$IPTABLES -A LOG_DROP -j DROP
echo "Prépare les log"

#pour la resolution des dns
$IPTABLES -A INPUT -i $EXTERNAL_IF --protocol udp --source-port 53 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXTERNAL_IF --protocol udp --destination-port 53 -j ACCEPT
$IPTABLES -A INPUT -i $EXTERNAL_IF --protocol tcp --source-port 53 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXTERNAL_IF --protocol tcp --destination-port 53 -j ACCEPT
echo "DNS accordé"

#pour accepter de sufer sur le web
$IPTABLES -A INPUT -i $EXTERNAL_IF -p tcp --sport www -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $EXTERNAL_IF -p tcp --dport www -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "Surf possible"

#pour le serveur web sur le routeur
$IPTABLES -A OUTPUT -o $EXTERNAL_IF -p tcp --sport www -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $EXTERNAL_IF -p tcp --dport www -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "Serveur WEB accordé"

#Pour serveur pop3
$IPTABLES -A OUTPUT -o $EXTERNAL_IF -p tcp --dport pop-3 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "Réception de mail"
#pour seveur smtp
#$IPTABLES -A INPUT -i $EXTERNAL_IF -p tcp --sport smtp -m state --state ESTABLISHED,RELATED -j ACCEPT
#pour l'envoi de mail

$IPTABLES -A OUTPUT -o $EXTERNAL_IF -p tcp --dport smtp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "Envoi de mail"

#on accepte les requete ftp entrantes
$IPTABLES -t filter -A INPUT -p tcp --source-port ftp -j ACCEPT
$IPTABLES -t filter -A INPUT -p tcp --destination-port ftp -j ACCEPT
echo "Ftp entrant ok"

#msn transfert de fichier
$IPTABLES -A INPUT -p TCP --sport 6891:6900 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 6891:6900 -j ACCEPT
#msn communication
#$IPTABLES -A INPUT -p tcp --sport 1863 -j ACCEPT
$IPTABLES -A INPUT -i $EXTERNAL_IF --protocol tcp --sport 1863 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $EXTERNAL_IF --protocol tcp --dport 1863 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "Msn accorde"

#limite du ping
$IPTABLES -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p icmp -m state --state NEW -m limit --limit 10/min -j ACCEPT
echo "ping ok"

#reseau donkey udp:4672 tcp:4662
#on accept sur les port entrants par défault d'eMULE
$IPTABLES -A INPUT -p tcp --dport 4662 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 34037 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 34038 -j ACCEPT
echo "Emule ouverture du port entrant 4662 "
$IPTABLES -A INPUT -p udp --dport 4672 -j ACCEPT
echo "Emule ouverture du port entrant 4672 "
# on accepte les sorties pour emule
$IPTABLES -A INPUT -p tcp --sport 4662 -j ACCEPT
echo "Emule ouverture du port sortant 4662 "
$IPTABLES -A INPUT -p udp --sport 4672 -j ACCEPT
echo "Emule ouverture du port sortant 4672 "

# On accepte de le laisser sortir du firewall et on accpete les connexions entrantes que l'on a initiées
$IPTABLES -A OUTPUT -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED -j ACCEPT
echo "connexion ouverte ok"

#accord ssh
$IPTABLES -t filter -A INPUT -i $INTERNAL_IF -s 0.0.0.0/0 -d 192.168.0.2 -p tcp --dport 22 -j ACCEPT
echo "ssh accorde"

#pour rediriger vers un serveur web si besoin sur le reseau local
#iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80

# Décommentez la ligne suivante pour que le serveur CUPS éventuel
# soit joignable de l'extérieur
#$IPTABLES -A INPUT -p tcp --sport 631 -j ACCEPT

# Décommentez les deux lignes suivantes pour que le serveur Samba éventuel
# soit joignable de l'extérieur
#$IPTABLES -A INPUT -p tcp --dport 139 -j ACCEPT
#$IPTABLES -A INPUT -p udp --dport 139 -j ACCEPT

# Décommentez la ligne suivante pour que des clients puissent se connecter
# à l'ordinateur par XDMCP)
#$IPTABLES -A INPUT -p ucp --dport 177 -j ACCEPT

# Décommentez la ligne suivante pour que l'odinateur puisse se connecter
# par XDMCP à une machine distante)
#$IPTABLES -A INPUT -p tcp --dport 6001 -j ACCEPT
# Décommentez la ligne suivante pour que le serveur CVS éventuel
# soit joignable de l'extérieur via le mécanisme de "pserver"
# (si les utilisateurs accèdent au serveur CVS exclusivement via SSH,
# seule la ligne concernant le serveur SSH doit être décommentée)
#$IPTABLES -A INPUT -p tcp --dport 2401 -j ACCEPT

# Décommentez la ligne suivante pour pouvoir reçevoir des flux VideoLAN
# (ce sont des flux UDP entrants sur le port 1234)
#$IPTABLES -A INPUT -p udp --dport 1234 -j ACCEPT

# Décommentez la ligne suivante pour pouvoir reçevoir des annonces SAP
# (ce sont des annonces de session multicast)
#$IPTABLES -A INPUT -p udp -d 224.2.127.254 --dport 9875 -j ACCEPT

# Décommentez les 3 lignes suivantes pour pouvoir utiliser GnomeMeeting
#$IPTABLES -A INPUT -p tcp --dport 30000:33000 -j ACCEPT
#$IPTABLES -A INPUT -p tcp --dport 1720 -j ACCEPT
#$IPTABLES -A INPUT -p udp --dport 5000:5006 -j ACCEPT

#on log tout
$IPTABLES -A FORWARD -j LOG_DROP
$IPTABLES -A INPUT -j LOG_DROP
$IPTABLES -A OUTPUT -j LOG_DROP

echo "firewall actif"
echo "log dans /var/log/messages"



Le fichier /etc/conf.d/firewall.stop

Code:
#!/bin/sh
# Script d'arrêt du mur pare feu
# mettez ici l'emplacement d'iptables :
IPTABLES=/sbin/iptables
echo "On vide toutes les régles."
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -F LOG_DROP
$IPTABLES -X
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
echo "On décharge les modules."
rmmod `lsmod | grep -E "^ip" | cut -d" " -f 1`
modprobe ip_masq_ftp
modprobe ip_masq_user
echo "Module Chargé"
#partage de connexion
echo 1 > /proc/sys/net/ipv4/ip_forward
#autorise le reseau a envoye des donnees sur internet
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo "Partage de connexion actif sans firewall"




Le fichier /etc/init.d/parefeu
Code:
#!/sbin/runscript
start() {
   ebegin "Starting firewall"
   if [ -e /etc/conf.d/firewall.start ]
   then
           source /etc/conf.d/firewall.start
   fi
   eend $? "Failed to start firewal."
}
stop() {
   ebegin "Stopping firewall"
   # to /etc/conf.d/firewall.stop
   if [ -e /etc/conf.d/firewall.stop ]
   then
      source /etc/conf.d/firewall.stop
   fi
   eend $? "Failed to stop firewall."
}



Ce fichier permet d'activer les régles au démarrage.
Pour cela saisir:
# rc-update add parefeu default
Sinon, il existe aussi une solution graphique qui est firestarter qui fonctionne trés bien:
# emerge firestarter

11. Messagerie instantanée

11.1 Installation et configuration de jabber
# USE="-ipv6" emerge jabberd

Ouvrir le fichier /etc/multiple.xml et modifier la ligne :
<host> <jabberd:cmdline flag="h">localhost</jabberd:cmdline> </host>

en remplaçant localhost par votre nom de domaine (jabber.masociete.com par exemple), ou par l'adresse IP de votre serveur Jabber (déconseillé). Si vous créer un serveur jabber interne, sans lien avec internet, vous pouvez commenter cette ligne :
<update> <jabberd:cmdline flag="h">localhost</jabberd:cmdline> </update>

C'est la commande permettant de contrôler automatiquement la présence de mise à jour sur le serveur jabber.org. Configurer alors le répertoire destiné à stocker les fichiers de profils des utilisateurs :

Un tutoriel en français http://www.gadaud.org/fabrice/jabber/tutoriel/

11.2 Installation et configuration de jabberd2

C'est cette version qui est installée sur mon serveur :wink:
Tout d'abord il faut démasquer le paquet:
# echo net-im/jabberd >> /etc/portage/package.keywords
# emerge jabberd


Pour configurer le serveur:
Définir le nom de l'hote dans /etc/jabberd/c2s.xml et /etc/jabberd/sm.xml
Code:

<id>frogdev.dyndns.org</id>


Configurer Mysql pour la gestion des utilisateurs
/usr/share/doc/jabberd-2.0.9/tools/db-setup.mysql.gz contient un script pour créer la base
Code:
--
-- This is the required schema for MySQL. Load this into the database
-- using the mysql interactive terminal:
--
--     mysql> \. db-setup.mysql
--

CREATE DATABASE jabberd2;
USE jabberd2;

--
-- c2s authentication/registration table
--
CREATE TABLE `authreg` (
    `username` TEXT, KEY `username` (`username`(255)),
    `realm` TINYTEXT, KEY `realm` (`realm`(255)),
    `password` TINYTEXT,
    `token` VARCHAR(10),
    `sequence` INT,
    `hash` VARCHAR(40) );

--
-- Session manager tables
--

--
-- Active (seen) users
-- Used by: core
--
CREATE TABLE `active` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `time` INT );

--
-- Logout times
-- Used by: mod_iq_last
--
CREATE TABLE `logout` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `time` INT );

--
-- Roster items
-- Used by: mod_roster
--
CREATE TABLE `roster-items` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `jid` TEXT,
    `name` TEXT,
    `to` TINYINT,
    `from` TINYINT,
    `ask` INT );

--
-- Roster groups
-- Used by: mod_roster
--
CREATE TABLE `roster-groups` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `jid` TEXT,
    `group` TEXT );

--
-- vCard (user profile information)
-- Used by: mod_iq_vcard
--
CREATE TABLE `vcard` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `fn` TEXT,
    `nickname` TEXT,
    `url` TEXT,
    `tel` TEXT,
    `email` TEXT,
    `title` TEXT,
    `role` TEXT,
    `bday` TEXT,
    `desc` TEXT,
    `n-given` TEXT,
    `n-family` TEXT,
    `adr-street` TEXT,
    `adr-extadd` TEXT,
    `adr-locality` TEXT,
    `adr-region` TEXT,
    `adr-pcode` TEXT,
    `adr-country` TEXT,
    `org-orgname` TEXT,
    `org-orgunit` TEXT );

--
-- Offline message queue
-- Used by: mod_offline
--
CREATE TABLE `queue` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `xml` MEDIUMTEXT );

--
-- Private XML storage
-- Used by: mod_iq_private
--
CREATE TABLE `private` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `ns` TEXT,
    `xml` MEDIUMTEXT );

--
-- Message Of The Day (MOTD) messages (announcements)
-- Used by: mod_announce
--
CREATE TABLE `motd-message` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `xml` TEXT );

--
-- Times of last MOTD message for each user
-- Used by: mod_announce
--
CREATE TABLE `motd-times` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `time` INT );

--
-- User-published discovery items
-- Used by: mod_disco_publish
--
CREATE TABLE `disco-items` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `jid` TEXT,
    `name` TEXT,
    `node` TEXT );

--
-- Default privacy list
-- Used by: mod_privacy
--
CREATE TABLE `privacy-default` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `default` text );

--
-- Privacy lists
-- Used by: mod_privacy
--
CREATE TABLE `privacy-items` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `list` TEXT,
    `type` TEXT,
    `value` TEXT,
    `deny` TINYINT,
    `order` INT,
    `block` INT );

--
-- Vacation settings
-- Used by: mod_vacation
--
CREATE TABLE `vacation-settings` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `start` INT,
    `end` INT,
    `message` TEXT );



Puis créer un utilisateur pour l'acces à cette base

Code:
    GRANT select,insert,delete,update ON jabberd2.*
      to jabberd2@localhost IDENTIFIED by 'secret';

Remplacer secret par votre mot de passe

Vérifier dans /etc/jabberd/c2s.xml que c'est mysql qui est utilisé:
Code:

 <authreg>
    <!-- Backend module to use -->
    <module>mysql</module>

    <!-- Registration configuration -->
    <register>
      <!-- Account registration is enabled by default (provided the
           auth/reg module in use supports it). Comment this out to
           disable. -->
      <enable/>

      <!-- Human-readable instructions to be returned to client when
           registration is requested. -->
      <instructions>Entrer un nom et un mot de passe pour vous enregistrer.</instructions>


Et vérifier vos paramètres de connexion dans ce même fichier
Code:

<mysql>
<!-- Database server host and port -->
<host>localhost</host>
<port>3306</port>
<!-- Database name -->
<dbname>jabberd2</dbname>
<!-- Database username and password -->
<user>jabberd2</user>
<pass>secret</pass>
</mysql>


Activer le mode SSL
# /etc/jabberd/self-cert.sh

Lancer jabber
# /etc/init.d/jabber start

Activer au demmarage:
# rc-update add jabber default

Votre serveur jabber est disponible :D
Ma machine fait aussi serveur jabber normalement le serveur est "frogdev.dyndns.org"
Documention du projet: http://jabberd.jabberstudio.org/2/docs/


Et voila c'est finis !!!!
_________________
L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php


Last edited by bouleetbil on Sat Sep 24, 2005 9:49 am; edited 6 times in total
Back to top
View user's profile Send private message
Trevoke
Advocate
Advocate


Joined: 04 Sep 2004
Posts: 4099
Location: NY, NY

PostPosted: Mon Sep 19, 2005 8:20 pm    Post subject: Reply with quote

Nom d'un chien!
BRAVO!
_________________
Votre moment detente
What is the nature of conflict?
Back to top
View user's profile Send private message
kopp
Advocate
Advocate


Joined: 09 Apr 2004
Posts: 2885
Location: Grenoble, France

PostPosted: Mon Sep 19, 2005 8:26 pm    Post subject: Reply with quote

Ah ben! Félicitations ! J'ai pas le temps de lire ça ce soir, mais je vais probablement m'y plonger sous peu, il doit y avoir plein de choses qui m'interesseront là dedans! Merci pour le boulot !
Back to top
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1894
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Mon Sep 19, 2005 8:26 pm    Post subject: Reply with quote

Ca c'est du HOWTO !

Ca tombe bien, ça va m'éviter une bonne part de rédaction pour mon HOWTO de gestion de parc gentoo ;-)

Merci pour ce chouette document (que j'ai pas lu en entier, je le confesse, trop long compte tenu de l'heure :-p).
_________________
Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres.
Back to top
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Mon Sep 19, 2005 8:34 pm    Post subject: Reply with quote

Merci y a quelques points j'ai eu pas mal de problèmes donc autant tout partager (surtout postfix avec les dns). En plus, en postant tout sur le forum, si un jour je dois le refaire je serais que tout est ici :wink:
_________________
L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php
Back to top
View user's profile Send private message
-KuRGaN-
Veteran
Veteran


Joined: 05 Dec 2004
Posts: 1142
Location: Besançon (25) [FRANCE]

PostPosted: Mon Sep 19, 2005 10:27 pm    Post subject: Reply with quote

Vraiment bien, merci beaucoup !!
_________________
Knight Gent00 Industries RiDeR !!!!
Back to top
View user's profile Send private message
Tuxifer
n00b
n00b


Joined: 31 May 2005
Posts: 32
Location: Montpellier

PostPosted: Tue Sep 20, 2005 6:55 am    Post subject: Reply with quote

Merci pour ce how-to couvrant une bonne partie (la totalité?) de ce qui est communément installé sur un serveur perso !!! :lol:

EDIT: A rajouter d'urgence dans la liste des liens vers les HOWTO français !
Back to top
View user's profile Send private message
marvin rouge
Veteran
Veteran


Joined: 01 Aug 2004
Posts: 1422
Location: Villa Lumierrante, Zonelibre

PostPosted: Tue Sep 20, 2005 7:07 am    Post subject: Reply with quote

bouleetbil wrote:
5. Apache / Php / Mysql

5.1 Installation
# nano -w /etc/make.conf
Ajouter à votre variable use: Php mysql apache2
# emerge mod_php
apache sera installé ainsi que mysql
5.2 Configuration
Dans /etc/conf.d/apache2 mettre APACHE2_OPTS="-D PHP4"
La commande ci-dessous permet d'installer la base de données mysql:
# /usr/bin/mysql_install_db
Mysqlcc est tres bien pour administrer pour votre base de données Mysql.(n'oublier pas de changer votre mot de passe root)
Ne pas oublier de modifier httpd.conf afin d'indiquer votre nom de domaine.
Activer Mysql et apache au démarrage de l'ordinateur
# rc-update add mysql default
# rc-update add apache2 default

Attention, ce n'est plus comme ca qu'il faut faire pour PHP : il faut maintenant installer dev-lang/php et non pas mod_php (voir les récentes modifications de l'ensemble apache/php, par exemple ce post et surtout celui la

Sinon, merci bcp pour ce howto :)
Back to top
View user's profile Send private message
zeuss1414
Guru
Guru


Joined: 23 Mar 2004
Posts: 490

PostPosted: Tue Sep 20, 2005 7:17 am    Post subject: Reply with quote

C'est trop de la bombe, ca faisait un moment que je voulais mettre postfix spamassasin et l'antivirus sur mon serveur mais j'avais la flemme et pas le temps de chercher. Merci beaucoup pour ton super HOWTO, ce soir j'attaque postfix :)

Edit: Pour le miroir gentoo, ca te prend combien de place ?? et les mise a jour c'est trop long ??
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Tue Sep 20, 2005 8:41 am    Post subject: Reply with quote

De la balle, hop je le bookmark car il va sans doute me servir dans 2 semaines ce ptit howto 8)

(notamment pour dhcp, mirroir gentoo et iptables. Perso pour ftp je trouve proftpd quelque peu "bizarre" parfois dans son fonctionnement, je vais sans doute prendre pureftpd ou un truc comme ça)
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
El_Goretto
Moderator
Moderator


Joined: 29 May 2004
Posts: 3169
Location: Paris

PostPosted: Tue Sep 20, 2005 8:56 am    Post subject: Reply with quote

Hop, ctrl-D :)
_________________
-TrueNAS & jails: µ-serv Gen8 E3-1260L, 16Go ECC + µ-serv N40L, 10Go ECC
-Réseau: APU2C4 (OpenWRT) + GS726Tv3 + 2x GS108Tv2 + Archer C5v1 (OpenWRT)
Back to top
View user's profile Send private message
yuk159
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1802
Location: noumea ,nouvelle-caledonie

PostPosted: Tue Sep 20, 2005 9:07 am    Post subject: Reply with quote

anigel wrote:
Ca tombe bien, ça va m'éviter une bonne part de rédaction pour mon HOWTO de gestion de parc gentoo ;-)


RÔoooo pas bô :lol:
C'est que c'est long a écrire c'est petite bête là et donc merci à tous ceux qui le font ou à ceux que voudraient le faire ;).
Merci pour le How-to il est dans l'index (merci TGL c'est plus simple quand y'en a pas quarantes d'un coup à mettre à jour)

[edit] qu'est-ce qu'il ya comme merci :roll:
_________________
The box said: "Requires Windows 98/2000/XP/NT, or better."
So, I installed LINUX!
Instagram
Back to top
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Tue Sep 20, 2005 12:38 pm    Post subject: Reply with quote

@ marvin rouge
Pour Php j'avais vu passer cette info dans la liste mais vu que mon installe de Php date un peu. Je m'en suis pas occupé. Si j'ai le temps ce soir je corrige :wink:
@zeuss1414
Pour un serveur de source, compte 40 Go (Il me semble j'ai supprimé la partition). La premiere synchro est tres longue et apres, il faut faire régulierement des synchros et bien sur cela dépend de ta connexion, perso avec ma p'tite connexion freebox j'ai arrete cela me prenait 3 ou 4h par nuit et parfois j'avais des times out. A mon avis il faut un serveur dedié. :cry:
Tu trouveras ici le minimum requis( le lien est en anglais) http://www.gentoo.org/doc/en/rsync.xml
_________________
L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php


Last edited by bouleetbil on Tue Sep 20, 2005 6:47 pm; edited 1 time in total
Back to top
View user's profile Send private message
ghoti
Advocate
Advocate


Joined: 30 Dec 2002
Posts: 3624
Location: Belgium

PostPosted: Tue Sep 20, 2005 4:48 pm    Post subject: Reply with quote

Tudjuuuu, fameux boulot !
Moi je trouve que ça, ça mériterait un titre de veteran ! ;-)
Back to top
View user's profile Send private message
Trevoke
Advocate
Advocate


Joined: 04 Sep 2004
Posts: 4099
Location: NY, NY

PostPosted: Tue Sep 20, 2005 5:10 pm    Post subject: Reply with quote

Oui, ca c'est clair.
TGL, tu passes un mot a un admin? :)
Un titre genre "veteran d'honneur" ou quelque chose.. :)
_________________
Votre moment detente
What is the nature of conflict?
Back to top
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Tue Sep 20, 2005 8:02 pm    Post subject: Reply with quote

@ marvin rouge

Pour le moment si je ne me trompe pas dev-lang/php est encore masqué en tout cas chez moi même apres emerge sync

Code:
!!! All ebuilds that could satisfy "dev-lang/php" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-lang/php-4.3.11-r1 (masked by: ~x86 keyword)
- dev-lang/php-5.0.5-r1 (masked by: ~x86 keyword)
- dev-lang/php-4.4.0-r1 (masked by: ~x86 keyword)
- dev-lang/php-5.0.4-r1 (masked by: ~x86 keyword)


Le paquet mod_php existe toujours donc un emerge mod_php devrait installer php que se soit
Code:
   
dev-lang/php
dev-php/php

Non? :?:

Sinon tes liens m'on envoyé ici : http://svn.gnqs.org/projects/gentoo-php-overlay/file/docs/php-upgrading.html?format=raw qui permet d'installer
C'est un howto pour installer Php
Et y a aussi un post sur bugzilla pour ces nouveaux ebuilds https://bugs.gentoo.org/show_bug.cgi?id=102649
_________________
L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php
Back to top
View user's profile Send private message
marvin rouge
Veteran
Veteran


Joined: 01 Aug 2004
Posts: 1422
Location: Villa Lumierrante, Zonelibre

PostPosted: Tue Sep 20, 2005 8:33 pm    Post subject: Reply with quote

En fait, dans ce post, on peut lire ca:
Quote:
At the heart of these packages is the new dev-lang/php package (which
will replace the existing dev-php/php, dev-php/php-cgi, and
dev-php/mod_php packages)
, and the new dev-php4 and dev-php5 categories
which allow us to provide, and support, PHP extensions and frameworks
that are specific to each version of PHP.

Donc au final, le paquet dev-lang/php va tout remplacer: dev-php/php, dev-php/php-cgi, et dev-php/mod_php. Et a priori, en janvier 2006 la migration (qui est accessible maintenant) sera complète.

Effectivement, je n'avais pas fait attention mais pour l'instant c'est ~arch.
J'etais peut etre un peu hatif sur ce coup la ...
Back to top
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Tue Sep 20, 2005 8:42 pm    Post subject: Reply with quote

Ok c'est bon à savoir
_________________
L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php
Back to top
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Sat Sep 24, 2005 9:01 am    Post subject: Reply with quote

La mise en place d'un serveur jabber est fini.

Pour info j'ai mis à jour apache, et les fichier .htaccess ne sont pas pris en compte par défaut, il faut modifier /etc/apache2/vhosts.d/00_default_vhost.conf pour qu'il ressemble à cela.
Il faut faire cela pour tous les hotes :wink:


Code:

 <Directory "/var/www/localhost/htdocs">

        #
        # Possible values for the Options directive are "None", "All",
        # or any combination of:
        #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
        #
        # Note that "MultiViews" must be named *explicitly* --- "Options All"
        # doesn't give it to you.
        #
        # The Options directive is both complicated and important.  Please see
        # http://httpd.apache.org/docs-2.0/mod/core.html#options
        # for more information.
        #
        Options Indexes FollowSymLinks

        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride All

        #
        # Controls who can get stuff from this server.
        #
        #Order allow,deny
        #Allow from all
      <IfModule mod_access.c>
            Order allow,deny
            Allow from all
          </IfModule>
    </Directory>

_________________
L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum