declencher l'ouverture de port auto

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

declencher l'ouverture de port auto

Messagepar mstotor » 22 Mai 2005 13:06

salut,
sur un routeur j'ai ce que l'on appelle des triggers, le principe.
si je declenche de mon reseau local un tentative de sortie vers internet sur un port particulier, celà me declenche l'ouverture et le forward automatique d'une serie de port en UDP en dynamique vers un serveur interne..je connais le port declencheur et la plage de port dynamique utilisée, 300 environ

des que j'arrete volontairement le port declencheur venant de mon serveur, tous les ports liés se ferment....

tout celà pour eviter de creer un regle ouvrant 300 ports dans lesquels 4 seulement seront effectivement utilisés....mais lesquels en dynamique à moins d'etre devant les logs, de voir les ports bloqués et de les ouvrir à la mano.

ce routeur est HS :? , est ce qu'il est possible soit via script ou un autre moyen d'agir de la sorte avec IPcop de facon automatique ?

Merçi, ca m'aiderais beaucoup
Avatar de l’utilisateur
mstotor
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 245
Inscrit le: 30 Avr 2003 00:00
Localisation: 2 ieme baobab à gauche

Messagepar Fesch » 22 Mai 2005 22:47

Il existe un addons qui s'appel DOORMAN.

Je l'ai trouvé ici: http://mh-lantech.css-hamburg.de/ipcop/ ... hp?view.49
Pourquoi lis-tu ceci???
Avatar de l’utilisateur
Fesch
Amiral
Amiral
 
Messages: 2505
Inscrit le: 11 Sep 2003 00:00
Localisation: Luxembourg

Messagepar mstotor » 23 Mai 2005 12:38

merçi Fesh , je vais voir ca de plus pret

bonne journée :wink:
Avatar de l’utilisateur
mstotor
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 245
Inscrit le: 30 Avr 2003 00:00
Localisation: 2 ieme baobab à gauche

Messagepar schlouf » 27 Mai 2005 06:52

C'est une implementation qui differe un peu du port knocking d'origine dans le sense que c'est une login- password-hash-bidule qui sert pour l'autentification et pas une suite d'acces sur des port predefinis telle que suggere par l'implementation initiale du port knocking. Ca fait que ca marche a merveille, quoique je n'utilise pas la version de Markus car ne connaissais pas son existance il y a encore qq jours. Oh well!

Sinon, j'ai du un peu jouer avec pour le lancer et le relancer a chaque changement d'ip. J'ai pas encore fait des tests t'es etendus car j'ai un ip fixe chez moi, mais j'ai l'impression que doormand doit etre relance si ton ip change. Je le fais dans rc.updatered.

Aussi, faut prendre des precautions si doormand plante (rare, mais j'y suis arrive qq fois durant l'installation) car il laisse trainer son doormand.pid dans /var/run et du coup il veut pas redemarrer si le fichier existe.

Il doit etre configure pour ecouter sur une interface predefinie (style ppp0), du coup, tu ne peux initier l'ouverture de port que sur cette interface la.

Dans la lancee, je relance mon sujet qui n'a pas eu bcp de succes il y a qq temps, ca porte justement sur l'overture des ports par doormand. Comme il travaille avec la chaine INPUT, je voulais faire en sorte que le port forwarding puisse etre controle de facon identique a l'external access'. Bref, voir http://forums.fr.ixus.net/viewtopic.php?p=189437. Si jamais, qqun a une lumiere...
Avatar de l’utilisateur
schlouf
Major
Major
 
Messages: 72
Inscrit le: 29 Jan 2002 01:00
Localisation: QC, Canada

Messagepar evangelion64 » 30 Mai 2005 17:34

comment on configure cet addon?


rien ne se fait par l'interface web?

merci
evangelion64
Aspirant
Aspirant
 
Messages: 124
Inscrit le: 29 Avr 2005 09:53
Localisation: 78 ou 92

Messagepar mstotor » 30 Mai 2005 19:29

salut shlouf,

je l'ai dl sur mon PC admin, mais pas le temps de tester avant qques jours.
tu veux dire que ce n'est pas du port knoking mais de l'appel d'ouverture via un login, client applicatif (port de commande) ou user ?
avant d'aller plus loin car je sens que ca me demange quand même pour l'essaye plus tot, tu peux me decrire rapido le process.
requete......login securise.....ouverture stp

merçi
totor
Avatar de l’utilisateur
mstotor
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 245
Inscrit le: 30 Avr 2003 00:00
Localisation: 2 ieme baobab à gauche

Messagepar schlouf » 30 Mai 2005 20:53

L'application est dispose de 2 parties, un client et un serveur. La partie serveur fait le monitoring d'un port udp particulier. Si un paquet correctement formate parvient sur le port, l'ouverture a la demande va s'activer sur le port tcp demande. Pour faire parvenir ce paquet sur ton port udp, tu disposes d'une application client (des binaires sont disponibiles pour linux et windows).

Pour mieux comprendre le mechanisme je te mets en copie quelques fichiers de config...

Fichier config cote serveur:
#
# 'doormand.cf'
# Sample configuration file for the Doorman Daemon, "doormand".
#
#
interface eth0
port 1001
waitfor 10
connection_delay_1 100000 # 1/10th second (delay is in microseconds)
connection_delay_2 2
logfile /var/log/messages
loglevel debug
pidfile /var/run/doormand.pid
guestlist /usr/local/etc/doormand/guestlist
firewall-add /usr/local/etc/doormand/iptables_add
firewall-del /usr/local/etc/doormand/iptables_delete
tag-queue-length 100000
tag-queue /var/doorman_tag_queue
tag-db /var/doorman_tag_db.db

Tu vois que le serveur fait le monitoring sur le port 1001, sur eth0. Les scripts iptables_add et iptables_delete sont en charge des l'ouverture des ports.

Ca c'est le fichier cote serveur qui determine les usagers qui on le droit de demander une ouverture de ports, les ports auxquels ils ont droit et les reseaux depuis lesquels ils peuvent envoyer leurs requetes:
#
# Sample 'guestlist' file (man 5 guestlist)
#
# .--<-- group name must start on column 1 !
# /
# /grp secret ports addresses
#/---- ---------- ---------- -----------------------------------------------
user4 qwertyuiop4 22 pop3 192.168.0.0/24 9.10.11.12/16 127.0.0.1/24


Fichier config cote client windows:
#
# 'KNOCK.CFG'
# Sample configuration file for the Doorman knocker, "knock.exe"
#
#
group user4 # Change this
secret qwertyuiop4 # And this!
port 1001 # The UDP port the doorman is watching
run "PuTTY myname@%H%" # A typical thing to run after a knock.
# The hostname used in the knock command
# will be subsituted in place of '%H%'.

Tu vois que le client va envoyer le paquet sur le port 1001, avec login user4 et mot de passe qwertyuiop4. Le port tcp demande sera donne en argument au client avec le nom du host. La clef run determine l'application qui doit etre lance apres l'ouverture de port.

Il convient de noter que le client n'a pas la moindre idee si l'ouverture de port a ete fait avec succes ou pas, le daemon ne donne aucun message et travaille d'une facon completement masquee. Le port udp qui est monitore n'a pas besoin d'etre ouvert non plus.
Avatar de l’utilisateur
schlouf
Major
Major
 
Messages: 72
Inscrit le: 29 Jan 2002 01:00
Localisation: QC, Canada

Messagepar mstotor » 30 Mai 2005 21:55

merci pour la reponse rapide, c'est un plaisir à lire :wink:

en fait, j'ai un petit dileme...
tu l'a peut etre deviné en arriere pensée 8) .....reinventer l'upnp et la gestion farfelue et complexe de directx vers un serveur de jeu travaillant à la demande et vi ca m'arrive malgré mon serieux habituel boulot, mais sans le coté ouvert à tout de l'upnp :wink:

en dehors de cet aspect ludique, je reflechie à pas mal d'applications tres interessantes de knocking pour de l'admin pratique et dediée sur mon reseau

je ressort une phrase de ton explication, le client envois une requete sur un port predefini en udp pour ouvrir une/des ouvertures et forwards en TCP prereglées, cette commande peut elle egalement ouvrir de l' UDP prereglés ou il y a une restriction sur l'udp ?

j'ai edité mon post pour eviter de montrer mon desir "partagé ? " utopique peut etre ? du mini ou zéro admin en extrapolant sur la gestion des ports ouverts ou fermés habituels, par une transparence complete des services en attente sur le monde dit "exterieur", ouverts de l'interieur ou de l'exterieur sur demande securisée :roll:

à plus totor
Dernière édition par mstotor le 30 Mai 2005 22:39, édité 1 fois au total.
Avatar de l’utilisateur
mstotor
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 245
Inscrit le: 30 Avr 2003 00:00
Localisation: 2 ieme baobab à gauche

Messagepar schlouf » 30 Mai 2005 22:25

Hmmm, je n'ai pas l'impression que tu puisses emuler le fonctionnement de l'upnp avec doorman.... Par contre il convient paraitement pour fermer ton serveur vers l'exterieur et n'ouvrir l'acces qu'au besoin. Aussi, j'insiste sur le fait que l'acces est donne avec la chaine INPUT qui donne acces vers la machine ipcop. Pour gerer le port forwarding, normalement la chaine FORWARD devrait etre utilise. Je serait moi-meme bien interesse de savoir si le port forwarding peut etre controle par la chaine INPUT de qq facon que ce soit... Ca donnerait de la transparence dans la gestion des services tournant sur ipcop et les machines dans le lan.

Pour repondre a ta question concernant l'udp, l'application ne gere que les ports tcp (du moins, actuellement)

Le script iptables_add contient:
#!/bin/sh
#
# file "iptables_add"
# Linux2.4-style firewall-add script, called by "doormand".
# This example can be used by systems which use iptables.
#
# Called with five arguments:
#
# $1 : name of the interface (e.g. eth0)
# $2 : source IP; i.e. dotted-decimal address of the 'knock' client
# $3 : source port; when this script is called for the first time
# for a connection (man 8 doormand), this argument will be set
# to a single "0" (0x30) character. This means that the source
# port is not yet known, and a broad rule allowing any source
# port is required.
# $4 : destination IP; that is, the IP address of the interface
# in argument 1.
# $5 : The port number of the requested service (e.g. 22 for ssh, etc.)
#
#
if [ $3 = 0 ]
then
ret=`iptables -I INPUT 1 -j ACCEPT -p tcp -i $1 -s $2 -d $4 --dport $5 2>&1`
else
ret=`iptables -I INPUT 1 -j ACCEPT -p tcp -i $1 -s $2 --sport $3 -d $4 --dport $5 2>&1`
fi

if [ -z "$ret" ]
then
echo 0
else
echo -1 3 $ret
fi

Comme tu peux voir, '-p tcp' apparait en dur dans le script. Peut-etre que tu peux bricoler qqchose pour l'udp...
Avatar de l’utilisateur
schlouf
Major
Major
 
Messages: 72
Inscrit le: 29 Jan 2002 01:00
Localisation: QC, Canada

Messagepar mstotor » 30 Mai 2005 22:51

mille mercis pour les infos

explication nette, precise et complete, si toutes les reponses etaient comme les votres ! :wink:

j'appelle celà une continuité en reference au partage et au monde libre 8)
je vais tester pour de l' udp...

++
totor
Avatar de l’utilisateur
mstotor
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 245
Inscrit le: 30 Avr 2003 00:00
Localisation: 2 ieme baobab à gauche


Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron