iptables फॉरवर्ड पोर्ट एरर - उस नाम से कोई चेन / टार्गेट / मैच नहीं


11

मैं अपने Ubuntu 12.04 LTS सर्वर पर iptables को कॉन्फ़िगर करने का प्रयास कर रहा हूं ताकि पोर्ट 443 से 8443 तक आगे हो सके।

लेकिन जब मैं यह कमांड चलाता हूं:

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

मुझे निम्नलिखित त्रुटि मिलती है:

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

मेरा 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 

मुझे क्या याद आ रहा है या गलत कर रहा है?

जवाबों:


18

क्योंकि PREROUTINGचेन NATटेबल की है, टेबल की नहीं FILTER। यदि आप -tविकल्प द्वारा स्पष्ट रूप से किसी तालिका का उल्लेख नहीं करते हैं , तो FILTERमान लिया जाता है।

इसलिए, आपको तालिका प्रकार का उल्लेख करना होगा -t nat:

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

ध्यान दें कि, MANGLEऔर RAWतालिकाओं में भी PREROUTINGश्रृंखला है लेकिन जैसे ही आप बंदरगाहों को पुनर्निर्देशित कर रहे हैं, आप संभवतः NATतालिका की तलाश कर रहे हैं ।


यह अभी भी मुझे वही त्रुटि दे रहा है। क्या यह उत्तर अभी भी मान्य है?
पाईपी

@ िपपी हाँ। मान्य होना चाहिए। शायद आपको विवरण में अपनी समस्या के साथ एक नया प्रश्न पूछना चाहिए।
हेमायल

Upvoting और शायद आप इसी तरह का जवाब दे सकते हैं: askubuntu.com/questions/1140644/…
WinEunuuchs2Unix

3

केवल nat, mangle और कच्चे तालिकाओं के लिए उपलब्ध श्रृंखला।
iptables फ़िल्टर तालिका मान लेता है, इसलिए आपको इनमें से किसी एक को निर्दिष्ट करना होगा, जैसे।iptables -t nat ...


3

जब मैं एक डॉक कमांड चलाता हूं तो मुझे ऐसी ही त्रुटि मिलती है

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).

मैं इसे docker- इंजन को पुनर्स्थापित करके ठीक करने में सक्षम था

apt-get remove docker-engine
apt-get install docker-engine

0

आप स्थापित कर सकते हैं (सर्वर सुरक्षा और फ़ायरवॉल कॉन्फ़िगर करें ) और निम्न सेटिंग्स का उपयोग करें।

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."

नोट: यह कॉन्फिगर आपको बेसिक DDOS अटैक से भी बचाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.