90
Services Ip sous Linux - 1 /90 - Denis Szalkowski Formateur Consultant août 2004 Sommaire I. Les fichiers de configuration TCP/IP .................................................................. 4 A. Le répertoire /etc/xinetd.................................................................................................. 4 B. Le fichier /etc/hosts ........................................................................................................ 4 C. Le fichier /etc/lmhosts ..................................................................................................... 4 D. Le fichier /etc/services .................................................................................................... 4 E. Le fichier /etc/protocols ................................................................................................... 4 F. Les fichiers hosts.allow et hosts.deny .................................................................................. 4 II. Les outils TCP/IP .......................................................................................... 5 A. ping ............................................................................................................................ 5 B. ifconfig ........................................................................................................................ 6 C. arp .............................................................................................................................. 6 D. route ........................................................................................................................... 6 E. netstat ......................................................................................................................... 6 F. traceroute .................................................................................................................... 7 G. telnet .......................................................................................................................... 7 H. ftp .............................................................................................................................. 7 I. nslookup ...................................................................................................................... 8 J. who............................................................................................................................. 8 K. last ............................................................................................................................. 8 L. finger .......................................................................................................................... 8 M. tcpdump....................................................................................................................... 9 N. nmap ........................................................................................................................... 9 III. Nfs (Network File System) ............................................................................. 10 A. Site web ..................................................................................................................... 10 B. Les fichiers de configuration du serveur Nfs ........................................................................ 10 C. Exemples de fichiers /etc/exports ..................................................................................... 10 D. Exemples de fichiers hosts.deny et hosts.allow .................................................................... 10 E. Exécution et contrôle d'exécution des services .................................................................... 11 F. Ports utilisés ............................................................................................................... 11 G. Test de conenxion en local sur le serveur ........................................................................... 11 H. Clients Nfs .................................................................................................................. 11 I. Commandes................................................................................................................. 11 IV. Nis (Network Internet Services) ...................................................................... 11 A. Définition ................................................................................................................... 11 B. Les fichiers de configuration du serveur ............................................................................. 11 C. Configuration du nom de domaine .................................................................................... 11 V. Samba..................................................................................................... 12 A. Présentation................................................................................................................ 12 B. Résolution et enregistrement de nom ................................................................................ 12 C. Les primitives .............................................................................................................. 12 D. Site Samba .................................................................................................................. 12 E. Les outils Samba ........................................................................................................... 12 F. Option smbwrapper ....................................................................................................... 13

Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

  • Upload
    leminh

  • View
    219

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 1 /90 -

Denis Szalkowski Formateur Consultant août 2004

Sommaire

I. Les fichiers de configuration TCP/IP ..................................................................4 A. Le répertoire /etc/xinetd..................................................................................................4 B. Le fichier /etc/hosts ........................................................................................................4 C. Le fichier /etc/lmhosts.....................................................................................................4 D. Le fichier /etc/services ....................................................................................................4 E. Le fichier /etc/protocols...................................................................................................4 F. Les fichiers hosts.allow et hosts.deny ..................................................................................4

II. Les outils TCP/IP..........................................................................................5 A. ping ............................................................................................................................5 B. ifconfig ........................................................................................................................6 C. arp..............................................................................................................................6 D. route ...........................................................................................................................6 E. netstat.........................................................................................................................6 F. traceroute ....................................................................................................................7 G. telnet ..........................................................................................................................7 H. ftp ..............................................................................................................................7 I. nslookup ......................................................................................................................8 J. who.............................................................................................................................8 K. last .............................................................................................................................8 L. finger ..........................................................................................................................8 M. tcpdump.......................................................................................................................9 N. nmap...........................................................................................................................9

III. Nfs (Network File System)............................................................................. 10 A. Site web..................................................................................................................... 10 B. Les fichiers de configuration du serveur Nfs ........................................................................ 10 C. Exemples de fichiers /etc/exports..................................................................................... 10 D. Exemples de fichiers hosts.deny et hosts.allow .................................................................... 10 E. Exécution et contrôle d'exécution des services .................................................................... 11 F. Ports utilisés ............................................................................................................... 11 G. Test de conenxion en local sur le serveur ........................................................................... 11 H. Clients Nfs .................................................................................................................. 11 I. Commandes................................................................................................................. 11

IV. Nis (Network Internet Services) ...................................................................... 11 A. Définition ................................................................................................................... 11 B. Les fichiers de configuration du serveur............................................................................. 11 C. Configuration du nom de domaine .................................................................................... 11

V. Samba..................................................................................................... 12 A. Présentation................................................................................................................ 12 B. Résolution et enregistrement de nom ................................................................................ 12 C. Les primitives .............................................................................................................. 12 D. Site Samba .................................................................................................................. 12 E. Les outils Samba........................................................................................................... 12 F. Option smbwrapper....................................................................................................... 13

Page 2: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 2 /90 -

Denis Szalkowski Formateur Consultant août 2004

G. Liste des dépendances ................................................................................................... 13 H. Configuration............................................................................................................... 14 I. Compilation................................................................................................................. 14 J. Installation.................................................................................................................. 14 K. Répertoires ................................................................................................................. 14 L. Fichiers de configuration................................................................................................ 14 M. Fichiers de log ............................................................................................................. 14 N. Lancement de Samba..................................................................................................... 14 O. Partage de disques........................................................................................................ 15 P. Sécurité ..................................................................................................................... 16 Q. Serveur Nt .................................................................................................................. 18 R. Exemples de script........................................................................................................ 19 S. Trou de sécurité........................................................................................................... 23 T. Bibliographie ............................................................................................................... 23

VI. Bind ....................................................................................................... 23 A. Fichier /etc/host.conf .................................................................................................... 23 B. Fichier /etc/resolv.conf.................................................................................................. 24 C. /etc/nsswitch.conf ........................................................................................................ 24 D. Exemple de fichier named.conf........................................................................................ 24 E. Exemples de fichier de zone dsfc.fr.hosts........................................................................... 25

VII. Configuration d'un serveur Dhcp ..................................................................... 25 A. Site ........................................................................................................................... 25 B. Téléchargement ........................................................................................................... 25 C. Compilation................................................................................................................. 25 D. Script ........................................................................................................................ 25 E. Installation à partir d'un fichier rpm.................................................................................. 26 F. Exemple de fichier dhcpd.conf......................................................................................... 26 G. 4.4. Lancez le serveur dhcpd........................................................................................... 27 H. 5.4 Contrôle................................................................................................................ 27 I. Exemple ..................................................................................................................... 27

VIII. Apache.................................................................................................... 28 A. Fonctionnement d'Apache .............................................................................................. 28 B. Les directives .............................................................................................................. 32 C. Les modules ................................................................................................................ 35 D. Gestion de l'accès du client au serveur .............................................................................. 36 E. Les SSI (Server Side Include)............................................................................................ 41 F. Le proxy..................................................................................................................... 41 G. Documentation ............................................................................................................ 42 H. Annexe A : liste des types MIME (conf/mime-types) ............................................................... 43 I. ANNEXE B : les directives d'Apache 1.3 .............................................................................. 47 J. Annexe C : les modules d'Apache...................................................................................... 49

IX. Ftp......................................................................................................... 49 A. Configuration d'un serveur wuftpd .................................................................................... 49 B. Configuration d'un serveur vsftpd ..................................................................................... 52

XI. Ipchains................................................................................................... 53 A. Présentation................................................................................................................ 53

Page 3: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 3 /90 -

Denis Szalkowski Formateur Consultant août 2004

B. Fonctionnement........................................................................................................... 53 C. Syntaxe générale.......................................................................................................... 53 D. Utilisation de constantes ................................................................................................ 54 E. Remarques.................................................................................................................. 54 F. Utilisation interactive .................................................................................................... 54 G. Les ports courants ........................................................................................................ 54 H. Créer des règles ........................................................................................................... 54 I. Quelques règles types.................................................................................................... 55

XII. Syslog ..................................................................................................... 55 A. Introduction ................................................................................................................ 55 B. Le principe ................................................................................................................. 55 C. L'installation ............................................................................................................... 55 D. Configuration............................................................................................................... 56 E. Exemple ..................................................................................................................... 56 F. Remarques divers ......................................................................................................... 57 G. Tester votre configuration .............................................................................................. 57 H. Exporter vos logs sur une autre machine ............................................................................ 57

XIII. Crontab et at ............................................................................................ 57 A. Pour quoi faire............................................................................................................. 57 B. L'installation ............................................................................................................... 58 C. crontab ...................................................................................................................... 58 D. Exemples.................................................................................................................... 58 E. at ............................................................................................................................. 59 F. Contrôle ..................................................................................................................... 59 G. Remarques.................................................................................................................. 59

XIV. Squid ...................................................................................................... 59 A. Installer Squid.............................................................................................................. 59 B. Configuration............................................................................................................... 60 C. Les droits ................................................................................................................... 60 D. Contrôler l'exécution de squid ......................................................................................... 61 E. Les commutateurs ........................................................................................................ 61 F. Les directives ou TAG de configuration du fichier /etc/squid.conf............................................. 61 G. Les ACL (Access Control List) ........................................................................................... 62 H. Interface web .............................................................................................................. 63 L. Caches hiérarchiques..................................................................................................... 64 M. Redirection vers un proxy............................................................................................... 64 N. Squidguard.................................................................................................................. 64

XV. SSHD ...................................................................................................... 64 A. Le fichier de configuration.............................................................................................. 64 B. Protocoles .................................................................................................................. 64 C. Les directives .............................................................................................................. 64 D. Exemple de fichier sshd_config ........................................................................................ 65

XVI. Qmail ..................................................................................................... 66 A. Fichiers de contrôle ...................................................................................................... 66

XVII. Client Rdp................................................................................................ 69

Page 4: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 4 /90 -

Denis Szalkowski Formateur Consultant août 2004

A. Rdesktop .................................................................................................................... 69 XVIII. Netfilter .................................................................................................. 69

A. Configuration du filtrage ................................................................................................ 69 B. Principe de l'outil iptables .............................................................................................. 70 C. Utilisation de l'outil iptables............................................................................................ 70

Lancer plusieurs sessions de X............................................................................... 79 D. Définition ................................................................................................................... 90 E. Intérêt ....................................................................................................................... 90

I. Les fichiers de configuration TCP/IP

A. Le répertoire /etc/xinetd

Il contient les fichiers de configuartion. Les paramètres de ces fichiers sont : ftp : nom du service, tel qu'il est déclaré dans /etc/services stream : type de service de transport de données (il existe stream pour tcp, dgram pour udp, raw pour IP) tcp : nom du protocole tel qu'il existe dans /etc/protocols wait : état d'attente, si l'état est wait inetd doit attendre que le serveur ait restitué la socket avant de se remettre à l'écoute. On utilise wait plutôt avec les types dgram et raw. l'autre possibilité est nowait qui permet d'allouer dynamiquement des sockets à utiliser avec le type stream. root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd (il est possible ici d'ajouter les options de démarrage du programme.

B. Le fichier /etc/hosts

Il contient la liste des noms associés aux ip Des Différentes machines présentes dans le réseau : host (machine locale) et remotes (machines distantes). La commande hostent permet de consulter ce fichier. La commande hostname permet de connaître le nom de la machine locale.

C. Le fichier /etc/lmhosts

D. Le fichier /etc/services

E. Le fichier /etc/protocols

F. Les fichiers hosts.allow et hosts.deny

Vous trouverez ces deux fichiers dans le répertoire /etc. Le premier fichier lu est hosts.allow, puis hosts.deny. Si une requête est autorisée dans le fichier hosts.allow alors elle est acceptée, quelque soit le contenu du fichier hosts.deny. Si une requête ne satisfait aucune règle, que ce soit dans hosts.allow ou hosts.deny alors elle est autorisée. En un mot si vous ne mettez rien dans hosts.deny, alors vous n'avez rien fait. Voici un petit exemple qui dans des cas simples est suffisant : # hosts.allow ALL : LOCAL in.ftpd : 192.168.0.,10.194.168.0/255.255.255.0, 192.168.1.1 in.telnetd : .ac-creteil.fr On autorise tout les ports depuis un accès local, et on autorise ftp pour les machines venant du réseau 192.168.0.0, ainsi que les machines du réseau 10.194.168.0 avec une autre notation et enfin la seule machine qui a pour adresse 192.168.1.1

Page 5: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 5 /90 -

Denis Szalkowski Formateur Consultant août 2004

et le fichier hosts.deny #hosts.deny ALL:ALL Le fichier hosts.deny est simple à comprendre, il interdit tout par défaut. Le fichier hosts.allow indique les services que je veux autoriser (Le nom du service doit être identique au nom qui se trouve dans inetd.conf). la syntaxe est la suivante : deamon [,deamon, ..... ] : client [,client , ..... ] [: option : option ......] Cette syntaxe est identique dans les deux fichiers, hosts.allow et hosts.deny. On peut contrôler plus finement les accès à sa machine en contrôlant le fichier de log, en envoyant un message à la personne qui cherche à se connecter, on peut aussi se faire envoyer des messages en utilisant la commande mail. Voici un exemple un peu plus complet et complexe que le précédent : # Fichier hosts.allow ALL: LOCAL .intranet.moi EXCEPT sousdomaine.intranet.moi : ALLOW in.ftpd : ALL : banners /root/messages.txt : spawn (echo " Accès au serveur ftp par l'adresse" %a "le " 'date') >> var/log/ftp.log & sshd : 192.168.0. in.telnetd : 10.94.243.1 EXCEPT PARANOID : spawn (/bin/mail -s "Alert le nom d hote et l adresse IP ne correspondent pas" root@%H)& La ligne 1 indique que tous les ports sont ouverts pour la machine LOCAL et pour le domaine .intranet.moi sauf pour sousdomaine.intranet.moi La ligne 2 autorise toutes les connexions sur le service ftp, mais envoi un message sur la machine qui se connecte, reste à placer le texte dans le fichier message.txt. spawn vous permet de faire appel à la commande echo qui envoie un message dans le fichier de log ftp.log avec l'adresse de la machine qui se connecte %a et la date. La ligne 3 indique que seul le réseau 192.168.0.0 peut se connecter via ssh à la machine. La ligne 4 autorise la connexion en telnet depuis la machine 10.94.243.1 uniquement si l'adresse IP de la machine et le nom d'hôte correspondent. On envoie alors un message en utilisant la commande mail. Le fichier hosts.deny restant avec ALL : ALL Les variables que vous pouvez utiliser sont : %a L'adresse IP du client %A L'adresse IP du serveur %c Informations disponibles sur l'utilisateur %d Le nom du daemon %h Le nom du client ou son adresse IP si on ne peut avoir le nom %H Le nom du serveur ou son adresse IP si on ne peut avoir le nom %n Idem mais en vérifiant le reverse DNS %N Idem pour le serveur %p Le pid du daemen %s Informations disponibles sur le serveur %u Nom de l'utilisateur %% Caractère %

II. Les outils TCP/IP

A. ping

Cette commande est normalement connue de tous. Elle existe dans tous les systèmes. Elle permet de vérifier si une machine distante répond. La syntaxe est des plus simple ping -c 5 192.168.0.1 pour envoyer 5 pings à la machine dont l'adresse IP est 192.168.0.1.

Page 6: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 6 /90 -

Denis Szalkowski Formateur Consultant août 2004

On peut aussi utiliser le nom de la machine, si celle-ci est renseignée dans votre fichier Hosts ou dans un serveur DNS. On peut par exemple utiliser ping pour vérifier si la connexion est toujours active ou pour la monter. Si vous ne placez pas l'option -c 5 pour n'envoyer que 5 pings, la commande ne s'arrête pas. Utilisez alors Ctrl C.

B. ifconfig

ifconfig permet de connaître la configuration de vos cartes réseau, mais aussi de changer celle-ci. Pour changer la configuration de votre carte réseau, vous devez taper ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 Comme les valeurs que je viens de donner sont standards, vous pouviez simplement taper ifconfig ETH0 192.168.0.2 (le netmask et broadcast proposés sont ceux correspondant à une adresse de classe C). Attention au redémarrage de la machine ce changement sera perdu. Il vous faut donc modifier en même temps le fichier /etc/sysconfig/network-script/ifcfg-eth0. Vous pouvez utiliser linuxconf pour faire plus simplement le même travail. On peut aussi désactiver une carte réseau ifconfig eth0 down et bien sûr la réactiver ifconfig eth0 up

C. arp

La commande arp permet de mettre en correspondance des adresses IP et les adresses MAC. Les options possibles importantes sont arp -a pour avoir toutes les entrées ARP de la table arp -d nom_de_la_machine pour supprimer une entrée de la table arp -s nom_de_la_machine adresses_mac pour ajouter une nouvelle entrée dans la table.

D. route

Cette commande permet de voir, d'ajouter ou d'enlever les routes se trouvant déclarées sur votre machine. Ainsi pour indiquer à votre machine où aller trouver les adresses qui ne sont pas les adresses de votre réseau local, vous devez lui indiquer la passerelle (ou gateway) vers laquelle elle doit envoyer tous les paquets. Pour voir les routes indiquer route -n (on peut aussi utiliser netstat -nr) L'option -n permet de ne pas avoir la résolution des noms. Pour ajouter une route par defaut : route add default gateway 192.168.0.1 (La passerelle vers qui j'envoie tous les paquets qui ne sont pas pour le réseau local). Pour détruire cette route route del default Pour ajouter une route vers une machine indiquer route add -host 195.98.246.28 gateway 192.168.0.1 (Indiquer le netmask si celui-ci n'est pas un mask correspondant à la classe de votre adresse). Pour ajouter une route vers un réseau indiquer route add -net 195.98.246.0 netmask 255.255.0.0 gateway 192.168.0.1 Enfin pour supprimer une de ces routes remplacer add par del. La gateway ou passerelle correspond la plupart du temps à votre routeur. Pour avoir la route que vous venez d'ajouter à chaque démarrage placer la commande dans le fichier /etc/rc.d/rc.local par exemple. On peut aussi utiliser linuxconf pour faire la même chose.

E. netstat

Voilà une commande moins connue et pourtant très utile. Je ne peux ici commenter toutes les options, je vous propose de lire le man netstat. Elle permet en effet de connaître les ports en écoute sur votre machine, sur quelles interfaces, avec quels protocoles de transport (TCP ou UDP), les connexions actives et de connaître les routes. Pour voir les connexions actives netstat -nt, pour les ports ouverts netstat -ntl. On peut aussi vérifier s'il existe une route par défaut, par exemple existe-t-il une route par défaut vers la machine 195.98.246.28 utilisez alors netstat -nr | grep 195.98.246.28. L'option -a énumère les ports en cours d'utilisation ou ceux qui sont écoutés par le serveur.

Page 7: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 7 /90 -

Denis Szalkowski Formateur Consultant août 2004

L'option -i donne des informations sur les interfaces réseau.

F. traceroute

Traceroute permet de déterminer la route prise par un paquet pour atteindre la cible sur internet. On peut utiliser soit l'adresse IP, soit le nom d'hôte. Attention certains FireWall ou routeurs ne se laissent pas voir avec la commande traceroute. La commande traceroute est très utile pour savoir ou peut se trouver un blocage (plutôt ralentissement). Il existe un grand nombre d'options, entre autre il est possible de choisir les gateway (jusqu'à 8) pour atteindre une machine. Je vous conseille donc encore une fois de lire le man traceroute.

G. telnet

Telnet est l'outil indispensable à connaître. Il existe en tant que client sur tous les systèmes. Par contre Linux dispose en plus d'un serveur telnet permettant d'administrer à distance une machine (quoiqu'il existe maintenant un serveur telnet sur windows 2000). On peut ainsi administrer une machine linux depuis un Microsoft quelconque et, mais cela va de soi, depuis une autre machine linux. En tant que client, telnet vous permet d'envoyer et de lire vos messages (voir ici). Pour pouvoir administrer à distance, il faut que le serveur telnet soit installé sur la machine que vous souhaitez administrer. Pensez aussi à vérifier que cela est autorisé dans le fichier etc/inetd.conf et dans /etc/hosts.allow et /etc/hosts.deny (voir tcp wrappers). Si vous devez vous en servir sur un réseau local ou sur internet, préférez lui SSH (ou la version autorisée en France SSF), car alors les mots de passe ne se promènent pas en clair sur le réseau. Par défaut il n'est pas possible de se connecter en root avec une connexion telnet. Vous devez utiliser un autre compte et utiliser la commande su.

H. ftp

ftp est un outil qui permet de télécharger des fichiers entre machines. Vous connaissez les clients ftp comme ws_ftp. Sous Linux il existe un serveur ftp, que vous activez dans /etc/inetd.conf. Il est installé par défaut dans toutes les distributions. Ce serveur ftp n'est pas lié à l'installation d'apache, comme pour les systèmes Microsoft où vous devez installer IIS pour bénéficier de ce service. Attention toutefois le serveur ftp pose un problème de sécurité important, utilisez plutôt SFTP, qui est disponible avec SSH. Vous disposez aussi d'un client ftp en ligne de commande sous Linux comme sous Microsoft. La syntaxe étant pratiquement la même. [philippe@lycee1 /]$ ftp localhost Connected to localhost. 220 lycee1.ac-creteil.fr FTP server (Version wu-2.6.0(1) Mon Feb 28 10:30:36 EST 2000) ready. Name (localhost:philippe): philippe 331 Password required for philippe. Password: 230 User philippe logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> binary 200 Type set to I. ftp> mget * Voici les commandes que vous allez utiliser le plus : dir pour lister un répertoire cd nom_du_répertoire pour changer de répertoire

Page 8: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 8 /90 -

Denis Szalkowski Formateur Consultant août 2004

get mon_fichier pour copier un fichier vers votre client (obtenir). Il se place alors dans le répertoire où vous vous trouviez. mget * copier tous les fichiers du répertoire vers votre station put mon_fichier pour copier un fichier vers le serveur mput * pour copier les fichiers se trouvant dans votre répertoire. binary pour copier en mode binaire. exit pour quitter Il existe un grand nombre d'autres commandes. Mais vous avez là les principales, pour copier des fichiers entre machines. La commande ftp vous rendra un grand nombre de services, car elle permet assez simplement d'échanger des fichiers entre linux et windows, sans avoir à installer un client ftp ou à configurer samba.

I. nslookup

L'utilitaire nslookup permet d'interroger un serveur de nom (serveur dns) afin d'avoir des informations sur un domaine ou sur une machine. Par défaut nslookup utilise le serveur de nom configuré sur votre machine, vous pouvez toutefois interroger un autre serveur de nom. [root@aleu /]#nslookup Default Serveur: localhost Car j'ai un serveur dns sur ma machine Address: 127.0.0.1 >help Pour avoir de l'aide >set type = MX Pour lister les entrées de type MX (à savoir les serveurs SMTP du domaine). >ac-creteil.fr Le nom du domaine dont vous voulez avoir des MX Remplacer MX par le type d'enregistrement que vous souhaitez avoir. Par exemple NS pour les serveurs de nom d'un domaine, SOA pour start of authority, PTR pour le reverse, A pour une machine. Pour avoir toutes les informations set type=ANY puis le nom du domaine. On peut aussi utiliser la commande ls -t CNAME nom_du_domaine pour avoir tous les enregistrements de type cname (les alias). Pour interroger un autre serveur DNS que votre serveur par défaut server NAME 195.98.246.50.

J. who

Cette commande permet de connaître les personnes qui sont loguées sur votre machine.

K. last

Cette commande vous permet de voir les dernières connexions ayant eu lieu sur votre machine (en fait il lit le fichier /var/log/wtmp). last sans rien, vous affiche toutes les informations. last philippe toutes les connexions de l'utilisateur philippe. last reboot tous les reboot de la machine avec la date. lastb est une variante de last, dans la mesure ou il ne cherche que les mauvais login (il lit le fichier /var/log/btmp)

L. finger

finger est un service qui vous permet d'obtenir des informations sur les comptes utilisateurs de votre machine. Ce service est à proscrire. sa syntaxe est toutefois assez simple finger toto@la_machine_distante Pour avoir plus d'informations utiliser l'option -l Cet exemple montre les deux connexions ouvertes sur la machine aleu.

Page 9: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 9 /90 -

Denis Szalkowski Formateur Consultant août 2004

[root@aleu philippe]# finger -l Login: root Name: root Directory: /root Shell: /bin/bash On since Sun Oct 22 18:34 (CEST) on tty1 39 seconds idle (messages off) No mail. No Plan. Login: philippe Name: philippe Directory: /home/philippe Shell: /bin/bash On since Sun Oct 22 18:48 (CEST) on pts/0 from 10.100.1.19 No mail. No Plan. Par défaut et par sécurité les machines distantes ne permettent pas, ou plus les commandes finger.

M. tcpdump

tcpdump permet de faire des captures de paquets sur votre réseau. Je présente ici tcpdump car on le trouve sur tous les cd des distributions. Il n'est pas le plus agréable à utiliser et des utilitaires de ce type plus conviviaux existent. Mon but n'est pas ici de vous montrer comment devenir un pirate (en capturant les mots de passe qui circulent en clair sur votre réseau), mais plus de vous permettre de vérifier par exemple lorsque votre routeur monte la ligne sans que vous ne soyez capable de donner l'origine de cette montée de ligne. Comme de plus cela arrive la nuit (toujours quand on n'est pas là..!), il peut être utile de placer tcpdump et de capturer les paquets à destination de votre routeur et uniquement cela. Au petit matin en analysant le résultat vous savez quelle machine et quel protocole monte la ligne. Par exemple pour intercepter tous les paquets vers la machine 10.100.1.5 sur le port telnet tcpdump -l -q -x host 10.100.1.5 and port telnet Pour intercepter tous les paquets d'une machine vers une autre sur le port telnet tcpdump -l -q -x dst 10.100.1.5 and src 10.100.1.19 and port telnet and tcp Pour avoir tous les paquets qui arrivent sur votre machine 10.100.1.5 ne pas indiquer la source.

N. nmap

nmap est un outil pour scanner les ports ouverts sur une machine distante. Son utilisation est des plus simple nmap 192.168.0.1 pour scanner une machine ou nmap 192.168.0.* pour scanner les machines se trouvant dans le plan d'adressage 192.168.0.0/24 Utilisez l'option -v pour avoir plus d'informations. On peut bien sur scanner que certains protocoles, par défaut le protocole scanné est TCP. Pour scanner les deux nmap -v -sU -sT 192.168.0.1 Les options disponibles sont : -sT Scanne les ports TCP (attention cela est inscrit dans les fichiers de log de la machine cible). -sS Est identique au précédent sauf que cela ne laisse pas de trace. (il y a une différence quant à la méthode mais cela n'est pas l'objet de cette présentation). -sP En fait un ping. -p 20-140 Ne scanne que les ports entre 20 et 40. -I Pour avoir plus d'information sur le port ouvert [root@aleu philippe]# nmap -v -sU -sT 10.100.1.1 Starting nmap V. 2.30BETA17 by [email protected] ( www.insecure.org/nmap/ ) Host (10.100.1.1) appears to be up ... good. Initiating TCP connect() scan against (10.100.1.1) Adding TCP port 139 (state Open). Adding TCP port 25 (state Open). Adding TCP port 110 (state Open).

Page 10: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 10 /90 -

Denis Szalkowski Formateur Consultant août 2004

Adding TCP port 21 (state Open). Adding TCP port 135 (state Open). Adding TCP port 80 (state Open). Adding TCP port 1026 (state Open). The TCP connect scan took 1 seconds to scan 1534 ports. Initiating FIN,NULL, UDP, or Xmas stealth scan against (10.100.1.1) The UDP or stealth FIN/NULL/XMAS scan took 4 seconds to scan 1534 ports. Interesting ports on (10.100.1.1): Port State Service 21/tcp open ftp 25/tcp open smtp 80/tcp open http 110/tcp open pop-3 135/tcp open loc-srv 137/udp open netbios-ns 138/udp open netbios-dgm 139/tcp open netbios-ssn 1026/tcp open nterm Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds Il n'est pas installé par défaut sur votre machine, mais on commence à le trouver sur le CD d'installation des distributions. Il existe une interface graphique (installer nmap-frontend en version rpm). Evitez de scanner des machines qui ne sont pas vos machines. Ce produit a pour vocation de vérifier si votre machine est correctement configurée, pas pour tester les autres.

III. Nfs (Network File System)

A. Site web

http://nfs.sourceforge.net/

B. Les fichiers de configuration du serveur Nfs

/etc/exports Contient les partages et leurs gestions de droits associés /etc/hosts.allow Services autorisés à s'exécuter sur les machines distantes /etc/hosts.deny Services interdits à s'exécurter sur les machines distantes

C. Exemples de fichiers /etc/exports

1. Syntaxe générique

directory machine1(option11,option12) machine2(option21,option22)

2. Les options

ro Lecture seule rw Lecture écriture

3. Spécifier les noms de machines

/usr/local 192.168.0.1(ro) 192.168.0.2(ro) /home 192.168.0.1(rw) 192.168.0.2(rw)

4. Spécifier des sous-réseaux

/usr/local 192.168.0.0/255.255.255.0(ro) /home 192.168.0.0/255.255.255.0(rw)

5. Utiliser des noms de domaine

/usr/local *.dsfc.fr(ro) /home *.local(rw)

D. Exemples de fichiers hosts.deny et hosts.allow

Ces fichiers sont utilisés par le démon Inetd et nfsd.

Page 11: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 11 /90 -

Denis Szalkowski Formateur Consultant août 2004

1. Syntaxe générique

service: host [or network/netmask] , host [or network/netmask]

2. Exemples de fichiers /etc/hosts.deny

ALL:ALL

3. Exemples de fichiers /etc/hosts.allow

lockd: 192.168.0.0/255.255.255.0 rquotad: 192.168.0.0/255.255.255.0 mountd: 192.168.0.0/255.255.255.0 statd: 192.168.0.0/255.255.255.0

E. Exécution et contrôle d'exécution des services

1. Lancement du service

Le service portmap doit être préalablement activé. service nfs start

2. Contrôle du service

rpcinfo –p

3. Rechargement du fichier /etc/exports

exportfs –ra

F. Ports utilisés

Le service portmap utilise les ports Tcp/Udp 111. Le service nfsd utilise les ports Tcp/Udp 2049.

G. Test de conenxion en local sur le serveur

mkdir /mnt/nfs mkdir /mnt/nfs/home mount –o=nfsvers=2 192.168.0.252:/home /mnt/nfs/home

H. Clients Nfs

Hummingbird Nfs Maestro Labtam ProNFS Wrq Reflection

I. Commandes

1. nfsstat

2. nfs-export

IV. Nis (Network Internet Services)

A. Définition

C'est un système centralisé d'authentification pour des machines à base d'Unix ou de Linux. Il a évolué vers NYS (incluant NIS + et YP – Yellow Pages).

B. Les fichiers de configuration du serveur

/var/yp/securenets /etc/ypserv.conf.

C. Configuration du nom de domaine

NISDOMAIN in the file /etc/sysconfig/network.

Page 12: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 12 /90 -

Denis Szalkowski Formateur Consultant août 2004

V. Samba

A. Présentation

1. Historique

Le projet est né à partir de 1991. Le créateur de Samba, Andrew Tridgell, a trouvé l'acronyme à partir de la commande : grep -i 's.*m.*b' /usr/share/dict/words SMB/CIFS Server Message Block/Common Internet File System 1984 IBM développe l'API NetBIOS (Network Basic Input Output System). 1985 IBM définit NetBios Extended User Interface (NetBEUI). Le réseau est limité à 255 noeuds. 1987 L'IETF (Internet Engineering Task Force) normalise le fonctionnement de NetBIOS sur TCP/IP.

B. Résolution et enregistrement de nom Dans un réseau NetBios, chaque ordinateur diffuse son nom. Ce processus s'appelle l'enregistrement.

1. Types de noeuds

B broadcast pour l'enregistrement et la résolution P Point à point pour l'enregistrement et la résolution M Diffusion pour l'enregistrement et notification au NBNS NBNS pour la résolution et diffusion en cas d'échec H utilisation du NBNS pour l'enregistrement et la résolution. En cas de panne du NBNS, le noeud recourt à la diffusion. Ressource Valeur hexa Service de station de travail standard 00 Service Messagerie (Winpopup) 03 Service Serveur RAS 06 Service Explorateur principal (associé au PDC) 1B Nom explorateur principal 1D Service NetDDE 1F Serveur de fichiers et d'imprimantes 20 Serveur Client Ras 21 Agent de moniteur réseau BE Moniteur réseau BF Serveur de connexion 1C Non de groupe normal 1E Nom de groupe administratif 20 <01><02>_MSBROWSE_<02> 1

C. Les primitives Datagrammes UDP (137,138) Send Datagram Send Broadcast Datagram Receive Datagram Receive Broadcast Datagram Session TCP (139) Call Listen Hang-up Send Receive Session Status

D. Site Samba http://www.samba.org http://fr.samba.org/samba/docs

E. Les outils Samba samba Démarre, arrête et relance le service (samba restart|start|stop)

Page 13: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 13 /90 -

Denis Szalkowski Formateur Consultant août 2004

smbd Démon Samba qui s'appuie sur la configuration définie dans /etc/samba/smb.conf smbd –D installe le service smbd –h permet d'obtenir l'aide sur la commande. smbd –v affiche la version de Samba /usr/local/samba/bin/smbd -D -l /var/adm/smblogs/log -s /usr/local/samba/lib/smb.conf

nmbd démon gérant toutes les opérations relatives à la résolution de noms et le parcours du réseau et qui transforme le serveur Linux en serveur Wins

smbclient client UNIX pour se connecter à des ressources SMB telles que des partgaes sur des machines Windows à l'instar de clients Ftp

smbtar Sauvegarde des données identique à la commande tar sur le client nmblookup Permet d'effectuer des requêts sur des noms NetBios sur TCP/IP make_smbcodepage Crée des fichiers de page de code pour le serveur smbd smbadduser Crée un utilisateur Samba dans le fichier /etc/smbpasswd smbpasswd Crée un mot de passe associé à un utilisateur Samba dans le fichier /etc/smbpasswd smbstatus Etat des connexions au démon smbd testparm Test du fichier /etc/samba/smb.conf testprns Vérification des impirmantes réseau définies dans le fichier /etc/printcap SWAT (Samba Web Administration Tool)

Il utilise le port TCP/901. addtosmbpass Script utilisé pour ajouter des entrées sans mots de passe dans le fichier smbpasswd convert_smbpasswd Script permettant de convertir des fichiers smbpasswd d'une version ultérieure vers la

version 2.0.x. make_printerdef Script utilisé pour créer un fichier printer.def depuis un fichier .inf de Windows. make_smbcodepage Utilisé pour créer un code page pour Samba. rpcclient Un outil pour les dévelopeurs. smbrun Programme d'interfaçage entre Samba et d'autre programmes. smbtar Outil de backup. Avec l'option smbwrapper smbsh Shell qui vous permet de parcourir un serveur SMB. smbwrapper.so Librairie requise par smbsh. Avec l'option smbmount smbmnt Permet de monter un partage NetBIOS. smbmount Commande qui effectue le montage d'un répertoire smbumount Commande qui démonte le répertoire. Linuxconf Webmin

F. Option smbwrapper smbwrapper Compilé avec cette option, vous pourrez à partir de votre station faire : ls /smb cd /smb/nom_de_serveur/nom_de_partage

G. Liste des dépendances cd /usr/sbin ldd smbd libssl.so.0 => /usr/lib/libssl.so.0 (0x40020000) libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4004e000) libdl.so.2 => /lib/libdl.so.2 (0x40106000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x40109000) libnsl.so.1 => /lib/libnsl.so.1 (0x40136000) libdes425.so.3 => /usr/kerberos/lib/libdes425.so.3 (0x4014d000) libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x40151000) libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3 (0x401ba000) libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x401cf000) libpam.so.0 => /lib/libpam.so.0 (0x401d1000) libc.so.6 => /lib/libc.so.6 (0x401d9000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Page 14: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 14 /90 -

Denis Szalkowski Formateur Consultant août 2004

H. Configuration ./configure --with-smbwrapper

I. Compilation make

J. Installation make install

K. Répertoires /usr/local/samba arborescence prinicpale /usr/local/samba/bin binaires /usr/local/samba/lib fichiers de configuration smb.conf et lmhosts /usr/local/samba/man documentation /usr/local/samba/private

L. Fichiers de configuration Dans le fichier /etc/services : swat 901/tcp netbios-ssn 139/tcp netbios-ns 137/udp Dans le fichier /etc/inetd.conf : swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd netbios-ns stream tcp nowait root /usr/local/samba/bin/smbd nmbd Contenu du fichier /etc/xinetd.d/swat

service swat { port = 901 socket_type = stream only_from=localhost wait = no user = root server = /usr/sbin/swat #server_args = /usr/sbin/swat log_on_failure += USERID disable = no }

M. Fichiers de log Vous pouvez tracer l'activité au niveau des connexions et du serveur en éditant les fichiers contenus dans le dossier /var/log/samba.

N. Lancement de Samba

a) Manuel /usr/local/samba/bin/smbd –D /usr/local/samba/bin/nmbd –D

b) Script /etc/rc.local/smb start|stop

2. Vérification de l'installation

smbclient –U% -L localhost

Page 15: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 15 /90 -

Denis Szalkowski Formateur Consultant août 2004

O. Partage de disques

1. Variables

Variables client %a Architecture du client (Samba, WfWg, WinNT,Win95, UNKNOWN)

%I Adresse IP du client %m Nom NetBIOS du client %M Nom DNS du client Variables utilisateur %g Groupe principal de l'utilisateur UNIX %G Groupe principal du nom d'utilisateur client demandé %H Répertoire de base de l'utilisateur %u Nom de l'utilisateur UNIX actuel %U Nom d'utilisateur client demandé Variables de partage %p Chemin d'accès au montage %P Répertoire racine du partage en cours %S Nom du partage en cours Variables serveurs %d ID de processus du serveur en cours %h Non d'hôte DNS du serveur SAMBA %L Nom Netbios du serveur Samba %N Serveur de répertoires de base établi à partir de la table automount %v Version de Samba Autres variables %R Niveau de protocole SMB pris en compte dans la négociation %T Date et heure courantes

2. Sections de /etc/samba/smb.cnf

[global] Paramètres s'appliquant à tous les partages [homes] Partage s'appliquant aux utilisateurs connectés s'ils sont identifiés dans le fichier passwd ou smbpasswd. Le partage auquel ils accèdent est par défaut /home/nom_utilisateur

3. Fichiers externes

[global] config file=/usr/local/samba/lib/smb.conf.%m # Les paramètres globaux sont lus à partir du fichier spécifié ci-dessus. include file=/usr/local/samba/lib/smb.conf.%m # Les paramètres du fichier spécifiés ci-dessus sont inclus dans la section globale.

4. Les modèles

[modele] writable=yes browsable=yes invalid users=dsi,jdt,jms [partage] path=/home/partage copy=modele

5. Options de configuration des partages

path Répertoire partagé guest ok Permet le partage sans authentification si la valeur est à yes

L'identité de l'utilisateur guest est définie dans la section [global] par la directive guest account=nom_utilisateur

comment commentaire volume Nom dos de l'unité physique read only Le partage est en lecture seule si la valeur est à yes writeable Permet l'écriture si la valeur de ce paramètre est à yes

6. Options réseau (section [global])

hosts allow Autorise les machines spécifiées à accéder au serveur hosts allow=192.168.0. localhost|ALL|ALL EXCEPT 192.168.0.100

Page 16: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 16 /90 -

Denis Szalkowski Formateur Consultant août 2004

hosts deny Interdit les machines spécifiées à accéder au serveur hosts deny=192.168.0.2 interfaces Spécifie des cartes réseaux par lesquels vous voulez autoriser l'accès au serveur Samba interfaces=192.168.0.1/255.255.255.0 \ 193.168.0.1/255.255.255.0 # le backslash permet d'entrer plusieurs lignes associées à la mê directive. bind interfaces only En passant cette directive à yes, le serveur refuse les messages de diffusion n'émanant pas des interfaces socket address Définit l'ip qui écoute netbios aliases Définit les serveurs hébergés sous les noms définis par cette directive netbios aliases = drh compta prod

7. Options d'exploration (section [global])

announce as Déclare le serveur en tant que serveur Win95, WinNT, WfW, NT announce version Par défaut, le serveur est en mode Windows NT 4.2. Evitez de changer cette valeur. browe list Fournit la liste d'exploration à toutes les machines qui se connectent au serveur Samba. la valeur par défaut est à yes browseable Si la valeur est à yes, le partage est affiché dans le voisinage réseau du poste client auto services ou preload Spécifie la liste des utilisateurs dont les répertoires personnels seront visibles à partir d'une exploration réseau local master Le serveur Samba tente de devenir l'explorateur principal si la valeur est à yes preferred master Permet de transformer le serveur Samba en tant qu'explorateur principal. Passez cette valeur à yes os level En passant la valeur à 34 (supérieure à 33), l'explorateur Samba prend le pas sur tous les explorateurs Windows Nt. Windows Nt Server 4 33 Windows Nt Server 3.51 32 Windows Nt WorkStation 4.0 17 Windows Nt WorkStation 3.51 16 Windows 98 2 Windows 95 1 Windows 3.1 for WorkGroups 1 domain master Passez la valeur à yes au cas où Samba soit le contrôleur de domaine remote browse Se synchronise avec les sous-réseaux remote announce Envoie les listes d'exploration

8. Journalisation

Il faut avoir compiler Samba avec l'option --with syslog

9. Système de fichiers([global] ou [partage])

hide files=/*.jpg/*.mp3/ Permet de cacher les fichiers spécifiés veto files=/*.jpg/*.mp3/ Enlève les fichiers spécifiés de la liste follow symlinks=no Evite de suivre les liens symboliques constitués dans l'arborescence du partage. les liens symboliques sont assimilés à des raccourcis wide links=yes Permet de suivre les liens symboliques en dehors du partage unix realname=no Si l'option est à yes, elle fournit le nom complet figurant dans le fichier passwd dont descend= rep1 rep2 Spécifie des répertoires Comme étant vides getwd cache=yes Par défaut à no, cette valeur permet d'accélérer l'accès au répertoire de travail hide dot files=yes Vous ne pourrez pas voir les Fichiers commençant par un point. delete veto files=yes Supprime les fichiers spécifiés dans les fichiers à ne jamais visualiser.

10. Permissions

create mask=0755 Propriétaire RWX, Groupe RX, Autres RX

P. Sécurité

1. Utilisateurs ([partage])

valid users=user1 user2 @group1 @group2 Définit les utilisateurs ayant accès au partage

Page 17: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 17 /90 -

Denis Szalkowski Formateur Consultant août 2004

invalid users… fonction symétrique à la précédente admin users=… Définit les utilisateurs agissant en tant que root guest account=anonymous L'utilisateur anonymous est défini en tant que compte invité #Cette directive peut se définir dans la section Global guest ok=yes Active l'accès de type invité guest only=yes N'autorise que l'accès en tant qu'invité read list=user1 user2 Accès en lecture seule write list=user3 user4 Accès en écriture max connections=10 Limite le nombre de connections

2. Sécurité([global])

security=domain|share|user|server domain : par un contrôleur de domaine server : par un autre serveur user : utilisateur et mot de passe share : mot de passe

a) Niveau partage (share) [global] security=share [partage] username=pierre, paul, jacques only user=yes Seuls les utilisateurs spécifiés ont le droit de se connecter.

b) Niveau utilisateur (user) [global] security=share [partage] writable=yes valid users=pierre, paul, jacques

c) Niveau utilisateur (server) [global] security=server password server=SERVER

d) Niveau domaine (domain) [global] security=domain password server=SERVER domain logins=yes workgroup=DSFC N'oubliez pas de créer sur le serveur Samba smbpasswd –j DSFC –r SERVER

3. Mots de passe

[global] security=user encrypt passwords=yes smb passwd file=/usr/local/samba/private/smbpasswd unix password sync=yes passwd program=changepass %u passwd chat=*old*password* %o\n *new*password %n\n *new*password %n\n changed

Page 18: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 18 /90 -

Denis Szalkowski Formateur Consultant août 2004

Q. Serveur Nt

1. PDC NT (DOMAIN.TXT)

a) Client 9x [global] workgroup=DSFC domain logons=yes security=user os level=34 local master=yes preferred master=yes domain master=yes [netlogon] comment=Netlogon path=/tmp/netlogon public=no writeable=no

b) Client Nt [global] workgroup=DSFC domain logons=yes security=user encrypt passwords=yes Pour la gestion des mots de passe : smbpasswd –a –m dsi

c) Scripts de connexion [global] logon scripts=%U.bat

d) Profil errant (PROFILES.TXT) logon path=\\SERVER\PROFILE\%U [profile] comment = Profils path=/tmp/profile create mode=0600 directory mode= 0700 writable=yes browsable=no

2. Serveur Wins

Pour spécifier le fichier lmhosts, modifiez le Fichier /etc/sysconfig/samba en entrant : NMBDOPTIONS="-D -H /etc/samba/lmhosts" [global] wins support=yes name resolve order=wins bcast hosts lmhosts dns proxy=yes

3. impression

a) Variables %s Chemin du fichier à imprimer %f Nom du fichier %p Nom de l'imprimante UNIX %j Numéro du travail d'impression

Page 19: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 19 /90 -

Denis Szalkowski Formateur Consultant août 2004

b) Partage [impr1] printable = yes print command =/usr/bin/lpr –r %s printer = lp printing = BSD read only=yes guest account=anonymous guest ok=yes

c) test testprns lp /etc/printcap

d) Partage PRINTER$ (PRINTER_DRIVER.TXT) Il fait copier les fichiers c:\windows\inf\msprint.inf

R. Exemples de script

[global] workgroup = DSFC server string = La machine du Pepere Denis netbios name=SERVER ; netbios aliases=PEPERE DENIS # This option is important for security. It allows you to restrict # connections to machines which are on your local network. The # following example restricts access to two C class networks and # the "loopback" interface. For more examples of the syntax see # the smb.conf man page ; hosts allow = 192.168.1. 192.168.2. 127. # if you want to automatically load your printer list rather # than setting them up individually then you'll need this printcap name = /etc/printcap load printers = yes # It should not be necessary to spell out the print system type unless # yours is non-standard. Currently supported print systems include: # bsd, sysv, plp, lprng, aix, hpux, qnx printing = lprng guest account = guestsmb # this tells Samba to use a separate log file for each machine # that connects log file = /var/log/samba/%m.log # Put a capping on the size of the log files (in Kb). max log size = 0 # Security mode. Most people will want user level security. See # security_level.txt for details. security = domain # Use password server option only with security = server or security = domain password server = * # Password Level allows matching of _n_ characters of the password for # all combinations of upper and lower case. ; password level = 8 ; username level = 8 # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. # Do not enable this option unless you have read those documents encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd # The following are needed to allow password changing from Windows to # update the Linux sytsem password also.

Page 20: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 20 /90 -

Denis Szalkowski Formateur Consultant août 2004

# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above. # NOTE2: You do NOT need these to allow workstations to change only # the encrypted SMB passwords. They allow the Unix password # to be kept in sync with the SMB password. ; unix password sync = Yes ; passwd program = /usr/bin/passwd %u ; passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n*passwd:*all*authentication*tokens*updated*successfully* # Unix users can map to different SMB User names ; username map = /etc/samba/smbusers # Using the following line enables you to customise your configuration # on a per machine basis. The %m gets replaced with the netbios name # of the machine that is connecting ; include = /etc/samba/smb.conf.%m # Most people will find that this option gives better performance. # See speed.txt and the manual pages for details socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # Configure Samba to use multiple interfaces # If you have multiple network interfaces then you must list them # here. See the man page for details. ; interfaces = 192.168.12.2/24 192.168.13.2/24 # Configure remote browse list synchronisation here # request announcement to, or browse list sync from: # a specific host or from / to a whole subnet (see below) ; remote browse sync = 192.168.3.25 192.168.5.255 # Cause this host to announce itself to local subnets here ; remote announce = 192.168.1.255 192.168.2.44 # Browser Control Options: # set local master to no if you don't want Samba to become a master # browser on your network. Otherwise the normal election rules apply local master = no # OS Level determines the precedence of this server in master browser # elections. The default value should be reasonable os level = 33 # Domain Master specifies Samba to be the Domain Master Browser. This # allows Samba to collate browse lists between subnets. Don't use this # if you already have a Windows NT domain controller doing this job domain master = no # Preferred Master causes Samba to force a local browser election on startup # and gives it a slightly higher chance of winning the election preferred master = yes # Enable this if you want Samba to be a domain logon server for # Windows95 workstations. domain logons = yes # if you enable domain logons then you may want a per-machine or # per user logon script # run a specific logon batch file per workstation (machine) logon script = essai.bat ;%m.bat # run a specific logon batch file per username # logon script = %U.bat # All NetBIOS names must be resolved to IP Addresses # 'Name Resolve Order' allows the named resolution mechanism to be specified # the default order is "host lmhosts wins bcast". "host" means use the unix # system gethostbyname() function call that will use either /etc/hosts OR # DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf # and the /etc/resolv.conf file. "host" therefore is system configuration # dependant. This parameter is most often of use to prevent DNS lookups # in order to resolve NetBIOS names to IP Addresses. Use with care! # The example below excludes use of name resolution for machines that are NOT

Page 21: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 21 /90 -

Denis Szalkowski Formateur Consultant août 2004

# on the local network segment # - OR - are not deliberately to be known via lmhosts or via WINS. name resolve order = wins lmhosts bcast # Windows Internet Name Serving Support Section: # WINS Support - Tells the NMBD component of Samba to enable it's WINS Server wins support = yes # WINS Server - Tells the NMBD components of Samba to be a WINS Client # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both ; wins server = w.x.y.z # WINS Proxy - Tells Samba to answer name resolution queries on # behalf of a non WINS capable client, for this to work there must be # at least one WINS Server on the network. The default is NO. ; wins proxy = yes # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names # via DNS nslookups. The built-in default for versions 1.9.17 is yes, # this has been changed in version 1.9.18 to no. dns proxy = no # Case Preservation can be handy - system default is _no_ # NOTE: These can be set on a per share basis ; preserve case = no ; short preserve case = no # Default case is normally upper case for all DOS files ; default case = lower # Be very careful with case sensitivity - it can break things! ; case sensitive = no #============================ Share Definitions ============================== [homes] comment = Home Directories browseable = yes writable = yes # Un-comment the following and create the netlogon directory for Domain Logons [netlogon] comment = Network Logon Service path = /home/netlogon public = yes guest ok = yes browsable=yes writable = yes share modes = no # Un-comment the following to provide a specific roving profile share # the default is to use the user's home directory [Profiles] path = /home/profiles browseable = no guest ok = yes # NOTE: If you have a BSD-style print system there is no need to # specifically define each individual printer [printers] comment = All Printers path = /var/spool/samba browseable = no # Set public = yes to allow user 'guest account' to print guest ok = no printable = yes # This one is useful for people to share files ;[tmp] ; comment = Temporary file space ; path = /tmp ; read only = no ; public = yes

Page 22: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 22 /90 -

Denis Szalkowski Formateur Consultant août 2004

# A publicly accessible directory, but read only, except for people in # the "staff" group ;[public] ; comment = Public Stuff ; path = /home/samba ; public = yes ; writable = yes ; printable = no ; write list = @staff # Other examples. # # A private printer, usable only by fred. Spool data will be placed in fred's # home directory. Note that fred must have write access to the spool directory, # wherever it is. ;[fredsprn] ; comment = Fred's Printer ; valid users = fred ; path = /homes/fred ; printer = freds_printer ; public = no ; printable = yes # A private directory, usable only by fred. Note that fred requires write # access to the directory. ;[fredsdir] ; comment = Fred's Service ; path = /usr/somewhere/private ; valid users = fred ; public = no ; writable = yes ; printable = no # a service which has a different directory for each machine that connects # this allows you to tailor configurations to incoming machines. You could # also use the %u option to tailor it by user name. # The %m gets replaced with the machine name that is connecting. ;[pchome] ; comment = PC Directories ; path = /usr/pc/%m ; public = no ; writable = yes # A publicly accessible directory, read/write to all users. Note that all files # created in the directory by users will be owned by the default user, so # any user with access can delete any other user's files. Obviously this # directory must be writable by the default user. Another user could of course # be specified, in which case all files would be owned by that user instead. ;[public] ; path = /usr/somewhere/else/public ; public = yes ; only guest = yes ; writable = yes ; printable = no # The following two entries demonstrate how to share a directory so that two # users can place files there that will be owned by the specific users. In this # setup, the directory should be writable by both users and should have the # sticky bit set on it to prevent abuse. Obviously this could be extended to # as many users as required. ;[myshare] ; comment = Mary's and Fred's stuff ; path = /usr/somewhere/shared ; valid users = mary fred ; public = no

Page 23: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 23 /90 -

Denis Szalkowski Formateur Consultant août 2004

; writable = yes ; printable = no ; create mask = 0765 [TSAR] comment=Repertoire des TSAR path=/home/tsar public=yes browsable=yes writable=yes guest ok=yes create mask=0755

S. Trou de sécurité

Ce bogue, dû à la mauvaise interprétation par le logiciel d'un commande de macro, permet à un utilisateur mal intentionné d'acquérir facilement les droits "root" sur des machines utilisant Samba et comportant au moins une ligne de type "log file = /var/log/samba/%m" ou "log file = /var/log/samba/%m.log" dans leur fichier de configuration "smb.conf". Pour reboucher ce trou, il y a deux possibilités : soit vous modifiez votre fichier "smb.conf" pour faire disparaître le "%m" au profit d'un "%I", soit vous allez télécharger (gratuitement, cela va sans dire) les patches adéquats qui feront passer votre logiciel, selon les circonstances, du numéro 2.0.9 à 2.0.10 et du numéro 2.2.0 à 2.2.0a. Pour ceux qui ne le savent pas, Samba est un logiciel open source qui permet d'interfacer des machines tournant sous des OS différents (par exemple, des machines fonctionnant sous Windows NT et d'autres tournant sous Gnu/Linux), rendant possibles les échanges de fichiers et le partage d'imprimantes.

http://fr.samba.org/samba/whatsnew/macroexploit.html

http://fr.samba.org/samba/ftp/patches/samba-2.0.9-2.0.10.diffs.gz

http://fr.samba.org/samba/ftp/patches/samba-2.2.0-2.2.0a.diffs.gz

T. Bibliographie

Samba O'Reilly Robert Eckstein, David Collier-Brown, Peter Kelly

VI. Bind

A. Fichier /etc/host.conf

Le Fichier signale au convertissuer l'ordre dans lequel doit s'opérer la résolution de noms. Exemple de fichier /etc/host.conf order hosts,bind multi on Les options de configuration du fichier host.conf : Option Description

order Spécifie l'ordre dans lequel les différents mécanismes de résolution de noms sont appliqués. Les services de résolutions spécifiés sont appliqués dans l'ordre donnés. Les mécanismes de résolution de noms supportés sont les suivants :

hosts Essaie de convertir le nom en cherchant dans le fichier /etc/host local. bind Lance une requête à un serveur DNS pour convertir le nom. nis Utilise le protocole NIS (Network Information Service) pour convertir le nom d'hôte.

alert A utiliser avec on ou off comme argument. Si elle est activée, chaque tentative de "spoofing" est enregistrée à l'aide de syslog.

nospoof

Si une adresse spécifiée est associée à un nom d'hôte à l'aide d'une résolution inverse, le nom renvoyé est converti afin de vérifier qu'il correspond à l'adresse demandée. Cette procédure évite le "spoofing" (incohérence) d'adresse IP. Cette opton est activée n spécifiant nospoof on. Attention le fait d'activer cette option peut entrainer une surcharge du système.

trim Avec un nom de domaine comme argument, trim enlève le nom de domaine avant de chercher dans /etc/hosts. Ainsi vous pouvez saisir uniquement le nom d'hôte de base qui se trouve dans /etc/hosts sansavoir à spécifier le nom de domaine.

multi A utiliser avec on ou off comme argument. Utilisé uniquement avec les requêtes hosts afin de

Page 24: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 24 /90 -

Denis Szalkowski Formateur Consultant août 2004

déterminer si un hôte peut avoir plusieurs adresses IP spécifiées dans /etc/hosts. Cette option n'a aucun effet sur les requêtes NIS ou DNS.

B. Fichier /etc/resolv.conf

En spécifiant le mot-clé bind dans le Fichier host.conf, vous devez préciser le serveur Dns à utiliser. Exemple de fichier /etc/resolv.conf : domain dsfc.com search dsfc.com nameserver 192.168.0.1 Les options de configuration du fichier resolv.conf : Option Description

domain Indique le nom de domaine local de cet hôte. S'il n'est pas fourni, le convertisseur essaie de l'obtenir à l'aide de l'appel système getdomainename().

nameserver

Spécifie l'adresse IP d'un serveur DNS à contacter afin de convertir un nom. Un maximum de trois serveur peut être saisi en utilisant l'option nameserver plusieurs fois. Les serveurs sont interrogés dans l'ordre précisé. Il vaut mieux placer le serveur le plus fiable en premier afin d'éviter une perte de temps dans une recherche sur un serveur qui risque de se planter.

search Liste de domaines à essayer si aucun domaine n'est spécifié dans la requête d'un nom d'hôte. Si aucune option de recherche n'est précisée, la liste de domaines est créée à partir du domaine local, plus chaque domaine père du domaine local.

C. /etc/nsswitch.conf

Ce fichier indique dans quel ordre le système doit chercher un nom d'hôte. Exemple de fichier /etc/nsswitch.conf hosts: files dns

D. Exemple de fichier named.conf

// generated by named-bootconf.pl options { directory "/var/named"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; }; // // a caching only nameserver config // zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; zone "dsfc.fr" {

Page 25: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 25 /90 -

Denis Szalkowski Formateur Consultant août 2004

type master; file "/var/named/dsfc.fr.hosts"; };

E. Exemples de fichier de zone dsfc.fr.hosts

$ttl 38400 dsfc.fr. IN SOA server.dsfc.fr. ( 994013543 10800 3600 432000 38400 ) dsfc.fr. IN NS server.dsfc.fr. www.dsfc.fr. IN A 192.168.0.1 web.dsfc.fr. IN CNAME www server.dsfc.fr. IN A 127.0.0.1

VII. Configuration d'un serveur Dhcp

A. Site

http://www.isc.org/dhcp.html http://www.lysator.liu.se/~backstrom/kcmdhcpd/

B. Téléchargement

Téléchargez le démon Boot/Dhcp à partir de proxad.linux.com Recherchez dhcpd.

C. Compilation

Décompressez le fichier contenant le code source du démon dhcpd : tar xfz dhcp*.tar.gz Ensuit, tapez : ./configure Compilez le programme : make Linkez le code : make install Copiez le fichier dhcpd dans le répertoire /usr/sbin

D. Script

Au niveau de la RedHat, le script est stocké dans le fichier /etc/rc.d/init.d/dhcpd #!/bin/sh # # dhcpd This shell script takes care of starting and stopping # dhcpd. # # chkconfig: - 65 35 # description: dhcpd provide access to Dynamic Host Control Protocol. # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -f /usr/sbin/dhcpd ] || exit 0 [ -f /etc/dhcpd.conf ] || exit 0 RETVAL=0 # See how we were called.

Page 26: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 26 /90 -

Denis Szalkowski Formateur Consultant août 2004

case "$1" in start) # Start daemons. echo -n "Starting dhcpd: " daemon /usr/sbin/dhcpd eth1 RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dhcpd ;; stop) # Stop daemons. echo -n "Shutting down dhcpd: " killproc dhcpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dhcpd ;; restart|reload) $0 stop $0 start RETVAL=$? ;; status) status dhcpd RETVAL=$? ;; *) echo "Usage: dhcpd {start|stop|restart|status}" exit 1 esac exit $RETVAL

E. Installation à partir d'un fichier rpm

Introduisez le cd Tapez : mount /mnt/cdrom Entrez la commande : rpm –ivh /mnt/cdrom/RedHat/RPMS/dhcp*.rpm

Créez les fichiers /etc/dhcpd.conf et dhcpd.leases. Selon les versions, le fichier dhcpd.leases peut être Stocké dans : /var/state/dhcp/ /var/lib/dhcp/ /etc/

Exécutez setup ou linuxconf et cochez dhcp pour que le service soit actif au lancement de la machine.

F. Exemple de fichier dhcpd.conf

default-lease-time 1200; max-lease-time 7200; option netbios-name-servers 192.168.0.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.254; option domain-name-servers 193.252.19.3,193.252.19.4; option domain-name "dsfc.fr"; subnet 192.168.0.0 netmask 255.255.255.0 {

Page 27: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 27 /90 -

Denis Szalkowski Formateur Consultant août 2004

range 192.168.0.100 192.168.0.200; } host station { hardware ethernet 00:80:c8:d4:b2:c5; fixed-address 192.168.0.151; }

G. 4.4. Lancez le serveur dhcpd

A partir de la ligne de commande, vous pouvez taper : /usr/sbin/dhcpd /usr/sbin/dhcpd eth0

H. 5.4 Contrôle

dhcpd -d -f

I. Exemple

### Example dhcpd.conf file for a Class C subnet 192.168.196.0 ### ddns-update-style ad-hoc; subnet 192.168.196.0 netmask 255.255.255.0 { ### --- default gateway option subnet-mask 255.255.255.0; option broadcast-address 192.168.196.255; option routers 192.168.196.1; # option nis-domain "mydomain"; option domain-name "mynet.home"; option domain-name-servers 192.168.196.2; option time-offset 1; # Middle European Time # option ntp-servers 192.168.1.1; # option netbios-name-servers 192.168.1.1; ### --- Selects point-to-point node (default is hybrid). Don't change this ### -- unless you understand Netbios very well # option netbios-node-type 2; # A range of hosts from .3 to .11 are dynamically allocated: range dynamic-bootp 192.168.196.3 192.168.196.11; default-lease-time 21600; max-lease-time 43200; # make my nameserver appear at a fixed address host ns { hardware ethernet 00:A0:C9:3D:B0:92; fixed-address 192.168.196.2; } group { next-server ns.mynet.home; ## NOTE that my rembo setup needs this PXE option: option dhcp-class-identifier "PXEClient";

Page 28: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 28 /90 -

Denis Szalkowski Formateur Consultant août 2004

# my host 'test' is statically allocated here: host test { hardware ethernet 00:D0:B7:B0:FC:47; fixed-address 192.168.196.12; } } }

VIII. Apache

A. Fonctionnement d'Apache

1. Les binaires

a) Sous Unix /usr/local/apache/httpd

b) Sous Windows C:\Program Files\Apache Group\Apache\apache.exe

2. Les répertoires appartenant aux sites

a) conf Ce répertoire contient les fichiers de configuration, dont le fichier http.conf.

b) htdocs Ce dossier stocke les pages html consultables.

c) logs Le dossier consigne sous forme de fichier tout l'historique d'utilisation d'apache et, par là-même, les erreurs observés lors du fonctionnement d'Apache.

d) cgi-bin Ce répertoire abrite touts les scripts CGI (Common Gateway Interface). Il peut s'agir de programmes écrits en C.

3. Lancement d'Apache

a) Paramètres -D nom Définit un nom contenant les directives <IfDefine> -d répertoire Indique un nom de répertoire ServerRoot de remplacement -f nom_de_fichier indique un nom de fichier ServerConfig de remplacement -C "directive" Traite la directive avant de lire les fichiers de configuration -c "directive" Traite la directive après la lecture des fichiers de configuration -v indique le numéro de version Server version: Apache/1.3.12 (Win32) Server built: Feb 25 2000 21:11:24 -R ne fonctionne que sur une récente version d'Apache compilée avec le symbole SHARED_CORE qui rend partageable le cœur de son code exécutable -V propose plusieurs informations sur l'exécutable Server version: Apache/1.3.12 (Win32) Server built: Feb 25 2000 21:11:24 Server's Module Magic Number: 19990320:7 Server compiled with.... -D HAVE_MMAP -D USE_MMAP_SCOREBOARD -D NO_WRITEV -D NO_OTHER_CHILD -D NO_RELIABLE_PIPED_LOGS

Page 29: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 29 /90 -

Denis Szalkowski Formateur Consultant août 2004

-D MULTITHREAD -D HTTPD_ROOT="/apache" -D SUEXEC_BIN="/apache/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_XFERLOG="logs/access.log" -D DEFAULT_ERRORLOG="logs/error.log" -D TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" -D ACCESS_CONFIG_FILE="conf/access.conf" -D RESOURCE_CONFIG_FILE="conf/srm.conf" -l liste les modules compilés Compiled-in modules: http_core.c mod_so.c mod_mime.c mod_access.c mod_auth.c mod_negotiation.c mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c mod_userdir.c mod_alias.c mod_env.c mod_log_config.c mod_asis.c mod_imap.c mod_actions.c mod_setenvif.c mod_isapi.c -L liste commentée de directives utilisables -S indique les paramètres du virtualhost -t Teste la syntaxe du fichier de configuration -i installe Apache en tant que service Nt Pour arrêter ou démarrer le service, vous pouvez aller dans le panneau de configuration et double-cliquez sur l'icône Services. Installing the Apache service to use d:/program files/apache group/apache/conf/httpd.conf The Apache service has been installed successfully. -u désinstalla Apache en tant que service Nt Removing the Apache service The Apache service has been removed successfully. -s Sous Nt, ce paramètre interdit à Apache De s'enregistrer en tant que service. Sous Windows 95, cela offre un démarrage plus rapide. -k shutdown|restart Arrêt ou redémarre le serveur.

4. Fichiers de trace

a) Sécurité Il est recommandé de ne jamais donner les droits en écriture au niveau des répertoires où sont écrits les traces.

b) Pid Au lancement, Apache écrit le numéro de processus du processus père httpd dans le fichier logs/httpd.pid. Le nom du fichier peut être changé en modifiant la directive PidFile.

Page 30: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 30 /90 -

Denis Szalkowski Formateur Consultant août 2004

c) Erreurs Sur Unix, les messages d'erreur sont stockés dans le fichier logs/error_log. Sur Windows, vous les trouverez dans logs/error.log. Pour modifier leur chemin, vous pouvez utiliser la directive ErrorLog dont la portée s'applique au fichier de config ou au Virtual Host. Syntaxe ErrorLog logs/error.log Portée Config, virtual host

d) Historique des accès au site Syntaxe TransferLog fichier|commande Défaut Aucun Exemple TransferLog logs/transfer.log Portée Config, Virtual host

e) Format de log LogFormat définit le format du fichier de log au format CLF (Common Log Format). Syntaxe LogFormat "Chaîne"

%b Octets envoyés %{var_env}e Nom de la variable d'environnemnt var_env %f fichier à présenter %a adresse ip distante %h hôte distant %{nom_en_tête}i contenu d'en-tête envoyé par le client %l nom d'utilisateur distant %{nom_note}n valeur d'une note qui sert à transmettre une valeur entre les modules %{nom_en_tête}o Contenu des lignes d'en-tête de la réponse %P PID Apache %p port du serveur %r Première ligne de la requête %s Status de la requête %>s Etat de la dernière requête %t Heure %U url demandée %u utilisateur distant %v hôte virtuel du serveur

Exemple LogFormat "%h %¨l %u %t %r %s %b" Format CLF

f) Fichier de log personnalisé Syntaxe CustomLog logs/custom.log "%a %h %l %u %U %t"

g) Requêtes Sur Unix, il s'agit du fichier logs/access_log, alors que, sous Windows, l'activité est stockée dans logs/access.log. Tout es modifiable à l'aide de la directive CustomLog. Cette directive s'applique aussi à VirtualHost.

5. La gestion d'erreurs

a) Les messages communs

Code d'erreur Message d'erreur

200 Ok

302 Trouvé

304 Non modifié

400 Mauvaise requête

401 Pas autorisé

Page 31: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 31 /90 -

Denis Szalkowski Formateur Consultant août 2004

401.1 Logon failed

401.2 Logon failed due to server configuration

401.3 Unauthorized due to ACL on resource

401.4 Authorization failed by filter

401.5 Authorization failed by ISAPI/CGI application

403 Interdit

403.1 Execute access forbidden

403.2 Read access forbidden

403.3 Write access forbidden

403.4 SSL required

403.5 SSL 128 required

403.6 IP address rejected

403.7 Client certificate required

403.8 Site access denied

403.9 Too many users

403.10 Invalid configuration

403.11 Password change

403.12 Mapper denied access

403.13 Client certificate revoked

403.14 Directory listing denied

403.15 Client Access Licenses exceeded

403.16 Client certificate untrusted or invalid

403.17 Client certificate has expired or is not yet valid

404 Not found

404.1 Site not found

405 Method not allowed

406 Not acceptable

407 Proxy authentication required

412 Precondition Failed

414 Request-URI too long

500 Internal server error

500.12 Application restarting

500.13 Server too busy

500.15 Requests for Global.asa not allowed

Page 32: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 32 /90 -

Denis Szalkowski Formateur Consultant août 2004

500-100.asp ASP error

501 Not implemented

502 Bad gateway

503 Out of Resources

b) Paramétrage d'IE

c) ErrorDocument Syntaxe ErrorDocument 404 Chemin_url|message Exemple ErrorDocument 404 file:///E:/WINNT/Help/iisHelp/common/404.htm #ErrorDocument 404 "Touriste !!!

B. Les directives

1. Les directives de bloc (fichier http.conf)

a) VirtualHost Vous pouvez définir plusieurs noms de domaines : <VirtualHost www.dsfc.fr:80> ServerAdmin [email protected] DocumentRoot htdocs/dsfc.fr ServerName dsfc.fr ErrorLog logs/dsfc.fr-error_log CustomLog logs/dsfc.fr-access_log common </VirtualHost>

b) Directory Le contenu .htaccess supplante les directives Directory et DirectoryMatch. <Directory "F:/Apache Group/Apache/htdocs/dsfc.fr"> #Options Indexes FollowSymLinks MultiViews ExecCGI #Idem à au dessous Options All AllowOverride None Allow from all Order allow,deny </Directory> #Indique tous les répertoires dont le nom commence entre a et d <Directory ~/[a-d].*> </Directory> #Idem à ci-dessus <DirectoryMatch /[a-d].*> </Directory>

Page 33: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 33 /90 -

Denis Szalkowski Formateur Consultant août 2004

c) Files <Files fichier> </Files> <FilesMatch "(gif|jpg|png)$> </Files>

d) Location <Location URL> </Location> <LocationMatch … > </Location>

e) IfDefine La directive est effective qu'à la condition que le Serveur soit lancé par apache.exe -D nom <IfDefine nom> </IfDefine>

f) IfModule <If Module [!]Nom_de_module> </IfModule>

2. Les autres directives

a) ServerName (config, virtual host) ServerName www.dsfc.fr

b) UseCanonicalName (config, virtual host, directory, .htaccess) UseCanonicalName on|off La valeur par défaut est on.

c) ServerAdmin (config,virtual host) ServerAdmin [email protected]

d) ServerSignature ServerSignature off|on|email Cette directive, lorsqu'elle est à on ajoute le numéro de version duserveur au bas de chaque page visitée.

e) ServerTokens (config) ServerTokens min|OS|full Par défaut, la valeur est full. On peut extarire à partir du serveur la version de l'os et les modules compilés.

f) ServerAlias (virtual host) ServerAlias dsfc.fr,ftp.dsfc.fr Indique des noms de rechange

g) ServerPath (virtual host) ServerPath Dans le cas où vous déclarez deux sites sur une même adresse ip, vous devez utilisez la variable ServerPath pour indiquez un répertoire différent à partir du chemin défini par ServerRoot.

h) ServerRoot (config) ServerRoot "F:/Apache Group/Apache" Emplacement des fichiers conf et logs

i) PidFile (config) PidFile logs/httpd.pid Sert sur UNIX pour tuer le processus

j) ScoreBoardFile (config) ScoreBoardFile logs/apache_runtime_status Si vous devez utilisez un tel fichier, placez le sur un disque virtuel.

Page 34: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 34 /90 -

Denis Szalkowski Formateur Consultant août 2004

k) SendBufferSize (config) SendBufferSize Agrandit le tampon de transmission TCP

l) LockFile (config) LockFile logs Avec certaines directives de compilation, Apche ne se lance pas tant qu'il n'a pas écrit lee fichier de verrouillage logs/accept.lock

m) KeepAlive (config) KeepAlive 5 Nombre de requêtes maintenues ouvertes par session KeepAlive on

n) KeepAliveTimeout (config) KeepAliveTimeout 15 Nombre de secondes d'attente pour un reqûete suivante

o) TimeOut (Config) TimeOut 300 Temps d'attente de la réception d'une requête et d'expédition de chaque bloc de réponse

p) MaxKeepAliveRequests MaxKeepAliveRequests 100 Nombre de connexions persistentes

q) HostNameLookups (config, virtual host) HostNameLookupson|off|double Résolution DNS inverse

r) Include (config) Include nom_de_fichier Insère le contenu d'un fichier

s) NameVirtualHost (config) NameVirtualHost 192.168.0.100:80 Permet d'utiliser ensuite plusieurs VirtualHost utilisant un hostname sur la même ip

t) BindAddress (config) BindAddress 192.168.0.100 | HostName Force Apache à écouter une IP Elle doit être associée à la directive Port

u) Listen (config) Listen 192.168.0.100:80 Ecoute la combinaison adresse+port

v) ListenBackLog (config) ListenBackLog 511 Définit la longueur maxi de la file de connexion. Cela évite d'être l'objet d'attaque de débordement de type TCP SYN.

w) ServerType (config) ServerType standalaone|inetd L'option inetd génère une collection de processus fils. A déconseiller en cas de forte charge.

x) ThreadsPerChild (config Win32) ThreadsPerChild 50 Dans le cas où il existe plusieurs processus enfants

y) HeaderName (config, file, directory, location, .htaccess, virtualhost) HeaderName set|add|unset|append Entête http "valeur"

z) Options (config, file, directory, location, .htaccess, virtualhost) None Aucune option All Toutes le soptions sauf Multivienws, IncludeNOEXEC, SymLinksIfOwnerMatch Liens symboliques suivis FollowSymLinks

Page 35: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 35 /90 -

Denis Szalkowski Formateur Consultant août 2004

ExecCGI Exécution des CGI autorisée IncludesNOEXEC Les SSI sont autorisées sans les commandes #exec et #include Includes Les SSI sont autorisés qu'à la condition qu'ils n'utilisent que #include Indexes Parcours de répertoire possible Multiviews ??? Exemple : Options –ExecCGI –IncludeNOEXEC +Includes -Indexes

3. Directives Unix

a) CoreDumpDirectory (config) CoreDumpDirectory /usr/www Emplacement du vidage mémoire

C. Les modules

1. Les métafichiers

Un métafichier est un fichier comportant les données d'en-tête (Refresh, …). Le module suivant doit être chargé préalablement. LoadModule cern_meta_module modules/mod_cern_meta.so

a) MetaFiles Syntaxe MetaFiles on|off Defaut Off Portée Directory Intérêt Active ou désactive le traitement du métafichier

b) MetaDir Syntaxe MetaDir NomDuRépertoire Defaut .web Portée Directory Intérêt Le point sous Unix permet de cacher le répertoire.

c) MetaSuffix Syntaxe MetaSuffix suffixe_de_fichier Defaut .meta Portée Directory Intérêt Suffixe des métafichiers

2. Expirations

Pour utiliser ce module, pensez à décommenter dans le fichier httpd.conf la ligne : LoadModule expires_module modules/mod_expires.so

a) ExpiresActive Syntaxe Expires on|off Defaut Off Portée Partout et dans .htaccess lorsque AllowOverride

Indexes est employé Intérêt Active ou désactive le mécanisme d'expiration.

b) ExpiresByType Syntaxe ExpiresByType type_mime durée Portée Partout et dans .htaccess lorsque AllowOverride

Indexes est employé Intérêt La durée indique le temps durant lequels les

fichiers doivent rester actifs.

c) ExpiresDefault Syntaxe ExpiresDefault heure

Page 36: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 36 /90 -

Denis Szalkowski Formateur Consultant août 2004

Portée Partout Intérêt Heure d'expiration par défaut

D. Gestion de l'accès du client au serveur

1. Directives d'authentification

a) AuthType Syntaxe AuthType Basic|Digest Portée Directory, .htaccess Intérêt Précise le type du contrôle d'autorisation Remarque Digest est géré par aucun navigateur

b) AuthName Syntaxe Authname "royaume" Portée Directory, .htaccess Intérêt Fournit le nom du "royaume" dans lequel les mots de passe des utilisateurs sont valides

c) AuthGroupFile Syntaxe AuthGroupFile nom_de_fichier Portée Directory, .htaccess Intérêt fournit le nom de fichiers des utilisateurs et des groupes Le fichier est du type : utilisateurs:akim ahmed benedicte administrateurs:marie denis alban stephane

d) AuthUserFile Syntaxe AuthUserFile nom_de_fichier Portée Directory, .htaccess Intérêt fournit les noms d'utilisateurs et leurs mots de passe Le fichier est du type : akim:akim ahmed:ahmed benedicte:benedicte

e) Require Syntaxe Require user user1 user2 userN|group group1 groupN|valid-user Portée Directory, .htaccess Intérêt Active la gestion des mots de passe Le fichier est du type : akim:akim ahmed:ahmed benedicte:benedicte

f) Paramètres de sécurité d'IE Faites un clic droit sur l'icône d'Internet Explorer située sur le bureau. Choisissez Propriétés dans le menu contextuel. Cliquez sur l'onglet Sécurité.

Page 37: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 37 /90 -

Denis Szalkowski Formateur Consultant août 2004

Ensuite, choisissez sur le bouton Personnaliser le niveau.

Pour pouvoir accéder en mode accès privé, cochez Demander le nom d'utilisateur et le mot de passe.

2. Autoriser et interdire en fonction des Ip et des noms d'hôtes

a) allow from Syntaxe allow from all tous les hôtes sont autorisés allow station allow 192.168 allow 192.168.0.100 allow 192.168.0.0/255.255.255.0 allow 192.168.0.0/24 (24 premiers bits à 1) Portée Directory,.htaccess Intérêt Autorise des hôtes

b) allow from env Syntaxe allow from env=nom_de_variable Exemple BrowserMatch 192.168 masque <Directory répertoire> Allow from env=masque </Directory> Portée Directory,.htaccess Intérêt Autorise des hôtes à partir de variables d'environnements

c) Deny from Inverse à la commande allow

d) Deny from env Symétrique à la commande allow from env

Page 38: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 38 /90 -

Denis Szalkowski Formateur Consultant août 2004

e) Order Syntaxe order deny allow Remarque la commande order mutual-failure autorisent les hôtes qui figurent dans allow mais qui ne figurent pas dans la liste deny Intérêt Ordre des autorisations ou interdictions

3. Accès anonyme

N'oubliez pas de décommenter le module : LoadModule anon_auth_module modules/mod_auth_anon.so

a) Anonymous Syntaxe Anonymous user1 user2 Intérêt L'utilisateur doit s'identifier sous l'un des noms spécifiés par cette commande. Il doit entrer un mot de passe.

b) Anonymous_NoUserId Syntaxe Anonymous_NoUserId on | off Défaut Off Portée Directory, .htaccess Remarque Lorque la directive est à on, les utilisateurs sont obligés d'entrer un mot de passe, bien que leur id puisse être vide.

c) Anonymous_LogEmail Syntaxe Anonymous_LogEmail on | off Défaut on Portée Directory, .htaccess Intérêt Les accès sont enregistrés dans logs/httpd_log ou dans le journal TransferLog.

d) Anonymous_VerifyEmail Syntaxe Anonymous_VerifEmail on | off Défaut off Portée Directory, .htaccess Intérêt L'ID doit contenir au moins un "@" et un ".".

e) Anonymous_Authorative Syntaxe Anonymous_Authorative on | off Défaut off Portée Directory, .htaccess Intérêt Seul l'accès anonyme est autorisé si la valeur est à on.

4. Démon identd

Identity on|off permet d'interroger l'hôte afin d'en déduire son identité.

5. Les cookies

a) CookieLog Syntaxe CookieLog nom_de_fichier Portée Config, virtual host Intérêt Consigne les cookies dans un journal central

b) CookieTracking Syntaxe CookieTracking on|off Portée Config, virtual host, directory,.htaccess Intérêt Apache envoie un cookie de poursuite à chaque utilisateur. Remarque N'oubliez pas de décommenter la ligne : LoadModule usertrack_module modules/mod_usertrack.so

Page 39: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 39 /90 -

Denis Szalkowski Formateur Consultant août 2004

c) CookieExpires CookieExpires "1 year 2 months 3 weeks 2 days 4 hours 20 minutes"

6. .htaccess

Ce fichier stocké dans chacun des répertoires permet de gérer des droits spécifiques. Son utilisation ralentit l'efficacité des requêtes. Pour empêcher de voir les fichiers .htaccess, entrez dans le fichier http.conf : <Files .htaccess> order allow,deny deny from all </Files>

a) AccessFileName (config) AccessFileName .htaccess Détermine le fichier de configuration personnalisé

b) AllowOverride Syntaxe AllowOverride AuthConfig | FielInfo | Indexes | Limit | Options | All |none Intérêt Cette commande évite les surcharges..

7. MIME : négociation du contenu et de la langue

a) Définition MIME Multimedia Internet Mail Extensions

b) Module Mod_mime.c

c) Liste des types MIME Voir Annexe A

d) Directives MIME

(1) TypesConfig Syntaxe TypesConfig nom_de_fichier Défaut conf/mime.types Intérêt Indique le chemin et le nom de fichie où sont définis les types MIME Portée Config

(2) AddType Syntaxe AddType type_mime extension1 extension2 Exemple AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps Portée N'importe où Intérêt Cette commande ne doit pas être utilisée pour les types MIME authentiques.

(3) DefaultType Syntaxe DefaultType type_mime Exemple DefaultType text/plain Portée N'importe où Intérêt En cas de type inconnu, précisez le type par défaut.

(4) AddEncoding Syntaxe AddEncoding encode_mime extension1 extension2 Exemple AddEncoding x-gzip zip Portée N'importe où Intérêt Ajoute des nouveaux types d'encodage.

Page 40: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 40 /90 -

Denis Szalkowski Formateur Consultant août 2004

(5) ForceType Syntaxe FordeType type_de_media Exemple <directory dsfc.fr/images_gif>

ForceType image/gif </directory>

Portée Directory, .htaccess Intérêt Force des types dans des répertoires déterminés.

e) Négociation de contenu Au niveau global ou au niveau d'un répertoire, la directive Options +Multiviews autorise la gestion de langue.

f) Négociation de la langue

(1) AddLanguage Syntaxe AddLanguage Code_Pays_Iso .extension Exemple AddLanguage fr .fr Intérêt Permet de spécifier les extensions représentant les codes pays.

(2) LanguagePriority Syntaxe LanguagePriority Code_Pays1 CodePays2 CodePaysN Intérêt Apache gère la langue à la place du navigateur lorsque le navigateur ne la gère pas. Portée Config, virtual host, directory, .htaccess

8. Index de répertoire

a) DirectoryIndex Syntaxe DirectoryIndex index Portée Config, virtual host, directory, .htaccess Intérêt Permet de traiter indifféremment index.code_pays.html ou index.html.code_pays Exemple DirectoryIndex index.htm Remarque Pour cette directive, n'oubliez pas de décommenter la ligne :

AddModule mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c

9. Redirection

a) ScriptAlias Syntaxe ScriptAlias Chemin_url_serveur Répertoire Portée Serveur config, virtual host Intérêt Permet d'indiquer un chemin différent pour les scripts en faisant référence à un répertoire

différent

b) Alias Syntaxe ScriptAlias Chemin_url_serveur Répertoire Portée Serveur config, virtual host Intérêt Permet d'indiquer un chemin différent pour les pages htm en faisant référence à un répertoire

différent

c) UserDir Syntaxe UserDir Chemin_Url_Serveur|Répertoire_serveur Remarque uniquement sur Unix Intérêt Permet l'accès à un répertoire privé

d) Redirect Syntaxe Redirect Chemin_Url_Serveur Url Intérêt Redirige les demandes de Chemin_url vers Url

Page 41: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 41 /90 -

Denis Szalkowski Formateur Consultant août 2004

E. Les SSI (Server Side Include)

1. Conditions de fonctionnement

Le fichier httpd.conf doit contenir les lignes suivantes : AddType text/html .shtml AddHandler server-parsed .shtml Options +Includes

2. Exemple

<html> <head> </head> <body> <!--#config errmsg="Erreur"--> <!--#config sizefmt="bytes"--> Le fichier pèse <!--#fsize file="index.shtml"--> bytes.<br> <!--#config sizefmt="abbrev"--> Le fichier pèse <!--#fsize file="index.shtml"-->.<br> <!--#config timefmt="%A %B %C, le %jth jour de l'année, %S secondes"--> Le fichier a été modifié le <!--#flastmod file="index.shtml"-->.<br> <pre> <!--#include file="essai.txt"--> </pre> </body> </html>

F. Le proxy

1. La directive

En préalable, n'oubliez pas d'activer la directive : LoadModule proxy_module modules/mod_proxy.so L'activation du serveur proxy inhibe le serveur http.

2. ProxyRequest

Syntaxe ProxyRequest on|off Défaut off Portée config Intérêt Active le proxy

3. ProxyRemote

Syntaxe ProxyRemote protocole url:port Remarque Le protocole peut être désigné par une * pour désigner tous les protocoles. Malheureusement,

Apache ne gère que le http. Portée config Intérêt Délègue à un autre serveur Proxy la gestion des requêtes.

4. ProxyPass

Syntaxe ProxyPass Chemin Url Portée config Intérêt Transfère pour un répertoire spécifié une requête à un serveur Proxy

5. ProxyDomain

Syntaxe ProxyDomain Domaine Intérêt Ne sert qu'aux serveurs intranets

6. NoProxy

Syntaxe NoProxy Domaine|SousRéseau|Ip|Nom_Hôte Intérêt Ne vaut que pour les intranets.

Page 42: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 42 /90 -

Denis Szalkowski Formateur Consultant août 2004

7. ProxyPassReverse

Syntaxe ProxyPassReverse chemin url Portée Config, virtual host

8. CacheRoot

Syntaxe CacheRoot répertoire Portée config, virtual host

9. CacheSize

Syntaxe CacheSize Taille_En_Ko Défaut 5 Portée Config, virtual host

10. CacheMaxExpire

Syntaxe CacheMaxExpire heures Défaut 24 Portée Config, virtual host Intérêt Durée de conservation des documents en cache

11. CacheGcInterval

Syntaxe CacheGcInterval heures Défaut Jamais Portée Config, virtual host Intérêt Intervalle de lancement du vidage du répertoire au cas où il dépasse le CahceSize.

12. CacheLastModifiedFactor

Syntaxe CacheLasModifiedFactor facteur Défaut 0.1 Intérêt La date d'expiration est calculée en multipliant la durée écoulée depuis la dernière modification

par facteur. CacheMaxExpire est gérée en priorité. Portée Config, virtual host

13. CacheDefaultExpire

Syntaxe CacheDefauktExpire heures Défaut 1 Portée Config, virtual host Intérêt Si un protocole ne gère pas les durées d'expiration, utilisez cette variable.

14. CacheDirLevels et CacheDirLength

Syntaxe CacheDirLevels nombre et CacheDirLength nombre Défaut CacheDirLevels 3 et CacheDirLength 1 Intérêt CacheDirLevels hache l'url en 3 répertoires. Le nom des répertoires est déterminés par

CacheDirLength. Portée Config, virtual host

15. CacheNegociatedDocs

Syntaxe CacheNegociatedDocs Portée Config, virtual host

16. NoCache

Syntaxe NoCache nom_hôte1|domaine1 nom_hôteN|domaineN Portée Config, virtual host

G. Documentation

1. Bibliographie

Apache, Installation et mise en oeuvre Edition O'Reilly Ben & Peter Laurie

Page 43: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 43 /90 -

Denis Szalkowski Formateur Consultant août 2004

2. Liens

http://httpd.apache.org/docs/

H. Annexe A : liste des types MIME (conf/mime-types)

#RFC 2045, 2046, 2047, 2048, and 2077 #ftp://ftp.iana.org/in-notes/iana/assignments/media-types/ # MIME type Extension application/EDI-Consent application/EDI-X12 application/EDIFACT application/activemessage application/andrew-inset ez application/applefile application/atomicmail application/batch-SMTP application/cals-1840 application/commonground application/cybercash application/dca-rft application/dec-dx application/eshop application/http application/hyperstudio application/iges application/index application/index.cmd application/index.obj application/index.response application/index.vnd application/iotp application/ipp application/mac-binhex40 hqx application/mac-compactpro cpt application/macwriteii application/marc application/mathematica application/mathematica-old application/msword doc application/news-message-id application/news-transmission application/ocsp-request application/ocsp-response application/octet-stream bin dms lha lzh exe class application/oda oda application/pdf pdf application/pgp-encrypted application/pgp-keys application/pgp-signature application/pkcs10 application/pkcs7-mime application/pkcs7-signature application/pkix-cert application/pkix-crl application/pkixcmp application/postscript ai eps ps application/prs.alvestrand.titrax-sheet application/prs.cww application/prs.nprend

application/remote-printing application/riscos application/sdp application/set-payment application/set-payment-initiation application/set-registration application/set-registration-initiation application/sgml application/sgml-open-catalog application/slate application/smil smi smil application/vemmi application/vnd.3M.Post-it-Notes application/vnd.FloGraphIt application/vnd.accpac.simply.aso application/vnd.accpac.simply.imp application/vnd.acucobol application/vnd.anser-web-certificate-issue-initiation application/vnd.anser-web-funds-transfer-initiation application/vnd.audiograph application/vnd.businessobjects application/vnd.bmi application/vnd.canon-cpdl application/vnd.canon-lips application/vnd.claymore application/vnd.commerce-battelle application/vnd.commonspace application/vnd.comsocaller application/vnd.contact.cmsg application/vnd.cosmocaller application/vnd.cups-postscript application/vnd.cups-raster application/vnd.cups-raw application/vnd.ctc-posml application/vnd.cybank application/vnd.dna application/vnd.dpgraph application/vnd.dxr application/vnd.ecdis-update application/vnd.ecowin.chart application/vnd.ecowin.filerequest application/vnd.ecowin.fileupdate application/vnd.ecowin.series application/vnd.ecowin.seriesrequest application/vnd.ecowin.seriesupdate application/vnd.enliven application/vnd.epson.esf application/vnd.epson.msf application/vnd.epson.quickanime application/vnd.epson.salt application/vnd.epson.ssf application/vnd.ericsson.quickcall application/vnd.eudora.data application/vnd.fdf application/vnd.ffsns

Page 44: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 44 /90 -

Denis Szalkowski Formateur Consultant août 2004

application/vnd.framemaker application/vnd.fujitsu.oasys application/vnd.fujitsu.oasys2 application/vnd.fujitsu.oasys3 application/vnd.fujitsu.oasysgp application/vnd.fujitsu.oasysprs application/vnd.fujixerox.ddd application/vnd.fujixerox.docuworks application/vnd.fujixerox.docuworks.binder application/vnd.fut-misnet application/vnd.grafeq application/vnd.groove-account application/vnd.groove-identity-message application/vnd.groove-injector application/vnd.groove-tool-message application/vnd.groove-tool-template application/vnd.groove-vcard application/vnd.hp-HPGL application/vnd.hp-PCL application/vnd.hp-PCLXL application/vnd.hp-hpid application/vnd.hp-hps application/vnd.httphone application/vnd.hzn-3d-crossword application/vnd.ibm.MiniPay application/vnd.ibm.modcap application/vnd.informix-visionary application/vnd.intercon.formnet application/vnd.intertrust.digibox application/vnd.intertrust.nncp application/vnd.intu.qbo application/vnd.intu.qfx application/vnd.is-xpr application/vnd.japannet-directory-service application/vnd.japannet-jpnstore-wakeup application/vnd.japannet-payment-wakeup application/vnd.japannet-registration application/vnd.japannet-registration-wakeup application/vnd.japannet-setstore-wakeup application/vnd.japannet-verification application/vnd.japannet-verification-wakeup application/vnd.koan application/vnd.lotus-1-2-3 application/vnd.lotus-approach application/vnd.lotus-freelance application/vnd.lotus-notes application/vnd.lotus-organizer application/vnd.lotus-screencam application/vnd.lotus-wordpro application/vnd.mcd application/vnd.mediastation.cdkey application/vnd.meridian-slingshot application/vnd.mif mif application/vnd.minisoft-hp3000-save application/vnd.mitsubishi.misty-guard.trustweb application/vnd.mobius.daf application/vnd.mobius.dis application/vnd.mobius.msl application/vnd.mobius.plc application/vnd.mobius.txf

application/vnd.motorola.flexsuite application/vnd.motorola.flexsuite.adsi application/vnd.motorola.flexsuite.fis application/vnd.motorola.flexsuite.gotap application/vnd.motorola.flexsuite.kmr application/vnd.motorola.flexsuite.ttc application/vnd.motorola.flexsuite.wem application/vnd.mozilla.xul+xml application/vnd.ms-artgalry application/vnd.ms-asf application/vnd.ms-excel xls application/vnd.ms-lrm application/vnd.ms-powerpoint ppt application/vnd.ms-project application/vnd.ms-tnef application/vnd.ms-works application/vnd.msign application/vnd.music-niff application/vnd.musician application/vnd.netfpx application/vnd.noblenet-directory application/vnd.noblenet-sealer application/vnd.noblenet-web application/vnd.novadigm.EDM application/vnd.novadigm.EDX application/vnd.novadigm.EXT application/vnd.osa.netdeploy application/vnd.pg.format application/vnd.pg.osasli application/vnd.powerbuilder6 application/vnd.powerbuilder6-s application/vnd.powerbuilder7 application/vnd.powerbuilder7-s application/vnd.powerbuilder75 application/vnd.powerbuilder75-s application/vnd.previewsystems.box application/vnd.publishare-delta-tree application/vnd.rapid application/vnd.s3sms application/vnd.seemail application/vnd.shana.informed.formdata application/vnd.shana.informed.formtemplate application/vnd.shana.informed.interchange application/vnd.shana.informed.package application/vnd.street-stream application/vnd.svd application/vnd.swiftview-ics application/vnd.triscape.mxs application/vnd.trueapp application/vnd.truedoc application/vnd.ufdl application/vnd.uplanet.alert application/vnd.uplanet.alert-wbxml application/vnd.uplanet.bearer-choi-wbxml application/vnd.uplanet.bearer-choice application/vnd.uplanet.cacheop application/vnd.uplanet.cacheop-wbxml application/vnd.uplanet.channel application/vnd.uplanet.channel-wbxml application/vnd.uplanet.list

Page 45: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 45 /90 -

Denis Szalkowski Formateur Consultant août 2004

application/vnd.uplanet.list-wbxml application/vnd.uplanet.listcmd application/vnd.uplanet.listcmd-wbxml application/vnd.uplanet.signal application/vnd.vcx application/vnd.vectorworks application/vnd.visio application/vnd.wap.sic application/vnd.wap.slc application/vnd.wap.wbxml wbxml application/vnd.wap.wmlc wmlc application/vnd.wap.wmlscriptc wmlsc application/vnd.webturbo application/vnd.wrq-hp3000-labelled application/vnd.wt.stf application/vnd.xara application/vnd.xfdl application/vnd.yellowriver-custom-menu application/whoispp-query application/whoispp-response application/wita application/wordperfect5.1 application/x-bcpio bcpio application/x-cdlink vcd application/x-chess-pgn pgn application/x-compress application/x-cpio cpio application/x-csh csh application/x-director dcr dir dxr application/x-dvi dvi application/x-futuresplash spl application/x-gtar gtar application/x-gzip application/x-hdf hdf application/x-javascript js application/x-koan skp skd skt skm application/x-latex latex application/x-netcdf nc cdf application/x-sh sh application/x-shar shar application/x-shockwave-flash swf application/x-stuffit sit application/x-sv4cpio sv4cpio application/x-sv4crc sv4crc application/x-tar tar application/x-tcl tcl application/x-tex tex application/x-texinfo texinfo texi application/x-troff t tr roff application/x-troff-man man application/x-troff-me me application/x-troff-ms ms application/x-ustar ustar application/x-wais-source src application/x400-bp application/xml application/zip zip audio/32kadpcm audio/basic au snd audio/l16

audio/midi mid midi kar audio/mpeg mpga mp2 mp3 audio/prs.sid audio/telephone-event audio/tone audio/vnd.cns.anp1 audio/vnd.cns.inf1 audio/vnd.digital-winds audio/vnd.everad.plj audio/vnd.lucent.voice audio/vnd.nortel.vbk audio/vnd.nuera.ecelp4800 audio/vnd.nuera.ecelp7470 audio/vnd.octel.sbc audio/vnd.qcelp audio/vnd.rhetorex.32kadpcm audio/vnd.vmx.cvsd audio/x-aiff aif aiff aifc audio/x-pn-realaudio ram rm audio/x-pn-realaudio-plugin rpm audio/x-realaudio ra audio/x-wav wav chemical/x-pdb pdb chemical/x-xyz xyz image/bmp bmp image/cgm image/g3fax image/gif gif image/ief ief image/jpeg jpeg jpg jpe image/naplps image/png png image/prs.btif image/prs.pti image/tiff tiff tif image/vnd.cns.inf2 image/vnd.dwg image/vnd.dxf image/vnd.fastbidsheet image/vnd.fpx image/vnd.fst image/vnd.fujixerox.edmics-mmr image/vnd.fujixerox.edmics-rlc image/vnd.mix image/vnd.net-fpx image/vnd.svf image/vnd.wap.wbmp wbmp image/vnd.xiff image/x-cmu-raster ras image/x-portable-anymap pnm image/x-portable-bitmap pbm image/x-portable-graymap pgm image/x-portable-pixmap ppm image/x-rgb rgb image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd message/delivery-status message/disposition-notification message/external-body

Page 46: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 46 /90 -

Denis Szalkowski Formateur Consultant août 2004

message/http message/news message/partial message/rfc822 message/s-http model/iges igs iges model/mesh msh mesh silo model/vnd.dwf model/vnd.flatland.3dml model/vnd.gdl model/vnd.gs-gdl model/vnd.gtw model/vnd.mts model/vnd.vtu model/vrml wrl vrml multipart/alternative multipart/appledouble multipart/byteranges multipart/digest multipart/encrypted multipart/form-data multipart/header-set multipart/mixed multipart/parallel multipart/related multipart/report multipart/signed multipart/voice-message text/calendar text/css css text/directory text/enriched text/html html htm text/plain asc txt text/prs.lines.tag text/rfc822-headers text/richtext rtx text/rtf rtf text/sgml sgml sgm text/tab-separated-values tsv text/t140 text/uri-list text/vnd.DMClientScript text/vnd.IPTC.NITF text/vnd.IPTC.NewsML text/vnd.abc text/vnd.curl text/vnd.flatland.3dml text/vnd.fly text/vnd.fmi.flexstor text/vnd.in3d.3dml text/vnd.in3d.spot text/vnd.latex-z text/vnd.motorola.reflex text/vnd.ms-mediapackage text/vnd.wap.si text/vnd.wap.sl text/vnd.wap.wml wml text/vnd.wap.wmlscript wmls text/x-setext etx

text/xml xml video/mpeg mpeg mpg mpe video/pointer video/quicktime qt mov video/vnd.fvt video/vnd.motorola.video video/vnd.motorola.videop video/vnd.vivo video/x-msvideo avi video/x-sgi-movie movie x-conference/x-cooltalk ice

Page 47: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 47 /90 -

Denis Szalkowski Formateur Consultant août 2004

I. ANNEXE B : les directives d'Apache 1.3

AccessConfig AccessFileName Action AddAlt AddAltByEncoding AddAltByType AddCharset AddDefaultCharset AddDescription AddEncoding AddHandler AddIcon AddIconByEncoding AddIconByType AddLanguage AddModule AddModuleInfo AddType AgentLog Alias AliasMatch Allow AllowCONNECT AllowOverride Anonymous Anonymous_Authoritative Anonymous_LogEmail Anonymous_MustGiveEmail Anonymous_NoUserID Anonymous_VerifyEmail AuthAuthoritative AuthDBAuthoritative AuthDBGroupFile AuthDBMAuthoritative AuthDBMGroupFile AuthDBMGroupFile AuthDBUserFile AuthDBMUserFile AuthDigestFile AuthGroupFile AuthName AuthType AuthUserFile BindAddress BrowserMatch BrowserMatchNoCase BS2000Account CacheDefaultExpire CacheDirLength CacheDirLevels CacheForceCompletion CacheGcInterval CacheLastModifiedFactor CacheMaxExpire CacheNegotiatedDocs CacheRoot CacheSize CheckSpelling

ClearModuleList ContentDigest CookieExpires CookieLog (mod_cookies) CookieLog (mod_log_config) CookieTracking CoreDumpDirectory CustomLog DefaultIcon DefaultLanguage DefaultType Deny <Directory> <DirectoryMatch> DirectoryIndex DocumentRoot EBCDICConvert EBCDICConvertByType EBCDICKludge ErrorDocument ErrorLog Example ExpiresActive ExpiresByType ExpiresDefault ExtendedStatus FancyIndexing <Files> <FilesMatch> ForceType Group Header HeaderName HostNameLookups IdentityCheck <IfDefine> <IfModule> ImapBase ImapDefault ImapMenu Include IndexIgnore IndexOptions IndexOrderDefault ISAPIReadAheadBuffer ISAPILogNotSupported ISAPIAppendLogToErrors ISAPIAppendLogToQuery KeepAlive KeepAliveTimeout LanguagePriority <Limit> <LimitExcept> LimitRequestBody LimitRequestFields LimitRequestFieldsize LimitRequestLine Listen

Page 48: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 48 /90 -

Denis Szalkowski Formateur Consultant août 2004

ListenBacklog LoadFile LoadModule <Location> <LocationMatch> LockFile LogFormat LogLevel MaxClients MaxKeepAliveRequests MaxRequestsPerChild MaxSpareServers MetaDir MetaFiles MetaSuffix MimeMagicFile MinSpareServers MMapFile NameVirtualHost NoCache Options Order PassEnv PidFile Port ProxyBlock ProxyDomain ProxyPass ProxyPassReverse ProxyReceiveBufferSize ProxyRemote ProxyRequests ProxyVia ReadmeName Redirect RedirectMatch RedirectPermanent RedirectTemp RefererIgnore RefererLog RemoveEncoding RemoveHandler RemoveType Require ResourceConfig RewriteBase RewriteCond RewriteEngine RewriteLock RewriteLog RewriteLogLevel RewriteMap RewriteOptions RewriteRule RLimitCPU RLimitMEM RLimitNPROC Satisfy ScoreBoardFile Script

ScriptAlias ScriptAliasMatch ScriptInterpreterSource ScriptLog ScriptLogBuffer ScriptLogLength SendBufferSize ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens ServerType SetEnv SetEnvIf SetEnvIfNoCase SetHandler StartServers ThreadsPerChild TimeOut TransferLog TypesConfig UnsetEnv UseCanonicalName User UserDir <VirtualHost> VirtualDocumentRoot VirtualDocumentRootIP VirtualScriptAlias VirtualScriptAliasIP XbitHack

Page 49: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 49 /70 -

Denis Szalkowski Formateur Consultant août 2004

J. Annexe C : les modules d'Apache

mod_access Access control based on client hostname or IP address mod_actions Apache 1.1 and up Executing CGI scripts based on media type or request method mod_alias Mapping different parts of the host filesystem in the document tree, and URL redirection mod_asis Sending files which contain their own HTTP headers mod_auth User authentication using text files mod_auth_anon Apache 1.1 and up Anonymous user access to authenticated areas mod_auth_db Apache 1.1 and up User authentication using Berkeley DB files mod_auth_dbm User authentication using DBM files mod_auth_digest Apache 1.3.8 and up Experimental MD5 authentication mod_autoindex Automatic directory listings mod_browser Apache 1.2.* only Set environment variables based on User-Agent strings. Replaced by mod_setenvif in Apache 1.3 and up mod_cern_meta Apache 1.1 and up Support for HTTP header metafiles mod_cgi Invoking CGI scripts mod_cookies up to Apache 1.1.1 Support for Netscape-like cookies. Replaced in Apache 1.2 by mod_usertrack mod_digest Apache 1.1 and up MD5 authentication mod_dir Basic directory handling mod_dld Apache 1.2.* and earlier Start-time linking with the GNU libdld. Replaced in Apache 1.3 by mod_so mod_env Apache 1.1 and up Passing of environments to CGI scripts mod_example Apache 1.2 and up Demonstrates Apache API mod_expires Apache 1.2 and up Apply Expires: headers to resources mod_headers Apache 1.2 and up Add arbitrary HTTP headers to resources mod_imap Apache 1.1 and up The imagemap file handler mod_include Server-parsed documents mod_info Apache 1.1 and up Server configuration information mod_isapi WIN32 only Windows ISAPI Extension support mod_log_agent Logging of User Agents mod_log_common up to Apache 1.1.1 Standard logging in the Common Logfile Format. Replaced by the mod_log_config module in Apache 1.2 and up mod_log_config User-configurable logging replacement for mod_log_common mod_log_referer Logging of document references mod_mime Determining document types using file extensions mod_mime_magic Determining document types using "magic numbers" mod_mmap_static Apache 1.3 and up Experimental file caching, mapping files into memory to improve performance mod_negotiation Content negotiation mod_proxy Apache 1.1 and up Caching proxy abilities mod_rewrite Apache 1.2 and up Powerful URI-to-filename mapping using regular expressions mod_setenvif Apache 1.3 and up Set environment variables based on client information mod_so Apache 1.3 and up Support for loading modules (.so's on Unix, .dll's on Win32) at runtime mod_speling Apache 1.3 and up Automatically correct minor typos in URLs mod_status Apache 1.1 and up Server status display mod_userdir User home directories mod_unique_id Apache 1.3 and up Generate unique request identifier for every request mod_usertrack Apache 1.2 and up User tracking using Cookies (replacement for mod_cookies.c) mod_vhost_alias Apache 1.3.7 and up Support for dynamically configured mass virtual hosting

IX. Ftp

A. Configuration d'un serveur wuftpd

Le serveur de transfert de fichier est wu_ftp (Washington University FTP). Il permet une gestion subtile des accès aux archives selon le groupe de l'utilisateur, son nom, son mot de passe. Ce service est à l'écoute sur le port 21. Il utilise trois fichiers de configuration : /etc/ftpaccess, /etc/ftpusers, /etc/ftpgroups

Page 50: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 50 /70 -

Denis Szalkowski Formateur Consultant août 2004

1. 5.4.1 Configuration anonyme de base.

L'utilisateur lambda (connexion : anonymous, mot de passe : adresse e-mail) ne peut voir qu'une partie limitée de l'arborescence des fichiers du site : /home/ftp/pub/. il ne peut faire que peu de dégâts !!!

2. 5.4.2 Configuration pour les invités.

Ils ont plus de droits et l'arborescence des fichiers qu'ils peuvent voir est adaptable à chacun d'eux. Ils ont un nom et un mot de passe sur le serveur, mais pas de compte normal. Ils appartiennent à un groupe d'invités (guestgroup). Le démon permet de les loger dans une sous-arborescence du système de fichiers complètement indépendante de /home/ftp. Voici des extraits des fichiers /etc/ftpaccess, /etc/passwd et /etc/group concernant les invités tice97, toto et titi :

a) /etc/ftpaccess class invites guest * # Classe des invités limit invites 60 Any /etc/msgs/msg.toomany # limitation en nombre delete no guest,anonymous # permission de détruire ? overwrite no guest,anonymous # permission d'écraser ? rename no guest,anonymous # permission de renommer ? guestgroup invites # définition du groupe des invités

b) /etc/passwd tice97:mL0SFhsR9/AkE:1000:21:Invité_tice:/usr/local/tice/./tice97:/bin/bash toto:pTYJl79Hjl5zw:1001:21:Invité_toto:/usr/local/tice/./toto:/bin/bash titi:.ULlm3hI6zIfo:1002:21:Invité_titi:/usr/local/tice/./titi:/bin/bash

c) /etc/group invites::21:tice97,toto,titi

3. 5.4.3 Configuration pour les utilisateurs normaux.

Ceux-ci ont un compte normal sur le serveur et donc les droits d'un utilisateur normal. Aucune limitation particulière ne leur est appliquée.

4. 5.4.5 Fichier /etc/ftpaccess.

Ce fichier est le fichier de base. # Nombre de tentatives. loginfails 2 class local real,anonymous *.ac-montpellier.fr class remote real,anonymous * class invites guest * # Limitation des connexions limit local 20 Any /etc/msgs/msg.toomany limit remote 100 SaSu|Any 1800-0600 /etc/msgs/msg.toomany limit remote 60 Any /etc/msgs/msg.toomany limit invites 60 Any /etc/msgs/msg.toomany readme README* login readme README* cwd=* message /welcome.msg login message .message cwd=* compress yes local tar yes local # Utilisation avec /etc/ftpgroups pour SITE GROUP and SITE GPASS? private yes # Vérification du mot de passe <none|trivial|rfc822> [<enforce|warn>] passwd-check rfc822 warn # Traces des actions log commands real log transfers anonymous,real inbound,outbound shutdown /etc/shutmsg

Page 51: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 51 /70 -

Denis Szalkowski Formateur Consultant août 2004

# Gestion des droits delete no guest,anonymous # delete permission? overwrite no guest,anonymous # overwrite permission? rename no guest,anonymous # rename permission? chmod no anonymous # chmod permission? umask no anonymous # umask permission? # Déchargement de fichier depuis l'extérieur upload /home/ftp * no upload /home/ftp /incoming yes root daemon 0600 dirs upload /home/ftp /bin no upload /home/ftp /etc no # alias... [note, the ":" is not required] alias inc: /incoming # chemins classiques cdpath /incoming cdpath /pub cdpath / # Filtres pour les nom de fichier (sécurité)... path-filter anonymous /etc/pathmsg ^[-A-Za-z0-9_\.]*$ ^\. ^- path-filter guest /etc/pathmsg ^[-A-Za-z0-9_\.]*$ ^\. ^- # Groupe des invités "guests". guestgroup invites email jma

5. 5.4.6 Fichier /etc/ftpusers.

Ce fichier contient les noms des utilisateurs qui ne sont pas autorisés à se connecter à l'archive. # # ftpusers This file describes the names of the users that may # _*NOT*_ log into the system via the FTP server. # This usually includes "root", "uucp", "news" and the # like, because those users have too much power to be # allowed to do "just" FTP... # # Version: @(#)/etc/ftpusers 2.00 04/30/93 # # Author: Fred N. van Kempen, <[email protected] # # The entire line gets matched, so no comments or extra characters on # lines containing a username. # root uucp news # End of ftpusers.

6. 5.4.7 Fichier /etc/ftpgroups.

Ce fichier contient les noms des groupes. (Il est vide)

7. 5.4.8 Fichier /etc/ftpconversion.

Ce fichier contient les règles de conversion des fichiers pour les compacter/décompacter. C'est du pur UNIX !!! :.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS : : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS :.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP : : :.gz:/bin/gzip -9c %s:T_REG:O_COMPRESS:GZIP : : :.tar:/bin/tar -cf - %s:T_REG|T_DIR:O_TAR:TAR : : :.tar.gz:/bin/tar -czf - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP

Page 52: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 52 /70 -

Denis Szalkowski Formateur Consultant août 2004

8. Utilitaire kwuftpd (sous Kde)

B. Configuration d'un serveur vsftpd

1. Installation du package

rpm -Uvh vsftpd*.rpm

2. Activation du service

Editez le fichier /etc/xinetd.d/vsftpd. Passez dans ce fichier le paramètre disable à la valeur no. (disable=no)

3. Redémarrer le démon xinetd

a) Démarrage par défaut chkconfig --add xinetd Cette commande équivaut à setup |System Services. Cochez xinetd. Le service est activé par défaut.

b) Relancer le service /etc/init.d/xinetd restart service xinetd restart

4. Contrôle d'accès

Avant de lancer le démon vsftpd, prenez le temps de définir la liste des adresses Ip habilitées à venir se connecter à votre serveur ftp. Editez le fichier /etc/hosts.allow avec l'utilitaire Midnight Commander : mc -e /etc/hosts.allow et ajoutez une ligne selon le modèle spécifié dans les exemples suivants :

a) Exemples Se connecter à son propre ftp vsftpd: 127.0.0.1 Connexion des machines appartenant au sous réseau 192.168.0.0/24 vsftpd: 192.168.0. Connexion d'adresses particulières vsftpd: 192.168.0.100 192.168.0.200 Connexion de tous vsftpd: ALL

5. Configuration du service vsftpd

a) Les fichiers de configuration /etc/vsftpd.banned_emails Liste des adresses anonymes interdites /etc/vsftpd.chroot_list Liste des utilisateurs locaux chroot (pour lesquels le répertoire racine est leur HOME directory) /etc/vsftpd.conf Directives générales /etc/vsftpd.ftpusers Liste des utilisateurs habilités à utiliser le Ftp

b) Contenu du fichier /etc/vsftpd.banned_emails mozilla@ sex@

c) Contenu du fichier /etc/vsftpd.chroot_list Le fichier contient la liste des utilisateurs Pour que cela fonctionne, il faut que les utilisateurs locaux puissent se loguer. le fichier /etc/vsftpd.conf doit comprendre la directive "chroot_local_user=NO".

d) Contenu du fichier vsftpd.conf Par défaut : les connexions anonymes sont activées les connexions anonymes sont "chrootés" dans "/home/ftpsecure'" le démon s'exécute en tant qu'utilisateur "ftpsecure". Vous pouvez changer le message d'accueil par la directive : ftpd_banner=Votre message d'accueil

Page 53: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 53 /70 -

Denis Szalkowski Formateur Consultant août 2004

6. Mappage sur le userid en mode anonyme

Copier les fichiers /etc/passwd et /etc/group vers respectivement : /home/ftpsecure/etc/passwd /home/ftpsecure/etc/group

a) Avant la mise en place du mappage ftp> ls -la 227 Passive mode engaged (127,0,0,1,30,4) 150 Here comes the directory listing. -rw-r--r-- 1 0 0 0 Apr 13 20:03 that -rw-r--r-- 1 0 0 0 Apr 13 20:03 this 226 Directory send OK.

b) Après la mise en place du mappage ftp> ls -la 227 Passive mode engaged (127,0,0,1,109,222) 150 Here comes the directory listing. drwxr-xr-x 2 root root 4096 Apr 13 20:07 etc -rw-r--r-- 1 root root 0 Apr 13 20:03 that -rw-r--r-- 1 root root 0 Apr 13 20:03 this 226 Directory send OK.

XI. Ipchains

A. Présentation

Ipchains sert à filtrer les paquets. Ipchains permet de faire du "masquerading", cest-à-dire partager une connexion à Internet en utilisant une seule adresse IP en masquant ainsi les machines de votre réseau local. gfcc ou knetfilter vous faciliteront votre travail. Avec Netfilter apparu dans le noyau 2.4, les règles sont stockées dans le fichier/etc/sysconfig/ipchains Pour lancer le démon, tapez /etc/init.d/./ipchains restart

B. Fonctionnement

Un paquet arrive sur votre machine (paquet entrant INPUT). Vous pouvez l'accepter (ACCEPT), le rejeter (REJECT) ou le refuser (DENY). Dans le mode REJECT, vous prevenez l'envoyeur, ce que ne fait pas DENY (mode silencieux). Vous pouvez aussi le rediriger (FORWARD) vers une autre carte réseau. En mode FORWARD, l'option MASQ vous offre la possibilité de masquer les adresses IP des machines de votre réseau local. Ainsi, vous laissez croire que vous ne disposez d'une seule machine.

C. Syntaxe générale

ipchains -A|I chaîne -i interface -p protocole -s adresse_source port -d adresse_destination port -j police -l A chaîne Ajoute une règle à la fin d'une chaîne INPUT, OUTPUT, FORWARD I chaîne Ajoute une règle au début d'une chaîne -i interface Spécifie l'interface eth0, eth1, ppp0, Io -p protocole Indique le protocole : TCP, UDP, ICMP, ALL. En cas d'omission, la règle

s'applique à tous. A la place de protocole, vous pouvez employer les noms et numéros se trouvant dans le fichier /etc/protocols

port Par exemple, pour le protocole http, vous pouvez spécifier www ou 80. -s adresse source port Indiquer l'adresse source du paquet :

0.0.0.0/0 ou any/0 pour n'importe quelle origine 192.168.0.0/24 pour un réseau 192.168.0.0 avec un masque sur 24 bits (255.255.255.0) Si aucun port n'est indiqué la règle s'applique à tous les ports. Si vous souhaitez indiquer une plage de ports placer un "deux points" entre le début et la fin : 192.168.0.24/24:192.168.0.64/24

Page 54: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 54 /70 -

Denis Szalkowski Formateur Consultant août 2004

-d adresse_destination_port Indiquer l'adresse destination. -j police Indiquer ce que vous souhaitez faire de vos paquets L'arguement police

accepte les valeurs ACCEPT, DENY, REJECT ou MASQ dans le cas d'un règle de type FORWARD

-l Log dans /var/log/messages lorsque la règle est satisfaite

D. Utilisation de constantes

Afin d'éviter de répéter les mêmes adresses, vous pouvez utilisez des constantes : LAN="200.200.200.1/24" WAN="192.168.0.1" ipchains -A input -p tcp -y -s $LAN -d $WAN www -i eth0 -j ACCEPT (cette règle indique que j'accepte en entrée sur eth0 tout ce qui vient de 200.200.200.1/24 sur la machine 192.168.0.1 sur le port 80).

E. Remarques

! indique le contraire. ! $LAN indique toutes las adresses à l'exception de celle indiquée par la constante LAN -y Permet de vérifier les paquets d'initialisation de la connexion. !-y permet de vérifier les bits indicateurs ACK, qui sont échangés entre le serveur et le client à chaque envoi de paquet TCP.

F. Utilisation interactive

1. Commutateurs

-F Vider les chaînes de toutes les règles -X Pour supprimer une chaîne -L Lister les règles -D Supprimer une règle -N Crée une nouvelle règle -C Pour tester une règle -P Change la police d'une chaîne

2. Exemples :

ipchains -D input 1 Supprime la règle input 1. Faites un -L pour savoir son numéro On peut aussi indiquer la règle comme on l'a rentrée. ipchains -L Affiche toutes les règles ipchains -L input Affiche toutes les règles INPUT ipchains -N chaine Création d'une nouvelle règle ipchains -X chaine Suppressin d'une règle ipchains -F input Supprimer toutes les règles de type input ipchains -P input deny Interdit tout par défaut

G. Les ports courants

0 à 1023 Ports avec privilèges 1024 à 65535 Ports sans privilège

H. Créer des règles

1. Déclarer les constantes

localhost="127.0.0.1/32" IP_WAN="192.168.0.1" IP_LAN="200.200.200.1" NET_LAN="200.200.200.0/24" PORTS_PRIVI="0:1023" PORTS_SANS="1024:65535" I_WAN ="eth0" ou "ppp0" si vous avez d'une connexion ADSL I_LAN="eth1" LOOP="lo" TOUS="0.0.0.0/0"

Page 55: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 55 /70 -

Denis Szalkowski Formateur Consultant août 2004

2. Les règles par défaut

:input DENY :output REJECT :forward REJECT

3. Autoriser le trafic loopback

-A input -i $LOOP -j ACCEPT -A output -i $LOOP -j ACCEPT

I. Quelques règles types

1. Telnet au niveau de l'intranet

En cas d'intrusion par backdoor, cette option peut s'avérer fort dangereuse. -A input -p tcp -s $NET_LAN -d $IP_LAN telnet -i $I_LAN -j ACCEPT -l -A output -p tcp -s $IP_LAN telnet !-y -d $IP_LAN -i $I_LAN -j ACCEPT

2. Bloquer les ping

-A input -p icmp -s $TOUS -d $TOUS -j DENY -A output -p icmp -s $TOUS -d $TOUS -j DENY

XII. Syslog

A. Introduction

Syslogd est un daemon qui journalise les événements du système. Il faut avoir le daemon syslogd qui tourne sur votre machine pour que cela marche. Lorsque vous lancez syslog sur votre machine vous démarrez en fait le daemon syslogd et klogd, qui logue plus précisément les messages d'erreur du noyau. Vous avez donc en fait deux daemon qui tournent qur votre machine. Tous les programmes tournant sur votre machine n'utilisent pas syslog. Par exemple Squid qui place ses logs dans access.log, mais aussi le serveur apache.

B. Le principe

Par défaut les fichiers de log se trouvent dans /var/log. Le fichier de configuration de syslog est dans /etc/syslog.conf. Par mesure de sécurité, il est d'usage de mettre le répertoire /var/log dans une partition propre (afin d'éviter qu'une saturation de ce répertoire n'entraîne un arrêt du système tout entier). Les fichiers de log sont les suivants : /var/log/messages est le fichier système qui récupère tout. On trouve aussi les messages des programmes qui utilisent syslog, à savoir par exemple named, sendmail. /var/log/secure Contient les informations de connexions. Chaque login y est enregistré. /var/log/maillog Contient un enregistrement du trafic de courrier entrant et sortant. /var/log/spooler Contient les messages d'erreur des daemons uucp et innd (news).

C. L'installation

Par défaut il est installé avec la plupart des distributions, mais au cas ou, peut probable ou il faut l'installer : sysklogd-.....rpm utilisez la dernière version. Normalement il est lancé au démarrage de la machine. Si cela n'est pas le cas vous pouvez le lancer avec la commande /etc/rc.d/init.d/syslog start.

Page 56: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 56 /70 -

Denis Szalkowski Formateur Consultant août 2004

D. Configuration

La configuration de syslog se fait dans le fichier /etc/syslog.conf. Pensez après toute modification à faire relire ce fichier de conf (killall -HUP syslogd). Dans le fichier syslog.conf vous devez donc indiquer sur une ligne : le service, le niveau de gravité et le fichier vers lequel diriger les logs (cela peut être la console). Les différentes catégories de service sont : auth ou security Messages de sécurité et d'authentification. authpriv La même chose que précédemment, mais logs plus privés cron Messages de crontab et de at daemon Messages systémes générés par le daemon ftp Messages du serveur ftp kern Messages du noyau lpr Messages du serveur d'impression mail Messages du serveur de messagerie news Messages du serveur de news syslog Messages de syslog lui-même user Messages générés par le programme en cours d'un utilisateur uucp Messages UUCP Puis la liste de sévérité, classée de la moins grave à la plus grave. Tous les messages de sévérité plus graves sont inclus, ainsi si vous choisissez sévérité err, vous avez aussi les messages crit, alert, et emerg. 7 debug Messages de debogage 6 info Messages d'information 5 notice Messages un peu plus importants que les messages info 4 warning ou warn Messages d'avertissement 3 err Messages d'erreur 2 crit Situation critique 1 alert Situation critique nécessitant une intervention immédiate 0 emerg ou panic Système inutilisable

E. Exemple

# Log tous les messages du noyau vers la console. # En plus de les envoyer sur la console je les dirige vers le fichier /var/log/kernel kern.* /dev/console kern.* /var/log/kernel # Log tous les messages dans le fichier messages à partir du niveau info # (il ne manque donc que debug par rapport au tableau précédent) # Sauf les messages du mail, que l'on place dans un autre fichier et les messages authpriv *.info;mail.none;authpriv.none /var/log/messages # Placer ici les messages que seul l'administrateur à le droit de voir. # authpriv donne les connexions infructueuses, les connexions avec la commande su. authpriv.* /var/log/secure # Log tous les messages de mail et les place dans le fichier maillog.. mail.* /var/log/maillog # Log tous les messages d'urgence rendant le système instable dans tous les fichiers.

Page 57: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 57 /70 -

Denis Szalkowski Formateur Consultant août 2004

*.emerg * # Log les messages uucp et news dans un fichier spécial uucp,news.crit /var/log/spooler # Un truc que j'aime bien. Dirige tous les messages vers la console 12. On peut l'adapter. # Avantage vous n'êtes pas obligé d'ouvrir une session pour avoir les messages à l'écran. # Attention toutefois à la sécurité et confidentialité de cela. *.* /dev/tty12

F. Remarques divers

- Si vous indiquez un fichier qui n'existe pas, syslog ne sera pas en mesure de le créer. Faites un touch /var/log/mon_fichier pour créer le fichier avant. - N'hésitez pas à utiliser plusieurs fichiers pour bien isoler les messages importants des messages normaux. - Pensez à utiliser une partition spéciale pour placer vos fichiers de log, afin d'éviter de voir votre système s'arrêter en raison d'une saturation du disque. - Pensez à vérifier que vos fichiers ne deviennent pas trop volumineux. Faites les tourner (logrotate) réguliérement. - Rien ne sert de créer des fichiers de log si vous ne les lisez jamais. Il existe des outils pour en extraire les messages importants, voire se faire envoyer les messages importants, à savoir autobuse, logcheck, swatch.

G. Tester votre configuration

Une fois votre fichier syslog.conf configuré, vous pouvez le tester en utilisant la commande logger. Logger est un utilitaire fourni avec syslog, qui vous permet d'envoyer des messages directement à syslog. logger -p ftp.info "Message pour voir". L'option -p permet d'indiquer le niveau de priorité. Par défaut user.notice L'option -f permet d'indiquer un fichier. L'option -t permet d'indiquer un tag logger -t Test "Voici le message"

H. Exporter vos logs sur une autre machine

Il est possible avec syslog d'envoyer ou de concentrer les logs sur une machine distante. Par exemple si vous souhaitez avertir les personnes connectées via un terminal (root, toto, moi) sur votre serveur linux, sur les messages d'erreur du noyau, vous pouvez mettre : kern.crit root, toto, moi L'autre possibilité, et de loin la plus intéressante, est de pouvoir centraliser tous les messages de vos serveurs linux sur une seule machine. En cas d'attaque d'une de vos machines, les logs se trouvant sur une autre machine, cela vous laisse une chance qu'ils soient intacts, et donc de pister l'incident. Pour mettre cela en place il vous faut ajouter dans /etc/rc.d/init.d/syslog l'option -r derrière syslogd afin que celui-ci sache qu'il faut qu'il écoute sur le port 514 UDP. Sur la machine qui doit envoyer les messages, indiquer dans le fichier /etc/syslog.conf kern.crit @l'autre_machine.

XIII. Crontab et at

A. Pour quoi faire

Crontab est un utilitaire bien utile et plutôt simple à mettre en oeuvre. Il permet de programmer des actions régulières sur votre machine. Par exemple est ce que tel process tourne toujours, est ce que ma ligne ADSL est toujours active, éventuellement faire des sauvegardes.

Page 58: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 58 /70 -

Denis Szalkowski Formateur Consultant août 2004

at permet quant à lui de lancer des actions à une heure donnée, un jour donné, mais sans répétition.

B. L'installation

Pas grand chose à dire sur l'installation de crontab sur votre machine, ni même de la commande at. Par défaut cela tourne déjà. Si ce n'est pas le cas installer les paquetages suivants :at-3.1.7-....rpm et crontabs-1.7-8mdk....rpm. Vous devez voir le démon crond et atd tourner sur votre machine, si vous souhaitez les utiliser.

C. crontab

Un demon nommé cron lit le fichier (qui se trouve dans le répertoire /var/spool/cron) et exécute les commandes qui s'y trouvent. Pour créer ce fichier taper crontab -e (crontab est une commande). Vous ouvrez alors vi et il vous reste à entrer votre ligne en respectant la syntaxe. Une fois sorti de vi (Escape puis :wq!), votre commande est mémorisée (vous obtenez le message crontab: installing new crontab). Pour visualiser toutes les crontab tapez crontab -l. Lorsque vous créez une crontab, elle est créée pour l'utilisateur que vous êtes. Si vous souhaitez voir, créer, modifier ou détruire une crontab d'un autre utilisateur indiquer crontab -u toto -l (-l pour voir, -e pour créer ou modifier, -r pour détruire). La syntaxe des entrées est la suivante : <minute> <heure> <jour du mois> <mois> <jour de la semaine> <commande> (avec un espace entre chacun) minute : de 0 à 59 heure : de 0 à 23 jour du mois de : 1 à 31 mois de : 1 à 12 jour de la semaine : de 0 à 6, 0 étant le dimanche et ainsi de suite. commande : peut comporter plusieurs commandes. les mois et les jours peuvent aussi être donnés avec les abréviations anglaises :jan,feb,... et mon,tue,... On sépare les jours, les mois par des , (virgules), par exemple pour lancer une action tous les 15 et 30 du mois tapez 15,30 à la place de jour du mois. Le - signifie jusqu'à, ainsi 15-30 signifie du 15 au 30. Le / permet de spécifier une répétition, */3 indique toutes les 3 minutes. * peut être utilisée et indique tous les jours de semaine, tous les mois, toutes les heures.

D. Exemples

0 1 1 * * commande veut dire que vous n'exécutez que le premier jour du mois à 1 heure. 0 1 * * mon commande veut dire une fois par semaine le lundi à 1 heure. 0 1 1,15 * * commande veut dire tous les 1 et 15 du mois à 1 heure. 0 1 1-15 * * commande veut dire tous les 15 premiers jours du mois à 1 heure. 0 1 */5 * * commande veut dire tous les 5 jours à 1 heure. */3 * * * * commande veut dire toutes les trois minutes. La commande suivante efface tous les jours, les fichiers présents dans le répertoire /var/log depuis plus de 7 jours. 0 1 * * * find /var/log -atime 7 -exec rm -f {} \; atime permet de trouver les fichiers non utilisés depuis 7 jours.

Page 59: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 59 /70 -

Denis Szalkowski Formateur Consultant août 2004

E. at

La commande at permet de lancer une commande un jour donné, à une heure donnée. Une fois que cette commande a été exécutée, elle n'existe plus. Pour utiliser la commande at taper at puis l'heure. ainsi at 12:30 déclenchera la commande à 12 heures 30. La syntaxe des entrées est la suivante : at 12:30 11/30/00 déclenchera la commande le 30 novembre 2000 (le jour étant indiqué sous la forme mm/jj/aa. at now + 1 hour déclenchera la commande dans 1 heure à partir de maintenant. at 00:00 + 2 days pour exécuter la commande dans 2 jours à minuit. Jusque là nous n'avons entré aucune commande à exécuter. Lorsque vous tapez la commande at 12:30, vous obtenez l'invite de la commande at at 12:30 $ at 12:30 at>ping -c 1 192.168.0.1 at> ^D $ vous avez alors le message suivant, qui vous indique que votre demande a été prise en compte, avec numéro d'ordre le 1. job 1 at 2000-11-10 12:30 La commande va envoyer un ping sur la machine 192.168.0.1 à 12 heures 30 (j'avais pas d'autres idées sur le moment...!). On peut bien sur faire exécuter un script. Puis at envoi par mail le résultat de cette commande. Si vous souhaitez voir ce qui va se passer taper at -c 1 (1 étant le numéro d'ordre). Si vous ne connaissez plus toutes les commandes en attente tapez at -l (ou atq). Pour supprimer une commande en attente atrm 1 (pour supprimer le job 1). Attention un des grands risques lorsque l'on utilise at est de ne pas vérifier l'heure et le jour de l'exécution de la commande.

F. Contrôle

Dans le cas de at ou de crontab, il est possible de définir qui a le droit d'utiliser ces commandes. Pour cela il existe les fichiers /etc/cron.allow /etc/cron.deny et pour at /etc/at.allow et /etc/at.deny. Pour interdire par exemple l'utilisation de la commande at saisissez le nom des utilisateurs dans le fichiers at.deny (un par ligne).

G. Remarques

Il existe des interfaces graphiques pour créer, modifier, enlever des crontab, mais est-ce bien nécessaire ? Si votre machine n'est pas allumée en permanence, il est alors possible que votre commande crontab ne puisse s'exécuter. Vous pouvez alors utiliser anacron (qui va vérifier les crontab non exécutées et les exécuter dès la remise en route de la machine).

XIV. Squid

A. Installer Squid

1. Par rpm

a) Contrôle si le package est installé rpm -q squid

Page 60: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 60 /70 -

Denis Szalkowski Formateur Consultant août 2004

b) Installer le package Squid Insérez le CD n°1 de la distribution RedHat 7.2. Ensuite tapez à partir de l'invite de commande : mount /mnt/cdrom cd /mnt/cdrom/RedHat/RPMS rpm -ivh squid-2.4.STABLE1-5.i386.rpm

c) Mise à jour Télécharger le dernier rpm du serveur Proxy et tapez : rpm -Uvh squid-2.4.STABLE1-5.i386.rpm

2. Manuelle : la compilation

tar xzvf squid-2.4.tar.gz ./configure ./configure --help Vous permet de voir les options de compilation Par défaut, les binaires s'installent dans le répertoire /usr/local/squid Pour l'installer dans un autre répertoire : ./configure --prefix=/usr/squid Pour visualiser messages d'erreurs en français, ajoutez : ./configure --enable-err-language=French en cas d'oubli, vous pouvez saisir la directive dans le fcihier squid.conf Pour employer de trsè nombreuses ACL, utilisez la directive : ./configure --enable-gnuregex make all make install

3. Lancer le service

Tapez setup et, dans le menu Services, cochez avec la barre d'espacement Squid. Le service sera lancé lors du prochain reboot.

4. Lancer le service manuellement

Tapez : /etc/init.d/./squid status pour voir si le service s'exécute /etc/init.d/./squid start pour lancer le service si celui-ci ne s'exécute pas /etc/init.d/./squid stop pour arrêter le service s'il s'exécute /etc/init.d/./squid restart pour arrêter et redémarrer le service

5. Créer les répertoires du cache

Avant de lancer le service ou au changment de la directive cache_dir, n'oubliez pas de lancer la commande squid -z

B. Configuration

/var/log/squid Répertoire des fichiers de log /var/log/squid/access.log fichier contenant les informations sur les requêtes /var/log/squid/cache.log Etat du serveur lors de son démarrage /var/log/squid/store.log Etat des objets présents dans le cache. /etc/squid/squid.conf Fichier de configuration /var/spool/squid Répertoire contenant les pages demandés par les navigateurs /usr/local/squid Emplacement du fichier binaire dans le cas de la mise en place d'un fichier .tar.gz /usr/sbin/squid Emplacement du fichier binaire dans le cas de la mise en place d'un fichier rpm /usr/share/docs/squid-2.4.STABLE1 Aide sur Squid /var/run/squid.pid Numéro du process Squid /usr/lib/squid/French Messages d'erreur Squid

C. Les droits

Si vous avez installé Squid par le rpm, sachez que les droits sont donnés à l'utilisateur squid appartenant au groupe squid Si vous Souhaitez procéder manuellement, créez le compte squid useradd squid

Page 61: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 61 /70 -

Denis Szalkowski Formateur Consultant août 2004

Dans squid.conf : cache_effective_user squid Rendez l'utilisateur squi prorpiétaire dufichier binaire squid : chown -R squid /usr/local/squid chown -R squid /var/spool/squid Pour lancer Squid : su --command=/usr/local/squid -D& squid Placez cette ligne dans le fichier rc.local pour qu'il se lance en tant que service.

D. Contrôler l'exécution de squid

1. Connaître le PID squid

ps ax |grep squid renvoie le PID cat /var/run/squid.pid Contient le PID

2. Arrêter le process squid

kill -HUP xxx (xxx étant PID).

E. Les commutateurs

-a Indique un port particulier -f Spécifie un autre fichier de configuration -h Aide sur les commutateurs Vous pouvez aussi consulter le contenu du répertoire /usr/share/docs/squid-2.4.STABLE1 -i Désactive le cache IP -k Permet d'envoyer des des instructions à Squid lors de son exécution : check debug interrupt kill reconfigure rotate shutdown -u spécifie un port pour les requêtes ICP. -v Donne la version de Squid -z Crée l'arborescence des répertoires du cache. -D Lance le démon

F. Les directives ou TAG de configuration du fichier /etc/squid.conf

1. Les directives générales

http_port Par défaut, 3128. icp_port Port 3130 par défaut permettant de de

communiquer avec des proxy-cache parents ou voisins.

cache_mem Quantité mémoire utilisée pour la cache (8 Mo par défaut). Ne pas dépasser le tiers de la quantité totale cache_mem_low 75% : quand le cache remplit 90% de la mémoire allouée, il se vide jusqu'à 75%

cache_mem_high limite à partir de laquelle le cache revient à cache_mem_low.

cache_swap taille du cache disque cache_peer Indique les proxy parents

Exemple : cache_peer proxy.free.fr parent 3128 3130 no-query default

acl QUERY urlpath_regex cgi-bin \? \.cgi \.pl \.php3 \.asp Type de page à exclure du cache afin de ne pas accéder aux données confidentielles

maximum_object_size taille maximale de l'objet qui sera stcoké dans le cache

Page 62: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 62 /70 -

Denis Szalkowski Formateur Consultant août 2004

cache_dir Répertoire correspondant au cache #cache de 100Mo

cache_dir ufs /cache1 100 16 256 #cache de 200Mo cache_dir ufs /cache2 200 16 256

cache_access_log cache_log cache_store_log Pour éviter les logs liés au stockage, indiquez

cache_store_log none. debug_options ALL,1 niveau de debug. En remplaçant 1 par 9, cela donne

de gros fichiers. ftp_user C'est l'identifiant communiqué au serveur ftp qui

demande une authentification ftp_user [email protected]

dns_children Nombre de requêtes dns (5 par défaut). Pour éviter de bloquer squid, vous pouvez augmenter cette valeur à 10, voire 15.

request_size Taille maximale des requêtes de type GET, POST, etc

refresh_pattern Durée de mise à jour du cache Le commutateur -i rend le proxy insensible à la casse . Les valeurs Min et Max sont exprimées en minutes.

visible_hostname indiquer ici le nom de votre serveur server2.dsfc.fr Vous pouvez reprendre le nom que vous avez donné à votre machine au niveau du fcihier hosts.

dns_testnames Conserver les valeurs par défauts ou indiquer ns1.nic.fr

logfile_rotate Pour conserver un grand nombre de logs (10 par défaut)

error_directory Indiquez le répertoire contenant les messages d'erreur en français. error_directory /usr/lib/squid/French

2. Accélerer les requêtes

http_port 3128 httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on BoostWeb, un produit payant, comprime les fichiers envoyés aux clients.

G. Les ACL (Access Control List)

1. syntaxe générale

acl aclname acltype string[string2] http_access allow|deny [!]aclname icp_access allow|deny [!]aclname acltype src (pour la source) indication de l'adresse IP du client sous la forme adresse/masque. On peut aussi donner une plage d'adresse sous la forme adresse_IP_debut-adresse_IP_fin dst (pour la destination) idem que pour src, mais on vise l'adresse IP de l'ordinateur cible srcdomain Le domaine du client dstdomain Le domaine de destination url_regex Une chaîne contenu dans l'URL (on peut utiliser les jokers). Ce paramètre est sensible à la casse. Les espaces entre les mots représentent un ou logique. Le paramètre peut être un fichier. Dans ce cas, tapez le chemin complet d'accès au fichier entre guillemets urlpath_regex Une chaîne comparée avec le chemin de l'URL (on peut utiliser les jokers) proto Pour le protocole.

Page 63: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 63 /70 -

Denis Szalkowski Formateur Consultant août 2004

2. Interdiction de l'accès à un domaine

acl paskrosoft dstdomain microsoft.com http_access deny pas krosoft

3. Interdiction de l'accès au page contenant le mot sex

acl passex url_regex sex SEX sexe SEXE http_access deny passex ou acl url_interdites url_regex "/etc/squid/url_interdites" http_access deny url_interdites

4. Autoriser tout le reste

http_access allow all

5. Utilisation de squidguard

Si vous employez SquidGuard, ajoutez la ligne suivante au fichier squid.conf : redirect_program /usr/sbin/SquidGuard

6. Utilisation du cache

acl liste_ip src 192.168.0.0/255.255.255.0 http_access allow localhost http_access allow liste_ip http_access deny all

7. Prise en charge des Mac Address

% ./configure --enable-arp-acl ... % make clean % make If src/acl.c doesn't compile, then ARP ACLs are probably not supported on your system. If everything compiles, then you can add some ARP ACL lines to your squid.conf: acl M1 arp 01:02:03:04:05:06 acl M2 arp 11:12:13:14:15:16 http_access allow M1 http_access allow M2 http_access deny all

H. Interface web

1. Le cgi cachemgr.cgi

Si vous avez installé Apache sur vote serveur, copiez le fichier /usr/lib/squid/cachemgr.cgi dans /var/www/cgi-bin. Ajoutez dans squid.conf au niveau du tag cachemgr_passwd les options suivantes : cachmgr_passwd votre_mot_de_passe shutdown cachmgr_passwd votre_mot_de_passe all Pour les statistiques, il vaut mieux employer prostat.

2. Webmin

Téléchargez le fichier webmin au format tar.gz. Décompressez le avec tar xzvf webmin-xxxx.tar.gz Exécutez le script ./setup.sh à partir du répertoire où webmin a été décompressé. Lancez l'interface graphique par startx. Si vous avez choisi Kde, cliquez sur l'icône Konqueror et tapez l'url suivante : http://localhost:10000

Page 64: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 64 /70 -

Denis Szalkowski Formateur Consultant août 2004

L. Caches hiérarchiques

Squid peut dialoguer avec d'autres serveurs mandataires grâce au protocole ICP (Internet Cache Protocole) sur le port 3130 par défaut. cache_peer domaine type http_port icp_port options

1. Le type

parent Le cache contacte le cache parent et attend la réponse ICP. Si le cache parent ne dispose pas de l'Url, il la charge dans le cache du parent et l'intègre à son propre cache. sibling La différence est que la page non trouvée n'est pas chargé dans le serveur parent.

2. Les ports par défaut

http_port 3128 icp_port 3130

3. Les options

proxy-only Les données envoyées ne sont pas stockées dans le cache local. weight Introduit une pondération entre les différents caches. no-query N'envoie pas les requêtes au parent indiqué round-robin Répartit la charge entre les serveurs

4. Exemples

cache_peer proxy.free.fr parent 3128 3130 no-query default cache_peer_domain proxy.free.fr www.dsfc.fr #Evite d'envoyer les requêtes concenrant le site www.dsfc.fr au serveur parent.

M. Redirection vers un proxy

httpd_accel_host 192.168.0.1 httpd_accel_port 8080 httpd_accel_with_proxy on httpd_accel_uses_host_header on httpd_accel_single_host off

N. Squidguard

acl blacklists dstdom_regex "/etc/squid/blacklists/…" http_access allow all !blacklists Le Fichier identifié par la Directive acl doit être la propriété de l'utilisateur squid.

XV. SSHD

A. Le fichier de configuration

/etc/ssh/sshd_config

B. Protocoles

1. Le protocole SSH 1

Clé RSA de 1024 bits générée à chaque démarrage du démon ssh Elle n'est jamais stockée sur disque. Elle est régénérée toutes les heures. Après la connexion, chaque client génère un nombre aléatoire sur 256 bits. Ce nombre est crypté avec la clé du serveur.

2. Le protocole SSH 2

Système de cryptage symétrique sans numéro côté serveur.

C. Les directives

Protocol 1 Des failles de sécurité sont présentes dans la le protocole en version 2 (Par défaut : Protocol 2,1) Disable challenge response authentication

Page 65: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 65 /70 -

Denis Szalkowski Formateur Consultant août 2004

ChallengeResponseAuthentication no Faille à partir des versions 2.9 et supérieure (Par défaut : ChallengeResponseAuthentication yes ) PAMAuthenticationViaKbdInt no Faille à partir de la version 2.9 Pour les versions comprises entre 2.3.1p1 and 2.9 : KbdInteractiveAuthentication no ChallengeResponseAuthentication no UsePrivilegeSeparation yes Vulnérabilité des versions 3.2 ou 3.3

D. Exemple de fichier sshd_config

Port 22 # runs on port 22, the standard ListenAddress 0.0.0.0 # listens to all interfaces, you might only want to bind a firewall # internally, etc HostKey /etc/ssh/ssh_host_key # where the host key is RandomSeed /etc/ssh/ssh_random_seed # where the random seed is ServerKeyBits 768 # how long the server key is LoginGraceTime 300 # how long they get to punch their credentials in KeyRegenerationInterval 3600 # how often the server key gets regenerated PermitRootLogin no # permit root to login? no IgnoreRhosts yes # ignore .rhosts files in users dir? yes StrictModes yes # ensures users don't do silly things QuietMode no # if yes it doesn't log anything. yikes. we want to log logins/etc. X11Forwarding no # forward X11? shouldn't have to on a server FascistLogging no # maybe we don't want to log too much. PrintMotd yes # print the message of the day? always nice KeepAlive yes # ensures sessions will be properly disconnected SyslogFacility DAEMON # who's doing the logging? RhostsAuthentication no # allow rhosts to be used for authentication? the default is no # but nice to say it anyways RhostsRSAAuthentication no # is authentication using rhosts or /etc/hosts.equiv sufficient # not in my mind. the default is yes so lets turn it off. RSAAuthentication yes # allow pure RSA authentication? this one is pretty safe PasswordAuthentication yes # allow users to use their normal login/passwd? why not. PermitEmptyPasswords no # permit accounts with empty password to log in? no # allow groups (/etc/group) to login using ssh # DenyGroups - explicitly disallows groups (/etc/groups) from logging in # AllowUsers - explicitly allow users to login in using ssh # DenyUsers - explicitly blocks users from logging in # AllowHosts - allow certain hosts, the rest will be denied

Page 66: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 66 /70 -

Denis Szalkowski Formateur Consultant août 2004

# DenyHosts - blocks certain hosts, the rest will be allowed # IdleTimeout time - time in minutes/hours/days/etc, forces a logout by SIGHUP'ing he process.

XVI. Qmail

A. Fichiers de contrôle

La configuration de qmail se fait presque entièrement via un ensemble de petits fichiers texte de «contrôle» tous situés dans le répertoire /var/qmail/control/ ou son équivalent le cas échéant. Les différents programmes composant qmail lisent le contenu de ces fichiers et positionnent leurs variables en conséquence.

Des options par défaut sont prises pour chaque fichier inexistant. Par défaut, un seul de ces fichiers existe, il s'agit de me qui contient le nom qualifié de la machine.

Un man qmail-control donne une liste complète de tous ces fichiers, des programmes qmail qui les utilisent ainsi que des options prises par défaut. C'est très pratique.

Vous pouvez utiliser la commande qmail-showctl pour obtenir un rapport sur les différents fichiers de contrôle présents sur votre système qmail ainsi que les valeurs par défaut utilisées.

Il ne faut surtout pas oublier de demander à qmail de relire ses fichiers de contrôle après la modification de l'un d'entre eux. Pour ce faire, il suffit de faire un

root:bash$ kill -HUP $(pidof qmail-send)

1. aliasempty

Le premier fichier de contrôle que vous serez amené à modifier est sans doute /var/qmail/control/aliasempty. Il contient le nom de la BAL dans laquelle le MDA qmail-local livre le courriel lorsqu'il n'y a pas de .qmail. Sa valeur par défaut est ./Mailbox.

Cette règle de livraison par défaut peut néanmoins être spécifiée en ligne de commande à qmail-start lors du lancement de qmail, voir la page de manuel. Elle sera transmise à qmail-lspawn.

Pour conserver la livraison par défaut dans /var/spool/mail, vous pouvez imiter le paquetage qmail de la Debian GNU/Linux : se servir du MDA procmail et lancer qmail par

qmail-start |/usr/local/sbin/qmail-procmail

Le script exécutable /usr/local/sbin/qmail-procmail contenant

#!/bin/sh /var/qmail/bin/preline /usr/bin/procmail && exit 0 # Erreur EX_TEMPFAIL ? [ $? = 75 ] && exit 111 # Sinon on renvoie une «Permanent Error» exit 100

Page 67: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 67 /70 -

Denis Szalkowski Formateur Consultant août 2004

2. locals

Un autre fichier très important pour vous sera sans doute /var/qmail/control/locals, utilisé par qmail-send. Il contient les noms des hôtes considérés comme locaux, c'est à dire ceux pour lesquels les courriels que vous recevez et qui leurs sont destinés seront livrés sur votre machine. Par défaut, cette variable vaut la même valeur que le fichier de contrôle me (votre nom de machine). Un petit exemple valant mieux qu'un long discours, voici un exemple de locals

mondomaine.amoi mamachine mamachine.mondomaine.amoi ftp ftp.mondomaine.amoi www www.mondomaine.amoi

/var/qmail/control/me contenant

mamachine.mondomaine.amoi

Bien sûr, il faudra de plus que les champs MX dans le DNS de ftp.mondomaine.amoi et www.mondomaine.amoi pointent sur mamachine.mondomaine.amoi.

N'oubliez pas d'avertir qmail-send après toute modification du fichier locals en lui envoyant un signal HUP :

root:bash$ kill -HUP $(pidof qmail-send)

3. defaulthost et defaultdomain

Les deux fichiers de contrôle /var/qmail/control/defaulthost et /var/qmail/control/defaultdomain s'avèrent très utiles. Il permettent de spécifier la façon dont qmail-inject complète les adresses destinataires incomplètes. Ainsi, une adresse ne contenant pas de partie domaine sera complétée par defaulthost et une adresse dont la partie domaine ne contient pas de point sera complétée par defaultdomain. La valeur par défaut est la même que celle de me, ce qui ne correspond pas forcément à ce que vous souhaitez.

Les variables d'environnement QMAILDEFAULTDOMAIN et QMAILDEFAULTHOST ont priorité sur le contenu des fichiers de contrôles correspondants.

4. rcpthosts

Le fichier de contrôle /var/qmail/control/rcpthosts est utilisé par qmail-smtpd. Il permet de contrôler le relayage de courriel par la machine via SMTP.

Lorsque le fichier rcpthosts existe, qmail-smtpd refusera tout courriel dont la partie domaine de l'adresse destinataire ne figure pas dans rcpthosts. Par défaut, c'est à dire en l'abscence de rcpthosts, qmail-smtpd accepte tous les courriels.

Voici un exemple de rcpthosts:

Page 68: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 68 /70 -

Denis Szalkowski Formateur Consultant août 2004

.mondomaine.amoi mondomaine.amoi

qmail-smtpd refusera ici tout courriel à destination d'une adresse extérieure au domaine mondomaine.amoi.

Il est bien entendu très important que rcpthosts autorise au moins les machines figurant dans le fichier de contrôle locals pour que vous puissiez recevoir les courriels qui leurs sont destinés par SMTP.

rcpthosts est ignoré si la variable d'environnement RELAYCLIENT est positionnée. Auquel cas, qmail-smtpd ajoute son contenu à l'adresse de destination des courriels qui transitent par lui.

Lisez la page de manuel de qmail-smtpd pour en savoir plus.

Le contrôle de relayage par rcpthosts est souvent associé à un contrôle au niveau TCP par un «wrapper» TCP. Voir la section Contrôle de relayage du Chapitre 5. Pour effectuer un rejet des courriels entrants par SMTP suivant l'expéditeur, reportez vous à la section badmailfrom.

5. badmailfrom

badmailfrom est très utile pour éviter le courriel entrant non sollicité. Il permet de spécifier les adresses d'expéditeurs interdits. qmail-smtpd refusera tout courriel provenant d'eux. Voici un exemple :

@polution.com [email protected]

qmail-smtpd refusera tout courriel provenant du domaine polution.com ou de l'adresse [email protected].

Pour faire du contrôle de relayage, se reportez à la section Contrôle de relayage du Chapitre 5 et la section rcpthosts.

6. smtproutes

Le fichier de contrôle /var/qmail/control/smtproutes permet de spécifier les relais SMTP que qmail-remote devra contacter pour router les courriels sortants. voir la page de manuel pour plus de détails. Voici un exemple :

premier.domaine:mail.premier.domaine second.domaine:mail.second.domaine:24 :mail.autre.domaine

Les courriels à destination de premier.domaine seront transmis par SMTP au port TCP 25 de mail.premier.domaine, ceux à destination de second.domaine seront transmis par SMTP au port TCP 24 de mail.second.domaine. Quant aux autres courriels, ils seront transmis au port TCP 25 de mail.autre.domaine.

qmail-remote utilise aussi les fichiers de contrôle helohost, timeoutconnect et timeoutremote, voir la page de manuel de qmail-remote.

Page 69: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 69 /70 -

Denis Szalkowski Formateur Consultant août 2004

7. virtualdomains

Le fichier de contrôle /var/qmail/control/virtualdomains contient une liste de domaines virtuels, un par ligne. Un domaine virtuel est un domaine pour lequel la livraison se fera vers une seule adresse. Les domaines virtuels sont pris en compte par qmail-send. Par défaut, aucun domaine virtuel n'est défini. Voici un exemple de fichier virtualdomains :

mondomaine.amoi: .mondomaine.amoi: .uucp:alias-uucp :alias-ppp

Dans cet exemple, les courriels à destination d'adresses dans le domaine mondomaine.amoi sont livrés normalement, pour celles se terminant par .uucp, la livraison a lieu à l'adresse alias-uucp, quant aux autres, ils sont livrés à l'adresse alias-ppp.

N'oubliez pas d'avertir qmail-send après toute modification du fichier locals en lui envoyant un signal HUP :

root$ kill -HUP pid_de_qmail-send

Allez voir la page de manuel de qmail-send pour plus de détails.

8. Et les autres ?

Je n'ai parlé que des principaux fichiers de contrôle, il y en a beaucoup d'autres. Je vous conseille de faire un «man qmail-control». Vous y trouverez une liste de tout les fichiers de configuration, les binaires qui les utilisent ainsi que les valeurs prises par défaut.

XVII. Client Rdp

A. Rdesktop

rdestop -k40c

XVIII. Netfilter

A. Configuration du filtrage

Le filtrage de paquets consiste à regarder l'en-tête d'un paquet qui traverse une machine et de décider de l'avenir de ce paquet. Celui-ci peut être rejeté, accepté ou modifié suivant des règles plus ou moins complexes. Dans de nombreux cas, on utilisera le filtrage pour contrôler et/ou sécuriser un réseau interne du monde extérieur, par exemple Internet. Dans la littérature, on retrouvera souvent le terme de Firewall pour désigner une machine qui réalise ces fonctions de filtrage. Pour pouvoir bénéficier du filtrage sous Linux 2.4, il faut intégrer la fonctionnalité appelée Netfilter lors de la compilation. Cette fonctionnalité est une structure générale qui permet à d'autres éléments de se " brancher" dessus. Pour pouvoir indiquer les règles de filtrage au noyau, on dispose de l'utilitaire appelé iptables.

Page 70: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 70 /70 -

Denis Szalkowski Formateur Consultant août 2004

B. Principe de l'outil iptables

Avec iptables, les différentes règles de routage sont organisées et regroupées dans des chaînes. Par défaut, il y a trois chaines appelées INPUT, OUTPUT et FORWARD. L'arrangement de ces chaînes est proposé sur le schéma suivant : _____ Incoming / \ Outgoing -->[Routing ]--->|FORWARD|-------> [Decision] \_____/ ^ | | v ____ ___ / \ / \ |OUTPUT| |INPUT| \____/ \___/ ^ | | ----> Local Process ---- (c)2000 Rusty Russell Les différentes chaînes sont consultées suivant la procédure suivante : Quand un paquet arrive, le noyau décide de la destination de ce paquet : c'est la phase de routage. Si le paquet est destiné à la machine, le paquet descend dans le diagramme et la chaine INPUT est appliquée. Si le paquet passe cette chaine, celui-ci sera transmis à l'un des processus locaux. Si le routage décide que le paquet est destiné à un autre réseau, alors c'est la chaine FORWARD qui est appliquée. Enfin, les paquets envoyés par un processus local seront examinés par la chaine OUTPUT. Si le paquet est accepté, celui-ci sera envoyé quelle que soit son interface de sortie. Une chaine est composée d'une liste de règles. Une règle décide de l'avenir d'un paquet en fonction de son en-tête. Les règles d'une chaîne sont examinées les unes après les autres jusqu'à ce qu'une correspondance soit trouvée. Finalement, si ancune correspondance n'est trouvée, la règle par défaut, policy, est appliquée. On associe à chaque règle une action à réaliser qui décide de l'avenir du paquet. Les fonctions principales sont les suivantes : ACCEPT : cette action permet d'accepter les paquets. DROP : cette action permet de refuser les paquets sans avertir le demandeur que sa demande de connexion a été refusée. REJECT : cette action permet de refuser les paquets, mais en avertissant le demandeur que sa demande de connexion a été refusée en lui envoyant un paquet RESET (RST).

C. Utilisation de l'outil iptables

Dans un premier temps, iptables servira à la gestion des chaînes. Une chaîne peut être assimilée à une politique de sécurité associée à un flux de données. Par exemple, on peut définir une chaîne INTERNET pour désigner tous les flux venant de l'extérieur de votre réseau local. Rappelons que trois chaînes par défaut existent, à savoir INPUT, FOTWARD et OUTPUT. Si le nombre de règles est limité, on peut se contenter de celles-ci, mais si les règles deviennent conséquentes, il est préférable, pour faciliter la gestion, de créer de nouvelles chaînes. Les commandes de iptables associées à la gestion des chaînes sont les suivantes : -N : création d'une nouvelle chaîne (iptables -N INTERNET)

Page 71: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 71 /70 -

Denis Szalkowski Formateur Consultant août 2004

-X : suppression d'une chaîne vide (iptables -X INTERNET) -P : Mise en place de la règle par défaut pour une chaîne existante (iptables -P INPUT DROP). Seules les chaînes INPUT, FORWARD et OUTPUT peuvent avoir une règle par défaut et les seules actions disponibles sont ACCEPT et DROP. -L : lister les règles d'une chaîne (iptables -L INTERNET) -F : effacer les règles d'une chaîne (iptables -F INTERNET) Dans un deuxième temps, il convient de construire les règles à l'intérieur des différentes chaînes. L'ajout d'une règle s'effectue avec l'option -A de iptables, tandis que l'effacement d'une règle se réalise avec l'option -D. Les principales spécifications sur lesquelles les règles peuvent s'appuyer sont les suivantes : -s : spécifie l'adresse IP source -d : spécifie l'adresse IP de destination -p : spécifie le protocole. Le protocole peut être tcp, udp ou icmp -i : spécifie le nom de l'interface physique à travers laquelle les paquets entrent -o : spécifie le nom de l'interface physique à travers laquelle les paquets sortent Ces spécifications sont les plus générales, mais il en existe bien d'autres qui sont parfaitement listées dans la page de manuel de iptables.

Page 72: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 72 /70 -

Denis Szalkowski Formateur Consultant août 2004

**************************************************** Cet article a été traduit de l'anglais par OUAH ([email protected]), http://www.multimania.com/ouah. La version originale est de Lance Spitzner ([email protected]) et peut être obtenue à http://www.enteract.net/~lsiptz. Pour tout commentaire, venez sur le channel de hacking français : #root sur irc.kewl.org **************************************************** Armoring linux: préparer votre ordinateur linux pour Internet Les organismes du monde entier ont adopté Linux comme plateforme de production. En se reliant à Internet pour fournir des services sensibles, ils sont aussi des devenus des cibles de choix. Pour vous aider à protéger ces systèmes Linux, cet article parle des bases pour sécuriser un ordinateur Linux. Les exemples fournis ici concernent la Red Hat 6.0 mais devraient s'appliquer à la plupart des distributions Linux. Installation Le meilleur moment pour commencer à sécuriser votre système est au commencement, à l'installation de l'OS. Puisque c'est un ordinateur de production, vous ne pouvez faire confiance aux installations précédentes. Vous voulez commencer avec une installation vierge, où vous pouvez garantir l'intégrité de l'ordinateur. Mettez votre ordinateur dans un réseau isolé. A aucun moment vous ne voulez vous connecter de cet ordinateur à un réseau actif ni à Internet pour ne pas exposer votre système à une possible compromission. J'ai été personnellement témoin d'un système hacké par un script kiddie en moins de 15 minutes de connexion sur le net. Pour obtenir plus tard les fichiers sensibles et les patchs, vous aurez besoin d'un deuxième ordinateur pour le faire. Ce deuxième ordinateur downloadera les fichiers depuis le net puis se connectera à votre "réseau" isolé pour transférer les fichiers sensibles ou graver les patchs sur un CD-ROM. Une fois que vous avez placé votre prochain ordinateur dans un réseau isolé, vous pouvez commencer. La première chose à faire est de choisir quel paquetage de l'OS installer. Pour la Red Hat 6.0 vous avez trois options, Workstation, Server ou Custom (par défaut). Je vous recommande fortement de choisir Custom vu que cela vous permet de choisir quels services sont installés et comment le système est partitionné. L'idée est d'installer le minimum de paquetages tout en maintenant une efficacité maximum. S'il y a moins de logiciels sur l'ordinateur, il y aura moins de trous de sécurité ou de possibilités d'exploits. Cela veut dire que si vous n'avez pas besoin d'un serveur de News ou d'un serveur Real Audio alors ne l'installez pas. Une chose sympa avec Linux est que, si vous changez d'avis, il sera facile d'ajouter des paquetages par la suite. Indépendamment de l'installation que vous choisissez vous installerez les manuels et les docs HOWTO. Je trouve que les documents et pages en ligne du manuel sont une ressource importante qui n'ajoute pas de grands risques pour votre système. Si vous choisissez Custom on vous questionnera sur le partitionement de votre système. J'aime toujours donner au super-utilisateur root le plus de place possible et de gicler tout ce qui n'y a pas sa place, ainsi vous n'exécuterez plus des programmes alors que vous n'avez plus de place. Cependant nous avons besoin de plusieurs partitions pour protéger l'espace du root. Si nous devions remplir la partition root avec des données comme les logging et les emails, nous causerions un déni de service qui pourrait potentiellement crasher le système. Par conséquent je recommande toujours une partition séparée pour /var qui est l'endroit où s'enregistre les logs du système et les emails. En isolant la partition /var vous protégez la partition root d'un remplissage excessif. Je pense que 400 MB est plus que suffisant pour /var. Vous pouvez aussi faire des partitions séparées pour certains programmes et particulièrement ceux qui enregistrent des logging énormes ou un répertoire /home si vous avez pas mal d'utilisateurs. Avec une telle installation, vos partitions ressembleront à ce qui suit: / - n'importe quoi d'autre /var - 400 MB swap - (Je commence normalement avec 256 MB) Une fois que le système a rebooté après l'installation n'oubliez d'installer les patchs de sécurité recommandés. Pour la Red Hat, vous pouvez trouver ces patchs de sécurité au site de soutien pour les errata de la Red Hat. Les patchs sont importants dans la sécurité d'un système et ces systèmes devraient toujours être mis à jour. [email protected] ou [email protected] sont d'excellentes sources pour les bugs à venir et les patchs. Sans ces patchs votre système peut facilement être compromis. Soyez sûr d'être en deux machines pour obtenir les patchs, votre ordinateur Linux

Page 73: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 73 /70 -

Denis Szalkowski Formateur Consultant août 2004

devant toujours rester dans un réseau isolé. Pour la Red Hat, une fois que vous avez downloader le rpm, vous pouvez facilement mettre à jour votre système en utilisant la syntaxe suivante. Un excellent exemple de cela c'est le patch de mise à jour de wu-ftpd. rpm -Uvh wu-ftpd-2.5.0-5.6.0.i386.rpm Pour les systèmes qui sont déjà en ligne, vous pouvez prendre le rpm par ftp et l'installer par la même occasion avec la commande suivante: rpm -Uvh ftp://updates.redhat.com/5.2/i386/wu-ftpd-2.5.0-5.6.0.i386.rpm Désactiver des services Une fois que vous avez exécuté le paquetage d'installation, patché et rebooté votre ordinateur, nous somme maintenant prêts pour sécuriser le système d'exploitation. Le sécuriser consiste principalement à désactiver des services, ajouter des systèmes de logs, modifier quelques fichiers, et configurer les TCP Wrappers. Nous commencerons d'abord par désactiver ces services. Par défaut, Linux est un système d'exploitation puissant qui exécute beaucoup de services utiles. Cependant, la plupart de ces services ne sont pas nécessaires et posent un risque potentiel à la sécurité. L'endroit où nous allons commencer est le fichier /etc/inetd.conf. Ce fichier spécifie les services que le daemon /usr/sbin/inetd devra détecter. Par défaut, /etc/inetd.conf est configuré pour plusieurs services desquels vous certainement besoin de seulment deux, ftp et telnet. Vous désactivez les services inutiles en les mettant en commentaires ("exemple A"). C'est important car plusieurs des services exécutés par inetd pose des problèmes de sécurité sérieux comme popd, imapd et rsh. Assurez-vous des services mis en commentaire en lançant la commande suivante (cela vous montrera tous les services qui ont été laissés non commentés) grep -v "^#" /etc/inetd.conf La chose à faire ensuite est de regarder les scripts .rc qui déterminent quels services sont lancés par le processus init. Pour la Red Hat, vous trouverez ces scripts à /etc/rc.d/rc3.d (ou /etc/rc.d/rc5.d si vous bootez automatiquement depuis une GUI comme Gnome ou KDE. Pour empêcher un script d'être exécuté, remplacez la lettre majuscule S par la minuscule s. Ainsi vous pouvez facilement réexécuter ce script simplement en remplaçant le petit s par un S. Ou, si vous préférez, la Red Hat est distribuée avec un bon utilitaire pour désactiver ces services. Vous n'avez qu'à tapper /usr/sbin/setup au prompt de commande et choisir "System Services" et à partir de là vous pouvez choisir quels scripts seront démarrés durant le processus de boot. Il y a une autre possibilité, c'est chkconfig que vous trouverez dans la plupart des distributions. Les scripts de démarrages suivants ont pu être installés par défaut mais ne sont pas obligatoires pour le fonctionnement du système. Si vous n'en avez pas besoin, désactivez-les. Les nombres dans les noms déterminent la séquence de l'initialisation, ils dépendent de votre distribution et de sa version et peuvent changer. Si les scripts dans notre système commencent par un K au lieu d'un S, ils ont déjà été désactivés. S05apmd (nécessaire uniquement pour les ordinateurs portables) S10xntpd (Network time protocol) S11portmap (nécessaire si vous utilisez un service rpc, comme NIS ou NFS) S15sound (configuration des sons) S15netfs (c'est le client nfs, utilisé pour mounter des filesystems depuis un serveur nfs) S20rstatd (Essayez de ne pas exécuter tous les services r car ils fournissent trop d'informations aux utilisateurs à distance) S20rusersd S20rwhod S20rwalld S20bootparamd (Utilisé par les clients sans lecteur de disquette, vous n'aurez probablement pas besoin de ce service vulnérable) S25squid (serveur proxy) S34yppasswdd (nécessaire si vous êtes un serveur NIS, c'est un service extrêmement vulnérable) S35ypserv (nécessaire si vous êtes un serveur NIS, c'est un service extrêmement vulnérable) S35dhcpd (démarre le daemon du serveur dhcp) S40atd (utilisé pour le service at, similaire à cron, mais n'est pas nécessaire)

Page 74: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 74 /70 -

Denis Szalkowski Formateur Consultant août 2004

S45pcmcia (vous avez besoin de ce script seulement pour les ordinateurs portables) S50snmpd (daemon SNMP, peut donner à des utilisateurs distants des informations détaillées sur votre système) S55named (serveur DNS. Si vous installez le DNS, faites une mise à jour de la dernière version de BIND à http://www.isc.org/bind.html) S55routed (RIP, n'exécutez cela que si vous en avez VRAIMENT besoin) S60lpd (services d'impression) S60mars-nwe (fichier Netware et serveur d'impression) S60nfs (Utilisé pour le serveur NFS, lancez le que si vous en avez absolument besoin) S72amd (daemon AutoMount, sert à mounter les filesystems distants) S75gated (sert à lancer d'autres protocoles de routage comme OSPF) S80sendmail (Vous pourrez toujours envoyer des emails si vous désactivez ce script, vous ne pourrez juste plus en recevoir ou les relayer) S85httpd (serveur web Apache, je vous recommande la mise à jour à la dernière version à http://www.apache.org) S87ypbind (nécessaire si vous êtes un client NIS) S90xfs (serveur X font) S95innd (serveur de news) Pour savoir combien de services sont exécutés avant que vous ne changiez les scripts de démarrage, lancez la commande ps aux | wc -l Une fois que vous avez fini l'installation et avez désactivé les scripts de démarrage, relancez la commande et regardez comme le nombre de service a diminué. Moins il y a de services qui sont exécutés et mieux c'est. Logging et configuration des services Une fois que vous avez désactivé le plus de services possible, nous voulons activer le logging. Tous les logs systèmes se font dans /var/log. Par défaut, Linux a un excellent système de log excepté pour ftp. Vous avez deux possibilités pour le logging de ftp, soit configurer le fichier /etc/ftpaccess ou éditer /etc/inedt.conf. Je préfère éditer /etc/inetd.conf, car c'est plus simple (càd plus de dur de faire des erreurs:). Editez /etc/inetd.con comme suit pour vous assurer de logger complètement toutes les sessions FTP. -- ce que les pages de man nous disent -- Si l'option -l est spécifiée, chaque session ftp est loggée dans syslog Si l'option -L est utilisée, le logging des commandes sera actif par défaut dès que le serveur ftp est appelé. Ceci fera logger le serveur toutes les commandes USER, qui si un utilisateur entre accidentellement un password pour cette commande au lieu du username, le fera logger les passwords via syslog. Si l'option -i est spécifiée, les fichiers reçus par le serveur ftpd(8) seront loggés au xferlog(5). Si l'option -o est spécifiée, les fichiers transmis par le serveur ftpd(8) seront loggés au xferlog(5). -- coupez ici -- Ensuite viennent les manipulations. Cela comprend l'administration de divers fichiers. La première choses que nous allons faire est de sécuriser notre fichier /etc/passwd (c'est le fichier qui contient les informations des comptes user et des mots de passe). Premièrement nous allons convertir notre système pour l'utilisation de /etc/shadow, cela stocke d'une façon sécurisée les passwds de chaque personne dans un fichier accessible seulement au root. Cela protège vos passwds d'être facilement accédés et crackés (un des premiers exploits qu'un hacker recherche). Tout ce que vous devez faire est de taper la commande suivante en tant que root. Cela transfère automatiquement vos passwds cryptés au fichier /etc/shadow. De toutes les choses que vous pouvez faire pour sécuriser votre sytème, je pense que c'est une des plus importantes. pwconv La deuxième mesure est d'enlever la plupart des comptes système par défaut dans /etc/passwd. Linux installe ces comptes pour différentes activités systèmes que vous n'avez peut-être pas besoin. Si vous n'avez pas besoin de ces comptes alors enlevez les. Plus vous avez de comptes, plus il est facile d'accéder à votre système. Un exemple est

Page 75: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 75 /70 -

Denis Szalkowski Formateur Consultant août 2004

le compte "news". Si vous n'exécutez pas nntp, un serveur de newsgroup, vous n'avez pas besoin de ce compte (n'oubliez pas de mettre à jour /etc/cron.hourly vu qu'il recherche l'utilisateur "news"). En outre assurez vous d'enlever le compte "ftp" vu que c'est le compte utilisé pour le ftp annonyme. Les pages man nous disent: man ftpd: Ftpd authentifie des utilisateurs selon quatre règles. 4) Si le nom de l'utilisateur est ``anonymous'' ou ``ftp'', un compte annonyme ftp doit être présent dans le fichier password (utilisateur ``ftp"). Dans ce cas l'utilisateur a la permission de se logger en spécifiant n'importe quelle password (par convention on donne l'hostname du client). Pour un exemple de mon fichier /etc/passwd, regarder l'"exemple C". Nous allons aussi modifier le fichier /etc/ftp/users ("exemple D"). Aucun compte donné dans ce fichier ne peut faire de ftp au système. Cela empêche les comptes systèmes communs comme root ou bin de tenter des sessions ftp. Ce fichier est par défaut sur Linux. Assurez vous que root soit dans ce fichier, vous ne devez jamais laisser root faire des ftp à ce système. Assurez vous qu'AUCUN compte qui ait besoin de faire des ftp à l'ordinateur ne soit dans le fichier /etc/ftpusers. De plus, assurez vous que root ne puisse pas faire de telnet sur le système. Cela force les utilisateurs à se logger avec leur compte et après de faire un su pour être root. Le fichier /etc/securetty énumère à quels tty root peut se connecter. Enumérez seulement tty1, tty2, etc dans ce fichier cela force root à se logger en local seulement. ttyp1, ttyp2 sont des pseudo terminals, ils permettent à root de telneter au système à distance ("exemple E"). Enfin créez le fichier /etc/issue. Ce fichier est une bannière de texte ASCI qui apparaît pour tous les logins par telnet ("exemple B"). Cet avertissement légal apparaîtra toutes les fois que quelqu'un essayera de se logger à votre système. Si vous voulez continuer à utiliser le même fichier /etc/issue vous devrez modifier /etc/rc.d/init.d/S99local. Par défaut, Linux recrée un nouveau fichier /etc/issue à chaque reboot. TCP Wrappers TCP Wrappers est un must, aucun système sécurisé ne devrait exister sans lui. Créé par Wietse Venema, TCP Wrappers est un programme qui s'interpose avec les service d'inetd comme telnet ou ftp. Avec TCP Wrappers le système lance le wrapper pour les connexions inetd qui log et contrôle toutes les tentatives de connexion. Si la connexion est autorisée, TCP Wrappers remet la connexion au programme concerné comme par exemple telnet. Si la connexion est rejetée par la liste d'accès alors elle est abandonée. Heureusement pour nous, utilisateurs de Linux, TCP Wrappers est déjà installé et la seule chose qu'il nous reste à faire c'est d'éditer les fichiers /etc/hosts.allows et /etc/host.deny. Ces fichiers déterminent qui peut ou ne peut pas accéder à nos systèmes. De plus, TCP Wrappers nous permet de faire d'autres choses marrantes comme des bannières ou des programmes additionels comme safe_finger. La syntaxe est relativement simple. Mettez les adresse IP ou les réseaux dont vous voulez autoriser les connexions dans /etc/hosts.allow. Mettez dans /etc/host.deny les adresses IP ou les réseaux desquels vous voulez interdire l'accès. Par défaut Linux accepte les connexions de n'importe qui donc vous devrez modifier ces fichiers. Voici 2 recommandations quand on travaille avec TCP Wrappers. 1. Utilisez des adresses IP plutôt que des noms de domaine ou de systèmes 2. Paramétrez /etc/host.deny de TOUT interdire puis permettez des endroits spécifiques avec /etc/hosts.allow Pour des exemples sur la façon de configurer /etc/hosts.allow et /etc/hosts.deny, lisez l'"exemple F". Pour plus d'informations sur la manière d'utiliser TCP Wrappers, jettez un coup d'oeil à "Intrusion Detection". Pour les vrais paranos

Page 76: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 76 /70 -

Denis Szalkowski Formateur Consultant août 2004

Je pense que les mesures discutées plus haut sont absolument essentielles. En suivant ces étapes vous avez considérablement augmenté votre sécurité, bravo! Malheureusement votre système n'est pas à 100% sécurisé et il ne le sera jamais. Donc pour les vrais paranos j'ai ajouté quelques mesures supplémentaires. Premièrement nous allons créer un wheel group. Un wheel group est un groupe d'individus choisis qui peuvent exécuter des commandes puissantes comme /bin/su. En limitant les gens qui peuvent accéder à ces commandes, vous augmentez la sécurité de votre système. Pour créer le groupe faites un vi sur le fichier /etc/group, créez le groupe wheel et ajoutez l'administrateur système sur ce groupe. Ensuite identifiez les programmes système importants comme /bin/su. Changez la propriété du groupe par wheel, les permissions par le propriétaire et mettez le groupe en exécutable seulement (soyez sûr de garder activé les bits suid ou guid pour les programmes spécifiques). Pour /bin/su les commandes seraient: /bin/chgrp wheel /bin/su /bin/chmod 4750 /bin/su En second lieu, nous bloquerions les fichiers .rhots, .netrc et /etc/hosts.equiv. Les commandes R utilisent ces fichiers pour accéder aux systèmes. Pour les bloquer, créez les et changez leur permission par zéro. Ainsi personne ne pourra créer ou altérer ces fichiers. Par exemple: /bin/touch /.rhosts /.netrc /etc/hosts.equiv /bin/chmod 0 /.rhosts /.netrc /etc/hosts.equiv Troisièmement, nous allons configurer /etc/shadow pour utiliser le hachage MD5 au lieu de la fonction crypt(3). Cela rend le fichier password crypté bien plus difficile à cracker. Cela se fait en changeant les modules PAM. PAM (Pluggable Authentication Modules) est une suite de librairies partagées qui vous permettent de choisir comment les applications authentifient les utilisateurs. Pour plus d'information sur PAM, allez voir ftp://ftp.us.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam.html. Avant, vous deviez manuellement modifier les modules PAM afin d'utiliser le hachage MD5. Toutefois avec la Red Hat 6.0 et les suivantes vous pouvez choisir le hachage MD5 avec le programme de configuration setup. Tapez juste "setup" à l'invite de commande et séléctionnez "authentication configuration". De là vous pouvez choisir d'utiliser le hachage MD5. Cependant le hachage MD5 ne sera pas actif tant que les utilisateurs n'auront pas réentrer leur passwords. Pour ceux d'entre vous qui n'ont pas le programme setup (ou qui ont la Red hat 5.2 ou plus vieille) vous pouvez toujours modifier les modules PAM manuellement ("exemple G"). Pour nous utilisateurs du bash, je ne suis pas un grand fan du fichier .bash_history. Je ne veux pas que les gens (dont root) connaissent l'historique de mes commandes. Ainsi dans mon fichier .bash_profile, j'exporte l'entrée suivante: HISTFILESIZE=0 Cela signifie que rien ne sera loggé dans mon fichier .bash_history. J'aurai toujours l'historique des frappes au clavier et du rappel, la variable d'environnement HISTSIZE, mais l'historique de commande ne sera pas sauvé dans le fichier .bash_history file. La dernière chose que nous pouvons faire est de protéger notre système des accès physiques. Cela consiste principalement à configurer un password pour notre BIOS. En outre vous protégez votre système d'un password durant le boot en configurant /etc/lilo.conf par un password (password=xxx) où xxx est votre password. Cependant gardez à l'esprit qu'une fois que quelqu'un a accès physiquement à votre système il n'y pas de manière garantie de le protéger. Conclusion Nous avons couvert certaines des mesures les plus fondamentales impliquée dans la sécurisation d'un ordinateur avec Linux (distribution Red Hat). L'astuce d'un système sécurisé est d'avoir le moins de logiciels installés et des protections entre eux comme TCP Wrappers. Il y a beaucoup de mesures additionnelles qui peuvent être prises comme ipchains (programme firewall), ssh (rlogin, rcp et telnet cryptés), tripwire (monitore les changement dans

Page 77: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 77 /70 -

Denis Szalkowski Formateur Consultant août 2004

les programmes systèmes) et swatch (monitoring et alertes de log automatiques). Souvenez-vous qu'aucun système n'est 100% sécurisé. Toutefois avec les mesures décrites plus haut, vous réduisez considérablement les risques de sécurité.

Page 78: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 78 /70 -

Denis Szalkowski Formateur Consultant août 2004

Type Nom Richesse fonctionnelle Commentaire

analyse log Web Analog 5.24 **** Complet et fiable. serveur Web Apache 2.0.44 **** Incontournable standard du marché, reconnu par Gartner. analyse log Web AWStats 5.4 **** Complet et fiable serveur DNS BIND 9.2.1 **** L'outil de référence. messagerie IMAP Courier-IMAP 1.5.3 **** - mandataire SOCKS DANTE 1.1.13 **** Mature

système Debian GNU/Linux 3.0.r1 **** Sans decorum mais très efficace car riche, cohérente et

facile à mettre à jour. monitoring GKrellM 2.1.7a **** Vu-mètres d'activité système.

news (NNTP, NNRP) INN 2.3.4 **** Serveur Usenet pour clients de lecture. Parfaitement adéquat.

système qps 1.9.7 **** Gestion de processus. Client X ergonomique. système Red Hat Linux 8.0 **** Très homogène. système Suse Linux 8.1 **** Distribution certifiée sur IBM Zseries. mandataire-cache Squid 2.5 **** Performant et robuste, configuration parfois délicate. messagerie listes SYMPA 3.4.3 **** Gestionnaire de listes. Complet et performant. prise de contrôle TightVNC 1.2.8 **** Prise de contrôle à distance. Très efficace.

sauvegarde Amanda 2.4.3 *** Sûr et performant, même au sein d'un environnement hétérogène.

émulation MS-Windows CrossOver 1.3.1 *** Non Open Source système FreeBSD 4.7 *** Système sûr et robuste. Version 5.0 encore immature. Supervision Ganglia 2.5.2 *** Supervision de grands parcs

fax hylafax 4.1.5 *** Correspond au besoin le plus souvent observé, souvent adaptable au reste.

socle technique IDEALX-Infra 1 *** Solution complète de services génériques.

cluster Linux Virtual Server 1.0.7 *** Très performant

EAI openadaptor 1.4.0 *** Mature, bien documenté. annuaire OpenLDAP 2.1.12 *** Robuste et bien documenté. sauve partition Partition Image 0.7.1 *** - messagerie Postfix 2.0.p3 *** Sûr et performant, mise en place et maintenance aisée.

SGBDR PostgreSQL 7.3.2 *** Peut souvent remplacer un SGBDR commercial, (cf. le libre blanc d'IdealX).

suivi réseau RRDTOOL 1.0.40 *** - service local SMDLDAP-Tools 0.7 *** - service local Samba 2.2.7a *** Efficace et adéquat. traces (log) Syslog-ng 1.5.25 *** Riche et en cours de maturation. SGBDR MySQL 3.23.55 ** Bonne solution d'entrée de gamme RPV (VPN) IPSec (OpenBSD 3.2) **** Interopérable, souple et robuste. passive Nessus 1.2.7 **** Détection de vulnérabilités. L'outil le plus réputé. connexion OpenSSH 3.5 **** L'outil de référence. (cf. aussi le logiciel "PuTTY"). RPV (VPN) FreeS/Wan 1.99 *** Préférer l'IPSec d'OpenBSD IGC (PKI) IDX-PKI 1.8.6 *** Cohérente et modulaire. passive COPS 1.04 ** -

portabilité autoconf, automake, libtool **** Rendent les codes portables.

XML libxml, libxslt 2.5.2 **** Processeur XSL "xsltproc". Conforme aux normes et très performant.

ORB ORBit 2.3.108 **** Mature langage Perl 5.8.0 **** Puissant et doté de riches bibliothèques et documentations. web PHP 4.3.1 **** Parfaitement adapté au web. débogueur DDD 3.3 *** Excellent frontal aux débogueurs.

Page 79: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 79 /70 -

Denis Szalkowski Formateur Consultant août 2004

CAO Open Cascade 4.0 **** Composants logiciels. Complet & mature. Approche élégante, évolution.

modeleur 3D Blender 2.25b *** Professionnel, multiplates-formes, extensible. Prise en main difficile.

indexeur mnoGoSearch 3.2.8 *** - accès au SGBDR phpMyAdmin 2.4.0 *** Pour MySQL. indexeur htdig 3.1.6 ** Le développement stagne.

Lancer plusieurs sessions de X

Qui n'a jamais révé d'avoir plusieurs sessions de X WINDOW sur sa machine. C'est trés simple : dans une console texte ou dans une console texte émulée en mode graphique, on tape : X -query hostname -once :displayID Ce qui permet de lancer une session X WINDOW sur la console graphique défini par 'displayID'. Si 'displayID' = 1 et que l'on est déjà en mode graphique (pour displayID=0' alors on basculera de l'une vers l'autre par : CTRL+ALT+F7 premiére console graphique. CTRL+ALT+F8 deuxiéme console graphique. ... à la maniére des consoles textes virtuelles. A noter que avec hostname, on peut se connecter à une machine distante via le réseau par le protocole XDMCP. Cette machine doit avoir un démon graphique de connection en mémoire (kdm, gdm, ou xdm). Plus fort : X -indirect netname -once :displayID Permet d'obtenir une console graphique avec une liste des machines présentent sur le réseau 'netname' et qui propose un service de connection graphique via XDMCP. Ce fonctionnement a été testé sur une Mandrake 8.0 de base avec XFREE 4.03 (NDLR:ça fonction avec n'importe quelle version d'X). Qui a dit que LINUX était un CANCER ?!?!? CAULIER Gilles

Page 80: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 80 /70 -

Denis Szalkowski Formateur Consultant août 2004

United Linux, un "standard" pour serveurs qui doit encore s'imposer Par Christophe Guillemin ZDNet France 31 mai 2002 Afin de renforcer leur position sur le marché des OS pour serveurs, quatre distributeurs de GNU/Linux se sont accordés pour réaliser et commercialiser un système commun. Pour une meilleure comptabilité? Ou pour s'écarter de la GPL? Quatre distributeurs de système d'exploitation (OS) à base de noyau Linux ont signé, jeudi 30 mai, un accord visant à développer un OS commun pour les serveurs. Il sera commercialisé sous l'appellation United Linux dès l'automne, par les américains Caldera et Turbolinux, l'allemand Suse et le brésilien Conectiva, indiquent-ils dans un communiqué commun. Si chaque distributeur proposera une distribution quelque peu différente, le coeur de l'OS, c'est-à-dire la version du noyau Linux retenue, ainsi que les applications de base, formeront un standard commun pour l'industrie, espèrent les quatre entreprises. «Il y a deux raisons principales pour lesquelles Linux n'est pas plus largement adopté en entreprise: le manque de certification pour développer des applications professionnelles compatibles et la fragmentation du code», explique Ransom Love, P-DG de Caldera dans un entretien accordé à notre rédaction britannique. La porte reste ouverte à d'autres distributeurs «Avec cet accord, nous pensons avoir résolu ces deux problèmes. La participation de quatre entreprises Linux offre par ailleurs des perspectives globales grâce à l'utilisation de leurs réseaux respectifs», poursuit le responsable. En effet, Suse est l'un des principaux distributeurs en Europe, Connectiva est bien implanté en Amérique du sud, Caldera l'est en Amérique du Nord. Quant à Turbolinux, il a réalisé une percée sur le marché asiatique. Actuellement, le premier distributeur mondial d'OS GNU/Linux est l'américain Red Hat. La distribution United Linux a-t-elle été créée pour le concurrencer, suivant le vieil adage "l'union fait la force"? «Il n'y a pas de compétition avec Red hat», répond sans détour Ransom Love. «Nous sommes d'ailleurs en pourparlers avec eux ainsi qu'avec Mandrake Soft pour qu'ils rejoignent notre projet», poursuit ce dernier. Concrètement, les prochaines distributions pour serveurs de Caldera, Turbolinux, Suse et Conectiva seront estampillées "United Linux". Elles posséderont un CD commun intégrant le noyau, les librairies et les modules d'installation. Elles seront disponibles à partir du mois de novembre, à un prix encore non communiqué. Un véritable projet open-source? Surprenant, pourtant, que ce projet ne dise aucun mot sur la licence d'utilisation des logiciels qui vont être issus de cette alliance. Le plus logique voudrait que ce soit la Gnu General public Licence (GPL) qui soit employée, car elle est la plus répandue et la plus stricte. Mais aucune référence n'est pourtant faite à son sujet. «Ils devront utiliser la licence GPL pour le noyau et les librairies qui sont diffusés sous cette licence, il n'y a pas d'alternative. En revanche, ils pourront utiliser une licence propriétaire pour les outils d'installation, ce qui est d'ailleurs la tendance de Caldera et de Suse», explique Rémi Perrot, responsable de la division systèmes d'information chez Alcôve, société européenne spécialisée dans les services pour système GNU/Linux. À la question de ZDNet UK, "United Linux sera-t-il toujours un projet open source, Ransom Love répond tout en nuance: «Absolument. La seule différence c'est que les binaries [le code primaire, Ndlr] ne seront pas librement distribués. Les gens seront pourront télécharger le code source et compiler leurs propres binaries, mais ne pourront pas utiliser la marque United Linux...» Les aficionados de la GPL apprécieront.

Page 81: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 81 /70 -

Denis Szalkowski Formateur Consultant août 2004

«Cette union n'est pas forcément une bonne nouvelle», conclut rémi Pierrot. «Si elle va faciliter le travail des sociétés de services, ce type de concentration va rarement dans le bon sens, l'objectif est avant tout de capter le plus de monde et d'avoir le plus de monde captif.» Avec la collaboration de Matt Loney à Londres (ZDNet UK)

Page 82: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 82 /70 -

Denis Szalkowski Formateur Consultant août 2004

HOWTO Serverify RedHat linux written by John Newbigin [email protected] If you use RedHat linux in a server role there are a number of configuration changes you should make to ensure the machine is ready for the task at hand. Disable <Ctrl><Alt><Del> This seems quite obvious as I have seen many machines accidentally rebooted with <Ctrl><Alt><Del>, I have even done it once myself. This a big problem in mixed NT, Linux environments where on one machine it means "I want to log in" and on another it means "I want to reboot". To disable <ctrl><alt><del> you need to edit /etc/inittab and change these two lines #Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now to #Disable CTRL-ALT-DELETE ca::ctrlaltdel:/bin/echo "<ctrl><alt><del> disabled" After editing /etc/inittab you need to tell init to reload the file # kill -HUP 1 sysctl.conf There are a number of settings in /etc/sysctl.conf which need to be checked. If the machine will be forwarding IPv4 packets then you need to enable net.ipv4.ip_forward = 1 For servers I recommend kernel.sysrq = 1 to enable the magic SysRq key, and net.ipv4.icmp_echo_ignore_broadcasts = 1 to prevent the machine from responding to broadcast pings. This can be used as a form of DOS so it is best to disable it. Depending on the kind of work your server will be doing, you might need to increase the maximum number of open files and inodes. (Under 2.4 is seems that fs.inode-max is automatic but under 2.2 you will need to increase it) fs.file-max = 16384 #fs.inode-max = 65536 After editing /etc/sysctl you will need to rerun sysctl to apply your changes # /sbin/sysctl -p Console security Be default, RedHat linux will grant special privileges to any user who logs in on the console. This allows users to do things such as use the attached audio devices and start the X server. There are however some bad things which this allows, such as halting and rebooting the machine. To prevent this you need to edit the pam configuration for some usermode applications.

Page 83: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 83 /70 -

Denis Szalkowski Formateur Consultant août 2004

In /etc/pam.d you will find files called halt, reboot and poweroff. Edit each of these files and comment out the following line #auth required /lib/security/pam_console.so This change will take effect immediately you save the file. You might want to consider removing the usermode RPM but there are a number of dependencies on this package and most of the tools are either useful or harmless as they require a root password. Keeping logs By default, your logs will be kept for 4 weeks. I like to increate this to 104 weeks or 2 years. This obviously can be adjusted to balance disk space and logging needs. I would however recommend 52 weeks as a minimum. To change the time your logs are kept for, edit /etc/logrotate.conf and change the rotate parameter. You can also override this for specific logs by editing the files in /etc/log/logrotate.d/. For more details see the logrotate man page. If you have more that one Linux/Unix server then you should probably set one machine up as a log server and send all your logs to a central machine as well as storing them locally. This makes is easier to process your logs and means you have a second copy should a machine have it's security compromised. To make a server accept log messages from other machines you need to enable syslog remote reception. This can be done by editing /etc/sysconfig/syslog and adding "-r" to the SYSLOGD_OPTIONS so it looks like this SYSLOGD_OPTIONS="-m 0 -r" Then restart syslog by doing # /etc/rc.d/init.d/syslog restart You should see a message in the log files about remote reception To make a machine send it's log messages to your log server you need to add an entry to /etc/syslog.conf. Something like *.info @loghost should be all that is needed. See the man page for more details (man 5 syslog.conf) You also need to restart syslog after this change. The procedure is the same as above. Restricting Access Using tcp wrappers is restrict access is simple to set up. Most services are already configured to use tcp wrappers. The most secure way to configure tcpwrappers is to deny everything be default. /etc/hosts.deny should contain only the line ALL: ALL Then you can add services to /etc/hosts.allow as appropriate. For example swat: 192.168.5. : severity notice sshd: KNOWN : severity notice ALL: LOCAL : severity notice You do not need to restart anything after changing these files. They are reread every time a connection is made.

Page 84: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 84 /70 -

Denis Szalkowski Formateur Consultant août 2004

Password Policy Changing the password policy is not strictly necessary as by default a minimum length of 6 characters is required. There is however very little documentation on changing the policies so here is my suggestion. The following is specified in the The PAM System Administrators' Guide but is not very obvious. Enabling a password history 1. Create the old password file with the command # touch /etc/security/opasswd 2. Edit /etc/pam.d/system-auth and add the following pam_unix parameter "remember=3". Cracklib will automatically check /etc/security/opasswd and will not allow any of the passwords listed to be used again. This means that you must have pam_cracklib stacked before your pam_unix module (which is the default).

Page 85: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 85 /70 -

Denis Szalkowski Formateur Consultant août 2004

Using automount and samba Automount and Samba for removable devices Samba is great, but when it comes to removable devices, it can be a bit problematic. Here is a solution to using samba, with automount to support removable devices. Step1. Install automount. This requires a kernel component and a user space application. If you are using a distribution, it may already be installed. Step 2. Configure automount This is documented in the automount readme, but I am not sure if it works correctly. I suggest you start with the following settings and work from there. /etc/auto.master /auto /etc/auto.misc --timeout 30 /etc/auto.misc zip1 -user,umask=0,fstype=vfat :/dev/sdc1 zip4 -user,umask=0,fstype=vfat :/dev/sdc4 cdrom -ro,fstype=iso9660 :/dev/scd0 In this case, there is a zip disk at /dev/sdc. For unknown reasons, some zip disks are partitioned to use partition 1, others use partition 4. Add both and then you can use either. There is also a cdrom /dev/scd0 Step 3. Test you automount configuration You will need to start/restart automount. When you change to /auto/zip1, /auto/zip4 and /auto/cdrom, you should be able to access the media. Step 4. Umounting. For some reason, the --timeout 30 option did not work for me, so I added a root cronjob * * * * * killall -USR1 automount You can edit your crontab by typing crontab -e It has been suggested that the correct syntax should be --timeout=30 but RedHat 6.2's autofs package now works with a space so I assume that most people can skip this step. Step 5 . Samba Now, because we want samba to give a point and click interface to the users, we want it to show a list of available media. The way to do this is create a samba share such as [automount] path = /autoshare read only = No Step 6. Create some symbolic links now, create the /autoshare directory and create symbolic links to the /auto/xxx directories. mkdir /autoshare ln -s /auto/zip4 /autoshare/zip4 etc... Step 7. Try it out Restart samba and try it out. You should see a share called autoshare. When you select it, samba will stat all the files in the directory. This will trigger automount to try and mount all the unmounted entries (which have links to them). If the device can be mounted, the user will see it, if it can't be mounted (because there is no media), samba will decide the file does not exist and will not list it.

Page 86: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 86 /70 -

Denis Szalkowski Formateur Consultant août 2004

The device will be umounted as soon as it can, so the user can remove the media without having to issue eject or umount commands. Note: There are security risks associated with this technique, but as removable media are not secure anyway, who cares? Why not just use preexec and postexec? The postexec is only executed after all handles to the share are closed, and the connection times out. By default, the connection never times out. You can set the timeout to one minute, but if you keep an explorer window open there are still open handles so the timeout still won't expire. To make matters worse, the timeout is based on a host to host session, so if you are using another share on the machine, the timeout would never occur. That is why I worked out this solution. the preexec/postexec does work, but is not friendly to users who don't understand why you can't eject a disk that is in use.

Page 87: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 87 /70 -

Denis Szalkowski Formateur Consultant août 2004

Booting Linux from the NT boot loader I have a simple way for booting Linux from the NT boot loader. My machine has the following configuration /dev/hda1 VFAT 1 Gig /dev/hda5 NTFS 2 Gig /dev/hdb1 ex2fs 500 Meg. I initially installed Windows 95 /dev/hda1 on and then NT onto /dev/hda5 partition. I could then boot into NT or 95 using the NT boot loader. This arrangement works just as well if you use 98 or ME instead of 95 and use 2K or XP instead of NT. Initially I booted linux from dos using Loadlin, but I wanted an easier way. I also did not want to go killing any of my boot sectors. Here is a list of the steps I used to set up booting Linux from the NT boot loader: create a dummy boot sector # dd if=/dev/zero of=/c/linux.b bs=512 count=1 should do. If you want to understand the dd command read the man page (man dd). You then set up lilo to use this file as the boot sector. My lilo.conf looks like this: boot=/mnt/c/linux.b # put the location of your dummy boot sector root=/dev/hdb2 # put your root fs location here (you may not need it, but it won't hurt) delay=10 # you can add all your regular lilo options image=/boot/vmlinuz.... image=/boot/vmlinux.test run lilo -v and make sure that everything worked. Sometimes you might have to remove the linear option and add lba32. Lilo will tell you if this is necessary. I have /dev/hda1 mounted on /mnt/c, so the dummy boot sector is already accessible to the NT loader. If you only have NTFS or do not wish to mount the filesystem, reboot into NT and use my explore2fs program to save the file onto drive C. The final step is to modify the boot.ini so you can select Linux. Add the line C:\linux.b = "LILO (Linux)" and reboot. Everything should work. If not, don't blame me though. Make sure you know how to recover should anything go wrong. How to install RedHat Linux 1. Install 95/98/ME. Don't use FAT32 2. Install NT/2K/XP 3. Install RedHat Linux. RedHat insists that your /boot partition is below the 1024'th cylinder which is not strictly necessary. I got around this by adding a spare hard disk and creating /boot at the start of that disk. 4. During the install process, install lilo to /dev/hda7 NOT /dev/hda 5. Make a boot disk. Until you perform the steps above you will not be able to boot linux from the hard disk 6. Boot linux off your floppy disk 7. Back up the /boot partition # cd / # tar -cf /tmp/boot.tar /boo 8. umount the /boot filesystem. # umount /boot 9. If step 8 does not work then you will have to reboot to get rid of it. Edit /etc/fstab and remove the line specifying /boot. Then reboot linux off your floppy disk

Page 88: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 88 /70 -

Denis Szalkowski Formateur Consultant août 2004

10. Restore the /boot files # cd / # tar -xf /tmp/boot.tar 11. Follow the steps above to create the boot sector and configure and run LILO.

Page 89: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 89 /70 -

Denis Szalkowski Formateur Consultant août 2004

Network Disk-copy This is a simple method I used to copy an entire disk from one machine to another. I wanted to do a hardware upgrade, with as little down-time as possible, so I copied the entire root filesystem from one machine to another. You need the netpipes package, which comes standard with Slakware. If you don't have it, get it from sunsite. On the existing machine, type (as root) # faucet 1234 -out tar -cvf - / On the new machine, boot using an existing installation, or boot/root disk combination. You may need to build a static version of the hose program. Put it on a floppy and mount it. Mount the partition to become the new root as /mnt type # cd mnt # umask 000 # hose 192.168.10.20 1234 -in tar --same-owner -xvpf - And sit back while it copies. I found that it was quite fast, compated too other file transfer modes, such as FTP or SMB. Make sure the uids and gids are set to the right values. You might have to use a tar option. You can also use netpipes to create a CD image of your linux system, either for duplicating the system or as a backup. Instead of untarring the result you write it to a file on your CD burner. If your burner is a Windows machine then you can use my winhose.exe to download it. When you create the CD you can either create an .iso image or write the tar file directly to the CD. If you do the later then you will probably only be able to read it back from Linux which in most cases is not a problem. Using SSH You can also copy files like this using ssh. This might be a bit slower but you get the advantages of authentication and optional encryption. The destination machine only needs to be running an ssh server. On the client, run the following command: tar -cf - myfiles | ssh user@host "umask 000 ; cat | tar -xpf -" You could use use root@host but you have to make sure that your have enabled root logins via ssh. It might be worth enabling for this procedure and then turning it back off.

Page 90: Services Ip sous Linux - 1 /90 - dsfc.net · root : Nom de l'utilisateur sous lequel le daemon tourne /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd

Services Ip sous Linux - 90 /70 -

Denis Szalkowski Formateur Consultant août 2004

NIS

D. Définition

1. NIS

Network Information Service (Service d'information du réseau): service qui permet à certaines informations d'être connues par toutes les machines disponibles sur le réseau. Ce service est géré dans la bibliothèque standard de la libc Linux. Il est considéré par la suite comme étant le "NIS traditionnel".

2. NIS+

Network Information Service (Plus...) : en gros, version de NIS améliorée. NIS+ a été conçu par Sun Microsystems Inc. pour remplacer NIS, avec un niveau de sécurité supérieur et une meilleure gestion pour les grosses installations.

3. NYS

Il s'agit du nom d'un projet de développement et de standardisation pour NIS+, YP et Switch. Il est dirigé par Peter Eriksson (<[email protected]>). Il contient entre autres choses une réimplémentation complète du code de NIS (c'est-à-dire YP) qui utilise les fonctionnalités Name Services Switch de la bibliothèque NYS.

4. NSS

Name Service Switch (littéralement, commutation des noms de service): le fichier /etc/nsswitch.conf détermine l'ordre de recherche d'informations en fonction des services demandés.

E. Intérêt

NIS est l'abréviation pour Network Information Service (Service d'Information Réseau). Son but est de fournir des informations, qui doivent être connues sur l'ensemble du réseau, à toutes les machines connectées. Les informations susceptibles d'être distribuées par NIS sont: l noms de login, mots de passe, répertoires d'ouverture (/etc/passwd et /etc/shadow) l renseignements sur les groupes d'utilisateurs (/etc/group), l'annuaire des nom s de machines (/etc/hosts), les alias de messagerie (/etc/aliases), les fichiers de définition de services (/etc/protocols, /etc/rpc, /etc/services), /etc/ethers, netgroups, networks, , publickey, shadow Par exemple, si votre mot de passe et les informations s'y rattachant sont enregistrés dans la base de données NIS, vous pourrez vous loguer sur toutes les machines du réseau sur lesquelles un client NIS est lancé.