web-dev-qa-db-fra.com

iptables forward port error - Aucune chaîne / cible / correspondance portant ce nom

J'essaie de configurer iptables sur mon serveur Ubuntu 12.04 LTS pour transférer le port 443 à 8443.

Mais quand je lance cette commande:

Sudo iptables -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

Je reçois l'erreur suivante:

iptables: No chain/target/match by that name.

Ma configuration actuelle d'iptables:

$ Sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
DROP       tcp  --  anywhere             anywhere             tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Qu'est-ce qui me manque ou que je fais mal?

9
Roy Hinkley

Étant donné que la chaîne PREROUTING appartient à la table NAT et non à la table FILTER. Si vous ne mentionnez aucune table explicitement à l'aide de l'option -t, alors FILTER est utilisé.

Donc, vous devez mentionner le type de table avec -t nat:

Sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

Notez que les tables MANGLE_ et RAW ont également une chaîne PREROUTING, mais comme vous redirigez uniquement les ports, vous recherchez probablement la table NAT.

17
heemayl

J'ai une erreur similaire quand j'exécute une commande docker

docker run -d -p 8084:8080 knockdata/zeppelin-highcharts


d9c5d34f500d621585470b0e70b915395fcb6b3437859e0f610dbb58d51faf25
docker: Error response from daemon: driver failed programming external connectivity on endpoint elegant_jang  
(7ca0f5ad689f5443ce7533f66b4a86c34d2dbd9d076bac4812288dd3f6a76698):  
iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8084 -j DNAT --to-destination 172.17.0.2:8080 
! -i docker0: iptables: No chain/target/match by that name.
(exit status 1).

J'ai pu le réparer en réinstallant docker-engine

apt-get remove docker-engine
apt-get install docker-engine
3
Rockie Yang

Chaîne PREROUTING disponible uniquement pour les tables nat, mangle et raw.
iptables suppose une table de filtrage, vous devez donc spécifier l’une d’elles, par exemple. iptables -t nat ...

3
Ven3k

Vous pouvez installer ((Config Server Security & Firewall)) et utiliser les paramètres suivants.

nano /etc/csf/csf.conf
SYNFLOOD = "" => SYNFLOOD = "1"
CONNLIMIT = "" => CONNLIMIT = "80;75,443;75,21;50”
PORTFLOOD = "" => PORTFLOOD = "80;tcp;5;250"
SYSLOG = “0” => SYSLOG = "1"
DOCKER = “0” => DOCKER = "1"

nano /etc/csf/csfpost.sh

#!/bin/sh

echo "[DOCKER] Setting up FW rules."

iptables -N DOCKER

iptables -t nat -N DOCKER

iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER

iptables -t nat -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER

# Masquerade outbound connections from containers
iptables -t nat -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE

# Accept established connections to the docker containers
iptables -t filter -N DOCKER
iptables -t filter -A FORWARD -o docker0 -j DOCKER
iptables -t filter -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j 
ACCEPT

# Allow docker containers to communicate with themselves & outside world
iptables -t filter -A FORWARD -i docker0 ! -o docker0 -j ACCEPT
iptables -t filter -A FORWARD -i docker0 -o docker0 -j ACCEPT

echo "[DOCKER] Done."

Remarque: Cette configuration vous empêche également des attaques DDOS de base.

0
Akinjiola Toni