Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ubuproxy [Le 27/09/2007, 14:29] Hoper |
ubuproxy [Le 11/09/2022, 11:34] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== ubuproxy : Proxy TCP/IP Generique ====== | + | {{tag>réseau sécurité proxy}} |
+ | |||
+ | ====== ubuproxy : Proxy TCP/IP Générique ====== | ||
===== Présentation ===== | ===== Présentation ===== | ||
- | ubuproxy permet de rediriger n'importe quel type de connexion TCP/IP, et de loguer tout le traffic qui passe au travers du proxy. | + | Ubuproxy permet de rediriger n'importe quel type de connexion TCP/IP, et de loguer tout le trafic qui passe au travers du proxy. |
- | Les seules informations necessaires à la création d'un proxy sont donc : | + | Les seules informations nécessaires à la création d'un proxy sont donc : |
- | * Le port sur lequel se mettre en ecoute | + | * Le port sur lequel se mettre en écoute |
- | * L'interface réseau sur laquelle se mettre en ecoute (l'ip local de la machine) | + | * L'interface réseau sur laquelle se mettre en écoute (l'ip local de la machine) |
* le nom et le port de la machine cible | * le nom et le port de la machine cible | ||
==== Compatibilité ==== | ==== Compatibilité ==== | ||
- | La compilation du binaire à été réalisée sur Ubuntu dapper, mais devrait parfaitement fonctionner sur toutes les versions plus recentes. | + | La compilation du binaire a été réalisée sur Ubuntu dapper, mais devrait parfaitement fonctionner sur toutes les versions plus récentes. |
+ | |||
===== Origine ===== | ===== Origine ===== | ||
- | ubuproxy est un simple script shell qui pemet de simplifier et "d'encapsuler" l'utilisation de "tcpproxy", ecrit par Wolfgang Zekoll, dont les sources sont distibués sous GPL v2 et disponibles à cette adresse : | + | Ubuproxy est un simple script shell qui permet de simplifier et "d'encapsuler" l'utilisation de "tcpproxy", écrit par Wolfgang Zekoll, dont les sources sont distribués sous GPL v2 et disponibles à cette adresse : |
http://www.quietsche-entchen.de/cgi-bin/wiki.cgi/-wiki/proxies/TcpProxy | http://www.quietsche-entchen.de/cgi-bin/wiki.cgi/-wiki/proxies/TcpProxy | ||
- | Attention, plusieurs bugs importants ont étés corrigées dans la version déployée par ubuproxy. (nous tentons de contacter l'auteur pour lui soumettre les differents patchs...) Les sources ainsi modifiées sont bien sur disponibles sur simple demande. | + | Attention, plusieurs bugs importants ont été corrigées dans la version déployée par ubuproxy. (nous tentons de contacter l'auteur pour lui soumettre les différents patchs...) Les sources ainsi modifiées sont disponibles ici : |
+ | |||
+ | http://hoper78.free.fr/ubuntu/tcpproxy.tar.gz | ||
+ | |||
+ | Les seuls fichiers qui ont étés modifiés normalement sont le config.c et tcpproxy.c. Je vous laisse le soin de faire un diff entre les 2 sources pour connaître les modifications apportées... | ||
+ | |||
===== Installation ===== | ===== Installation ===== | ||
Ligne 29: | Ligne 39: | ||
===== Configuration ===== | ===== Configuration ===== | ||
- | La premiere chose à faire est de créer un proxy : | + | La première chose à faire est de créer un proxy : |
<code> | <code> | ||
Ligne 35: | Ligne 45: | ||
</code> | </code> | ||
- | Le nom du proxy (ici "proxy1") n'a pas d'importance. Supposons que je sois sur une machine avec pour adresse IP : 10.0.0.1 et que je veuille créer un proxy qui ecoute sur le port 1000, puis qui redirige toutes les demandes sur le port 80 (serevur http) d'une autre machine, ayant pour IP : 10.0.0.2 | + | Le nom du proxy (ici "proxy1") n'a pas d'importance. Supposons que je sois sur une machine avec pour adresse IP : 10.0.0.1 et que je veuille créer un proxy qui écoute sur le port 1000, puis qui redirige toutes les demandes sur le port 80 (serveur http) d'une autre machine, ayant pour IP : 10.0.0.2 |
<file> | <file> | ||
Ligne 48: | Ligne 58: | ||
Listening port : 1000 | Listening port : 1000 | ||
Listening on 10.0.0.1 | Listening on 10.0.0.1 | ||
- | forwarding conections to : 10.0.0.2:80 | + | forwarding connections to : 10.0.0.2:80 |
and keep logs for 20 days. | and keep logs for 20 days. | ||
Ligne 60: | Ligne 70: | ||
==== Notes ==== | ==== Notes ==== | ||
- | * si on relance cette commande en choissisant des parametres differents, cela n'effacera rien mais ajoutera un nouveau port en ecoute pour ce meme proxy | + | * si on relance cette commande en choisissant des paramétrés différents, cela n'effacera rien mais ajoutera un nouveau port en écoute pour ce même proxy |
* Le nom d'un proxy ne dois pas contenir d'espace, de "." etc. | * Le nom d'un proxy ne dois pas contenir d'espace, de "." etc. | ||
- | * L'adresse IP prise par defaut est celle d'eth0, modifiez la au besoin | + | * L'adresse IP prise par défaut est celle d'eth0, modifiez la au besoin |
- | * Par defaut, toutes les comunications des 5 derniers jours sont loguées | + | * Par défaut, toutes les communications des 5 derniers jours sont loguées |
* Le fait d'indiquer 0 désactivera la fonction de logs (totalement inutile si le protocol qui transite est crypté, comme avec ssh) | * Le fait d'indiquer 0 désactivera la fonction de logs (totalement inutile si le protocol qui transite est crypté, comme avec ssh) | ||
* Il n'y a pas de limite au nombre de proxy que l'on peut créer | * Il n'y a pas de limite au nombre de proxy que l'on peut créer | ||
- | * Il n'est bien sur pas possible d'ecouter plusieurs fois sur le meme port ! | + | * Il n'est bien sur pas possible d'écouter plusieurs fois sur le même port ! |
Ligne 77: | Ligne 87: | ||
</code> | </code> | ||
- | On peut egalement vérifier que le proxy est bien actif (online) : | + | On peut également vérifier que le proxy est bien actif (online) : |
<code> | <code> | ||
Ligne 83: | Ligne 93: | ||
</code> | </code> | ||
- | Il reste à verifier que tout fonctionne. (en lancant un navigateur et en essaynt de se conecter sur "http://10.0.0.1:1000" par exemple, on arrivera en fait sur la machine 2 (10.0.0.2:80). | + | Il reste à vérifier que tout fonctionne. (en lançant un navigateur et en essayant de se connecter sur "http://10.0.0.1:1000" par exemple, on arrivera en fait sur la machine 2 (10.0.0.2:80). |
- | ===== Arret/Supression ===== | + | ===== Arrêt/Suppression ===== |
- | Il est possible de stoper un proxy avec la commande suivante : | + | Il est possible de stopper un proxy avec la commande suivante : |
<code> | <code> | ||
- | sudo ubuproxy proxy1 start | + | sudo ubuproxy proxy1 stop |
</code> | </code> | ||
Ligne 99: | Ligne 109: | ||
</code> | </code> | ||
- | ===== Configuration evoluée ===== | + | ===== Configuration évoluée ===== |
==== Fichiers de configurations ==== | ==== Fichiers de configurations ==== | ||
- | Ils se trouvent dans /etc/tcpproxy/ (un par proxy) et contiennent par defaut | + | Ils se trouvent dans /etc/tcpproxy/ (un par proxy) et contiennent par défaut |
les informations suivantes : | les informations suivantes : | ||
Ligne 114: | Ligne 123: | ||
server 10.0.0.2:80 | server 10.0.0.2:80 | ||
writefile /var/log/tcpproxy/proxy1/1000 | writefile /var/log/tcpproxy/proxy1/1000 | ||
- | </file | + | </file> |
On retrouve donc : | On retrouve donc : | ||
* Le port en écoute | * Le port en écoute | ||
- | * l'interface à utilisée | + | * L'interface à utiliser |
- | * Au bout de 600 secondes, et sans activitée, la connexion est stoppée par le proxy. Mettre zéro desactive ce mecanisme. | + | * Au bout de 600 secondes, et sans activité, la connexion est stoppée par le proxy. Mettre zéro désactive ce mécanisme. |
- | * En plus du traffic, le proxy indique qui s'adresse à qui dans le fichier de log (mettre "no" désactive cette fonctionalité) | + | * En plus du trafic, le proxy indique qui s'adresse à qui dans le fichier de log (mettre "no" désactive cette fonctionnalité) |
* L'utilisateur qui sera utilisé par le processus (uid.gid) | * L'utilisateur qui sera utilisé par le processus (uid.gid) | ||
* Le serveur cible et le port | * Le serveur cible et le port | ||
* La racine des fichiers de logs | * La racine des fichiers de logs | ||
- | ==== A propos des logs ==== | + | ==== À propos des logs ==== |
- | Chaque connexions génére un fichier de logs dont le nom est composé du port et du pid du process qui à géré la connexion. Les fichiers sont ensuite automatiquement archivés (une archive par jour et par port) puis compressé. | + | Chaque connexion génère un fichier de logs dont le nom est composé du port et du pid du process qui à généré la connexion. Les fichiers sont ensuite automatiquement archivés (une archive par jour et par port) puis compressés. |
==== tcpproxy ==== | ==== tcpproxy ==== | ||
- | Pour plus d'informations sur les possibilités de tcpproxy, man tcpproxy 8-) | + | Pour plus d'informations sur les possibilités de tcpproxy, <code>man tcpproxy</code> 8-) |