iptables ফরওয়ার্ড পোর্ট ত্রুটি - এই নামে কোনও শৃঙ্খলা / লক্ষ্য / ম্যাচ নয়


11

আমি আমার উবুন্টু 12.04 এলটিএস সার্ভারে আইপিটিবলগুলি 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টেবিলটি সন্ধান করছেন।


এটি এখনও আমাকে একই ত্রুটি দিচ্ছে। এই উত্তর এখনও বৈধ?
পাইপি

@ পিপি হ্যাঁ বৈধ হওয়া উচিত। আপনার সমস্যাটি বিশদে বিশদে একটি নতুন প্রশ্ন জিজ্ঞাসা করা উচিত।
হিমাইল

আপভোটিং এবং সম্ভবত আপনি এর অনুরূপ উত্তর দিতে পারেন: Askubuntu.com
দ্য

3

প্রাইরোটিং চেইন কেবল নাট, মঙ্গল এবং কাঁচা টেবিলের জন্য উপলব্ধ।
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).

আমি ডকার-ইঞ্জিন পুনরায় ইনস্টল করে এটি ঠিক করতে সক্ষম হয়েছি

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

দ্রষ্টব্য: এই কনফিগারেশনটি আপনাকে বেসিক ডিডিওএস আক্রমণ থেকে বাধা দেয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.