Problème de règles (IPTABLES)

Hello all,

Je possède un VPS qui fonctionne sous Debian GNU/Linux 7 64b.
J’aimerai appliquer (traduire) les règles suivante savec IPTABLES

[size=70][color=#004000]Default voice port (UDP in): 9987
Default filetransfer port (TCP in): 30033
Default serverquery port (TCP in): 10011
Default tsdns port (TCP in): 41144
Default weblist port (UDP out): 2011-2110 (first available port in given range)

In addition to that, packets originating from or sent to accounting.teamspeak.com:2008 (TCP) and weblist.teamspeak.com:2010 (UDP) must not be blocked. The local port for these connections is randomly assigned by the operating system when the connection is established. Please note that we do not guarantee that these DNS names will resolve to the same IP Address at any point in time. These services have changed IP addresses in the past and will continue to do so in the future.[/color][/size]

Le code mis en place:

[size=70][color=#004000]# Autoriser premier serveur Teamspeak numero 1(9987)
iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 9987 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 9987 -j ACCEPT
echo - Premier serveur Teamspeak 9987 autorise : [OK]

Autoriser serveur Teamspeak numero 2 (9988)

iptables -t filter -A INPUT -p udp --dport 9988 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 9988 -j ACCEPT
echo - Deuxieme serveur Teamspeak 9988 autorise : [OK]

#Autoriser la license Teamspeak
iptables -A INPUT -p tcp --source accounting.teamspeak.com -j ACCEPT
iptables -A OUTPUT -p tcp --source accounting.teamspeak.com -j ACCEPT

Autoriser les regles generales du process Teamspeak (optionnel)

iptables -t filter -A INPUT -p udp --dport 2010 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 2010 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 41144 -j ACCEPT[/color][/size]

Ces règles ne doivent pas s’exécuter correctement car le service teamspeak bloque au démarrage:
erreur :
TS3ANetwork::Connect failed error: 110 , Unable to connect to primary address, trying secondary

Si je retire les règles je n ai aucun souci, le serveur démarre correctement.

N’étant pas ç l’aise avec IPTABLES je vous sollicite.
Merci par avance.

Autoriser premier serveur Teamspeak numero 1(9987)

iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A OUTPUT -p udp –sport 9987 -j ACCEPT
echo - Premier serveur Teamspeak 9987 autorise : [OK]

#Autoriser la license Teamspeak
iptables -A INPUT -p tcp --source accounting.teamspeak.com -j ACCEPT
iptables -A OUTPUT -p tcp –destination accounting.teamspeak.com -j ACCEPT

Autoriser les regles generales du process Teamspeak (optionnel)

iptables -t filter -A INPUT -p udp --dport 2010 -j ACCEPT # ???
iptables -t filter -A OUTPUT -p udp --dport 2010 -j ACCEPT # ???
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –sport 30033 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –sport 10011 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 41144 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 41144 -j ACCEPT

Un petit problème de traduction. Mais une fois que tu auras pigé le truc, le reste ira tout seul. Et si j’avais tout corrigé, tu n’aurais pas eu loisir de comprendre.

Bon courage !


AnonymousCoward

Hello !

Merci pour tes remarques ça fonctionne super bien maintenant. :023

Donc si je ne me trompe pas la dernière ligne que tu as commenté::
“iptables -t filter -A INPUT -p tcp –sport 41144 -j ACCEPT” devrait être: iptables -t filter -A OUTPUT -p tcp –sport 41144 -j ACCEPT, ou iptables -t filter -A INPUT -p tcp –dport 41144 -j ACCEPT

Concernant les “# ???”, je pensais autoriser le port à défaut de pouvoir permettre le nom de domaine accounting.teamspeak.com

Je file donc corriger l’ensemble de mes règles car aucune en OUTPUT n’est correctement codée … :blush: (on se demande d’ailleurs comment certains services fonctionnaient) !

Merci !!

Tout à fait ! Une coquille de ma part que je vais m’empresser d’éditer.

Sinon, pour éviter de devoir ajouter systématiquement en sortie une règle correspondante à celle en entrée, tu peux regarder à utiliser une règle du genre de iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT vers le début de tes scripts.
Avec ce genre de règle, les paquets appartenant à une connexion déjà établie sont autorisés et tu n’a plus qu’à avoir une règle qui autorise le tout premier paquet de la connexion.


AnonymousCoward

C’est ce qu’il aurait fallu indiquer de faire dès le début, plutôt que de l’orienter vers le filtrage basé sur le port source. Ce n’est pas seulement plus pratique, c’est surtout plus sûr. Par exemple, une règle comme celle-ci :

autorise certes les paquets de réponse mais également n’importe quel paquet émis avec ce port source (qui est défini arbitrairement par l’émetteur du paquet). A proscrire.

Quant à ce genre de règle :

je trouve que c’est accorder une bien grande confiance à cette machine que de lui accorder ainsi l’accès sans restriction à ton serveur. A proscrire aussi.

Si un service écoute déjà sur le port, un client ne peut pas s’en servir comme port source.

Exemple:

user@Machine:~$ curl -4 --local-port 9418 'http://icanhazip.com/' curl: (45) bind failed with errno 98: Adresse déjà utilisée
Tu penses que c’est si périlleux que cela ?


AnonymousCoward

Peut on dire que toutes mes règles comportant iptables -t filter -A OUTPUT -p tcp --sport xxxx -j ACCEPT peuvent être remplacées par cette seule ligne iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT en début de script ?

ça ne fait pas doublon avec :
# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions etablies : [OK]

Pour iptables -A INPUT -p tcp --source accounting.teamspeak.com -j ACCEPT j’ai tenté avec iptables -A INPUT -i tun0 -p tcp --dport 2008 --accounting.teamspeak.com -j ACCEPT mais sans bons résultats …
Il est vrai que si je pouvais seulement autoriser le port tcp 2008 du domaine accounting.teamspeak.com ce serait nettement mieux.

J’ai oublié de préciser mais la policy est sur DROP, vous l’avez deviné :smiley:

Merci pour vos remarques constructives :023 :023

Oui, c’est le cas

[quote]ça ne fait pas doublon avec :
# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions etablies : [OK]
[/quote]
Oui, cela fait doublon. -m conntrack --ctstate ESTABLISHED,RELATED est juste la version moderne de -m state --state ESTABLISHED,RELATED. La syntaxe a évolué mais c’est strictement la même chose.

Ce serait assez pratique si, à la prochaine question, le script du firewall était fourni dans son intégralité.


AnonymousCoward

Oui je n osais pas le demander, et ca me permettrait d avoir mes règles à jour. Je poste ça cet après-midi.

Merci :slightly_smiling:

Non, en sortie le risque est limité. C’est surtout dans l’autre direction que c’est risqué, quand on accepte des paquets entrants en se basant sur le port source pour autoriser les réponses aux paquets sortants. Cela permet à un attaquant d’accéder à n’importe quel port local de la machine, même bloqué par iptables, pourvu qu’il utilise un port source autorisé.

Voici mes règles pour correction, si on peut éviter la souplesse, doublon etc … alors allons-y !! :wink:
J’héberge un service, sslh via 443 (ssh), OpenVPN, Teamspeak, et ssh.
La carte réseau gérant le WAN est venet0.

#!/bin/sh
# Vidage des tables et des regles personnelles
iptables -t filter -F
iptables -t filter -X
echo - Vidage des regles et des tables : [OK]

# Interdire toutes connexions entrantes et sortantes
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo - Interdire toutes les connexions entrantes et sortantes : [OK]

# Ne pas casser les connexions etablies
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions etablies : [OK]
# Ne pas casser les connexions etablies (ancienne norme)
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#echo - Ne pas casser les connexions etablies : [OK]

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
echo - Loopback autorise: [OK]

# Autoriser le monitoring OVH
iptables -A INPUT -p icmp --source ping.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.p19.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.rbx.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.rbx2.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.sbg.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.bhs.ovh.net -j ACCEPT
echo - Ping du monitoring OVH:[OK]

# Autoriser HTTP, HTTPS et SSH (via 443)
iptables -t filter -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT
echo - HTTP et HTTPS autorise :[OK]

# Autoriser Webmin sur le port 10000
iptables -A INPUT -i venet0 -p tcp --dport 10000 -j ACCEPT
echo - Webmin sur port 1000 autorise :[OK]

#Autoriser OpenVPN (VPS 64b OVH)
# Regles obligatoires pour ouvrir deverrouiller acces:
iptables -t filter -A INPUT -p udp --dport 25565 -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
# Regles de translation d’adresses
iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT
iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.2/24 -o venet0 -j MASQUERADE
echo - OpenVPN sur port 25565 + traffic autorise :[OK]

# Autoriser serveur Teamspeak numero 1(9987)
iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --sport 9987 -j ACCEPT
echo - Premier serveur Teamspeak (9987) autorise : [OK]

# Autoriser serveur Teamspeak numero 2 (9988)
#iptables -t filter -A INPUT -p udp --dport 9988 -j ACCEPT
#iptables -t filter -A OUTPUT -p udp --sport 9988 -j ACCEPT
#echo - Deuxieme serveur Teamspeak (9988) autorise : [OK]

#Autoriser la license Teamspeak
iptables -A INPUT -p tcp --source accounting.teamspeak.com -j ACCEPT
iptables -A OUTPUT -p tcp --destination accounting.teamspeak.com -j ACCEPT
iptables -A INPUT -p udp --source weblist.teamspeak.com -j ACCEPT
iptables -A OUTPUT -p udp --destination weblist.teamspeak.com -j ACCEPT
echo - License TS [OK] (check logs)

# Autoriser les regles generales du process Teamspeak (optionnel)
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 30033 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 10011 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 41144 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 41144 -j ACCEPT
echo - Regle generales pour TS autorisees

Merci pour vos retours :023

C’est plein de règles redondantes ou inutilement permissives notamment.
Pas le temps de détailler maintenant mais tu peux commencer à trier.

J ai supprimé TOUTES les règles relatives à OUTPUT car: iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT , que je traduis par: si la connexion est initialisée via un INPUT (sur un port autorisé), elle est donc établi, et devient donc autorisée en sortie … :unamused: :unamused:

Ce qui donne:

#!/bin/sh
# Vidage des tables et des regles personnelles
iptables -t filter -F
iptables -t filter -X
echo - Vidage des regles et des tables : [OK]

# Interdire toutes connexions entrantes et sortantes
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo - Interdire toutes les connexions entrantes et sortantes : [OK]

# Ne pas casser les connexions etablies
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions etablies : [OK]

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
echo - Loopback autorise: [OK]

# Autoriser le monitoring OVH
iptables -A INPUT -p icmp --source ping.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.p19.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.rbx.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.rbx2.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.sbg.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --source proxy.bhs.ovh.net -j ACCEPT
echo - Ping du monitoring OVH:[OK]

# Autoriser HTTP, HTTPS et SSH (via 443)
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT
echo - HTTP et HTTPS autorises :[OK]

# Autoriser Webmin sur le port 10000
iptables -A INPUT -i venet0 -p tcp --dport 10000 -j ACCEPT
echo - Webmin sur port 1000 autorise :[OK]

#Autoriser OpenVPN (VPS 64b OVH)
# Regles obligatoires pour ouvrir deverrouiller acces:
iptables -t filter -A INPUT -p udp --dport 25565 -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
# Regles de translation d’adresses
iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT
iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
echo - OpenVPN sur port 25565 + traffic autorise :[OK]

# Autoriser serveur Teamspeak numero 1(9987)
iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
echo - Premier serveur Teamspeak (9987) autorise : [OK]

# Autoriser serveur Teamspeak numero 2 (9988)
#iptables -t filter -A INPUT -p udp --dport 9988 -j ACCEPT
#echo - Deuxieme serveur Teamspeak (9988) autorise : [OK]

#Autoriser la license Teamspeak
iptables -A INPUT -p tcp --source accounting.teamspeak.com -j ACCEPT
iptables -A INPUT -p udp --source weblist.teamspeak.com -j ACCEPT
echo - License TS [OK] (check logs)

# Autoriser les regles generales du process Teamspeak (optionnel)
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 41144 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 41144 -j ACCEPT
echo - Regle generales pour TS autorisees

… ? :115

Merci

On attaque.

[code]# Ne pas casser les connexions etablies
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions etablies : [OK]

Ne pas casser les connexions etablies (ancienne norme)

#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT[/code]
Il manque une règle pour les paquets reçus. La correspondance [mono]conntrack[/mono] a beau être la version moderne (et étendue) de [mono]state[/mono], une règle dans OUTPUT ne remplacera jamais une règle dans INPUT.

# Autoriser le monitoring OVH iptables -A INPUT -p icmp --source ping.ovh.net -j ACCEPT
Qu’est-ce que c’est, ce monitoring OVH ? Si c’est juste des pings entrants, alors il faut accepter seulement le type [mono]echo-request[/mono], pas tout ICMP. Accessoirement je poserais une petite limite sur la taille ([mono]-m length[/mono]) et la fréquence ([mono]-m limit[/mono]) de ces paquets afin de limiter les risques de DoS avec usurpation d’adresse.

Qu’est-ce que ce port 8443 qui n’est mentionné dans aucun commentaire ?

# Autoriser Webmin sur le port 10000 iptables -A INPUT -i venet0 -p tcp --dport 10000 -j ACCEPT
Pourquoi restreindre l’accès à Webmin à l’interface internet ? Quel est le risque à l’autoriser depuis le VPN par exemple ?

[code]iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT

Regles de translation d’adresses

iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT[/code]
Pourquoi [mono]-I[/mono] (insérer au début) au lieu de [mono]-A[/mono] (ajouter à la fin) ?
La dernière règle n’a rien à voir avec de la translation d’adresse (NAT). C’est une règle de filtrage. D’autre part elle fait doublon avec la première règle, moins restrictive.
Surtout, quels types de communications veux-tu autoriser par le VPN ? Là, ces règles autorisent toutes les communications dans les deux sens VPN <-> internet.

iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.0.2/24 -o venet0 -j MASQUERADE
Les deuxième et troisièmes règles font doublon avec la première, moins restrictive.

#Autoriser la license Teamspeak iptables -A INPUT -p tcp --source accounting.teamspeak.com -j ACCEPT iptables -A INPUT -p udp --source weblist.teamspeak.com -j ACCEPT
Qu’est-ce que c’est, cette licence Teamspeak ? Quel(s) type(s) de communication(s) implique-t-elle ? A mon avis ces règles sont beaucoup plus permissives que nécessaire. D’autre part, si j’ai bien compris ton premier message les communications avec ces machines sont des connexions TCP sortantes, pas entrantes.

Une remarque en passant : ces règles utilisent des noms de domaine mais je ne vois aucune règle autorisant l’envoi de requêtes DNS pour les résoudre… (à moins que ça passe par le VPN, ce qui me paraît un peu surprenant)

Ok, je vais éplucher tout ça :shifty:
N’étant pas à l aise du tout avec IPTABLE, un minimum de documentation s’impose. Je posterai demain le résultat.

Merci pour ton retour et remarques :023

Bonjour :smiley:

Pour répondre à tes questions:

  1. La licence Teamspeak a besoin de : INPUT ET OUTPUT de accounting.teamspeak.com:2008 (TCP) & weblist.teamspeak.com:2010 (UDP)
  2. Le VPN n’est pas là pour résoudre les requêtes DNS, juste pour stabiliser ma connexion perso et doit tout laisser passer.
  3. Le port 8443 sert pour SSL … mais je désactive car apparemment non impératif

Les corrections …

Voici donc une nouvelle proposition : :083

#!/bin/sh
# Vidage des tables et des regles personnelles
iptables -t filter -F
iptables -t filter -X
echo - Vidage des regles et des tables : [OK]

# Interdire toutes connexions entrantes et sortantes
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo - Interdire toutes les connexions entrantes et sortantes : [OK]

# Ne pas casser les connexions etablies
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions etablies : [OK]

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
echo - Loopback autorise: [OK]

# Autoriser requetes DNS
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
echo - Requete DNS autorisees :[OK]

# Autoriser HTTP, HTTPS et SSH (via 443)
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 8443 -j Port SSL non impératif ? je désactive …
echo - HTTP et HTTPS autorises :[OK]

# Autoriser Webmin via venet0 & tun0 sur le port 10000
iptables -A INPUT -i venet0 -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -i tun0 -p tcp --dport 10000 -j ACCEPT
echo - Webmin sur port 1000 autorise :[OK]

# Autoriser le monitoring OVH
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source ping.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.p19.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.rbx.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.rbx2.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.sbg.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.bhs.ovh.net -j ACCEPT
echo - Ping du monitoring OVH:[OK]

#Autoriser OpenVPN (VPS 64b OVH)
# Regles obligatoires pour ouvrir deverrouiller acces:
iptables -t filter -A INPUT -p udp --dport 25565 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
# Regles de translation d’adresses
iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
echo - OpenVPN sur port 25565 + traffic autorise :[OK]

# Autoriser serveur Teamspeak numero 1 (9987)
iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
echo - Premier serveur Teamspeak (9987) autorise : [OK]
# Autoriser serveur Teamspeak numero 2 (9988)
#iptables -t filter -A INPUT -p udp --dport 9988 -j ACCEPT
#echo - Deuxieme serveur Teamspeak (9988) autorise : [OK]

#Autoriser la licence Teamspeak
iptables -A OUTPUT -p tcp --source accounting.teamspeak.com --sport 2008 -j ACCEPT
iptables -A OUTPUT -p udp --source weblist.teamspeak.com -j --sport 2010 -j ACCEPT
echo - Licence TS [OK] (check logs)
# Autoriser les regles generales du process Teamspeak (optionnel)
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 41144 -j ACCEPT
iptables -A OUTPUT -p udp --sport 2011:2110 -j ACCEPT Ajout pour matcher avec les règles imposées par Teamspeak (voir post 1, L10)
# iptables -t filter -A INPUT -p tcp --sport 41144 -j ACCEPT je supprime car non nécessaire (voir post 1)
echo - Regle generales pour TS autorisees

… ? :115

Merci

Port 8443 : à ma connaissance ce n’est pas un port standard pour HTTPS, qui est le 443.

Loopback : je n’avais pas remarqué que la règle OUTPUT avait disparu, il faut la remettre. Un paquet émis en loopback doit d’abord sortir avant de rentrer.

Webmin : à moins qu’il y ait une autre interface qui n’a pas été mentionnée jusqu’ici, ce ne serait pas plus simple d’autoriser les connexions par n’importe quelle interface en supprimant l’option -i plutôt que d’ajouter une règle pour chaque interface ?

Teamspeak : j’ai beau les lire et relire dans tous les sens, les spécifications du message initial ne sont pas assez claires pour que je puisse valider tes règles. Notamment on ne sait pas de façon certaine s’il s’agit de ports source ou destination, de connexions entrantes ou sortantes…

Voilà suite à ton dernier post les modifs:

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

Pour le port Webmin en partant du principe qu’il est autorisé sur toutes les interfaces ça donne donc:
iptables -t filter -A INPUT -p tcp --dport 10000 -j ACCEPT
Note à moi même: je pense le laisser actif seulement sur l interface VPN, toujours ça de gagné …

Pour Teamspeak, les informations sont tirées de leur base de connaissance. https://support.teamspeakusa.com/index.php?/Knowledgebase/Article/View/44/16/which-ports-does-the-teamspeak-3-server-use

Donc là c’est bon, à tester … ?

Merci

Cela me semble plus censé que de l’autoriser seulement côté internet.

Je me doute bien, mais c’est un peu léger.

A priori il s’agit de paquets sortants (out), mais s’agit-il du port source ou destination ? Je ne vois pas ce que signifie “first available port in given range”. Premier port disponible pour qui ? Si c’est pour ton serveur, alors il s’agit du port local donc source pour un paquet sortant. Si au moins on savait à quoi sert ce port…

Deux interprétations possibles :

Dans la mesure où le protocole UDP ne définit pas de connexion à proprement parler, toutes les interprétations sont possibles. Là encore si on savait à quoi ça sert…
La phrase suivante

m’incite à penser qu’il s’agit de connexions sortantes vers ces adresses et ports.

Dans le doute, j’autoriserais les paquets en sortie, j’ajouterais des règles LOG à la fin des chaînes INPUT et OUTPUT pour enregistrer les éventuels paquets bloqués depuis et vers ces deux adresses et j’aviserais en fonction du résultat.

Tes conseils sont très judicieux :stuck_out_tongue: … merci !

Je vais donc

J’autorise les paquets (udp) en sortie des ports source 2011 à 2110 (je pars du principe que c’est local donc source comme tu me l as précisé)
iptables -A OUTPUT -p udp --sport 2011:2110 -j ACCEP

J’autorise la machine à se connecter en TCP à accounting.teamspeak.com:2008 (Je serai vite fixé sur cette règle en épluchant les logs de démarrage du service)
iptables -A OUTPUT -p tcp -d accounting.teamspeak.com --dport 2008 -j ACCEPT

2 règles: 1 pour la source 1 pour le destinataire donc: :017
iptables -A OUTPUT -p udp --source weblist.teamspeak.com -j --sport 2010 -j ACCEPT
iptables -A OUTPUT -p udp --source weblist.teamspeak.com -j --dport 2010 -j ACCEPT

Dans le doute, j'autoriserais les paquets en sortie, j'ajouterais des règles LOG à la fin des chaînes INPUT et OUTPUT pour enregistrer les éventuels paquets bloqués depuis et vers ces deux adresses et j'aviserais en fonction du résultat.

Là, je n ai pas les compétences pour mettre cette règle en place. Je “bidouille” à peine et comprends à peine les règles, j aurai besoin d’un bon coup de pouce là.
(Et accessoirement je m’aperçois que mes achats (2 bouquins sur Debian des éditions Eyrolles) ne me servent pas à grand chose quand je souhaite creuser un sujet …

Merci à toi