informatique:linux:tcp_wrappers
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
Previous revision | |||
— | informatique:linux:tcp_wrappers [2013/10/14 20:44] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | {{tag> | ||
+ | |||
+ | ======TCP Wrappers====== | ||
+ | |||
+ | La plupart des daemons actuels ont leur propres mécanismes de sécurité (tels httpd, smbd ou squid) ; //jadis// il était très courants qu'un deamon utilise une couche de sécurité : **tcp_wrappers** ou **xinetd** pour assurer un contrôle d' | ||
+ | |||
+ | Lorsque le système reçoit une connexion entrante, il consulte les fichiers / | ||
+ | * l' | ||
+ | * sinon, l' | ||
+ | * sinon, l' | ||
+ | |||
+ | Pour savoir si un programme utilise la libwrap : | ||
+ | <code bash> | ||
+ | ldd / | ||
+ | libwrap.so.0 => / | ||
+ | </ | ||
+ | Certains programmes n' | ||
+ | <code bash> | ||
+ | strings / | ||
+ | </ | ||
+ | Effectivement, | ||
+ | |||
+ | NB : Si un service est compatible xinetd, alors il est utilise forcément TCP_Wrappers : par exemple in.telnetd ou ntpd ou encore tftpd. L' | ||
+ | |||
+ | =====Syntaxe===== | ||
+ | |||
+ | La syntaxe est de la forme : '' | ||
+ | Il existe des **macros** qui simplifient l' | ||
+ | * ALL (tous, que cela soit des services ou des clients) | ||
+ | * LOCAL : cible les clients provenant du même LAN de l' | ||
+ | * KNOWN, UNKNOWN et PARANOID : peu/plus usités car ils provoquent des requêtes DNS | ||
+ | |||
+ | Exemple de syntaxe commentée du fichier ''/ | ||
+ | <code bash> | ||
+ | # tous les services sont autorisés et pour tout le monde (open-bar, en somme) | ||
+ | ALL: ALL | ||
+ | |||
+ | # tout est autorisé à l' | ||
+ | # attention cela provoque une requête DNS à chaque nouvelle connexion ; | ||
+ | #de plus cela implique que la sécurité du système est tributaire de celle du DNS) | ||
+ | ALL: ALL EXEPT .test.com | ||
+ | |||
+ | # autorisation de ssh et telnet pour le LAN 192.168.0.0/ | ||
+ | sshd, in.telnetd: 192.168.0.0/ | ||
+ | |||
+ | # autorisation du telnet pour tous + lancement d'une commande personnalisée | ||
+ | #à chaque ouverture de connexion (ici envoi d'un mail à root) ; | ||
+ | #spawn est une option donc précédée par un second délimiteur ":" | ||
+ | in.telnetd: ALL : spawn echo "login attempt from %c to %s" | mail -s warning root | ||
+ | |||
+ | # si le serveur dispose de plusieurs cartes réseau, on peut appliquer des politiques différentes : | ||
+ | # - le démon sshd qui écoute sur l' | ||
+ | # - celui sur 192.168.1.2 en revanche est bloqué. | ||
+ | # En effet, DENY peut être utilisé comme option dans hosts.allow mais c'est déconseillé | ||
+ | #car peu cohérent avec la sémantique du fichier... | ||
+ | sshd@192.168.0.2: | ||
+ | sshd@192.168.1.2: | ||
+ | </ | ||
+ | |||
+ | Les varibales utilisables (comme ci-dessus dans la commande spawn) sont les suivantes : | ||
+ | * %c : informations du client | ||
+ | * %s : informations du service | ||
+ | * %h : nom d' | ||
+ | * %p : le PID du service | ||
+ | |||
+ | TCP_Wrappers peut utiliser IPv6 ; ex : [::1] ou [fe80:: | ||
informatique/linux/tcp_wrappers.txt · Last modified: 2013/10/14 20:44 by 127.0.0.1