Problème Firewall et steamcmd

Bonjour à toutes et à tous !

Je rencontre un problème depuis hier matin, je souhaite en effet ouvrir un serveur privé sur ma machine à l’aide de steamcmd. J’ai eu des problème d’installation de ce dernier car il me manquait certains paramètres dans ma librairie (64bits vs 32bits) mais c’est normalement résolu.

Quand je cherche à me connecter (en suivant le tutoriel: https://developer.valvesoftware.com/wiki/SteamCMD:fr) j’obtiens un message d’erreur

FAILED with result code 3

J’ai épluché internet en long et en large mais rien n’y fait, je n’y arrive pas… D’où mon topic !
Apparemment ce “code 3” indique que c’est un problème avec mon firewall.

Je l’ai donc modifié directement sur mon fichier situé dans etc/init.d/firewall.sh par un nano et reboot du serveur après chaque modification pour qu’elle soit prise en compte… Et rien n’y fait.

Je me permet de vous copier coller le contenu du fichier “firewall.sh” , la partie steam est tout en bas

#!/bin/sh

# Vider les tables actuelles
iptables -t filter -F

# Vider les règles personnelles
iptables -t filter -X

# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

# ---

# 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

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

# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT


# SSH In
iptables -t filter -A INPUT -p tcp --dport 2024 -j ACCEPT

# SSH Out
iptables -t filter -A OUTPUT -p tcp --dport 2024 -j ACCEPT

# DNS In/Out
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

# NTP Out
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

# HTTP + HTTPS Out
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT

# HTTP + HTTPS In
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

# TeamSpeak3
iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT

iptables -t filter -A OUTPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 30033 -j ACCEPT

# Mail SMTP:25
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

# Mail POP3:110
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT


# Mail IMAP:143
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT

# Mail POP3S:995
iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

# FTP Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

# FTP In
modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Accepter les connexions Steam entrantes
iptables -A INPUT -p udp --dport 27000:27030 -j ACCEPT
iptables -A INPUT -p udp --dport 4380 -j ACCEPT
# Accepter les connexions Steam sortantes
iptables -A OUTPUT -p udp --dport 27000:27030 -j ACCEPT
iptables -A OUTPUT -p udp --dport 4380 -j ACCEPT

concernant les deux dernières lignes, j’étais tombé sur ce topic:

et sur:
https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711

donc j’ai essayé de les implémenter mais rien…

Bref je sèche complètement, je suis peut être passé à côté d’un truc évident et j’aurais vraiment besoin d’aide…

Un immense merci d’avance

Alors dans le lien du tuto que tu donne, Valve propose ces règles là :

iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT

Sinon tu peux donner le retour de cette commande : sudo iptable -s

Alors j’ai essayé justement de mettre la règle de Valve avant et rien, ça ne marche toujours pas

Alors la commande sudo n’est pas fonctionnel chez moi

cependant j’ai tapé ça qui marche:

root@Genesis-Gaming:~# iptables -s
iptables v1.4.14: option "-s" requires an argument

Autant pour moi, donne nous le retour de cette commande : iptables -L

La bonne commande pour lister les règles exhaustivement est iptables-save.
Avant de t’embarquer dans des modifications de règles, as-tu vérifié si l’erreur disparaît lorsque tout le trafic est autorisé ?

Bonsoir et désolé pour le temps de réponse.

Voici le résultat de la commande iptables -L

Chain INPUT (policy DROP)
target     prot opt source               destination
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:2024
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     udp  --  anywhere             anywhere             udp dpt:9987
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:10011
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:30033
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imap2
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3s
ACCEPT     tcp  --  anywhere             anywhere             tcp dpts:ftp-data:ftp
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             udp dpt:25565
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:25565
ACCEPT     udp  --  anywhere             anywhere             udp spts:27000:27030 dpts:1025:65355
ACCEPT     udp  --  anywhere             anywhere             udp spt:4380 dpts:1025:65355

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:2024
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:ntp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     udp  --  anywhere             anywhere             udp dpt:9987
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:10011
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:30033
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imap2
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3s
ACCEPT     tcp  --  anywhere             anywhere             tcp dpts:ftp-data:ftp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:25565
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:25565

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Pour te répondre Pascal, non je n’ai pas vérifié si l’erreur disparaissait, comment faire pour autoriser l’ensemble du trafic sans supprimer le fichier?

Comme il n’y a pas que des règles ACCEPT il suffit de changer la politique par défaut des chaînes à ACCEPT en exécutant manuellement les commandes suivantes :

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Tu peux les exécuter une à une et retester à chaque fois, ce qui te permettra de déterminer quelle(s) chaîne(s) bloque(nt).

Pour remettre les politiques par défaut à DROP, il suffit d’exécuter

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

Si j’ai bien compris, en mettant
iptables -t filter -P XXX DROP
je remettrais d’origine la configuration de mon fichier Firewall.sh?

Ou le fait de passer chaque ligne en ACCEPT va par définition me le supprimer? (en gros, je dois faire un backup ou ce n’est pas nécessaire?)

Non ce n’est pas nécessaire, tu peux juste lancer ces commandes :wink:
Pour revenir à la configuration d’origine, tu peux relancer ton script ou lancer les trois autres commandes :wink:

Bonsoir et un grand désolé pour le temps de réponse faramineux… !

Donc j’ai bien testé les 3 commandes et ça marche !

Donc il va falloir que je les tests tour à tour chaque commande pour voir à quel moment ça ne marche plus mais en attendant j’ai pu tout télécharger pour la mise en place du serveur.

Dans le cas où je ne trouve pas, le fais de laisser tout ouvert est vraiment risqué je suppose?

Ce qui m’embête c’est que j’ai vraiment tout bien fais et que du coup j’ai quelque chose qui bloque dans mon firewall… mais quoi…? :frowning: