Je veux bloquer l'accès au port 6379 sur mon serveur, mais je veux toujours me connecter en interne. L'application redis-server s'exécute sur ce port et je souhaite m'y connecter uniquement localement (127.0.0.1). Comment puis-je faire ceci?
Je veux bloquer l'accès au port 6379 sur mon serveur, mais je veux toujours me connecter en interne. L'application redis-server s'exécute sur ce port et je souhaite m'y connecter uniquement localement (127.0.0.1). Comment puis-je faire ceci?
Réponses:
Pour ce faire, vous devez vous assurer que vos règles IPTables sont correctement configurées. Ubuntu laisse généralement leurs serveurs grands ouverts par défaut, c'est pourquoi je ne recommande toujours pas leur utilisation en tant que serveurs, sauf si vous savez déjà très bien comment le faire correctement.
J'imagine que ton iptables -L -nv
look ressemble à ça, oui?
# iptables -L -nv
Chain INPUT (policy ACCEPT 4M packets, 9M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 8M packets, 4M bytes)
pkts bytes target prot opt in out source destination
C'est vide et c'est grand ouvert. Le Ubuntu IPTables HowTo va probablement vous aider un peu. ( https://help.ubuntu.com/community/IptablesHowTo )
Je recommande quelque chose comme ça, qui autorise SSH sur n'importe quelle interface et tcp 6379 n'importe quelle interface, mais celle que vous ne voulez pas:
*filter
:INPUT DROP [92:16679]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [203:36556]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 6379 -j ACCEPT
-A INPUT -i lo -p udp -m udp --dport 6379 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
Vous devez ensuite enregistrer ce fichier dans /etc/iptables.rules.
De toute évidence, tous les autres ports que vous souhaitez spécifiquement ouvrir doivent être ajoutés.
Remarque: J'ai ajouté les 6379 lignes spécifiques pour plus de clarté. L'ACCEPTATION du bas juste avant le COMMIT permettrait en fait cela car toutes les connexions de bouclage doivent être autorisées sur un système Linux pour un fonctionnement correct.
Vous voudrez également mettre les règles dans votre fichier / etc / network / interfaces, pour vous assurer qu'elles sont ajoutées au démarrage de l'interface et pas plus tard dans le processus de démarrage. L'ajout de quelque chose comme ceci est recommandé:
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
Edit: Pour charger cette configuration initialement, vous devez exécuter la commande iptables-restore référencée ci-dessus:
iptables-restore < /etc/iptables.rules
Eh bien, je suggérerais d'utiliser le "pare-feu simple" (ufw), qui est également recommandé par canonical. La lecture et l'écriture d'iptables est trop compliquée pour des tâches de verrouillage de port occasionnelles.
Quelque chose comme
iptables -A INPUT -s 0.0.0.0 -i eth0 --protocol tcp --dport 6379 -j DROP
Devrait marcher.