Forums


  • salut je reprend mes vielles prise de têtes

    bon je post en "hardware" car je veux agir en amont ... sans firewall
    voila je me suis remis a vouloir firewaller mon PC sous linux avec une pleine maitrise ... et j'en reviens a mon diagnostique de il y a 2 ans ... c'est impossible
    autant iptable se démerde seul et bien mieux qu'avec un firewall et netfilter refuse ou accepte mal tout changement qui n'est pas fait en commande

    bon je suis pas manchot (enfin si , enfin non ... linux inside donc manchot mais pas handicapé) pro de la recherche donc je m'en sors TOUJOURS tout seul ... mais apres 2 ans , plusieurs modem/routeur/ Nat pro/server ... j'en reste au même niveau

    COMMENT démasquer un port QUE lorsque qu'il est utiliser par une prog ou log SPÉCIFIQUE et que le reste du t emps il reste invisible/masqué/caché

    on me dit que c'est impossible , certain prog on besoin d'avoir un retour (ping) pour fonctionner , mais je reste visible sur la toile , donc oui tous mes ports son fermer mais certain sont fermer et pas cachés , on sait quand et ou je suis ... j'ai l'avantage (et le choix) d'etre en IP dynamique(un des derniers en France) pas trop de perte au téléchargement et une grande sécurité

    ce que je voudrais ! c'est que tout mes ports soit cachés (et pas seulement fermés) et qu'ils ne s'ouvrent que sous commande d'un prog , pas seulement que le progs est tous les droits mais qu'ils n'est l'autorisation de l'ouvrir qu'au moment de l'utilisation)
    je risque rien sur internet (même sous linux c'est utopique) mais je veux ne pas exister ,être invisible

    être invisible et que tout fonctionne c'est impossible mais une soluce et m'en rapprocher je prend
    je le faisait sous Windows et sous linux j'ai rien trouvé de viable , iptable il y a rien de plus securisé mais c'est très TRES limité" tu ouvre ou tu ferme" .... comment cacher un port hors de son utilisation , comment le cacher quand il n'est as utilisé ?
    voila ma question

     

  • Aaah Ok, j'avais pas bien compris ton soucis ....

    Si je résume :
    Tu veux que quand aucun programme ne tourne sur ta machine tout tes ports soient en Shealth (Drop) et que lorsque tu lance un programme qui à besoin d'un port entrant celui s'ouvre tout seul comme par magie ....

    J'imagine que c'est pour amule ?
    parce que je vois pas quel autre software à besoin d'un port entrant.

    Au passage IPTable et Netfilter, c'est la même chose. Enfin ce sont 2 éléments qui constitue le firewall de Linux.
    D'autre part, et sauf erreur, les softs de firewall sous linux ne font que manipuler IPTable.

    Si tu faisait un petit schéma de ton réseau, en mentionnant ou sont actuellement le/les firewalls ?
    Tu utilise un modem ADSL ou un routeur ?

    Il y a peut être quelque chose à faire en écrivant un script qui modifirais les règles de IPtables juste avant de lancer amule (ce serait le script qui lancerais amule en fait).
    Reste à voir comment refermer le/les ports quand tu ferme amule.

    Il va falloir que je replonge dans mes cours rolleyes

    ericc me
     

  • Deux logiciels qui permettre de gérer les rules IPTable :
    FwBuilder
    Configuration graphique, quand la config est prête, le soft génère un script à insérer dans initd et les runlevels voulu et c'est tout !!
    Pas de soft qui tourne en tache de fond ... clean, efficace
    Gratuit pour Linux, payant sous windows

    FireStarter
    Un des plus populaires sous Linux. je n'utilise pas donc je ne peux pas trop en parler
    A voir

    Actuellement, mon réseau est protéger par le firewall de mon routeur !

    ericc me
     

  • bah en fait tout ce qui est video/audio (genre la cam de aMsn) a besoin d'un retour pour fonctionner , si le port est caché ça fonctionne pas , lors de test j'ai pas mal de ports non cachés en fait
    c'est pas que je risque quelque chose mais comme on dit "pour vivre heureux faut vivre caché"

    j'ai retester Firestarter samedi et comme avant il me bloque tout complètement ... plus du tout de connexion quel que soit la configuration , et même sur les forums on sait pas pourquoi !

    j'ai tester UFW et son gui GUFW ... pas concluant confused

    ah oui je l'avais oublié FwBuilder ... je te tiendrais au courant

    en fait je tournais avec un routeur/nat jusque là ... mais monsieur m'ouvrais des ports dont le 80 afin de servir de serveur http ... losque que je fermais toute les options de routage , il ne voulait plus communiqué avec mon PC ...
    j'ai remis mon ancien modem , et la j'ai plus de ports ouverts et ça tourne bien ... j'en ai profité pour couper les serveurs/deamon (samba entre autre) de mon système

    je veux juste cacher ces ports en dehors de leur utilisation ... j'ai pas de réseau chez moi , 1 modem 1 PC et plus de firewall (d'origine sur linux tous les ports sont fermé)

    bon je vais FwBuilder ce soir ou demain ... là faut que je retourne au taf !

    a plus
     

  • Ah oui, la webcam !!! cela risque d'être plus compliqué confused

    j'ai remis mon ancien modem , et la j'ai plus de ports ouverts et ça tourne bien ...
    Ok ça m'arrange
    Donc ça signifie que ta machine à une adresse IP Publique et qu'on utilisera le Firewall de ta machine.

    Une chose importante, en ce qui concerne Firestarter et FwBuilder. D'après ce que je comprend, FireStarter fonctionne en permanence sur la machine à la manière d'un ZoneAlarm et permet de gérer dynamiquement les règles IPTables.
    Alors que FwBuilder, permet de générer un script qui sera exécuté lors du démarrage de Linux et établira les règles de IPTable.

    Tu peux lire cette page web pour avoir quelques info utiles sur la configuration de IPTable (dans la langue de Shakespeare)

    Mon idée était d'écrire de petit Bash script qui aurait insérer des rules dans les tables en fonction du programme que tu lance. Mais il faut que les ports soient statiques et je ne sais pas si la webcam utilise toujours les mêmes ports ...
    Si c'est elle qui initialise la connexion ce n'est pas un soucis mais dans la cas contraire cela risque de poser un problème.

    ericc me
     

  • A la réflexion, et en relisant la page que je t'ai indiqué, je pense qu'il sera plus rapide et plus efficace si on le fait directement à la main
    Pas de panique, ce n'est pas aussi compliquer que cela en à l'air whistle et ta configuration est assez basic.
    Lis tout jusqu'au bout au moins 1 fois avant de commencer !!

    Commençons par le commencement, tu ouvre un terminal, puis tu passe en root.
    Je pense que tu es sous Ubuntu, alors un petit :
    sudo su
    suivi de ton password

    Ensuite, histoire de vérifier que tes tables sont vides:
    iptables -L

    Si les tables sont vides, tu devrais avoir l'affichage suivant :
    Chain INPUT (policy ACCEPT)
    target prot opt source destination

    Chain FORWARD (policy ACCEPT)
    target prot opt source destination

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination

    Si ce n'est pas le cas, il va falloir les vider. Le problème va être de trouver ce qui les remplis ... mais on verra ca plus tard.
    iptables --flush
    ensuite tu refais la commande précédente et cela devrait être bon !!!
    Attention, à ce moment tu n'a plus de firewall, donc ta machine est ouverte !!!!

    Donc on va faire simple, on autorise tout en sortie et on bloque tout en entrée.
    Mais d'abord, il faut autorisé les connexions établies. Quand tu te connecte à un serveur web, ta machine envois ton adresse IP et un port de connexion. Le firewall voit cette requête et la mémorise (on a alors une demi-connexion). Quand le web serveur répond vers le port que tu as indiqué, le firewall compare l'adresse IP de celui ci et le port de connection et si cela correspond laisse passer les infos (la connexion est établie) :
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    On indique le sens du paquet (-A INPUT), l'état de la connexion (--state ESTABLISHED,RELATED) et on lui dit d'accepter ( -j ACCEPT) : Facile, non ?
    Tu remarques que je n'ai indiquer aucune adresse IP ! La tienne étant dynamique cela m'obligerait à tout réécrire à chaque changement et pour la distante je devrais écrire une ligne pour chaque serveur vers lequel tu te connecte .... un peu long wink

    Maintenant on va autoriser tout les connexions sur l'interface loopback qui est utilisé par pas mal de programmes en interne sur ta machine
    iptables -I INPUT -i lo -j ACCEPT
    Donc ici on a spécifier l'interface (-i lo) et on autorise

    Maintenant on bloque tout le reste :
    iptables -A INPUT -j DROP
    DROP veux dire qu'on simplement jeter le paquet sans répondre ainsi le port sera caché !
    Si tu fait un
    iptables -L -v
    tu devrais avoir ceci :
    Chain INPUT (policy ACCEPT 134K packets, 8814K bytes)
    pkts bytes target prot opt in out source destination
    1456 81392 ACCEPT all -- lo any anywhere anywhere
    760 46308 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
    0 0 DROP all -- any any anywhere anywhere

    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination

    Chain OUTPUT (policy ACCEPT 137K packets, 7920K bytes)
    pkts bytes target prot opt in out source destination

    Voila la première partie est terminée.
    Tu devrais pouvoir surfer normalement et si tu scan avec ShieldUp tout tes ports devraient être en stealth (caché)

    Maintenant, on va sauvegarder les règles dans un fichier :
    Vérifie que tu n'a pas de fichier /etc/iptables.rules ou que celui ci est vide. Si ce n'est pas le cas, renomme le en iptables.rules.old.
    iptables-save > /etc/iptables.rules
    ceci va générer un fichier qu'on réutilisera par la suite à chaque boot pour réétablir les règles de IPTable
    Ensuite tu édite le fichier /etc/network/interfaces qui gère les interfaces réseaux et tu ajoute la ligne suivante à l'interface eth0 (si c'est l'interface ethernet que tu utilise)
    pre-up iptables-restore < /etc/iptables.rules
    cela va avoir pour effet de charger les règles de filtrage avant le démarrage de eth0.

    Nb: Si tu avais déjà des règles au tout début, mais que tu n'avais pas de fichier iptables.rules , ni ce genre ligne dans le fichier interface, il va falloir retrouver ou se trouve le fichier qui les charges car sinon tu risque d'avoir un conflit. Malheureusement sur ce coup je pense pas pouvoir t'aider doh

    Ok, donc maintenant tu as une configuration basique qui doit se recharger à chaque reboot.

    Passons maintenant à la cerise sur le gâteau.
    Admettons que port tcp pour amule soit le 4662.
    Tu repasse en utilisateur normal, tu lance ton éditeur préféré et tu tape le script suivant
    #!/bin/bash
    sudo iptables -I INPUT 1 -p tcp --dport 4662 -j ACCEPT
    amule
    sudo iptables -D INPUT 1

    Donc la première ligne (pas celle qui commence par #! ), insert au début du tableau, une règle qui accepte les connexion tcp sur le port 4662.
    La ligne suivante lance amule mais ne le détache pas -> le script attend la fin de amule
    Quand tu ferme celui ci, la dernière ligne supprime la première ligne du tableau
    et hop le tour est joué cool

    Tu sauvegarde, tu n'oublie pas de le rendre exécutable avec un chmod bien senti entre les deux yeux, et c'est fini ...

    Tu peux rajouter une ligne pour le port udp mais qui fera l'insertion en position 2
    #!/bin/bash
    sudo iptables -I INPUT 1 -p tcp --dport 4662 -j ACCEPT
    sudo iptables -I INPUT 2 -p udp --dport 4762 -j ACCEPT
    amule
    sudo iptables -D INPUT 2
    sudo iptables -D INPUT 1

    Si tu trouve (ou connais) le port utiliser par la webcam de aMsn, tu peux faire la même chose pour celui ci.
    Quoique moi, j'essayerai d'abord sans faire de modif, au cas ou cela ne serait pas nécessaire.

    Petit problème que je vois, c'est si tu lance le script pour aMsn, puis celui pour amule et que tu ferme d'abord aMsn, il risque d'y avoir une confusion et la mauvaise ligne sera effacé de la table.

    On pourrais améliorer les règles en rajoutant des règles d'anti-spoofing (un attaquant extérieur essaye de pénétrer dans ta machine en utilisant ton adresse IP comme source) mais je ne suis pas sur qu'on puisse faire cela avec une IP dynamique.

    Voila essaye et dis moi si cela fonctionne
    (tant que tu n'a pas modifié le fichier interfaces, rien n'est permanent donc pas de danger de tout foirer, tu peux faire tout tes tests tranquille et si tout va bien, alors seulement faire la modif)

    ericc me
     

  • Et bien Mr Toxx ?
    Cette solution ne te convient pas ?? rolleyes
    Ou tu n'a pas eu le temps de tester ?

    ericc me
     

  • wesh

    je te dirais si elle me convient quand j'aurais testé blush2
    je suis pas trop chez moi en ce moment ... limite je viens sur le PC pour voir s'il est encore en vie et s'il y a du nouveaux a télécharger

    je sais ou est la page wink je te tiens au courant ricco , j'test surement dans la semaine
     

Modérateur(s): ericc, toxxic, mich_belge