Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/05/2014, à 12:46

Ansuz

Iptables, domaine et plage de ports aléatoire

Bonjour,

J'utilise un VPN depuis plusieurs années et un parefeu afin de sécuriser.
Mes connaissances iptables sont limitées, ça fonctionne plutôt bien, mais ces derniers temps, j'ai remarqué des difficultés de connexions sur certains serveurs.

Jusqu'à présent, j'utilise ce type de ligne :

iptables -A OUTPUT -p UDP --dport XXXX -d XXX.XXX.XXX.XXX -m state --state NEW -o $interfaceWWW -j ACCEPT

En fait, j'ai relevé que le domaine demandé utilise cinq adresses IP, mais aussi deux plages de ports.
Donc, adresses IP et ports attribués aléatoires lors de la connexion.

Vous l'aurez compris, les règles que j'ai établies dans mon parefeu fonctionnent, mais uniquement lorsque l'IP et le port concordent...

Comment dois-je procéder afin que les diverses IP, ainsi que les plages de ports soient automatiquement autorisées lors de la connexion ?
Doit-on écrire une ligne par adresse IP, ou le nom de domaine peut-il à lui seul réaliser cette tâche ?
Quelle est la meilleure façon de procéder ?

Merci par avance pour vos explications et votre aide précieuse.


"Mieux vaut ne rien savoir que beaucoup savoir à moitié !"  Friedrich Nietzsche

Hors ligne

#2 Le 14/05/2014, à 21:07

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Bonjour !

Perso je ne me ferais pas de restriction avec les ports, je les autoriserai tous (ou alors si tu ne veux pas tous les autoriser et que tu sais que (par exemple) le serveur que tu cherches à joindre n'utilise que la plage de port de 3000 à 4000)), dans ce cas tu autorises les ports de 3000 à 4000 (dans ta règle IPTABLES) et comme tu dis que seulement 5 adresses ip sont utilisées par ce(ces) serveurs, alors tu crées 5 nouvelles règles IPtables, comportant chacune une des bonne adresse IP et collée à ces cinq règles, la plage de port autorisés !

Ce serait compliqué pour toi ? Je débute aussi avec IPtables, désolé si tu as déjà testé cette solution.

A +

Dernière modification par -pascal34- (Le 14/05/2014, à 21:34)

#3 Le 14/05/2014, à 21:39

Brunod

Re : Iptables, domaine et plage de ports aléatoire

Pourquoi limiter les sorties en OUTPUT ?
Et qu'autorises-tu en INPUT ?
Le plus simple ne serait-il pas autoriser tout en output et autoriser les retours en established ?
Une copie de toutes tes règles iptables clarifierait la compréhension. wink


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#4 Le 14/05/2014, à 22:34

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Oui d'un côté Brunod n'a pas tort, j'utilise un jeu de règles ressemblant à ceux-ci : http://forum.ubuntu-fr.org/viewtopic.ph … #p15870911  ça fonctionne très bien wink

#5 Le 14/05/2014, à 22:41

Brunod

Re : Iptables, domaine et plage de ports aléatoire

@Pascal : Ton pc sert de passerelle ? Si non, ta règle forward devrait plutôt être à drop. Une porte que l'on n'utilise pas, on ne la laisse pas ouverte wink


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#6 Le 14/05/2014, à 22:46

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Oui elle l'est merci brunold. Je précisais que mes jeux de règles étaient ressemblant à ceux-ci car je l'ai ai modifié entre temps (et j'ai modifié en drop le forward oui !!)

#7 Le 14/05/2014, à 22:53

Brunod

Re : Iptables, domaine et plage de ports aléatoire

smile


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#8 Le 15/05/2014, à 12:45

Ansuz

Re : Iptables, domaine et plage de ports aléatoire

Bonjour,

J'ai compris qu'il faut ajouter une règle par adresse IP autorisée.
Cela semble fonctionner avec les lignes de ce type :

iptables -A OUTPUT -p UDP -m multiport --dport xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx -d XXX.XXX.XXX.XXX -m state --state NEW -o $interfaceWWW -j ACCEPT

Ne serait-il pas pas possible de simplifier, afin d'éviter d'obtenir une ligne interminable, notamment la plage de port si celle-ci est contiguë ?
Par exemple, autoriser les ports entre 1000 et 2000.

Pardonnez mon ignorance dans ce genre d'exercice, j'essaie d'apprendre, mais surtout de comprendre.
Dans la syntaxe, quelle est la différence entre 1000,2000 et 1000:2000 ?
Si j'ai bien compris, avec la virgule seuls les ports 1000 et 2000 sont autorisés, puis dans le second cas tous les ports entre 1000 et 2000 sont autorisés ?

Peut-on pour une même IP, mettre deux plages de port autorisées sur la même ligne ?


"Mieux vaut ne rien savoir que beaucoup savoir à moitié !"  Friedrich Nietzsche

Hors ligne

#9 Le 15/05/2014, à 13:07

Brunod

Re : Iptables, domaine et plage de ports aléatoire

Les lignes OUTPUT servent à contrôler les sorties. Elles ne règlent rien en ce qui concerne la protection  en entrée.
Logiquement, on ne s'interdit pas de sortir vers certains endroits si on sait ce qu'on fait. Le plus simple est d'autoriser toutes les sorties, et d'autoriser les retours sur base des requêtes qui sont sorties, via established.


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#10 Le 15/05/2014, à 18:37

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Pas mieux que Brunod. Avant j'avais des politiques à rallonge en sortie, alors que je sais ce que j'installe sur mon système d'exploitation, et je maintiens une politique stricte sur ce PC, je n'autorise pas que quelqu'un l'utilise pour mettre un logiciel ou faire des sauvegardes, installer des PPA etc.. du coup, j'ai arrêté de filtrer le ssorties, je laisse tout passer, à part ce que je ne veux pas laisser sortir, cela se résume à quelques ports reliés à certains logiciles c'est tout. Par contre en entrée (INPUT) la politique est DENY, et je laisse faire en gros ce que j'ai mis en lien au dessus (ce lien là : http://forum.ubuntu-fr.org/viewtopic.ph … #p15870911 ), voilou, c'est pour moi assez sécuritaire, et j'ai gagné en confort d'utilisation sur les sorties (OUTPUT), je ne reviendrais pas en arrière, car les règles de mon lien m'ont été dicté par un membre qui avait tout compris sur ce que je cherchais à faire avec IPtables, mais surtout j'ai compris que pour OUTPUT, s'il n'y a pas un logiciel dont tu veux bloquer l'accès en sortie et tous ses fluxs spécifique à un ou des ports), comme la rêgle est par défaut ACCEPT (pour OUTPUT) et non pas DENY (comme on vient de le voir pour INPUT juste au dessus), c'est alors très simple de bloquer les sorties !

@ plus !

#11 Le 15/05/2014, à 19:09

Ansuz

Re : Iptables, domaine et plage de ports aléatoire

Effectivement, Monsieur de La Palisse n'aurait pas dit mieux...


"Mieux vaut ne rien savoir que beaucoup savoir à moitié !"  Friedrich Nietzsche

Hors ligne

#12 Le 15/05/2014, à 19:21

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Ah flûte, cela ne t'a pas aidé du tout du coup ?

Dernière modification par -pascal34- (Le 15/05/2014, à 21:34)

#13 Le 15/05/2014, à 19:28

Brunod

Re : Iptables, domaine et plage de ports aléatoire

Si
tu drop tout comme policy en entrée et en forward,
tu autorises tout en policy sortie,
autorise la loopback et
permet toutes les rentrées en established, tout devrait fonctionner sans aucun problème et en peu de règles.


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#14 Le 16/05/2014, à 10:12

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Un merci viendra peut-être ? smile

#15 Le 16/05/2014, à 11:15

Ansuz

Re : Iptables, domaine et plage de ports aléatoire

Oui, désolé ! Merci à tous les deux de m'accorder un peu de votre temps.  wink
J'étais plongé dans la lecture du lien ci-dessus. intéressant, mais ça demeure compliqué vis à vis de mes maigres connaissances dans le domaine.
Quand je dis débutant en iptables...

Brunod a écrit :

Si
tu drop tout comme policy en entrée et en forward,
tu autorises tout en policy sortie,
autorise la loopback et
permet toutes les rentrées en established, tout devrait fonctionner sans aucun problème et en peu de règles.

Navré, mais j'ai du mal à suivre. Ce langage est obscur à mes yeux...

Mon parefeu est basé sur ceci : (voir post #78)
http://forum.ubuntu-fr.org/viewtopic.php?id=322750&p=4

Qu'en pensez-vous ?


"Mieux vaut ne rien savoir que beaucoup savoir à moitié !"  Friedrich Nietzsche

Hors ligne

#16 Le 16/05/2014, à 12:31

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Bonjour et de rien alors !

Ce qu'il faut savoir c'est ce que tu cherches à faire. si tu es sur un serveur, il faudrat paramétrer IPtables différement, si maintenant tu cherches à administrer IPtables depuis ton PC personnel, alors les règles qui suivent sont optimales (toujours en sachant que tu n'autorises personne à installer un programme quelconque sur ton PC, mais là aussi il faudrat que tu répondes à cette question : Es-tu le seul à pouvoir (au moyen de ton mot de passe ROOT) installer des logiciels sur ce PC dont tu cherches à affiner les règles IPtables stp ? )


Si après avoir répondu à ces questions, tu te rends comptes que tu es le seul à ajouter des programmes sur ton PC et que ce PC est un PC personnel (celui de ton salon, de ta chambre, ton portable, bref ton PC) alors les règles suivantes sont optimales, tu n'auras pas mieux pour sécuriser ton PC perso.:

    iptables -t filter -F
    iptables -t filter -X
        iptables -t filter -P INPUT DROP
        iptables -t filter -P OUTPUT ACCEPT
        iptables -t filter -P FORWARD DROP

        iptables -t filter -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
        iptables -t filter -A INPUT -i lo -j ACCEPT

Si tu veux bloquer un port (d'un certain programme) et en UDP et en TCP  (pour cet exemple prenons 2 ports à bloquer) pour le port 7396 et pour le port 36330 (si ta machine est un PC personnel) il faut faire cela :


        #sports s'il s'agit de port de ta machine
        iptables -t filter -A OUTPUT -p tcp -m multiport --sports 7396,36330 -j DROP
    iptables -t filter -A OUTPUT -p udp -m multiport --sports 7396,36330 -j DROP
 

edit: pour interdire un site rajouter ip du site.
iptables -t filter -A OUTPUT -d xxx.xxx.xxx.xxx.xxx -j DROP


Un lien qui peut t'apporter des renseignements sur les lignes de commandes IPtables du dessus : http://doc.ubuntu-fr.org/iptables


Mieux expliquer je peux pas, et surtout, cela va t'éviter de te triturer le cerveau pendant encore 25 longs mois ou 25 longues années, pour te rendre compte que finalement, IPtables se paramètre comme ça pour un PC personnel dont tu es le seul à maîtriser l'installation des programmes !


Maintenant si tu es sur un serveur ce sera autre chose. A + big_smile

Dernière modification par -pascal34- (Le 16/05/2014, à 12:51)

#17 Le 16/05/2014, à 13:30

Ansuz

Re : Iptables, domaine et plage de ports aléatoire

Salut,

Effectivement, je suis le seul utilisateur de mon PC personnel et je ne doute pas du bien-fondé de tes explications qui sont suffisamment claires.
J'ai déjà eu recours à la doc Ubuntu sur iptables, mais je n'ai pas encore assimilé toutes les subtilités. wink

Cependant, tu ne parles pas du lien que j'ai évoqué ci-dessus, sur lequel est basé mon parefeu.
Pardonne mon ignorance, mais le contenu est assez différent, est-ce la présence d'un VPN qui exige ces différences ?
Qu'en penses -tu ? (explications bienvenues, merci)

Ça fonctionne, mais je cherche à affiner les règles IPtables et par conséquent mieux comprendre.


"Mieux vaut ne rien savoir que beaucoup savoir à moitié !"  Friedrich Nietzsche

Hors ligne

#18 Le 16/05/2014, à 14:36

Brunod

Re : Iptables, domaine et plage de ports aléatoire

Ansuz a écrit :

Salut,
...
Cependant, tu ne parles pas du lien que j'ai évoqué ci-dessus, sur lequel est basé mon parefeu.
...

Lien sur beaucoup de données, "basé sur" ne veut rien dire de précis...
IP tables, c'est rigoureux.
Que donne

cat /etc/iptables/rules.v4 

?
EDIT :
La première question, c'est de savoir si ton pc sert de passerelle vers d'autres; en clair si des données passent au travers comme dans un routeur, ce qui suppose qu'il dispose de min 2 interfaces filaires utilisées en même temps.
Si c'est non, la policy forward doit être en drop

La seconde question : ton pc sert il de serveur pour d'autres ?  Dont d'autres pc du lan ou internet doivent-ils s'y connecter pour utiliser certains service (web, samba...)
Si c'est non, rien ne doit être autorisé en entrée. policy input drop.

Si on part sur un pc familial qui fait ce que tu veux et que tu contrôles, tu as droit d'accéder à tout sur internet et ailleurs; donc policy output accept.

Les 3 policy sont les règles de bases. Maintenant on passe au détail.
Si tu peux sortir sur internet pour demander des données, il serait judicieux que ces données puissent revenir et rentrer sur ton pc. Là ça sort du cadre de cette explication, mais chaque type de requête a son canal. C'est donc difficile à paramétrer finement et définitivement. On simplifie donc avec une sécurisation max en autorisant les rentrées de données en réponse à toutes requêtes venant de l'intérieur (established) ou liées à une de celle-ci (related)

Enfin, ne jamais oublier de laisser passer la loopback.

En clair :

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ALLOW

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Est-ce plus clair ? smile

EDITBIS : Grillé pendant mon edit1 hmm
smile

Dernière modification par Brunod (Le 16/05/2014, à 15:06)


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#19 Le 16/05/2014, à 14:51

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Tu cherches à affiner les règles IPtables dans quel sens stp, peux-tu me donner un exemple, cela sera plus clair pour moi, merci beaucoup. Le lien au dessus je n'ai pas tout compris désolé.

Sinon je bosse avec deux services VPN (j'ai deux abonnements, dont un chez Proxy.sh qui est vraiment optimal, voir ici : https://proxy.sh/   d’ailleurs à thermes je vais basculer chez eux c'est tout).  J'utilise donc OPENVPN pour me connecter à leur serveurs VPN. J'ai analysé les données de connexions sur Proxy.sh et mon autre fournisseur de VPN, par la commande :

ps xaf

Pour Proxy.sh cette commande me donne la force du chiffrement de OpenVPN ET Proxy.sh, sur celle-ci on est sur de l'AES-256 en termes de force de chiffrement de toutes tes données qui transitent entre ton PC et le serveur de Proxy.sh. Le chiffrement de tes identifiants et mot de passe sont indiqués aussi par cette commande et elle dit que c'est SHA-512 qui est utilisé pour leur protection(le top). Mon autre VPN, Vyprvpn, ne dit rien par la même commande, mais cela ne m'étonne pas, eux gardent des logs sur toi, tandis que Proxy.sh non, rendant toutes demandes d'informations sur toi nulles, pour par exemple les tribunaux français.(et là, au tribunal, on peut s'y retrouver pour trois fois rien en France, ou dans d'autres pays aussi), sachant cela par expérience personnelle, mon surf est bouclé niveau sécurité. Certains diront c'est trop, tu fais n'importe quoi, je ne leur souhaite pas mes mésaventures, évidemment.

Donc les règles IPtables que je t'ai donné sont optimales pour ce genre de VPN(VYPRVPN ou PROXY.SH car ils utilisent otus les 2 OPENVPN), et de toutes façons, ce n'est pas moi qui le dit, ce sont les modes d'emploi d'IPtables, et le membre Wholes qui m'avait éclairé là dessus à l'époque en cette phrase :

Pour comprendre IPtables, tout n'est que positionnement et sens des fluxs.


Par le positionnement il faut comprendre par là que dans ta tête il faut que tu saches pile poil où est placé ton ordinateur dans ton réseau local et par rapport à internet. Par exemple tu peux être directement relié à Internet (sans BOX genre Freebox, Livebox etc...) du coup les règles de pare-feu que je t'ai donné au dessus sont évidemment de rigueur, en faire d'autres n'auraient pas de sens. ensuite si tu es derrière une BOX, tu es déjà en dehors du réseau Internet (via la fonction routeur de ta BOX) mais là, j'ai préféré Intercaler encore un routeur derrière ma BOX, poru être en "dehors de ma box", c'est une sécurité superflue selon certains, pour moi elle ne l'est pas, en cas de défaillance de celle-ci, j'ai mon second routeur intercalé qui fera écran, et derrière j'ai IPtables bien paramétré.... C'est sur que si mon deuxième routeur tombe, il n'y aura plus que mon PC et Internet, mais là Internet aura ma vraie adresse MAC, ma Vraie IP, tandis que là je suis derrière deux routeurs, les deux avec des adresses MAC différentes, des IP locales différentes, bref, j'ai de la marge en type d'"attaques frontales".

Bon c'est pour dire le positionnement est important. Soit ton PC  est relié via modem directement au Net, soit tu es derrière une BOX ou soit tu es comme moi dans le sens TON PC ---> un routeur (+ son pare-feu activé) ---> ta box ---> Internet.


Ça c'est pour le positionnement.



Maintenant on va voir le SENS des fluxs.



Ton PC est disons derrières ta BOX. Elle t’envoie des données, qui arrivent sur la chaîne Iptables appelée : INPUT, tu lui réponds par la chaîne IPtables appelée OUTPUT. Donc on comprends que le danger peut-être tout ce que l'on a pas désiré et qui vient directement sur INPUT. Alors selon les règles que je t'ai donné au dessus on met :

iptables -t filter -P INPUT DROP

DROP veut dire que les paquets qui arrivent sur INPUT sont tués. Ils ne sont pas retournés vers la machine qui te les envois depuis l'extérieur, ils sont tués c'est tout, ou abandonnés, mais DROP ne génère pas de réponse de ta machine vers la machine externe. Tandis que si tu mets ça :

iptables -t filter -P INPUT REJECT

Là IPtables envoie un signal vers la machine qui te contacte depuis l'extérieur, et du coup c'est dangereux car en faisant cela, IPtables indique que ta machine existe bien et qu'en plus elle est route et peut lui répondre !! Pas glope.

Ça c'est pour la première ligne, tu peux t'en inspirer pour la règle sur FORWARD, on la met en DROP aussi, si tu ne t'en sers pas. Si tu ne sais pas ce que c'est FORWARD à l'heure actuelle et que tu ne l'utilises pas au moment où tu es en train de me lire, alors c'est que tu n'en as pas besoin, donc FORWARD est mis en DROP c'est tout.


Maintenant la chaîne OUTPUT. Très intéressante aussi, elle est capable de répondre à une machine. Mais attention, on la met sur ACCEPT par cette commande :

iptables -t filter -P OUTPUT ACCEPT

Sans créer de faille de sécurité, car tu administres TON PC et tu y installes les logiciels que TU VEUX. Bien sûr un rootkit passera les doigts dans le nez si tu l'as installé toi-même, mais ça je pense que tu l'auras compris... Donc, la règle est : c'est ma machine et je fais confiance en ma machine parce que c'est moi qui la dirige, c'est la seule définition à retenir. Donc en partant de ce constat et en sachant que tu n'as pas installé d'autres paquets que ceux de la logithèque ou de Synaptic, tu sais que ton PC sous Ubuntu est saint, tout simplement. Maintenant si tu n'as pas confiance en toi et que tu ne fais pas confiance en ta machine, une chose simple est de réinstaller Ubuntu c'est tout, c'est tout con, mais au moins tu seras sûr de repartir sur de bonnes bases. Je pense que tu comprends tout jusqu'ici.

Mais alors, pourquoi mon PC arrive à lancer Firefox et à surfer alors que j'ai tout interdit via ma chaîne INPUT, j'ai tout mis en DROP et ça passe ???? Qu'est-ce que c'est que cette histoire ??!!!!


A cause des deux lignes là :

iptables -t filter -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

et


iptables -t filter -A INPUT -i lo -j ACCEPT

Le mot "state" en anglais veut dire "état". La première ligne du dessus veut sire que les connexions vont être autorisé DEPUIS internet seulement dans les deux états (state) suivant : ESTABLISHED,RELATED


Là c'est intéressant car on a pas indiqué à IPtables l'état (state) NEW !!!!! Cela n'aurait aucun sens, car cela indiquerait à IPtables que l'on accepte toutes les NOUVELLES connexions DEPUIS internet via INPUT !! Cela veut dire que l'on accepte toutes les connexions que l'on a pas nous-mêmes initiés depuis notre PC !!!

Alors à quoi bon mettre ceci :

iptables -t filter -P INPUT DROP

si on annule DROP en mettant simplement l'état NEW dans la ligne qui suit :

iptables -t filter -A INPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Cela n'aurait aucun SENS !!! (Tout n'est question que de positionnement et de SENS de FLUXS !!!)


Alors la bonne règle IPtables pour INPUT et qui protège notre PC d'intrusions NON-AUTORISÉES et INITIÉES depuis internet est celle-ci, (car elle ne comporte pas NEW) :

iptables -t filter -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

Et enfin, il faut autoriser les échanges entre ta carte réseau (du PC) et l’extérieur avec celle-ci :

iptables -t filter -A INPUT -i lo -j ACCEPT

Car si tu ne fais pas cette dernière, ton PC ne sera pas connecté à Internet (ou au réseau local dont ut essais de l'affilier).



Donc Firefox est une application lancée DEPUIS ton PC, et non PAS DEPUIS l'extérieur, de ce fait, tu n'es pas en NEW, tu es dans la catégorie ESTABLISHED,RELATED, donc Firefox va recevoir les réponses de l'extérieur, parce qu'avec toutes les règles que l'on vient de voir, tu as dit à IPtables comment faire.

ESTABLISHED veut dire en gros que c'est toi qui l'a lancé (et qu'elle est établie bien sûr) avec l'internet (par exemple pour l'application Firefox que toi tu viens de lancer depuis ton PC) et RELATED ça sert pour les flux genre FTP, le port 20 et 21 sont RELATED (en relation avec le protocole FTP).


Fait un essai, laisse ton PC reposer deux minutes, tu coupes tout ce qui touche à une connexion Internet (Firefox Thunderbird, Transmission....) et tu fait dans un terminal un

netstat -utapW

Regarde ce qui reste en ESTABLISHED. Chez moi quand je fais ça, il n'y a plus rien...... (Parce que j'ai tout viré ce que je n'aimais pas aussi hein, ilse peut que chez toi tu aies des choses, mais si dans ces choses tu as quelques chose que tu ne connais pas, GOOGLE est là).

Les liens de documentations officielles et alternatives :

Lien 1 : http://www.netfilter.org/documentation/index.html
Lien 2 : Sur le suivant à la ligne appelée Translations :  il faudra choisir la langue qui t'intéresse, et le français y est : https://www.frozentux.net/documents/iptables-tutorial/


Si tu as des questions je reste là, A+

Dernière modification par -pascal34- (Le 16/05/2014, à 14:59)

#20 Le 16/05/2014, à 16:53

Ansuz

Re : Iptables, domaine et plage de ports aléatoire

D'abord, je réitère mes remerciements à vous deux !

Très intéressantes vos remarques et suggestions, dont je prends bonne note. wink

@Brunod

cat /etc/iptables/rules.v4 
cat: /etc/iptables/rules.v4: Aucun fichier ou dossier de ce type

@-pascal34-

netstat -utapW

En fait, j'obtiens trois "ETABLISHED" :
Deux concernent mon VPN, donc je considère que c'est normal, je l'ai autorisé sinon je n'aurais plus de connexion du tout je présume ?
La troisième "microsoft-ds", que vient-il faire ici celui la ?

C'est grave docteur ?

pascal34 a écrit :

peux-tu me donner un exemple, cela sera plus clair pour moi, merci beaucoup. Le lien au dessus je n'ai pas tout compris désolé.

En fait, je me connectes via un VPN (openvpn).
Donc mon parefeu est censé bloquer tout échange si le VPN tombe. En effet, si je stoppe le parefeu, plus rien n'entre ni ne sort. (en théorie)
Cependant, au fil du temps, mon prestataire VPN à changé les adresses IP de certaines destinations, de même que la plage de ports qui ne correspondent plus au fichier .conf d'origine.
Je me retrouve donc avec des destinations obsolètes et inopérantes, ou valides mais ne fonctionnant plus.
Mon souci est que je dois paramétrer ceci, je ping le domaine pour trouver les IP correspondantes, mais pour les ports... je lance la connexion manuellement et je relève les ports dans le terminal.
Au départ, dans la configuration fournie il y a le nom de domaine pour la passerelle et un port.

Dernière modification par Ansuz (Le 16/05/2014, à 17:18)


"Mieux vaut ne rien savoir que beaucoup savoir à moitié !"  Friedrich Nietzsche

Hors ligne

#21 Le 16/05/2014, à 17:20

Brunod

Re : Iptables, domaine et plage de ports aléatoire

On recommence :
que donne
sudo iptables -L -v
?


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#22 Le 16/05/2014, à 17:56

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Merci à Brunod qui pose une bonne question ,après il faut voir si tu veux transmettre en clair les résultats de la commande, que Brunod te demande, car ce sera la config de ton pare-feu (à mettre en clair sur le forum, c'est toi qui voit) mais ça nous aiderait c'est sûr !

Donc de nouveau de rien pour l'aide et je dois répondre à ta question avant de poser les miennes. Donc miscrosoft-ds cela correspond au port d'échange de fichiers, type Samba si j'ai bien compris, et le port utilisé est le 445 (source Wikipédia). Tu auras pas mal de renseignements sur google, n'hésite pas à le solliciter, en avance je viens de le faire et ça donne ce lien ou un membre s'appelant ju332 pose des questions, et il faut regarder la première réponse de "captnfab" qui dit :

Les ports msrpc et microsoft-ds sont filtrés : impossible de faire du partage de fichier (à la SAMBA) avec n'importe qui, c'est bien.


Il me semble qu'à l'époque j'ai viré le logiciel Samba de Linux, je regarde dans Synaptic et je te dis ça.... (ok je viens de voir) Donc j'ai viré Samba ici, dans Synaptic il y a le logo Ubuntu devant un logiciel qui s'appelle Samba, je l'ai viré c'est tout, il n'est plus en écoute et du coup de ne se connecte nulle part (je parle de réseau local, je ne crois que pour sortir il faut paramétrer Samba, à moins que cela se fasse automatiquement, mais le fait que chez toi ce soit en ESTABLISHED comme tu le dis, je me méfierai (mais seulement sur la base que je ne l'ai pas décidé donc ça m'embête, ça se trouve tu trouveras sur Internet via tes recherches que ça craint rien), moi j'aime pas c'est tout, j'ai viré.

Maintenant tu peux nous donner le nom de ton VPN stp ? On peut voir sur leur site comment tu dois t'y connecter depuis qu'ils ont changé leur façon d'accès, ça se trouve ils y a une toute petite partie dans la FAQ que "tout le monde loupe", peut-être que tu ne l'as pas vu ? Dans tous les cas si ça t'embête de donner le nom de ton VPN je comprendrais, mais si tu utilises OPENVPN comme tu le dis, cela doit ressembler aux deux miens non ?

Sur Proxy.sh par exemple "j'importe un fichier texte" qui contient des données (pas ma de truc, le port, le nom du serveur et les options de chiffrement de tout ça...), et je dois aussi indiquer un certificat TLS (ou SSL, je ne sais pas comment on dit), bref c'est un certificat en .crt

Après j'indique mon mot identifiant et mon mot de passe pour Openvpn (mais là tu dois à peu près savoir comment faire et comprendre à peu près ce que je dis vu que tu utilises déjà Openvpn).

Ensuite mon autre service VPN s'appelle VYPRVPN, là je n'ai rien à indiquer à part (et ce pendant ma configuration dans Openvpn), le nom de domaine du serveur, ensuite ben j'indique le certificat de Vyprvon (et pas celui de Proxy.sh lol !), et je rentre mes identifiants et mot de passe de..... Vyprvpn. Ok c'est bouclé. Dans les deux le choix du port est déjà défini, je ne touche à rien, c'est pour cela que je me demande si tu ne loupes pas quelque chose sur ta configuration, pas besoin d'IPtables pour configurer le VPN, les gens ne s'en sortiraient jamais et le fournisseur de VPN mettrai la clef sous la porte à vouloir expliquer aux gens comment lancer IPtables et comment le configurer, ce n'est pas vendeur, je pense que tu loupes quelques choses, de plus le VPN indiquerait que s'il tombe votre surf sera en clair, pas vendeur du touuuuut.... Et une politique IPtables (comme on l'a vu au dessus) qui est défini par un :

iptables -t filter -P INPUT DROP


Va de toutes façon te protéger en cas de chute du VPN non ? Là je ne sais pas très bien, le seul truc que je sais c'est que mon VPN sous Proxy.sh se bloque, j'ai le cadenas actif dans la barre des tâches d'Ubuntu mais je ne peux plus surfer. Par contre, celui de Vyprvpn, quand il tombe, le cadenas s'enlève et là je crois que si je continues à surfer, ben ça surfe, justement... C'est pour ça que je ne l'utilise plus sous Ubutnu, il est mal foutu, retient les Logs sur trente jours, n'est pas clair sur son chiffrement via Openvpn, bref, c'est la louse du VPN, c'est au final comme si tu n'en avais pas... du coup à force de voir tout ça, je ne vais pas renouveler mon abonnement chez eux, je les envoie balader car le taff n'est pas fourni. Non mais, c'est quoi se fournisseur de VPN ?? big_smile


Et leur politique de vente c'est de dire partout (sur leur page internet) qu'ils sont hypers-sécurisés, qu'ils sont ultra rapide, qu'ils ne gardent pas de LOGS du tout sur leur nouveau service VyprDNS (mettant le doute dans la tête des gens qui ne s'y connaissent pas, et du coup ces gens là pensent que ce sont les LOGS de leur Surf qui ne sont pas sauvegardés, et aussi le mot de passe choisi est limité à 14 caractères et pleins de signes spéciaux ne sont pas autorisés, cela fait pour moi encore uen protection de sécurité baffouée car les possibilités en sont du coup très très limitées, bref, des enfumeurs ce groupe, désolé) mais VyprVPN est clairement à oublier. Proxy.sh c'est de la balle, tout est clair chez eux (et vérifiable sur ton Ubuntu !) de plus aucune limite de taille de mot de passe ou de caractères, all is Allrigts ! Cerise sur le gâteau, Proxy.sh est affiliée à l'EFF (voir ici : https://fr.wikipedia.org/wiki/Electroni … Foundation )


Alors je veux bien que tu me dises comment marche IPtables si un VPN tombe, de quelle façon IPtables bloque les connexions actives dans ce cas là stp ? Comme tu vois, je ne connais pas cette facette là d'IPtables, et si tu as en mémoire sur ton PC quelque part, le site Internet qui t'a appris à le faire, c'est encore mieux. Merci !

Dernière modification par -pascal34- (Le 16/05/2014, à 18:40)

#23 Le 16/05/2014, à 19:48

Ansuz

Re : Iptables, domaine et plage de ports aléatoire

@Brunod
Désolé, conscient que cela aiderait à la compréhension, mais je suis sûr que tu comprendras que je ne veuille pas dévoiler en clair le résultat de cette commande.

@-pascal34-
Pour samba, c'est bien possible, mais je ne l'utilises pas à ma connaissance.
Après vérification dans synaptic, le paquet samba n'est pas installé, mais d'autres en relation avec ce dernier.

Concernant le vpn, le principe est le même que le tiens, c'est à dire un fichier texte par destination contenant la configuration (passerelle, port, chiffrement...) à importer dans network-manager, ou à inscrire manuellement.
Bien sûr qu'iptables n'est pas nécessaire au fonctionnement du vpn, il le complète afin de sécuriser davantage. Comme je l'ai déjà évoqué plus haut, si le parefeu est actif et que le vpn tombe tout le trafic est bloqué. Donc pas de communication possible en clair.
Si tu veux utiliser le net sans vpn, tu es alors obligé de stopper le parefeu manuellement.

Voilà pourquoi je reviens sur mon premier post et cet exemple de ligne : (vers un serveur de mon prestataire vpn)

iptables -A OUTPUT -p UDP -m multiport --dport xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx -d XXX.XXX.XXX.XXX -m state --state NEW -o $interfaceWWW -j ACCEPT

Même Si la configuration dans network-manager est correcte, mais une ligne de ce genre dans iptables est erronée, ça ne passe tout simplement pas.

Donc, j'ai inscris une règle par IP avec une plage de port.
En clair, qu'effectue réellement cette partie ? -m multiport --dport xxxx,xxxx,xxxx
Quelle est la nuance entre xxxx,xxxx et xxxx:xxxx ?
Peut-on remplacer une IP par le nom de domaine dans iptables ?
Merci !

si tu as en mémoire sur ton PC quelque part, le site Internet qui t'a appris à le faire, c'est encore mieux. Merci !

Le point de départ est au post #78
http://forum.ubuntu-fr.org/viewtopic.php?id=322750&p=4
J'ai bien sûr du adapter selon mes besoins, notamment y adjoindre bind9  http://doc.ubuntu-fr.org/bind9
Le must du confort, c'était l'utilisation combinée avec vpnautoconnect, qui permettait la reconnexion automatique en cas de down. Malheureusement, ce dernier ne fonctionne plus depuis la 13.10.
Certains ont réussis à le remplacer par un script au démarrage. (ce qui dépasse mes compétences plus que limitées)


"Mieux vaut ne rien savoir que beaucoup savoir à moitié !"  Friedrich Nietzsche

Hors ligne

#24 Le 16/05/2014, à 20:38

Brunod

Re : Iptables, domaine et plage de ports aléatoire

Ansuz a écrit :

@Brunod
Désolé, conscient que cela aiderait à la compréhension, je suis sûr que tu comprendras que je ne veuille pas dévoiler en clair le résultat de cette commande.

@-pascal34-
Pour samba, c'est bien possible, mais je ne l'utilises pas à ma connaissance.
Après vérification dans synaptic, le paquet samba n'est pas installé, mais d'autres en relation avec ce dernier.

Concernant le vpn, ......

Je suis sur que tu comprendras que ne pouvant nous dire si tu utilises ou pas samba, nmbd sur son port ou pas, les ports de ton vpn.... on ne comprend pas grand chose et on se perd en conjecture.
Tu pourrais masquer les ip publiques (puisque les locales sont non-routables et donc sans incidence), modifier les ports (quoique, pour reconnaître les services, si ils sont par défaut, cela pourrait aider)
Tu comprendras donc aussi que dans ce cas, je préfère laisser tomber.
Juste pour le fun, voici le mien tout droit créé par gufw:

bruno@solydx-fs:~$ sudo iptables -L -v
[sudo] password for bruno: 
Chain INPUT (policy DROP 7 packets, 1036 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 240K  141M ufw-before-logging-input  all  --  any    any     anywhere             anywhere            
 240K  141M ufw-before-input  all  --  any    any     anywhere             anywhere            
 1258  179K ufw-after-input  all  --  any    any     anywhere             anywhere            
    7  1036 ufw-after-logging-input  all  --  any    any     anywhere             anywhere            
    7  1036 ufw-reject-input  all  --  any    any     anywhere             anywhere            
    7  1036 ufw-track-input  all  --  any    any     anywhere             anywhere            

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ufw-before-logging-forward  all  --  any    any     anywhere             anywhere            
    0     0 ufw-before-forward  all  --  any    any     anywhere             anywhere            
    0     0 ufw-after-forward  all  --  any    any     anywhere             anywhere            
    0     0 ufw-after-logging-forward  all  --  any    any     anywhere             anywhere            
    0     0 ufw-reject-forward  all  --  any    any     anywhere             anywhere            

Chain OUTPUT (policy ACCEPT 63 packets, 2696 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 223K   25M ufw-before-logging-output  all  --  any    any     anywhere             anywhere            
 223K   25M ufw-before-output  all  --  any    any     anywhere             anywhere            
46378 2914K ufw-after-output  all  --  any    any     anywhere             anywhere            
46378 2914K ufw-after-logging-output  all  --  any    any     anywhere             anywhere            
46378 2914K ufw-reject-output  all  --  any    any     anywhere             anywhere            
46378 2914K ufw-track-output  all  --  any    any     anywhere             anywhere            

Chain ufw-after-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  578 47946 ufw-skip-to-policy-input  udp  --  any    any     anywhere             anywhere             udp dpt:netbios-ns
  272 62234 ufw-skip-to-policy-input  udp  --  any    any     anywhere             anywhere             udp dpt:netbios-dgm
    0     0 ufw-skip-to-policy-input  tcp  --  any    any     anywhere             anywhere             tcp dpt:netbios-ssn
    0     0 ufw-skip-to-policy-input  tcp  --  any    any     anywhere             anywhere             tcp dpt:microsoft-ds
   70 23030 ufw-skip-to-policy-input  udp  --  any    any     anywhere             anywhere             udp dpt:bootps
    0     0 ufw-skip-to-policy-input  udp  --  any    any     anywhere             anywhere             udp dpt:bootpc
  331 44924 ufw-skip-to-policy-input  all  --  any    any     anywhere             anywhere             ADDRTYPE match dst-type BROADCAST

Chain ufw-after-logging-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-logging-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-logging-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ufw-user-forward  all  --  any    any     anywhere             anywhere            

Chain ufw-before-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  137 23816 ACCEPT     all  --  lo     any     anywhere             anywhere            
 239K  141M ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
   40  1600 ufw-logging-deny  all  --  any    any     anywhere             anywhere             state INVALID
   40  1600 DROP       all  --  any    any     anywhere             anywhere             state INVALID
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp destination-unreachable
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp source-quench
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp time-exceeded
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp parameter-problem
    2    80 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-request
    4  1396 ACCEPT     udp  --  any    any     anywhere             anywhere             udp spt:bootps dpt:bootpc
 1343  199K ufw-not-local  all  --  any    any     anywhere             anywhere            
   85 19868 ACCEPT     udp  --  any    any     anywhere             224.0.0.251          udp dpt:mdns
    0     0 ACCEPT     udp  --  any    any     anywhere             239.255.255.250      udp dpt:1900
 1258  179K ufw-user-input  all  --  any    any     anywhere             anywhere            

Chain ufw-before-logging-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  137 23816 ACCEPT     all  --  any    lo      anywhere             anywhere            
 176K   22M ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
46378 2914K ufw-user-output  all  --  any    any     anywhere             anywhere            

Chain ufw-logging-allow (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-logging-deny (2 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-not-local (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    7  1036 RETURN     all  --  any    any     anywhere             anywhere             ADDRTYPE match dst-type LOCAL
   85 19868 RETURN     all  --  any    any     anywhere             anywhere             ADDRTYPE match dst-type MULTICAST
 1251  178K RETURN     all  --  any    any     anywhere             anywhere             ADDRTYPE match dst-type BROADCAST
    0     0 ufw-logging-deny  all  --  any    any     anywhere             anywhere             limit: avg 3/min burst 10
    0     0 DROP       all  --  any    any     anywhere             anywhere            

Chain ufw-reject-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-skip-to-policy-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  any    any     anywhere             anywhere            

Chain ufw-skip-to-policy-input (7 references)
 pkts bytes target     prot opt in     out     source               destination         
 1251  178K DROP       all  --  any    any     anywhere             anywhere            

Chain ufw-skip-to-policy-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere            

Chain ufw-track-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         
21996 1320K ACCEPT     tcp  --  any    any     anywhere             anywhere             state NEW
24319 1592K ACCEPT     udp  --  any    any     anywhere             anywhere             state NEW

Chain ufw-user-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-limit (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere            

Chain ufw-user-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  any    any     anywhere             anywhere            

Chain ufw-user-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  any    any     anywhere             anywhere            

Chain ufw-user-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  any    any     anywhere             anywhere            

Chain ufw-user-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         
bruno@solydx-fs:~$

Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#25 Le 16/05/2014, à 20:56

compte supprimé

Re : Iptables, domaine et plage de ports aléatoire

Ok pour Samba et ses dérivés, il faut faire le tri oui car les dépendances peuvent être nombreuses, si tu as toruvé d'où cela venait c'est le principal. Avant d'aller plusloin, il serait important que tu me décrives cette ligne d'IPtables, et que tu me décrives par contre malheureusement, exactement toutes les commandes qui s'y trouvent, afin que je sache si tu sais pourquoi tu l'as appliquée, et c'est très important aussi pour toi pour la suite, car si tu mets des règles IPtables en place sans les comprendre, il y a danger. Perso, j'ai compris toutes les règles IPtables que j'ai mis en place ici bien sûr, sinon, à quoi sert un pare-feu, si je ne sais pas m'en servir et que je lui applique tout un tas de règles que je ne maîtrise pas de A à Z ? Ben je crée des failles de sécurité, j'allourdi IPtables inutilement, je le fait réagir d'une façon non souhaitée, et j'en passe..

Cela te permettra aussi de faire le point avec tes connaissances des règles IPtables (c'est évidemment d'une importance toute particulière).


Alors ma question est, sur la dernière ligne de commande IPtables que tu nous as transmise, qu'elles sont la ou les parties que tu as comprises stp ? (désolé mais il va falloir que tu découpes la ligne de commande qui suit par "secteurs" afin que je sache quels sont les éléments présents dans celle-ci, que tu maîtrises, et quel est son but global pour toi au final aussi ? Merci Ansuz).

La ligne à analyser chez toi est donc celle-ci (tu peux mettre ta réponse directement ici sur le forum) :

iptables -A OUTPUT -p UDP -m multiport --dport xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx -d XXX.XXX.XXX.XXX -m state --state NEW -o $interfaceWWW -j ACCEPT

Dernière modification par -pascal34- (Le 16/05/2014, à 21:16)