Chapitre 1 : Introduction
Le développement informatique nécessite des connaissances transverses pour mener à terme un projet.
Ce livre est exhaustif, il vous permettra de découvrir certaines de ses connaissances,
garder cependant à l'esprit que chaque discipline a ses spécialités et que vous ne pourrez pas les
maitriser
toutes à la fois.
Pour développer, il faut un support physique, notre serveur. Son adresse IP sera liée à un nom de
domaine.
C'est lui qui stockera le code via un gestionnaire de version.
Il hébergera également un serveur ssh pour sécuriser les accès et un serveur mail pour le support client
ou pour échanger au sein de l'équipe.
Ce serveur permettra également d'exécuter les logiciels en cours de développement pour les tester et d'exposer un serveur web de suivi de tâches pour l'équipe.
Chapitre 2 : Les serveurs
Il existe une multitude de types de serveurs, autant que de services linux.
Les services peuvent être réunis sur le même serveur ou bien être dispatchés sur plusieurs.
On distinguera en particulier les serveurs de types mail, versioning, web, time, ssh, ftp, base de
données
et orchestrateur.
Adresse IP et DNS
-
Un serveur sur le réseau est défini par un protocole internet IP qui consiste en un ensemble de
règles de routage et d'adressage de paquets.
Deux versions sont disponibles simultanément, IPv4 et IPv6.
IP met à disposition une multitude de ports pour séparer les canaux de communication entre les process.
Le serveur possède également une boucle réseau interne isolée nommée localhost, utilisée pour le loopback. -
Les adresses IP peuvent être liées à des noms de domaine pour une lecture plus compréhensible.
Exemple : 172.253.117.136 et google.com
Lorsque vous tapez une url, celle-ci transite en clair jusqu'au serveur DNS (domain name server) qui se charge de la transformer en adresse IP.
Clairement, en `sniffant` un réseau, on ne peut pas accéder au contenu des pages https que vous consultez, car elles sont sécurisées, mais la requête au serveur DNS, elle, permet de savoir quel site vous avez visité !
Le nom de domaine permet de stocker la configuration des différents types de serveur.
Il est donc primordial de le configurer avec précision, la qualité de service comme le mailing est
grandement
impactée par cette déclaration.
Configuration DNS
Pour obtenir un DNS, il faut l'acheter via un registar, s'il est disponible, sinon il faut contacter son propriétaire. Par exemple translucid.fr comme nom de domaine. On pourra déclarer des sous domaines dans la configuration DNS comme mail.translucid.fr par exemple.
Il faut ensuite configurer ses enregistrements :- le domaine ou sous domaine d'application
- le type d'enregistrement
- le ttl (time to live )
- la configuration spécifique
Enregistrements types
- A : Associe un nom de domaine à une adresse IPv4. example.com → 192.0.2.1
- AAAA : Associe un nom de domaine à une adresse IPv6. example.com → 2001:0db8::1
- CNAME : Crée un alias pour un autre nom de domaine (doit pointer vers un nom, pas une IP). www.example.com → example.com
- MX : Contient des informations textuelles, souvent utilisées pour la vérification ou la sécurité. v=spf1 include:_spf.example.com ~all
Enregistrements avancés
- NS : Définit les serveurs de noms autoritaires pour un domaine. example.com → ns1.example-dns.com
- SOA : Contient des informations sur la zone DNS (serveur primaire, contact, etc.). example.com → ns1.example-dns.com admin.example.com 1 3600 1800 604800 86400
- PTR : Utilisé pour la résolution inverse (associe une IP à un nom de domaine). 192.0.2.1 → example.com
- SRV : Spécifie un serveur pour un service particulier (ex : VoIP, XMPP). _sip._tcp.example.com → sipserver.example.com:5060
- CAA : Autorise les autorités de certification à émettre des certificats SSL pour le domaine. example.com → letsencrypt.org
Enregistrement de sécurité
- DKIM : Utilisé pour l’authentification des emails (clé publique). selector._domainkey.example.com → "v=DKIM1; k=rsa; p=..."
- DMARC : Définit la politique de gestion des emails non authentifiés. _dmarc.example.com → "v=DMARC1; p=reject; rua=mailto:admin@example.com"
- SPF : Spécifie les serveurs autorisés à envoyer des emails pour le domaine. example.com → "v=spf1 include:_spf.example.com ~all"
Enregistrements spécifiques
- CERT : Stocke des certificats (ex : PGP, SSL). example.com → certificat SSL
- DNSKEY : Utilisé pour la sécurité DNSSEC (clé publique de la zone). example.com → clé DNSSEC
- NAPTR : Utilisé pour la résolution de services (ex : ENUM pour la téléphonie). example.com → "100 10 \"U\" \"E2U+sip\" \"!^.*$!sip:info@example.com!\" ."
Configuration SSH
Contenu sur la configuration SSH...
Configuration Mail
Postfix et Dovecot sont deux outils extrêmement populaires et robustes pour gérer un serveur mail sous Linux. Ils gèrent l'envoi et la réception de mails.
Postfix (MTA - Mail Transfer Agent)
- Rôle : Gère l’envoi et la réception des emails (SMTP).
- Avantages :
- Sécurité : Conçu pour être sécurisé par défaut (moins de vulnérabilités que Sendmail).
- Performance : Léger et optimisé pour gérer un grand volume d’emails.
- Modularité : Facile à configurer et à étendre avec des modules (ex : filtrage anti-spam, chiffrement TLS).
- Compatibilité : Fonctionne bien avec d’autres outils (SpamAssassin, ClamAV, etc.).
- Cas d’usage :
- Envoi/reception d’emails entre serveurs (SMTP).
- Intégration avec des bases de données (MySQL, PostgreSQL) pour gérer les domaines et utilisateurs virtuels.
Dovecot (MDA - Mail Delivery Agent / IMAP/POP3)
- Rôle :
- Gère la livraison locale des emails et permet aux utilisateurs d’y accéder via IMAP/POP3.
- Avantages :
- Stabilité : Très fiable, même sous charge élevée.
- Sécurité : Prise en charge native du chiffrement (SSL/TLS) et de l’authentification sécurisée.
- Flexibilité : Supporte les boîtes aux lettres au format Maildir ou mbox, ainsi que les quotas, les filtres (Sieve), et la réplication.
- Performance : Optimisé pour les accès simultanés (idéal pour les webmails ou les clients mobiles).
- Cas d’usage :
- Accès aux emails via IMAP/POP3 (ex : Thunderbird, Roundcube, smartphones).
- Stockage et gestion des emails sur le serveur.
Points forts de cette combinaison
- Sécurité renforcée :
- Postfix et Dovecot supportent tous deux le chiffrement TLS pour les connexions SMTP, IMAP et POP3.
- Intégration facile avec des outils comme Fail2Ban pour bloquer les attaques par brute force.
- Gestion des utilisateurs virtuels :
- Tu peux utiliser une base de données (MySQL, PostgreSQL) pour gérer les comptes email, ce qui est pratique si tu héberges plusieurs domaines ou utilisateurs.
- Anti-spam et anti-virus :
- Postfix peut être couplé avec SpamAssassin (filtrage des spams) et ClamAV (détection de virus).
- Dovecot peut utiliser des plugins comme Pigeonhole pour appliquer des filtres côté serveur (ex : tri automatique des emails).
- Scalabilité :
- Postfix gère efficacement le routage des emails, même pour un grand nombre de domaines.
- Dovecot est optimisé pour les accès simultanés, ce qui est crucial si tu as beaucoup d’utilisateurs.
- Intégration avec d’autres services :
- Tu peux ajouter un webmail comme Roundcube ou RainLoop pour une interface utilisateur moderne.
- Compatible avec des outils de sauvegarde (ex : BorgBackup, rsync) pour sécuriser les données.
Configuration Git
Contenu sur la configuration Git...
Configuration Web
Contenu sur la configuration Web...
Chapitre 3 : Les langages par le typage
Contenu du chapitre 3...
Chapitre 4 : Les outils de développement
Contenu du chapitre 4...