User Tools

Site Tools


formationsecurite:vpnwindows

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

formationsecurite:vpnwindows [2013/01/30 17:52] (current)
Line 1: Line 1:
 +Annuaire [[LDAP]] améliore la sécurité?
 +Permet le single sign on (SSO).
 +Avant, soit synchronisation par script, soit hacks pas très propres.
  
 +Microsoft pousse au single sign on, ce qui induit plus de sécurité.
 +
 +Si pas de SSO.
 +DC avec AD.
 +member server avec serveur SQL:
 +  * intégré windows (AD)
 +  * pas intégré windows (SAM locale)
 +
 +Je boote, je dois m'​authentifier (avec un serveur [[Windows]]) -> je reçois un token.
 +J'​accède aux shares (avec ACLs et mon token).
 +Je dois accéder à une DB (peu importe le protocole). Soit l'auth permet d'y accéder, soit pas -> je dois de nouveau m'​authentifier -> problème: l'​admin réseau ou sécurité doit gérer 2 DBs: recréer des users, des groupes, etc. Quand un user part, on l'​enlève de la 1ere DB, mais pas de la 2e (on oublie) -> sécurité baisse (et c'est le bordel).
 +
 +Tous les serveurs d'​authentification sont [[Windows]]:​ pour les clients (postes de travail).
 +
 +Ferme: ensemble de serveurs qui fournissent le même type de services. Comment la securiser?
 +Pas à sécuriser.
 +Question: c'est quoi le service?
 +-> architecte réseau: DMZ, ségrégation,​ placer la ferme au bon endroit -> OK
 +Ensuite, sécurité = comment les gens s'​authentifient au service?
 +
 +Comment gérer 200 PCs portables (pas dit qu'ils passent au bureau régulièrement)?​ -> en local (= tu as un problème)
 +
 +
 +
 +On a vu:
 +  * réseau
 +  * sécurité
 +    * login
 +    * sécurisation des accès ressources (shares)
 +    * sécurisation de l'AD
 +
 +Sécurisation intrinsèque + réseau (sorti).
 +cf. la journée sécurité
 +
 +Les 3 jours ici: [[VPN]] = une forme de réseau.
 +Sécurisation réseau -> comment s'​intègrent les VPNs?
 +
 +PKI = public key infrastructure:​
 +  * CA, etc.
 +  * aller un peu plus loin: on va devoir y faire appel pour le réseau
 +  * complexe, mais basé sur un principe: les autorités de certification
 +  * de plus en plus utilisé
 +
 +=== Public Key Infrastructure ===
 +slide 17
 +Toute la sécurisation est basée sur la notion de confiance.
 +On fait confiance à l'​autorité de certification.
 +
 +==== Exemples de vie courante ====
 +Est-ce qu'​internet est sécure? non.
 +Achat chaussures sur le site de Kickers: paiement par Visa.
 +On doit faire confiance à Kickers puisqu'​on leur donne le numéro de carte Visa.
 +
 +Achat jambon Serrano:
 +plein de vendeurs en ligne. Lequel choisir?
 +Fait confiance qu'à un seul: celui qui a un certificat signé par Verisign (les autres, le formateur connaît pas -> pas confiance).
 +
 +Le formateur veut aller en UK avec "carte d'​identité"​ belge (il est espagnol) -> marche pas (pas espace Shengen, il faut un passeport, ou un vraie CI émise par le pays d'​origine du formateur, l'​Espagne).
 +l'Etat est une autorité de certification. Et on lui fait confiance (personne ne contrôle l'​Etat)
 +
 +L'​autorité de certification est une entité à laquelle on va faire confiance.
 +
 +L'​importance dans le PKI: le schéma de confiance: qui fait confiance à qui?
 +Parfois dans un seul sens, parfois réciproque.
 +
 +Qu'​est-ce qu'un certificat?
 +C'est la paire clef publique et clef privée + le fait que c'est associé à quelqu'​un (ou quelque chose).
 +
 +CI ou passeport: c'est rien en soi. Donne des accès, mais lié à qqn: c'est une accréditation.
 +C'est la commune qui délivre les passeports. L'​autorité de certification est la commune = pas tout à fait juste (cf. plus bas).
 +
 +Ces certificats sont stockés dans un endroit (une DB par exemple) = certification publication point.
 +A quoi ça sert de les stocker?
 +Si doute, vérifie que personne existe bien -> DB = point de référence
 +
 +Persona non grata: je peux pas passer la frontière = révocation (dans la certificate revocation list)
 +C'est l'​autorité qui gère la certification revocation list.
 +
 +Le PKI n'est pas utilisable pour tout, que pour les PKI enabled application (application internet).
 +
 +Internet c'est une chambre à air: il y a plein de trous.
 +Il y a des rustines. PKI en est une.
 +
 +EFS [[Windows]]:​ il faut un PKI.
 +Rappel: EFS système d'​encryption de fichier
 +Encrypte des fichiers sur NTFS.
 +On en encrypte (avec une clef symétrique):​ résultat = cyphertext
 +On stocke la clef symétrique dans le DDF data decryption field, et on l'​encrypte avec la clef asymétrique de l'​utilisateur.
 +DRF = data recovery field qu'on ajoute aussi au cyphertext. il contient aussi la clef symétrique,​ encryptée avec la clef asymétrique du recovery agent
 +
 +Dans [[Windows]] XP, c'est pareil mais il n'y a pas de PKI. Donc, l'​autorité de certification c'est soi-même (le PC local).
 +
 +Donc, la clef est dans le système -> si doit récupérer fichier encrypté, il faut aussi le système.
 +Quand on sauvegarde les fichiers encryptés, il faut encrypté le système.
 +
 +Les password dans l'AD sont encryptés avec une clef, qui elle-même est encryptée par une syskey:
 +  * syskey dérivée d'un mot de passe (tape au boot)
 +  * disquette qu'on insère
 +  * registry dont l'​accès est restreint
 +
 +==== Certificate template ====
 +il y a différents types de certificats. template à un ou à plusieurs buts.
 +  * pour serveur web
 +  * pour machine
 +  * pour exchange
 +  * ...
 +==== Certificate authorities ====
 +Au sommet de la hiérarchie:​ le root CA (il se fait confiance à lui-même: il crée son propre certificat)
 +En-dessous: les subordinates CA (le CA root leur donne un certificat):​ plusieurs pour des raisons diverses (ex: géographique).
 +
 +Il y a des règles pour émettre des certificats.
 +
 +Ce qui a été émis (ex: un certificat émis à un client) ne remet pas en cause la confiance au-dessus.
 +
 +Une société crée une hiérachie de confiance.
 +Elle décide de faire un partenariat à une autre société qui a fait pareil.
 +Elles se font confiance mutuellement.
 +Mais si elles ne se font pas confiance, on prend une tierce partie indépendante externe.
 +On construit une nouvelle hiérarchie de confiance basée sur un CA root de la tierce partie.
 +Il faut tout recommencer (redistribuer tous les certificats).
 +
 +Programme bancaire: qui est l'​autorité de certification:​ la banque.
 +Mais c'est la banque qui doit nous faire confiance: accès à mon compte personnel: la banque me fait confiance: c'est bien moi qui utilise le certificat.
 +
 +On va chez Amazon: je donne mon compte Visa: c'est moi qui fait confiace à Amazon.
 +
 +Mettre le root injoignable:​ pour être sûr du root (vérifier).
 +Si on a distribué le certificat du root, on n'a plus besoin de lui.
 +Sauf que les certificats ont une durée de vie limitée, donc on va devoir faire à nouveau appel au root CA.
 +
 +==== Comment obtenir un certificat? ====
 +
 +Monde [[Windows]].
 +
 +Distribution / attribution de certificats
 +
 +===== Online (MS uniquement) =====
 +
 +l'​autorité de certification est joignable -> ouvrir MMC et rajouter un objet certificate -> clic droit -> nouveau certificat
 +on fait une requête de certificat en ligne -> la CA accepte la requête (parce qu'on est authentifié dans windows, le jeton) et on a un popup: "​voilà ton certificat, veux-tu l'​installer?"​ + la CA stocke dans l'AD le certificat émis -> certificat installé (= clefs privée et publique) dans un //protected store// (sur la machine, une smartcard...)
 +    distribution des clefs publiques: dans l'AD: je cherche dans l'AD toto et je peux importer sa clef publique
 +
 +Conclusion: c'est simple d'​utilisation.
 +
 +email: standard basé sur protocole SMTP
 +mail: propriétaire
 +
 +quand on se connecte à un serveur exchange, on peut choisir SMTP ou exchange
 +
 +Problème: quelqu'​un fait 10 certificats pour la même chose
 +solution: enlever l'​accès à la MMC certificate
 +
 +Distribution des certificats:​ via GPO.
 +
 +Certification:​ c'est pas la panacée.
 +  * tu sais ce que fait le produit
 +  * c'est pas pour ça que que tu sais le mettre en oeuvre
 +
 +===== Offline =====
 +Quand on installe un certificat, il faut que ça marche avec des applications non Microsoft -> demande offline.
 +Marche aussi avec des produits MS.
 +
 +Celui qui génère la requête (FW, routeur, webserver) est le client PKI. Génération d'un fichier texte qui est envoyé à la CA (par exemple via un browser avec authentification) et à la sortie, on a un fichier certificat qu'on peut charger dans l'​application.
 +
 +Le client doit installer le certificat du CA.
 +Il faut indiquer où trouver la CRL ou importer la CRL. Ceci permet au firewall de savoir si le portable qui veut se connecter a un certificat révoqué ou non (= est persona non grata ou non).
 +
 +Certificats:​ enterprise (= dans l'AD) ou standalone (= pas dans l'AD). Il faut une bonne raison pour le faire en standalone.
 +
 +
 +=== Installation [[Windows]] 2000 Server ===
 +Ma machine:
 +  * member server
 +  * domaine: domain1.be
 +  * nom machine: ms11
 +  * IP: 10.10.3.3
 +
 +Mettre le DNS du domaine (10.10.3.1) comme domaine.
 +
 +  * rentrer dans le domaine:
 +  My Computer -> click droit -> propriétés -> onglet //Network Properties//​ -> Properties -> member of domain: domain1.be -> OK
 +  * reboot
 +  * s'​enregister auprès du DNS
 +  <​code>​ipconfig /​registerdns</​code>​
 +
 +Pour avoir accès à mon site:
 +<​code>​route add 213.189.176.215 mask 255.255.255.255 10.10.3.250</​code>​
 +
 +Ajouter dans le fichier E:​\WINNT\system32\drivers\etc\hosts:​
 +<​code>​213.189.176.215 callendor.zongo.be
 +83.217.68.100 mail.hellea.be jabber.reseaucitoyen.be</​code>​
 +
 +
 +  * installer //​Certificate Services//
 +  * Créer une MMC avec Certification Authority, ce qui permet de
 +    * révoquer des certificats émis
 +    * voir les certificats émis
 +    * --émettre des certificats--
 +    * policy settings: templates
 +      * il n'y en a pas beaucoup
 +      * on peut en ajouter: policy settings -> click droit -> new -> certificate to issue
 +
 +
 +17/05/2005
 +
 +Comment faire un request online et un request offline
 +
 +=== Online ===
 +
 +==== Methode [[Windows]] ====
 +<​code>​mmc</​code>​
 +add / remove snap-in: certificates snap-in
 +
 +On trouve déjà des certificats émis par lui-même pour l'​administrateur:​ c'est pour l'EFS (le recovery agent).
 +On peut installe des certificats
 +
 +==== Methode traditionnelle ====
 +Avec un browser:
 +URL: site web par défaut de la machine ~/certsrv
 +
 +=== Exercice ===
 +  * root: installer l'​autorité de certification:​ certificat enterprise
 +  * autres machines: demander un certificat pour un user (faire une requête) et l'​installer
 +
 +==== Root ====
 +D'​abord installer IIS:
 +Start -> settings -> control panel -> Add / Remove Programs -> Add / Remove [[Windows]] Components -> IIS (tout)
 +Ensuite, installer les services de certificats:​
 +Start -> settings -> control panel -> Add / Remove Programs -> Add / Remove [[Windows]] Components -> cocher certificates services (tout)
 +(on ne peut plus renommer la machine, OK)
 +Wizard: enterprise root CA + cocher advanced options -> CSP: MS Base Cryptographic Provider; hash: SHA-1; key length: 1024 -> remplir l'​information d'​identification -> sauver ~C:​WINNT\system32\CertLog -> OK
 +
 +Start -> Programs -> Administrative Tools -> Certification Authority: pour voir ceux émis
 +
 +<​code>​mmc</​code>​
 +Add / Remove Snap-in -> Certificates
 +
 +
 +==== Autres machines ====
 +
 +<​code>​mmc</​code>​
 +Add / Remove Snap-in -> Certificates -> manage certificates for my user account
 +Certificates ​ -> Current user -> Personal -> Certificates -> click droit -> all tasks -> request new certificate
 +Erreur: [[Windows]] cannot find a a certification authority that will process the request.
 +
 +Problème: le root CA du domaine n'est pas dans le certificate store:
 +mmc avec certificates:​ Trusted Root Certificates Authorities -> Certificates (Domain 1 CA n'est pas là)
 +Pourquoi?
 +Il faut s'​identifier dans le domaine (j'​étais loggué sur la machine). Sinon pas de trust.
 +Ensuite, il faut soit redémarrer,​ soit réappliquer les security policies (GPO):
 +<​code>​secedit /​refreshpolicy user_policy /​enforce</​code>​
 +
 +Quand on a un problème de troubleshooting,​ il faut chercher la cause, la solution viendra de là (ou ne viendra pas s'il n'y en a pas).
 +
 +Si pas possible d'​avoir le Root CA distribué comme ça, exporter le certificat root, distribuer le root CA par GPO.
 +
 +Surfer sur ~http://​dc11.domain1.be/​certsrv/​
 +S'​identifier comme administrateur -> Request a certificate -> User certificate request -> key strength: 1024 -> rentrer un mot de passe (toto123*) -> cliquer sur "​install this certificate"​
 +Ceci est une requête online.
 +
 +Smart card
 +Smart card: codage
 +  * low assurance: carte vierge, auto-codée -> mauvaise idée: il faut centraliser
 +  * high assurance: il faut centraliser le codage des smart cards (machine dédiée) -> problème: on doit coder la smart card pour qqn d'​autre -> donner le pouvoir -> enrollment agent (il faut donc un enrollment agent certificate)
 +    * attention: choix du module crypto: celui du lecteur de cartes (installé avec drivers)
 +    * activer l'​indentification par smart card: AD [[Users]] & Computers -> user -> click droit -> tab account -> account options -> cocher: smart card is required for interactive logon
 +
 +Pour l'​administrateur,​ on ne peut pas utiliser de smart card.
 +Donc, on doit sécuriser autrement:
 +  * mot de passe (expiration,​ complexité)
 +  * changer le nom de l'​administrateur et faire un bête user administrator
 +
 +Comment retrouver le logon et password de l'​administrateur sachant que les serveurs sont enfermés dans la salle des machines?
 +
 +< 75 machines: outsourcing
 +75-200: un admin
 +~> 200: 2 admins
 +
 +100 machines XP, 4 DC.
 +
 +cache logon: store 
 +
 +Administrateur local d'une machine: quasi jamais désactivé -> on met à blanc le mot de passe
 +on se logge comme admin local, on utilise LCS
 +hash du mot de passe dans ntuser.dat de le profil local de l'​utilisateur
 +Pour sécuriser:
 +  * désactiver l'​administrateur local: problème, si on sort la machine du domaine, on doit le faire en tant qu'​admin du domaine: on remet en workgroup, et plus personne ne peut se logguer sur la machine (guest disabled par défaut, et admin disabled par moi)
 +  * désactiver le cache logon
 +
 +=== Encryption mail ===
 +exchange + SP3 à installer sur ma machine (dual boot, pas l'​install [[VPN]])
 +avec:
 +user1@domain1.be:​ password (mailbox: mailbox1)
 +user2@domaine1.be:​ password (mailbox: mailbox2)
 +
 +
 +== Network Communication Security ==
 +
 +~S/MIME: applicatif
 +SSL (pas un standard) / TLS (un standard, pas les mêmes algorithmes d'​encryption):​
 +
 +=== IIS ===
 +
 +Propriétés du Default Website
 +  * méthodes d'​authentification niveau serveur (pas niveau applicatif):​ l'​applicatif tourne avec les accréditations de l'​utilisateur donné = //​impersonation//​
 +
 +Applications:​ un ou plusieurs process
 +process: morceau d'​application
 +thread: la plus petite unité qu'un process exécute
 +
 +contexte de sécurité pour un service: en général, tourne sous le system account (moins de pouvoir qu'un utilisateur)
 +
 +Si IIS ne demande pas d'​authentification:​ anonymous
 +S'il faut s'​identifier:​ lire page = accès partition NTFS: il faut les droits; exécuter un script: soit impersonation soit avoir logon et passwd dans le code (pas bien): c'est le programmeur qui décide.
 +
 +On émet un certificat dans les propriétés d'IIS.
 +
 +Accès au site en HTTP ou en HTTPS.
 +Si on veut forcer en HTTPS: on désactive l'​HTTP.
 +
 +Dans une application web: si login et password à rentrer: utiliser HTTPS.
 +
 +Quand on fait une connexion en HTTPS, on peut voir le certificat du serveur.
 +Mais le client, on sait pas qui c'est.
 +On peut mettre comme configuration dans IIS que l'​utilisateur doit présenter un certificat.
 +Conclusion: on se retrouve dans un canal sécurisé avec les 2 bouts qui se sont authentifiés = bon niveau de sécurité
 +
 +=== Exchange 2000 ===
 +Sur l'​install SecuriteWindows,​ installer exchange 2000, créer 2 utilisateurs dans l'AD: user1 et user2 et leur faire une boîte email.
 +Sur une autre machine d'un autre domaine, on génère les certificats user pour user1 et user2 pour permettre l'​encryption et la signature.
 +
 +user1 veut envoyer une email encrypté à user2
 +  * chercher user2, l'​ajouter à l'​address book
 +  * envoyer un email encrypté
 +  * user2 va voir sa boîte et voir un email encrypté, il est le seul à pouvoir le lire
 +  * voir le mail encrypté: le copier, le coller sur le bureau et l'​ouvrir dans notepad
 +
 +-> les certificats n'ont rien à voir avec le serveur
 +
 +Le gros avantage [[Windows]],​ c'est que c'est super facile de retrouver l'​utilisateur et son certificat (clef publique) parce qu'il sont publiés dans l'AD.
 +
 +
 +=== Exercice ===
 +Exercice 1:
 +Les 2 member serveurs sont utilisés par l'​utilisateur admin et ont généré un certificat utilisateur.
 +On a 2 DCs avec IIS:
 +  * activer SSL
 +  * require client certificate
 +    * tester avec le certificat local
 +    * virer le certificat local et réessayer
 +Exercice 2:
 +  * installer IIS sur les member servers
 +  * faire une requête offline
 +Exercice 3:
 +  * créer sur l'​unique serveur Exchange de la classe user3, 4 -> 8 @domain1.be (mot de passe: password) avec une mailbox
 +  * écrire des emails encryptés, les envoyer, les réceptionner et les lire
 +
 +Exercice 1:
 +Je suis member server.
 +Certificat:
 +<​code>​mmc</​code>​
 +Certificates - Current User -> Personal -> click droit -> all task -> request new certificate -> wizard -> template: user -> install -> OK.
 +
 +Ensuite, on peut surfer sur https://​dc11.domain1.be/​ avec MSIE. Avec Firefox, il faut d'​abord importer le client certificate manuellement.
 +Le site par défaut de dc11.domain1.be requiert HTTPS et une authentification windows.
 +Si on supprime le certificat, il n'y a plus moyen de surfer sur le site.
 +
 +Exercice 2:
 +Installer IIS: Start -> [[Settings]] -> Control Panel -> Add / Remove Programs -> Add / Remove [[Windows]] Components -> sélectionner IIS -> Details -> sélectionner WWW Server (le dernier)
 +Configurer IIS: Start -> Programs -> Administrative Tools -> Internet Information Services
 +ms11 -> Default Website -> click droit -> propriétés
 +onglet Directory Security -> bouton Server Certificate -> create certificate -> prepare the request now, send it later
 +clef 1024 bits
 +sauver la requête: E:​\certreq.txt
 +Regénérer un certificat comme au début de l'​exercice 1.
 +Aller sur ~https://​dc11.domain1.be/​certsrv/​ (il faut s'​être authentifié comme administrator pour pouvoir faire une demande de certificat de type webserver, donc il faut que sur ce site de ce serveur anonymous soit désactivé)
 +Request a certificate -> advanced -> Submit a certificate request using a base64 encoded PKCS #10 file or a renewal request using a base64 encoded PKCS #7 file -> copier le contenu de E:​\certreq.txt et le coller dans la text area //Saved Request// -> submit -> Download CA Certificate -> **ne pas double-cliquer sur certnew.cer qu'on vient de sauver**
 +Retourner dans les propriétés du Default Website dans IIS: onglet Directory Security -> bouton Server Certificate -> Process pending request and install the certificate -> retrouver certnew.cer (sur le bureau) et l'​installer
 +
 +onglet Directory Security -> Secure Communication -> Edit -> Require Secure Channel (SSL)
 +Ensuite, il faut créer une page default.htm dans ~E:​\Inetpub\wwwroot
 +
 +Exercice 3:
 +Je suis le serveur email, je crée les users user3 à user8 dans l'AD et je leur crée une boîte.
 +Les autres créent les utilisateurs dans leur AD et se connectent avec Outlook Express.
 +Après avoir généré les certificats,​ ils importent les certificats (les clefs publiques) en ajoutant l'​utilisateur dans l'​address book.
 +Ensuite, envoi d'​emails encrypté et signé et ouverture pas le récipiendaire.
 +
 +=== Offline === 
 +Exporter le certificat (format texte).
 +Surfer sur http://​dc11.domain1.be/​certsrv/​
 +Envoyer la requête sur le serveur web
 +Sur le serveur web, installer le certificat dans IIS.
 +...
 +
 +
 +== [[VPN]] ==
 +
 +[[VPN]] = encrypté **FAUX**
 +
 +Faire un réseau privé à travers un tunnel qui passe par un réseau public.
 +Problèmes:
 +  1. confidentialité -> encryption
 +  2. intégrité:​ si qqn capture, change et envoie: problème
 +  3. non repudiation:​ l'​utilisateur / l'​ordinateur qui essaie de rentrer dans le réseau privé: il doit s'​authentifier (on doit être sûr que c'est bien lui)
 +
 +=== Historique ===
 +Dans le temps, les besoins étaient simples: une société veut connecter ses différents sites puisque c'est une seule entité.
 +Problèmes: Internet: 1980. Les besoins des sociétés sont antérieures. Jusqu'​au début des années 90, pas le choix: ligne louée chez gros providers. Ligne louée: liaison point à point entre 2 sites. Très coûteux.
 +Internet = les gros providers (colt, AT & T, Belgacom...)
 +Les gros ISP ont construits des backbones; autant les utiliser pour remplacer les lignes louées.
 +[[VPN]] des providers = MPLS (frame relay)
 +Plus du point à point, mais une BP garantie, personne ne peut la lire (pas encrypté, passe par le réseau privé des providers) et qu'​elle arrivera à bon port,  etc. Jusqu'​au début des années 2000, c'​était comme ça.
 +Scindé: connectivité et l'​aspect [[VPN]]. Toujours très coûteux.
 +free internet en dialup: 1998
 +1998-99, début du l'​idée du télé-travail. Soit ISDN, soit MPLS avec un accès rapide qui se connecte dessus (ex: chez Belgacom: Bilan).
 +2000-2002: les providers avaient le monopole des VPNs.
 +Ensuite, arrivé du broadband et du [[VPN]] IP: créer un tunnel encrypté sur IP (IP SEC) et donc les providers sous-jacents importent peu.
 +Ca a fait mal aux ISPs: "chez nous, ça marche. Qui garantit qu'en passant n'​importe où c'est secure?"​
 +En 2002-2003, les ISPs sont passés au [[VPN]] IP, ils ont bien dû faire le saut.
 +Le seul dénominateur commun: internet. On crée des tunnels encryptés entre les sites.
 +Avantage:
 +  * indépendance
 +Inconvénients:​
 +  * si besoin de qualité de service, bof
 +    * quand on garanti 2 ~Mb/s, c'est juste sur le backbone du provider; une fois dehors, plus de garantie -> si on utilise plusieurs providers, pas de garantie de BP
 +    * solution: prendre le même ISP: je veux accès backbone entre les différents sites -> pareil qu'​avant,​ mais beaucoup moins cher
 +
 +Actuellement,​ les ISPs essayent de refourguer le MPLS d'une manière ou d'une autre.
 +Avantage d'​MPLS:​ énormément d'​implémentations,​ et gestion en externe (par le FAI).
 +
 +Les lignes louées sont appelées disparaître.
 +SDSL:  2 ~Mb/s max
 +
 +Qu'​est-ce qu'un VLAN?
 +802.1.Q: tagging
 +Quand on a une trame, elle est taggée "​VLAN1"​. Elle est routée sur un switch.
 +On sécurise en séparant (segmentant) les connexions.
 +Pour les connexions confidentielles,​ on va devoir sécuriser (encryption):​ IPSEC. Ex: machine du comptable
 +Chez Microsoft: IPSEC policies
 +
 +Bien comprendre que [[VPN]] et VLAN, c'est différent.
 +VLAN = interne: dans un LAN (dans un réseau privé)
 +[[VPN]] = externe: dans un réseau public (ex: internet), tout le trafic passe par un tunnel (tout les applicatifs)
 +
 +
 +=== IPSEC ===
 +slide 33
 +  * AH: authentication header: rajoute un header avec signature du paquet
 +    * le système est intègre (si contenu modifié, le header ne correspond plus)
 +    * on ne peut rien modifier dans le header: pas de spoofing
 +    * on ne peut pas relancer (replay) un paquet
 +    * résolu tous les problèmes de sécurité sauf confidentialité
 +    * transport mode (traditionnel)
 +    * tunnel mode (toujours pas encrypté)
 +  * ESP
 +    * on rajoute un tag ESP, un header, un trailer, on encrypte et on signe, et on met un nouveau header
 +    * pas de spoofing (header encrypté)
 +    * changement entre nouveau header et header encrypté: ​
 +    * transport mode (peu utilisé)
 +    * tunnel mode (le plus courant)
 +  * NAT fait du PAT (port address translation) -> pas utiliser IPSEC
 +  * 2001 (draft -> RFC): IPSEC NAT-T (T pour traversal): tout encapsuler dans paquet UDP
 +    * on ne peut tranverser qu'un seul NAT, sauf si on mappe port à port entre les 2 NATs (pas de PAT): devices du type NAT-T
 +
 +==== MS IPSEC Policies ====
 +Chez MS, il y a des policies (machines) pré-existantes. Nous allons les voir.
 +===== Machine par machine=====
 +TCP / IP -> Advanced -> Options -> IP Security
 +  * type d'​IPSEC
 +  * façon de s'​authentifier
 +    * certificats
 +    * pre-shared keys
 +    * kerberos: choix de MS: toute machine dans un domaine fait partie d'un realm kerberos
 +      * pas de canal sécurisé qui pas dans le domaine
 +      * facile d'​utilisation (pas de certificat à émettre, pas de clef à partager)
 +  * client: reçoit une demande de canal sécurisé, pas initiateur
 +  * serveur: initie une demande de canal sécurisé
 +  * secure server: demande toujours du sécurisé
 +
 +===== Globalement:​ GPO =====
 +On peut créer des GPOs soi-même.
 +
 +Pour créer un tunnel, on utilise 2 algorithmes:​ un fort, et un moins fort comme failover.
 +
 +Problème: on crée une règle IPSEC, on déploie, et puis ça foire: il y a des machines qui ne communiquent plus -> il faut aller manuellement sur toutes les machines désactiver ou corriger. Donc, tester avant (de préférence en labo, même si on n'en n'a pas souvent à disposition).
 +
 +==== Exercice ====
 +Member server (moi): client IPSEC
 +DC (Dimitri): server request
 +  * MS ping DC
 +  * accès au share du DC
 +
 +Pareil avec DC en server require
 +Chacun utilise IPSEC Mon (monitor) pour voir ce qui se passe.
 +
 +<​code>​ipsecmon</​code>​
 +
 +My Network Places -> click droit -> properties -> Local Area connexion -> click droit -> properties -> ~TCP/IP -> Properties -> Advanced... -> tab Options -> IP Security -> Properties -> use this IP security policy -> client
 +
 +Dimitri fait pareil mais au lieu de client, il met Server (request).
 +
 +<​code>​E:​\>​ping 10.10.3.1
 +
 +Pinging 10.10.3.1 with 32 bytes of data:
 +
 +Reply from 10.10.3.1: bytes=32 time<​10ms TTL=128
 +Reply from 10.10.3.1: bytes=32 time<​10ms TTL=128
 +Reply from 10.10.3.1: bytes=32 time<​10ms TTL=128
 +Reply from 10.10.3.1: bytes=32 time<​10ms TTL=128
 +
 +Ping statistics for 10.10.3.1:
 +    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
 +Approximate round trip times in milli-seconds:​
 +    Minimum = 0ms, Maximum =  0ms, Average =  0ms</​code>​
 +
 +Share:
 +<​code>​iexplore</​code>​
 +path: \\DC11
 +J'ai accès aux shares.
 +
 +Dimitri change: il met Server (require)
 +<​code>​E:​\>​ping 10.10.3.1
 +
 +Pinging 10.10.3.1 with 32 bytes of data:
 +
 +Reply from 10.10.3.1: bytes=32 time<​10ms TTL=128
 +Reply from 10.10.3.1: bytes=32 time<​10ms TTL=128
 +Request timed out.
 +Request timed out.
 +
 +Ping statistics for 10.10.3.1:
 +    Packets: Sent = 4, Received = 2, Lost = 2 (50% loss),
 +Approximate round trip times in milli-seconds:​
 +    Minimum = 0ms, Maximum =  0ms, Average =  0ms</​code>​
 +
 +Share:
 +<​code>​iexplore</​code>​
 +path: ~\\DC11
 +J'ai toujours accès aux shares.
 +
 +Quand on envoie des paquets ICMP (ping), ça ne passe pas dans le tunnel.
 +Donc, avec serveur request, c'est possible; avec server require, ça ne passe pas.
 +
 +Explication:​ Start -> Programs -> Administrative Tools -> Group Policies
 +
 +Il faut être séquentiel dans la manière de mettre en oeuvre.
 +
 +Exemple: si pas accès au share: ça peut être parce qu'on a plus de ticket Kerberos parce qu'il ne trouve plus le KDC (donné par le DNS = trafic IP).
 +
 +S'​assurer qu'un serveur peut accéder aux ressources dont il a besoin -> planifier
 +
 +La partie [[VPN]] de [[Windows]] se configure dans le RAS (Remote Access Security).
 +
 +=== Routing and Remote Access Security ===
 +En 2003, pareil qu'en 2000 (sauf pour NAT-T est natif en 2003).
 +Routing en NT4: IP forwarding.
 +Avec NT4: RAS (Remote Access Security) = dialup
 +dialup et routing: c'est pareil -> RAS = Routing and Remote Access Security
 +Dialup: accès distant à travers un lieu permanent = [[VPN]] (on ajoute)
 +Routing: inclus le NAT
 +En NT4: dialing oui ou non, ensuite callback ou pas?
 +
 +Remote Access Permission (Dial-in or [[VPN]]): 3 options:
 +  * allow access
 +  * deny access
 +  * Control access through Remote Access Permission -> disponible en 2000 natif uniquement (c'est nouveau)
 +    * conditions (accès par ADSL, appartenance à tel groupe): cherche matching (le premier) et applique le profil correspondant
 +    * permissions
 +    * profil
 +  ~-> gestion fine du RAS
 +
 +=== Comment mettre en place le routage? ===
 +
 +Conseil d'ami: utiliser le wizard, puis corriger à la main.
 +
 +==== Installer le driver de la carte ethernet ====
 +  * chercher sur CD-ROM, cocher en bas à gauche
 +  * sélectionner le driver pour [[Windows]] XP
 +
 +RAS installé, il faut juste le configurer.
 +
 +==== Configurer RAS pour le routage ====
 +Start -> Program -> Administrative Tools -> Routing and Remote Access
 +Server -> Click droit -> Configure and Enable Routing and Remote Access -> Wizard -> choisir le profil désiré (ici routeur)
 +
 +Routeur: machine avec plusieurs ports de plusieurs subnet différents qui prend les paquets venant d'un subnet et les envoie sur un autre subnet.
 +
 +Teaming: cartes qui fonctionnent ensemble (redondance):​ si une carte tombe, l'​autre continue à travailler.
 +
 +Pour chaque interface réseau, on peut ajouter des règles de filtrage (= ACL chez Cisco): les input / output filters.
 +
 +NAT est considéré par MS comme un protocole de routage.
 +
 +On peut aussi rajouter des routes statiques, mais en règle générale, il vaut mieux le faire avec la commande
 +<​code>​route</​code>​
 +
 +==== Exercice ====
 +[[R]]éaliser la topologie suivante:
 +
 +http://​callendor.zongo.be/​wiki/​images/​ex_routage.png
 +
 +==== Routage ====
 +Sur DC11 (+activer le routage):
 +<​code>​route add 10.10.3.0 mask 255.255.255.0 10.10.2.2
 +route add 10.10.4.0 mask 255.255.255.0 10.10.2.4
 +route add 10.10.5.0 mask 255.255.255.0 10.10.2.4
 +route add 0.0.0.0 mask 0.0.0.0 10.10.2.2</​code>​
 +
 +Sur DC12 (+activer le routage):
 +<​code>​route add 10.10.1.0 mask 255.255.255.0 10.10.2.1
 +route add 10.10.4.0 mask 255.255.255.0 10.10.2.4
 +route add 10.10.5.0 mask 255.255.255.0 10.10.2.4
 +route add 0.0.0.0 mask 0.0.0.0 10.10.3.2</​code>​
 +
 +Sur DC21 (+activer le routage):
 +<​code>​route add 10.10.1.0 mask 255.255.255.0 10.10.2.1
 +[route add 10.10.3.0 mask 255.255.255.0 10.10.2.2]
 +route add 10.10.5.0 mask 255.255.255.0 10.10.4.2
 +route add 0.0.0.0 mask 0.0.0.0 10.10.2.2</​code>​
 +
 +Sur DC22 (+activer le routage):
 +<​code>​[route add 10.10.1.0 mask 255.255.255.0 10.10.4.1]
 +[route add 10.10.4.0 mask 255.255.255.0 10.10.4.1]
 +[route add 10.10.3.0 mask 255.255.255.0 10.10.4.1]
 +route add 0.0.0.0 mask 0.0.0.0 10.10.4.1</​code>​
 +
 +Sur MS11:
 +<​code>​route add 0.0.0.0 mask 0.0.0.0 10.10.1.2</​code>​
 +
 +Sur MS21:
 +<​code>​route add 0.0.0.0 mask 0.0.0.0 10.10.2.2</​code>​
 +
 +Sur MS22:
 +<​code>​route add 0.0.0.0 mask 0.0.0.0 10.10.5.1</​code>​
 +
 +Sur MS12:
 +<​code>​route add 10.10.1.0 mask 255.255.255.0 10.10.3.1
 +route add 10.10.2.0 mask 255.255.255.0 10.10.3.1
 +route add 10.10.4.0 mask 255.255.255.0 10.10.3.1
 +route add 10.10.5.0 mask 255.255.255.0 10.10.3.1</​code>​
 +
 +==== Internet ====
 +Connecter le switch à la prise murale
 +Sur MS12:
 +<​code>​route add 0.0.0.0 mask 0.0.0.0 10.10.3.250</​code>​
 +
 +Ca marche pas: il faut du NAT
 +Donc, il faut 2 interfaces réseau (on ne peut pas faire du NAT sur 1 carte avec 2 IP) et 2 subnets différents.
 +Comme on doit garder 10.10.3.0 pour aller vers l'​internet (puisqu'​on ne peut pas changer 10.10.3.250),​ il faut changer ​
 +
 +10.10.3.0 en 10.10.6.0 dans le réseau interne, et donc changer les routes dans les routeurs.
 +
 +Sur DC12:
 +Changer l'​interface 10.10.3.1 en 10.10.6.1
 +
 +Sur MS12:
 +Changer l'​interface 10.10.3.2 en 10.10.6.2
 +
 +Effacer les routes avec 10.10.3.0 sur les routeurs:
 +Ex: sur DC11:
 +<​code>​route delete 10.10.3.0 mask 255.255.255.0 10.10.2.2</​code>​
 +
 +Sur DC11 (+activer le routage):
 +
 +<​code>​route add 10.10.6.0 mask 255.255.255.0 10.10.2.2
 +route add 10.10.4.0 mask 255.255.255.0 10.10.2.4
 +route add 10.10.5.0 mask 255.255.255.0 10.10.2.4
 +route add 0.0.0.0 mask 0.0.0.0 10.10.2.2</​code>​
 +
 +Sur DC12 (+activer le routage):
 +<​code>​route add 10.10.1.0 mask 255.255.255.0 10.10.2.1
 +route add 10.10.4.0 mask 255.255.255.0 10.10.2.4
 +route add 10.10.5.0 mask 255.255.255.0 10.10.2.4
 +route add 0.0.0.0 mask 0.0.0.0 10.10.6.2</​code>​
 +
 +Sur DC21 (+activer le routage):
 +<​code>​route add 10.10.1.0 mask 255.255.255.0 10.10.2.1
 +[route add 10.10.6.0 mask 255.255.255.0 10.10.2.2]
 +route add 10.10.5.0 mask 255.255.255.0 10.10.4.2
 +route add 0.0.0.0 mask 0.0.0.0 10.10.2.2</​code>​
 +
 +Sur DC22 (+activer le routage):
 +<​code>​[route add 10.10.1.0 mask 255.255.255.0 10.10.4.1]
 +[route add 10.10.4.0 mask 255.255.255.0 10.10.4.1]
 +[route add 10.10.6.0 mask 255.255.255.0 10.10.4.1]
 +route add 0.0.0.0 mask 0.0.0.0 10.10.4.1</​code>​
 +
 +Sur les routeurs, si on change quelque chose dans la configuration de l'​adressage IP, il faut arrêter et redémarrer le service RAS.
 +
 +Sur MS 12, arrêter le routage et redémarrer le RAS, mais choisir NAT (network address translation) plutôt que routage réseau.
 +
 +==== Remarques ====
 +metric: poids: plus metric est grand, plus la priorité est faible
 +
 +Quand on active un protocole dynamique, on ne contrôle plus la propagation des routes -> les routes internet peuvent sortir à l'​extérieur.
 +
 +Troubleshooting:​
 +  * pas faire essai / erreur
 +  * quand on a une erreur: s'​arrêter et réfléchir:​ appliquer la logique
 +
 +=== [[VPN]] ===
 +Topologies:
 +  * gateway to gateway: 2 réseaux avec chacun une situation géographique. Faire un tunnel avec adressage public, et à l'​intérieur,​ on a les données avec les adresses privées.
 +  * client to gateway: pour le télétravail:​ employé se connecte au réseau
 +  * gateway mesh: 3+ sites interconnectés en nuage
 +Le gateway ne peut pas être une "​bête"​ machine, ça doit être un firewall.
 +
 +  * PPTP (couche 2 OSI): point to point tunneling protocol: par Microsoft
 +    * avantage (avant NAT-T): peut traverser NAT
 +    * steps
 +      * PPP connection & communication
 +      * PPTP control connection
 +      * PPTP data tunneling / data transmission
 +    * authentification (faible): login + password
 +      * ajouter des policies (numéros d'​appel,​ etc.)
 +  * ~L2TP/IPSec + ajouter NAT-T en 2000
 +    * configuration que PPTP sauf qu'il y a les certificats en plus
 +    * origine: PPTP (MS) et L2TF (Cisco)
 +    * IPSEC ESP (transport mode)
 +    * basé sur certificats machine -> PKI, root CA, etc. mais on peut choisir ce qu'on fait
 +    * traverse pas NAT (sauf avec NAT-T, un NAT)
 +    * steps
 +      * phase 1
 +        * SA avec 3DES-SHA1-DH2
 +        * authentification
 +    * ports:
 +      * UDP 500 pour IKE
 +      * UDP 1701 pour L2TP
 +      * IP protocol 50 pour IPSEC ESP
 +  * Encryption
 +    * L2TP: 3DES
 +    * IKE (Internet Key Exchange) avec algorithmes:​ 3DES avec SHA-1, DH Group 2 (1024 bits) [DH = Diffie-Hellman]
 +
 +Interopérabilité possible, mais c'est mieux en général de bosser tout de la même marque (sinon risque de problème matching paramètres client / serveur).
 +Si on choisit Microsoft, il vaut mieux un firewall Microsoft: ISA. Pas recommandé en général car: PPTP trop basse sécurité et sinon il faut IPSEC avec donc PKI.
 +Avec Netscreen, il y a un soft client (pour tous les paramètres),​ mais il ne tourne que sous [[Windows]].
 +Si on veut un autre OS, il faut trouver un soft pour paramètrer (MCG l'a fait pour un portable MAC).
 +
 +Avec IPSEC, c'est plus sûr: il faut un certificat. Avec PPTP, login password et c'est bon.
 +
 +Start -> Programs -> Administrative Tools -> Routing and Remote Access
 +Configure and enable RRAS -> [[VPN]] serveur -> connexion internet (4) -> IP internes (privées): soit DHCP, soit range, soit range et serveur distribue (dans ce cas, le serveur prend une IP du range pour lui par tunnel, donc prévoir une en plus) -> radius? non si AD ([[LDAP]] utilisé pour s'​authentifier)
 +
 +En client to gateway, pour chaque client, il faut 2 IPs privées.
 +
 +ON peut configurer
 +  * procédure d'​authentification
 +  * 
 +
 +On peut créer des policies avec un profil (si on est en mode natif).
 +N.B: dans l'AD [[Users]] & Computers, il faut que l'​utilisateur puisse faire du dial-in.
 +
 +Client:
 +Créer une nouvelle connexion, choisir connexion [[VPN]], on peut choisir le type d'​authentification,​ le type de [[VPN]] (pas laisser en automatic, choisir PPTP ou ~L2TP/​IPSEC)
 +
 +  * creation tunnel
 +  * authentifie
 +  * peu commencer à travailler
 +
 +Problème des VPNs Microsoft: tout le trafic est redirigé dans le tunnel, donc par exemple, plus possible de surfer en local.
 +
 +=== Exercice ===
 +
 +http://​callendor.zongo.be/​wiki/​images/​ex_routage.png
 +
 +Faire 2 tunnels entre les MS et les DC
 +==== PPTP client to gateway ====
 +
 +D'​abord,​ les machines clientes (member servers pour l'​exercice,​ soit MS11 et MS12) doivent faire une requête de certificat auprès de 
 +
 +l'​autorité de certification du domaine (DC11).
 +
 +<​code>​mmc</​code>​
 +Add snap-in -> certificates -> manage certificates for computer
 +Console Root -> Certificates -> Personal -> click droit -> All tasks... -> request new certificate -> template: computer -> OK
 +
 +Ensuite, désactiver le routage sur les DCs et le NAT sur MS12.
 +
 +Le client peut établir sa connexion [[VPN]].
 +
 +My Network Places -> Properties -> make new connection
 +Ça marche pas (Connect to a private network through the internet est en grisé) parce que mon utilisateur n'est pas autorisé à faire de 
 +
 +dial-in.
 +
 +AD [[Users]] & Computers -> [[Users]] -> sélectionner l'​utilisateur -> click droit -> propriétés -> onglet dial-in -> allow (puisqu'​on est dans un 
 +
 +domaine mixte, on ne peut pas faire autre chose que allow ou deny)
 +
 +Ça marche toujours pas (toujours grisé).
 +En enlevant le DNS secondaire (194.7.1.4),​ ça marche.
 +
 +Dans les propriétés de la connexion [[VPN]] -> onglet Type of [[VPN]] server I am calling: PPTP
 +
 +Si on lance ipsecmon, on voit qu'il n'y a pas de paquets IPSEC qui passent:
 +<​code>​ipsecmon</​code>​
 +
 +Regarder l'IP reçue:
 +<​code>​ipconfig</​code>​
 +Faire un ping sur l'IP que l'​autre MS a reçu:
 +<​code>​E:​\>​ping 10.10.2.162
 +
 +Pinging 10.10.2.162 with 32 bytes of data:
 +
 +Reply from 10.10.2.162:​ bytes=32 time<​10ms TTL=126
 +Reply from 10.10.2.162:​ bytes=32 time<​10ms TTL=126
 +Reply from 10.10.2.162:​ bytes=32 time<​10ms TTL=126
 +Reply from 10.10.2.162:​ bytes=32 time<​10ms TTL=126
 +
 +Ping statistics for 10.10.2.162:​
 +    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
 +Approximate round trip times in milli-seconds:​
 +    Minimum = 0ms, Maximum =  0ms, Average =  0ms</​code>​
formationsecurite/vpnwindows.txt · Last modified: 2013/01/30 17:52 (external edit)