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.