(Courriels de diversion: <soupconnons@estimatives-suspend.com> <priserai@debandes-ecrivain.com> <desassortis@boots-fixerions.com> <chauvinisme@desapprovisionnees-subtile.com> <relaye@corroder-visualises.com> <prevaudrions@recommandables-suspectees.com> <internationalisees@gît-electorale.com> <jardine@decachetais-mediantes.com> <couvre-chefs@preencollee-moka.com> <reinsererait@reorienterait-horrifiions.com> )
Le 14 Déc, Jean-Daniel Dodin écrit : > Le mer, 13 déc 2000, Marc THIRION a écrit : >> Ensuite, tu édites /etc/inetd.conf (ou équivalent suivant le >> programme >> dont tu te sers comme lanceur de démons) et tu ajoutes deux lignes : >> 4444 stream tcp wait root /usr/sbin/tcpd /usr/local/bin/startppp >> 4445 stream tcp wait root /usr/sbin/tcpd /usr/local/bin/stopppp > > où pourais-je trouves une doc sur inetd, le man est trop juste pour > moi? en particulier comment peut-on choisir les ports sans faire de > bétise ? Je me suis planté : c'est « nowait » qu'il faut en quatrième position. Et j'ai oublié de signaler qu'il faut envoyer un SIGHUP à inetd afin qu'il relise son fichier de conf (« killall -HUP inetd »). La première ligne se lit : créer une socket serveur tcp qui écoute le port 4444. Quand une demande de connexion arrive, l'accepter (et donc créer une socket pour la communication), et lancer le programme /usr/sbin/tcpd (tcp_wrapper) sous l'identité root avec la socket de communication en tant qu'entrée et sortie standard et la suite de la ligne comme arguments (en commençant par l'argument 0, normalement le nom du programme, qui peut être différent du fichier exécuté sous UNIX). La bizzarerie des argument s'explique par le fait que tcpd a été fabriqué exprès, et qu'après avoir vérifié que son entrée standard est correcte selon les règles définies par /etc/hosts.{allow,deny}, il se remplace (exec) par ses arguments. Les services « connus » se retrouveront dans /etc/services avec un nom symbolique. Ils sont aussi énumérés dans le RFC 1700 (ou un des suivants qui le remplacent) nommé « assigned numbers » (« numéros attribués »). Dans la pratique, tu choisis au pif un numéro au dessus de 1024 (en dessous, seul root peut les ouvrir, ce serait du gaspillage d'aller taper dans cette ressource rare). Tu évites quand même 6000 et ses suivants (serveur X traditionnellement), 7100 et ses suivants (serveur de polices pour X11 traditionnellement) et 8080 (ouaibe traditionnellement). À part ça, n'importe quel numéro non utilisé sur ton système fera l'affaire. Si tu te trompes et que tu tapes dans un port utilisé, quelque chose ne marchera plus et tu trouveras quelque part un message d'erreur du genre « cannot bind: address already in use » (« je peux pas me lier à ce port : y a quelqu'un qui squatte »). Pas bien grave, donc, puisque cela se remarque assez vite. >> (règle tes tcpwrappers /etc/hosts.allow et /etc/hosts.deny de telle >> sorte que les ports 4444 et 4445 ne soient accessibles que des >> machines autorisées). > > je n'ai pas encore capté comment on peut limiter les azllow et deny à > un seul port? il faut que je bosse aussi tcpwrapper, c'est très utile, > ce truc. C'est surtout important pour le stopppp (tu voudrais pas que le pirate lambda te ferme la connexion inopinément). C'est « man 5 hosts_access » chez moi, pour les explications. Je n'ai jamais réussi à lire jusqu'au bout, tellement c'est compliqué et que je n'en ai jamais eu besoin. Ta question m'a forcé à reregarder la bête, et je vois qu'en fait, tu ne spécifies pas des numéros de port, mais les trucs que tu écris juste après /usr/sbin/tcpd dans /etc/inetd.conf. Dans ton cas, je suppose qu'il te faut mettre : /usr/local/bin/stopppp: 192.168.1. dans /etc/hosts.allow (si ton réseau local est en 192.168;1) et ALL: ALL dans /etc/hosts.deny. Note qu'il te faut séparer l'intérieur de ton réseau de l'extérieur par une autre méthode (filtres IP [ipfwadm ou ipchains] sur les interfaces de ta passerelles) afin d'assurer qu'il ne t'arrive pas de paquets portant une adresse source interne depuis l'interface ippp : tcpd n'a aucun moyen de se rendre compte de ce genre de choses (cela ne devrait néanmoins pas poser de problème avec un protocole comme tcp [plusieurs paquets pour initier la connexion] si le reste est bien configuré [en particulier les routes], mais udp peut être vulnérable). -- Marc Thirion | Ramonville Saint-Agne, France Un Travail pour Chacun : http://www.multimania.com/untravailchacun/ Marc.Thirion@ISOscope.com : http://www.ISOscope.com/Pérennité des logiciels et des systèmes --------------------------------------------------------------------- Aide sur la liste: <URL:mailto:linux-31-help@savage.iut-blagnac.fr>Le CULTe sur le web: <URL:http://www.CULTe.org/>