2013 Linux : Réseaux ADMINISTRATION DES RESEAUX LINUX OLIVIER D.
Table des matières 1 Construire le réseau... 3 2 Installer les services d infrastructure réseau... 8 3 Samba : le service de partage Microsoft... 11 4 Le service DHCP... 14 5 Le service DNS... 15 6 NIS : Centraliser l authentification Linux... 17 7 Centraliser l authentification Windows avec SAMBA... 20 8 Sécuriser les accès : NETFILTER... 22 9 NTP : Le service de temps... 26 10 LAMP : Linux, Apache, MySQL, PHP... 27 D. Olivier http://www.entraide-info.fr 2
1 Construire le réseau Les commandes sont dynamiques (volatiles), les fichiers restent après le redémarrage (mais demandent le redémarrage du service pour être pris en compte). 1.1 Configurer le réseau ndiswrapper : outil qui permet d utiliser les pilotes Windows XP pour les cartes réseau sur Linux. Service réseau : /etc/init.d/networking restart start stop Configuration des interfaces réseau : ifconfig route affiche les interfaces actives -a affiche toutes les interfaces eth0 down up (des)active eth0 eth1:0 172.16.0.1 netmask 255.255.0.0 ajoute une adresse IP aliasée $ ifconfig eth1 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.2 modifier la passerelle route add default gw 10.21.255.254 modif default GW route del net 192.168.0.0 netmask 255.255.0.0 supprimer route netstat $ route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.21.0.200 informations sur le paramétrage réseau -r affiche la table de routage (=route) -a affiche les connexions réseau -n affiche les connexions réseau sans la résolution de nom 1.1.1 Interrogation de serveurs DNS dig renvoie l @IP du serveur DNS dig www.google.fr renvoie l @IP de www.google.fr dig nic.fr MX SOA renvoie les @IP des serveurs de messagerie (ou les SOA) dig -x 10.0.0.1 renvoie le nom d hôte de 10.0.0.1 dig @ns1.nic.fr www.mabanque.fr interroge ns1.nic.fr pour l @IP de www.mabanque.fr host www.google.fr arp renvoie l @IP de www.google.fr host 10.0.0.1 renvoie le nom d hôte pour 10.0.0.1 host -t NS nic.fr renvoie les enregistrements NS pour nic.fr affiche le cache arp arp -s @IP @MAC entrée manuelle dynamique volatile traceroute tcpdump >/dev/tty5 idem que tracert moniteur réseau en ligne de commande ( wireshark) Nota : sur Solaris : on utilise snoop au lieu de tcpdump nmap (network mapper) scanne les réseaux : Nota : en mode graphique, il est possible d utiliser le logiciel zenmap. nmap -sp 10.11.0.50-254 ou nmap -sp 10.11.0.0/16 cibler l écoute nmap -O 10.11.0.254 système d exploitation nmap -v 10.11.0.254 scan détaillé D. Olivier http://www.entraide-info.fr 3
1.2 Le client DHCP dhclient client DHCP dhclient eth0 activer DHCP sur eth0 (dynamique, volatile) dhclient -r eth0 release de eth0 Attention : si on enlève eth0, exécute la commande pour toutes les interfaces /etc/network/interfaces fichier de configuration statique des interfaces réseau Attention : l utilisateur ne peut pas modifier la config dynamique si /etc/network/interfaces n est pas vide. auto eth0 iface eth0 inet dhcp[ static] /etc/dhcp3/dhclient[-eth0].conf démarre l interface eth0 automatiquement configure eth0 en DHCP [ en statique] fichier de configuration de dhclient send host-name "poste1" ; /var/lib/dhcp3/dhclient.leases le serveur DHCP reçoit le nom pour enregistrer DNS fichier de log des baux obtenus 1.3 Configurer le réseau sur un serveur /etc/init.d/networking restart ou invoke-rc.d networking restart redémarre le service réseau. /etc/hostname nom de machine /etc/hosts nom de machine à renseigner aussi /etc/network/interfaces fichier de configuration IP statique auto lo iface lo net loopback auto eth0 iface eth0 inet static adress 10.21.0.1 netmask 255.255.0.0 gateway 10.21.255.254 Nota : l utilisateur ne peut plus intervenir sur la configuration de eth0 1.3.1 Résolution de noms Résolution des noms de machines : /etc/hosts : 127.0.0.1 localhost 10.0.0.1 contdomain dc001.stagiaires.local Nota : le fichier est lu séquentiellement : la première occurrence gagne Résolution des noms de réseaux : /etc/networks : Salle201 10.21.0.0 eni-ecole 172.16.0.0 /etc/nsswitch.conf méthodes de résolution de noms (dans l ordre) hosts: files dns [nis] [ldap] [] files=résolution locale / dns=résolution DNS D. Olivier http://www.entraide-info.fr 4
En cas de service DNS : /etc/resolv.conf : nameserver 10.0.0.1 nameserver 10.0.0.2 search eni-ecole.local stagiaires.local domain betelgeuse.local serveurs DNS suffixes DNS suffixe DNS principal (facultatif) 1.4 Les ports réseaux TCP : toujours un client, toujours un serveur Port source et port de destination 0 à 1023 : ports bien connus, listés dans /etc/services cat /etc/services grep telnet trouver le port utilisé par telnet Nota : liste des ports connus : http://www.iana.org/assignments/port-numbers 1.5 Le super serveur xinetd xinetd sert à la gestion des services réseaux à la demande Fonctionnement global de xinetd /etc/xinetd.conf /etc/xinetd.d/vsftp configuration globale de xinetd configuration du service ftp 1.6 Les services RPC : Appel de Procédures Distantes Avec RPC, les programmes sont indépendants de la couche IP, RPC fait le lien rpcbind associe les numéro de programmes RPC à des numéro de ports. Cette table est générée lors du boot par rpcbind et est du type : programme#, port#, service Exemple : 100012/1 udp 33001 sprayd rpcinfo -p relève les mappages faits par rpcbind /etc/rpc liste de programmes rpc numéros de programmes Nota : pour lancer un service RPC, il doit être défini dans le fichier /etc/rpc + avoir un n de port via rpcbind D. Olivier http://www.entraide-info.fr 5
Fonctionnement de rpcbind Nota : rpcinfo -p 10.0.0.1 affiche rpcinfo -p depuis 10.0.0.1 1.7 tcp-wrapper : Filtre d accès La syntaxe des fichiers /etc/hosts.allow et /etc/hosts.deny est du type : daemon1 daemon2 : client1 client2 [ : spawn <commande>] On peut remplacer client par hotsname ou adresseip On peut remplacer daemon et client par des mots spéciaux Mots spéciaux : ALL : tous les daemons tous les clients LOCAL (côté client) : nom d hôte local (pas DNS) KNOWN (côté client) : nom dont on peut résoudre l adresseip UNKNOWN (côté client) : nom dont on ne peut pas résoudre l adresseip PARANOID (côté client) : machines dont le nom et l adresseip ne correspondent pas (par rapport à la résolution) En plus de ça, on peut rajouter une variable EXCEPT : sauf EXCEPT UNKNOWN) Deux approches pour le filtrage tcp-wrapper : sur un pare-feu : restrictif : o ajouter une règle de refus général dans hosts.deny o on utilisera hosts.allow pour filtrer plus précisément dans un LAN : permissif (par défaut pour tcp-wrapper) : o on utilisera hosts.allow pour filtrer plus précisément Exemple de filtrage restrictif : 1. vi /etc/hosts.deny ALL : ALL 2. vi /etc/hosts.allow vsftpd :.stagiaires.local vsftpd accepte donc tous les clients qui finissent par.stagiaires.local telnetd : 10.21. telnetd accepte tous les clients commençant par 10.21. popd,smtpd,imapd : 10.21. EXCEPT 10.21.0.254 gssftpd : 172.16.0.0/255.240.0.0 réseau/masque D. Olivier http://www.entraide-info.fr 6
1.8 Activer le routage statique Rappel : netstat r afficher la table de routage Activer le routage (dynamique et volatile) : Fonctionnement du filtrage restrictif de tcp-wrapper echo 1 > /proc/sys/net/ipv4/ip_forward Attention : Penser à l espace avant > 0 = pas de routage (par défaut) 1 = routage activé Activer le routage statiquement : vi /etc/sysctl.conf net.ipv4.ip_forward = 1 Il faut donc enlever le # qui est présent par défaut (décommenter) Ajouter des routes (dynamique et volatile) : route add -net 10.11.0.0 netmask 255.255.0.0 gw 10.21.0.250 1.9 Ajouter des routes statiquement (debian : Ubuntu) $ vi /etc/network/interfaces Ajouter une ligne à la fin du fichier : up route add net 10.11.0.0 netmask 255.255.0.0 gw 10.21.0.250 Attention : sous RedHat, /etc/sysconfig/network-scripts/route-eth0 (pour les routes attachées à eth0) se configure ainsi : 10.11.0.0/16 via 10.21.0.250 D. Olivier http://www.entraide-info.fr 7
2 Installer les services d infrastructure réseau 2.1 Proxy Principe de fonctionnement d un proxy Le but d un proxy est de mettre en cache les sites http/ftp à mesure que les clients font des demandes. Le proxy doit donc pointer vers des serveurs DNS, la passerelle vers l extérieur et doit disposer d un service proxy. On utilise SQUID comme service de serveur proxy, mais il en existe d autres. Attention à l ordre des règles dans squid.conf! La première règle qui convient gagne! Configuration du proxy côté serveur : 1. Editer le fichier /etc/squid/squid.conf : visible_hostname proxy # hostname du proxy http_port 3128 # port d écoute par défaut avec squid cache_mem 20 MB # taille du cache cache_log /var/log/squid/cache.log # emplacement du journal acl sirius src[ dest] 192.168.0.0/24 192.168.1.0/24 # on définit sirius comme étant le nom des sources 192.168.0.0/24 et 192.168.1.0/24 acl localhost src 127.0.0.1 # même chose : localhost est 127.0.0.1 http_access allow sirius # sirius est autorisé pour le http http_access allow localhost # localhost est autorisé pour le http nameserver 10.0.0.1 # le proxy doit pointer vers un NS gateway 10.21.255.254 # le proxy doit avoir une GW Le NS (serveur de résolution de nom) est défini dans le fichier /etc/resolv.conf La GW (passerelle) est définie dans le fichier /etc/network/interfaces 2. Test de la configuration: squid si ça démarre c est super, sinon on résout les erreurs! Configuration du proxy côté client : Le client ne fait pas la résolution des URL, donc pas besoin de DNS, ni même de GW Après le login, les scripts (*.sh) contenus dans /etc/profile.d/ sont exécutés. 1. vi /etc/profile.d/proxy.sh export http_proxy http://192.168.0.254:3128/ export ftp_proxy ftp://192.168.0.254:3128/ adresseip du proxy = port d écoute 2. Pour prendre en compte les modifs : sudo i (passer root) chmod u+x proxy.sh./proxy.sh 3. Savoir si les modifs ont été prises en compte : env grep proxy doit renvoyer les 2 lignes Nota : en interface graphique, on configure le proxy d internet explorer / firefox D. Olivier http://www.entraide-info.fr 8
2.2 La gestion des paquets avec Ubuntu Red-Hat : *.rpm rpm yum Debian (Ubuntu) : *.deb dpkg apt-get (depots configures dans /etc/apt/sources.list) vi /etc/apt/sources.list : deb xxxxxxxxxxxxxxxxxxxxxxx deb-src xxxxxxxxxxxxxxxxxxx (dépots d autoinstall) (dépots d autoinstall des sources) Il n y a pas besoin des dépots d autoinstall des sources, donc, dans vi on exécute la commande :g/^deb-src/s/^/#/ commandes utilisées avec aptitude (oublier apt-get, on est des pros, on utilise aptitude) aptitude update Mise à jour de la base de connaissance des paquets/dépots aptitude full-upgrade Mise à jour de tous les paquets du système aptitude search flash Recherche par mots clés (ici flash ) aptitude show flashplugin_nonfree Infos sur le paquet flashplugin_nonfree aptitude install flashplugin_nonfree Installe le paquet flashplugin_nonfree aptitude remove purge flashplugin_nonfree Désinstalle dpkg L <non du paquet> liste des fichiers installés avec ce paquet 2.3 Administrer les machines à distance On utilise SSH, ainsi les mots de passe ne circulent pas en clair. On peut encapsuler n importe quel protocole dans un tunnel SSH. 1. Côté serveur : installer openssh-server (par défaut, écoute sur le port tcp22) 2. Côté client : openssh-client (préinstallé) Pour se connecter : $ ssh 192.168.1.1 nota : l utilisateur doit avoir un compte à son nom sur la machine distance ssh l administrateur 192.168.1.1 ou ssh administrateur@192.168.1.1 Explorateurs de fichiers distants : Gnome : nautilus ssh://192.168.1.1 Kde : konqueror fish://192.168.1.1 Xfce : thunar Pour windows : putty Connexion graphique : Vnc (fonctionne sur tous les OS) existe de base sur Unix/Linux. Il faut juste le paramétrer Rdesktop : rdesktop k fr 192.168.0.3 Le service serveur nécessite un logiciel client adapté pour communiquer Nota : Webmin est une interface d administration du serveur (fonctionne sur le port 10000 en https) mais le produit est buggé D. Olivier http://www.entraide-info.fr 9
2.4 NFS : Service de partage de fichiers Unix Sur Windows : A: C: D: Z: système de fichiers (bien différencié avec les lettres de lecteurs) Sur Unix, le FS distant est rattaché à la racine, on ne le différencie pas (exemple : /data) 2.4.1 489BInstallation et paramétrage du serveur NFS 1. Editer /etc/exports : /export/public /export/admin *(sync,ro) 192.168.0.2(rw) Dossier à partager machines_autorisées(options) machines_autorisées(options) 2. Recharger le service NFSserveur : En général : nfs-kernel-server reload En dynamique : exportfs o ro *:/home/dergand/public partage un répertoire Client NFS : NFS ne fonctionne pas sous Windows (par défaut) sudo showmount -e 192.168.0.1 affiche les partages de 192.168.0.1 sudo showmount affiche les partages utilisés localement Montage dynamique et volatile : Montage statique : $ mount -t nfs serveur:/chemin/partage /point_de_montage/local Editer le fichier /etc/fstab : serveur:/chemin/partage /repertoire/local nfs defaults 0 0 Nota : le chemin local doit avoir été créé avec mkdir -p puis mount -a D. Olivier http://www.entraide-info.fr 10
3 Samba : le service de partage Microsoft Samba permet le partage de fichiers et d imprimantes ainsi que l intégration à un domaine (NT/AD) existant, intégration à un annuaire LDAP. Rappel NetBios : Problématique liée à Samba Différences NetBIOS Unix et Microsoft Rappel : les fichiers hosts et lmhosts permettent la résolution de noms NetBIOS 3.1 Installer le serveur Samba smbd et nmbd sont les daemons indispensables au service Samba winbind est à utiliser dans le cas d un serveur Samba utilisant une authentification distante Commandes côté client : nmblookup interroger un serveur wins smbpasswd gestion comptes et mots de passe findsmb check du traffic netbios testparm check la configuration de /etc/samba/smb.conf testparm -v affiche les valeurs par défaut de /etc/samba/smb.conf smbd et nmbd sont géré par upstart. Il est faut donc utiliser status stop start smbd nmbd 3.2 Configurer Samba Le fichier /etc/samba/smb.conf doit être sauvegardé en.orig pour ensuite créer un nouveau fichier smb.conf vide Nota : après toute modification de smb.conf, il faut relancer les services smbd et nmbd [nom_du_partage] path = /export/distrib [global] [netlogon] [homes] [printers] pour mettre les paramètres généraux (ex. : writable = no) partage créé pour l utilisation des scripts d ouverture de session créé un répertoire d accueil pour les utilisateurs authentifiés partage toutes les imprimantes Unix Attention au nom des partages répertoires / imprimantes : il ne faut pas de nom en commun D. Olivier http://www.entraide-info.fr 11
Exemple : [global] Workgroup = GROUP1 Netbios name = SRV1 Security = user (par défaut) Encrypt password = yes (par défaut) Win95sr2 : non crypté Noyau NT : chiffré NTLM [distrib] Path = /samba/distrib Writeable = yes Valid users = @group1 admin 3.3 Gestion des comptes utilisateurs @group1 : groupe autorisé à se connecter &Group1 : groupnis Ajouter guest nobody (même compte qui sert pour les utilisateurs anonymes) L utilisateur toto doit être déclaré sur le serveur dans /etc/passwd ainsi que dans samba pdbedit pdbedit -L gérer les utilisateurs Samba lister les utilisateurs Samba 1. useradd epursan (pas obligé de faire passwd epursan) 2. pdbedit -a epursan (ou smbpasswd pour les vieilles versions de Samba) pdbedit -Lv epursan 3.4 Le client Samba 3.4.1 Sur linux 3.4.2 Sur Windows informations de l utilisateur 1. Installer smbfs : smbfs ajoute les commandes mount.smb et mount.cifs» mount -t cifs -o user=dergand,domain=stagiaires,iocharset=utf8,uid=olivier //server1/public /mnt Nota : sur Nautilus et Dolphin on utilise smb://fic44-1/distrib 2. Installer smbclient : findsmb affiche les postes répondant aux requêtes smb nmblookup -M WORKGROUP trouve le master browser de WORKGROUP nmblookup -A 10.21.100.15 trouve le nom NetBIOS net use G: \\PC1\partage * /user:pc1\administrateur se connecter à un partage net user /delete G: se déconnecter d un partage net use voir les partages D. Olivier http://www.entraide-info.fr 12
3.5 AutoFS : service côté client Exemple : $ dd if=/dev/cdrom of=/import/dico.iso $ sudo mount -t iso9600 -o loop /import/dico.iso /dico Problème : il ne faut pas surcharger la fstab, et l utilisateur doit pouvoir se simplifier la vie ls /dico créé un automontage grace à autofs (le fait de lister monte le partage) 3.5.1 Tables d automontage Nota : on met les options en fin de ligne Editer le fichier /etc/auto.master (table maître : indique le chemin des tables d automontage) : /toto /etc/auto.indirect --ghost ghost créé des répertoires virtuels, les rend visible /- /etc/auto.direct --timeout /- indique une table directe 3.5.2 Tables directes Les points de montages sont entièrement définis dans le fichier de table directe. Editer le fichier /etc/auto.direct : /import/partage1 Point de montage 192.168.15.15:/export/partage FS à monter 3.5.3 Tables indirectes Les points de montages sont relatifs au chemin défini dans auto.master Editer le fichier /etc/auto.indirect : partage2 /toto/partage2 partage3 /toto/partage3 192.168.10.10:/export/compta FS à monter -fstype=nfs,rw 192.168.10.10:/export/compta Options et FS à monter Si on multiplie les partages à créer par le nombre d utilisateurs, ça peut vite devenir le bordel On utilise donc * et &, qui permettent de faire des raccourcis : Editer le fichier /etc/auto.master : /home /etc/auto.home Editer le fichier /etc/auto.home : toto 192.168.0.1/export/home/toto * 192.168.0.1/export/home/& Ainsi, /home/xyz pointe donc vers 192.168.0.1/export/home/xyz D. Olivier http://www.entraide-info.fr 13
4 Le service DHCP Paquet à installer : dhcp3-server Daemon : dhcpd3 Configuration : /etc/dhcp3/dhcpd.conf Baux accordés : /var/lib/dhcp3/dhcpd.leases /usr/sbin/dhcpd3 d tous les messages s affichent à l écran (mode debug) 4.1 Le fichier de configuration Editer le fichier /etc/dhcp3/dhcpd.conf : ddns-update-style none interim; default-lease-time 604800; max-lease-time 2592000; option domain-name-server 10.10.0.1,10.0.0.2; option domain-name "eni.local betelgeuse.fr"; subnet 192.168.1.0 netmask 255.255.255.0 {} subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.50 192.168.0.80; range 192.168.0.90 192.168.0.100; option routers 192.168.0.254[,]; } host imp_01 { hardware ethernet 00:11:22:33:44:55; fixed-adress 192.168.0.22; option routers 192.168.0.254; } interim : DNS mis à jour par DCHP ; none : non DNS durée de bail = 1semaine durée max de bail = 1mois adresse des serveurs DNS attribués aux clients nom de domaines DNS (pour les clients) déclaré mais non configuré, autorise l interface étendue de réseau passerelles attribuées aux clients réservation d une @ pour imp_01 4.2 Le client dhcp dhclient Editer le fichier /etc/network/interfaces : auto eth0 iface eth0 inet dhcp On peut laisser toute la configuration réseau dessous, il n en tiendra plus compte Baux obtenus : /var/lib/dhcp3/dhclient[.eth0].leases Editer le fichier /etc/dhcp3/dhclient.conf : send hostname poste01 ; 4.3 Le relais DHCP dhcp3-relay Daemon : dhrelay3 dhrelay3 d i eth0 i eth1 d 192.168.0.1 Editer le fichier /etc/default/dhcp3-relay : SERVERS = "192.168.1.1" INTERFACES = "eth0 eth1" OPTION = "" serveurs DHCP interfaces à l écoute (côté clients + côté serveur) D. Olivier http://www.entraide-info.fr 14
5 Le service DNS DNS est : dynamique : enregistrements ajoutés uniques + rapidement disponibles pour tous répliqué : les infos existent en plusieurs exemplaires hiérarchisé : arborescence racine TLD domaines hôtes distribué : plusieurs zones contenant chacune des enregistrements Rôles : Serveur cache : tout serveur DNS fait serveur cache diminue la bande passante Redirections : vers DNS FAI Serveur primaire sur une seule zone (celle de son réseau) autorité + RW Serveur secondaire sur plusieurs zones autorité + RO 5.1 Paramétrage du serveur DNS Paquet à installer : bind Daemon : named Editer le fichier /etc/bind/named.conf : Serveur de cache options { directory /var/named ; emplacement des fichiers de zone }; zone. { type hint; file root.cache ; emplacement des serveurs racine }; ftp://ftp.rc.internic.net/domain/named.root zone 0.0.127.in-addr.arpa { type master; file 127.0.0.inv ; zone inversée localhost OBLIGATOIRE }; Serveur de redirection Serveur primaire Serveur secondaire option { ; forward first; forwarders {66.55.44.33;[;] }; }; zone mondomaine.com { type master; file mondomaine.com ; }; zone 2.10.in-addr.arpa { type master; file 10.2.inv ; }; zone autredomaine.com { type slave; file mondomaine.com ; masters {11.0.0.1; }; }; zone 0.11.in-addr.arpa { type slave; file 11.0.inv ; masters {11.0.0.1; }; }; adresse IP des redirecteurs SOA ne pas créer le fichier (! bind = rw) emplacement du NS maitre D. Olivier http://www.entraide-info.fr 15
5.2 Les fichiers de zones $INCLUDE pour stocker une partie des autres fichiers de zones $ORIGIN eni.local pour attacher le suffixe aux enregistrements $TTL 86400 durée de vie des enregistrements. A mettre pour éviter les avertissements @ IN SOA ns1.mondomaine.com. admin.mondomaine.com. ( 1 ; n de série. Penser à l incrémenter à chaque modif. 21600 ; fréquence de demande de MàJ des slaves 3600 ; temps d attente avant re-tentative de connexion 604800 ; temps d expiration 86400 ) ; temps de validité des informations négatives IN NS ns1.mondomaine.com. IN NS ns2.mondomaine.com. ns1 IN A 10.2.0.1 ns2 IN A 10.2.0.2 www IN CNAME ns1.mondomaine.com. IN MX 10 mail.mondomaine.com. priorité < préférée 5.2.1.1 74BFichiers de zones inverses : @ IN SOA ns1.mondomaine.com. admin.mondomaine.com. ( 1 21600 3600 604800 86400 ) IN NS ns1.mondomaine.com. IN NS ns2.mondomaine.com. 1.0 IN PTR ns1.mondomaine.com 1.0 hote x.y.0.1/16 5.3 Créer une zone déléguée Editer le fichier /etc/bind/named.conf : zone "eni.fr" { type master; forwarders{ } ; }; ecole IN NS ns.ecole.fr délégation de la zone ecole.eni.fr ns.ecole IN A 10.0.2.5 D. Olivier http://www.entraide-info.fr 16
6 NIS : Centraliser l authentification Linux 6.1 Introduction NIS centralise les fichiers Dans /etc, sur le serveur NIS, il y a passwd shadow group : cela permet l authentification distante Domaine NIS non hiérarchisé, pas de (.) dans le nom. Exemple : betelgeuse_nis Un client est sur un domaine et un seul! Le fichier nsswitch.conf définit le comportement du client NIS Les tables NIS se trouvent dans /var/yp/<domaine_nis> 50BConfigurer le serveur maître NIS Client NIS Serveur maitre NIS Serveur esclave NIS Service NIS Daemon ypbind ypserv rcp.yppasswdd (mot de passe) rpc.ypxfrd (transfers serveurs) ypserv domainname betelgeuse_nis 3. installer NIS 4. domainname renvoit le nom du domaine NIS 5. maitre NIS : /etc/default/nis : NISSERVER=master 6. client NIS : /etc/yp.conf : domain betelgeuse_nis server srv-lan 7. sécuriser 8. maitre NIS : /usr/lib/yp/ypinit m génère les tables NIS 9. maitre NIS : relancer de daemon ypserv 10. yptest ypcat ypmatch ypwhich D. Olivier http://www.entraide-info.fr 17
6.2 Configurer le serveur maître NIS 1. Rajouter les utilisateurs : $ useradd m dergand 2. Modifier le fichier /etc/passwd : Changer /home/dergand en /users/dergand 3. Editer le fichier /etc/auto.master : /users /etc/auto.home 4. Editer le fichier /etc/auto.home : * ys:/home/& 5. Editer le fichier /etc/exports : /home *(rw,sync) 6. Editer le fichier /var/yp/makefile : ALL += auto.master auto.home 7. $ make C /var/yp met à jour les tables NIS 8. Relancer les services autofs et nis 6.3 Configurer les clients 6.4 Tester 1. Vérifier que les fichiers hosts sont renseignés, tester la résolution non d hôte en adresseip $ domainname betelgeuse-nis 2. Editer le fichier /etc/defaultdomain : betelgeuse-nis 3. Installer NIS 4. Editer le fichier /etc/nsswitch.conf : passwd: group: shadow: automount: nis hosts: compat nis compat nis compat nis files nis dns 5. Editer le fichier /etc/yp.conf : domain betelgeuse-nis server srv-lan $ su - <utilisateur_créé_seulement_sur_nis> 6.5 Interroger un serveur NIS yptest ypwhich ypcat x ypcat group yppasswd 1 test fail nom du serveur NIS nom des tables NIS affiche la table group modifier le mot de passe (rpc.yppasswdd fait les mises à jours serveurs) D. Olivier http://www.entraide-info.fr 18
6.6 Configurer un esclave NIS Sur le serveur maitre : /usr/lib/yp/ypinit m ajouter les noms des esclaves NIS Vérifier la résolution du nom d hôte esclave Editer le fichier /etc/yp.conf : domain betelgeuse-nis server srv-dmz (pour ajouter l esclave) Editer le fichier /var/yp/makefile : NOPUSH=false Sur le serveur esclave : Installer NIS Configurer domainname + /etc/defaultdomain Editer le fichier /etc/yp.conf : active la poussée des données vers slaves domain betelgeuse-nis server srv-lan domain betelgeuse-nis server srv-dmz Editer le fichier /etc/default/nis : NISSERVER=slave /usr/lib/yp/ypinit s <serveur maitre> récupère les tables NIS 6.7 Mises à jour des serveurs sudo make C /var/yp met à jour les tables NIS Mise à jour des esclaves NIS : via la crontab, ajouter la planification pour /usr/lib/yp/ypxfr_xxxx D. Olivier http://www.entraide-info.fr 19
7 Centraliser l authentification Windows avec SAMBA Editer le fichier /etc/samba/smb.conf : [global] Utilisation du service SAMBA domain logons = yes security = user workgroup = DOM1 time server = yes wins support = yes active l authentification centralisée obligatoire dans ce cas là nom du domaine pour Windows seulement active serveur WINS 7.1 Intégrer les postes de travail au domaine Sur le serveur : sudo useradd poste1$ ajouter l ordi client sudo pdbedit a m u poste1$ ajouter l ordi client dans la base Samba sudo pdbedit a root compte administrateur sur samba (pour intégrer) Sur le client Windows : Intégrer le poste au domaine 7.1.1 503BGérer les profils itinérants Activer [global] logon path = \\%N\%U\profile [homes] writable = yes browseable = no emplacement du profil itinérant Désactiver [global] logon path = 7.2 Utiliser les scripts d ouverture de session [global] Logon script = logon.cmd [netlogon] path = /toto/mes-scripts browseable = no writeable = yes D. Olivier http://www.entraide-info.fr 20
7.3 Création d un fichier de script $ vi logon.bat net use g: \\srv1\distrib net use lpt2 \\srv1\lexmark net time \\samba /set /yes Attention : les fichiers créés sous Unix/Linux ne sont pas compatibles avec MS-DOS donc :se ff=dos $ vi od.txt bonjour tout le monde $ od c od.txt b o n j o u r \ n t o u t l e m o n d e \ n vi od.txt puis exécuter :se ff=dos puis :wq $ od c od.txt b o n j o u r \ r \ n t o u t l e m o n d e \ r \ n D. Olivier http://www.entraide-info.fr 21
8 Sécuriser les accès : NETFILTER Paquet : iptables Nota : certaines règles ont été conçues pour ipchains et fonctionnent différemment iptables permet : filtrage de paquets (IP) et de trames (MAC) routage NAT marquage de trames Configuration du noyau avec SYSCTL (logiciel de personnal firewall) : Editer le fichier /etc/sysctl.conf : Fonctionnement de sysctl pour filtrer les flux réseaux net.ipv4.ip_forward=1 net.ipv4.conf.all.rc_filter=1 net.ipv4.tcp.syncookies=1 net.ipv4.tcp_max_syn_backlog=1024 activer le routage protection spoofing protection syn-flood 8.1.1 504BPrincipe de fonctionnement (points d accroche / hook) : 3 tables : Vocabulaire des points d accroche filter (FORWARD / INPUT / OUTPUT) filtrage nat (PREROUTING / POSTROUTING / OUTPUT ) routage mangle ( FORWARD / INPUT / OUTPUT / PREROUTING / POSTROUTING ) marquage D. Olivier http://www.entraide-info.fr 22
8.1.2 La table NAT NAT source, pour aller vers l extérieur Nat dest, pour aller vers l intérieur : publication de services Nat source : on change l adresse source. Pour aller vers l extérieur. ( + Pat : on change le n de port) Nat Dest : on change l adresse de dest. pour aller vers l intérieur (publication de services) Penser à rajouter dans DNS : www.monsite.fr A 99.9.9.9 8.2 Les cibles iptables t filter A INPUT -j DROP Filtrage table = filter pt d accrochage = INPUT cible = action= DROP ACCEPT : accepté DROP : refusé, pas d explication REJECT : refusé, explication pour l émetteur LOG : pour logger Nat MASQUERADE : pour du source Nat, plus simple à mettre en place (POSTROUTING) SNAT : pour du source Nat (POSTROUTING) DNAT : pour du dest. Nat (PREROUTING) D. Olivier http://www.entraide-info.fr 23
Comportement par défaut : Si une trame arrive et n est concernée par aucune règle, elle suit la «policy» (comportement par défaut). Nota : par défaut, les trames sont acceptées : POLICY ACCEPT. Nous on fait POLICY DROP : seuls les flux clairement autorisés passent 8.3 Comment utiliser iptables? Créer les scripts Exécuter les scripts jusqu à obtention de la configuration souhaitée service iptables save écrit dans le fichier /etc/sysconfig/iptables Vérifier chkconfig --list iptables /etc/network/if-pre-up.d/* emplacement des scripts de tables iptables Les tables sont lancées avant la config. réseau Attention : les fichiers ne doivent pas comporter de. Penser au droit x pour l exécution des scripts 8.4 Premières règles iptables A écrit la règle dans le(s) fichier(s). -A ajoute une règle 8.4.1 Exemples de règles par défaut Vidage des règles : $ iptables F Création des POLICY : mode restrictif pour la table filter [-t filter] : $ iptables P OUTPUT DROP $ iptables P INPUT DROP $ iptables P FORWARD DROP Autoriser l interface de loopback (sinon besoin de doubler chaque règle pour lo) : $ iptables A INPUT i lo j ACCEPT $ iptables A OUTPUT o lo j ACCEPT Autoriser depuis eth0 les trames vers ssh : $ iptables A INPUT i eth0 p tcp --dport 22 j ACCEPT $ iptables A OUTPUT o eth0 p tcp --sport 22 j ACCEPT Autoriser depuis eth0 les trames icmp (ping) : $ iptables A INPUT i eth0 p icmp j ACCEPT $ iptables A OUTPUT o eth0 p icmp j ACCEPT Autoriser les trames en provenance d eth0 vers eth2 à destination de tcp:80 : $ iptables-a FORWARD i eth0 o eth2 p tcp --dport 80 j ACCEPT $ iptables-a FORWARD i eth2 o eth0 p tcp --sport 80 j ACCEPT Autoriser les trames en provenance de eth0 vers eth2 à destination de NetBIOS : $ iptables-a FORWARD i eth0 o eth2 p tcp m multiport --dport 137:139,445 j ACCEPT $ iptables-a FORWARD i eth2 o eth0 p tcp m multiport --sport 137:139,445 j ACCEPT Autoriser les trames en provenance de 192.168.10.0/24 vers 172.16.0.2 à destination de SQL : $ iptables-a FORWARD s 192.168.10.0/24 d 172.16.0.2 p tcp --dport 1433 j ACCEPT $ iptables-a FORWARD s 172.16.0.2 d 192.168.10.0/24 p tcp --sport 1433 j ACCEPT D. Olivier http://www.entraide-info.fr 24