Forums
cacher un port non utiliser
-
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
ericc -
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
-
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
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é
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 -
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'airet 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
Maintenant on va autoriser tout les connexions sur l'interface loopback qui est utilisé par pas mal de programmes en interne sur ta machineiptables -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 uniptables -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
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é
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 -
Et bien Mr Toxx ?
Cette solution ne te convient pas ??
Ou tu n'a pas eu le temps de tester ?
ericc -
wesh
je te dirais si elle me convient quand j'aurais testé
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 pageje te tiens au courant ricco , j'test surement dans la semaine