LXC, পোর্ট ফরওয়ার্ডিং এবং iptables


8

আমার 10.0.3.2একটি হোস্টে চলছে একটি এলএক্সসি ধারক ( )। বন্দরের ধারকের ভিতরে একটি পরিষেবা চলছে 7000

হোস্ট ( 10.0.3.1, lxcbr0) থেকে, আমি পরিষেবাটিতে পৌঁছাতে পারি:

$ telnet 10.0.3.2 7000
Trying 10.0.3.2...
Connected to 10.0.3.2.
Escape character is '^]'.

আমি ধারকটির ভিতরে চলমান পরিষেবাটি বহির্বিশ্বে প্রবেশযোগ্য করে তুলতে চাই। অতএব, আমি 7002হোস্টের পোর্টটি 7000পাত্রে পোর্টে ফরোয়ার্ড করতে চাই :

iptables -t nat -A PREROUTING -p tcp --dport 7002 -j DNAT --to 10.0.3.2:7000

( iptables -t nat -L) এর ফলাফল যা :

DNAT   tcp  --  anywhere     anywhere     tcp dpt:afs3-prserver to:10.0.3.2:7000

তবুও, আমি ফরওয়ার্ড করা পোর্টটি ব্যবহার করে হোস্টের কাছ থেকে পরিষেবাটি অ্যাক্সেস করতে পারি না:

$ telnet 10.0.3.1 7002
Trying 10.0.3.1...
telnet: Unable to connect to remote host: Connection refused

আমার মনে হচ্ছে আমি এখানে বোকা কিছু মিস করছি। আমার কোন জিনিসগুলি পরীক্ষা করা উচিত? এই পরিস্থিতিতে ডিবাগ করার জন্য একটি ভাল কৌশল কী?

সম্পূর্ণতার জন্য, এখানে কীভাবে iptablesহোস্ট সেট করা আছে:

iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o lxcbr0 -j MASQUERADE

iptables -t nat -A PREROUTING -p tcp --dport 7002 -j DNAT --to 10.0.3.2:7000

আপনি INPUTচেইন পরীক্ষা করেছেন ? পলিসি হয়তো REJECTআছে।
মাইকেল হার্টল

নীতিACCEPT
রবার্তো Aloi

দুঃখিত, আমি FORWARDচেইনটি বোঝাতে চাইছি এছাড়াও পরীক্ষা যদি আইপি ফরওয়ার্ডিং সক্ষম আছে: cat /proc/sys/net/ipv4/ip_forward
মাইকেল হার্টল

ip_forwardসেট করা হয়েছে1
রবার্তো অ্যালোই

FORWARDনীতি হয়ACCEPT
রবার্তো Aloi

উত্তর:


3

আপনার ডিফল্ট নীতিটি DROP হওয়ায় আপনি 10.0.3.1 এ 7002 বন্দর অবরুদ্ধ করেছেন বলে মনে হচ্ছে

এটি INPUT বিধিগুলিতে যুক্ত করার চেষ্টা করুন:

iptables -A INPUT -p tcp --dport 7002 -j ACCEPT

1

আমি একই সমস্যা মধ্যে দৌড়ে। আমি এখনও সমাধান খুঁজে পাই নি, তবে অনুসরণ করে আমি কিছু পর্যবেক্ষণগুলি নোট করি।

আমার কাছে একটি হোস্ট ${host}মেশিন রয়েছে (উবুন্টু 12.04) এবং এটি এলএক্সসির মাধ্যমে একটি অতিথি মেশিন চালায়। অতিথি চালু IP 10.0.3.248এবং গেটওয়ে হয় 10.0.3.1। আমি অতিথিতে একটি ওয়েব সার্ভার চালনা করি এবং ট্র্যাফিক থেকে অন্যদিকে পোর্ট ফরওয়ার্ড ${host}:8888করতে চাই 10.0.3.248:80। সম্পর্কিত iptables এন্ট্রি নিম্নলিখিত:

-A PREROUTING -p tcp --dport 8888 -j DNAT --to-destination 10.0.3.248:80
-A POSTROUTING -j MASQUERADE

বর্তমান কনফিগারেশন সহ, আমি অন্য শারীরিক মেশিন থেকে 10.0.3.248:80 এ সফলভাবে ওয়েব সার্ভারটি দেখতে পারি। যাইহোক, আমি যখন থেকে 10.0.3.248:80 দেখার চেষ্টা করি তখন এটি ব্যর্থ হয় ${host}। হতে পারে আপনি অন্য মেশিন থেকে এলএক্সসির ভিতরে সেই পরিষেবাটি দেখার চেষ্টা করতে পারেন।

আমার বোঝাটি হ'ল, যখন আমি এখান থেকে দেখি ${host}, প্যাকেটটি লুপব্যাক ইন্টারফেসের মধ্য দিয়ে যায় এবং সরাসরি ইনপুট চেইনে প্রবেশ করে। যদিও আমি ইনপুট-এ সমস্ত কিছু অনুমতি দিই, তেমন কোনও পরিষেবা শুনছে না ${host}:8888। ওয়্যারশার্ক থেকে, আমি দেখতে পাচ্ছি যে কোনও আরএসটি পাঠানো হয়েছে। আমি যখন অন্য কোনও ফিজিক্যাল মেশিন থেকে দেখি, তখন প্যাকেটটি চূড়ান্তভাবে চেইনে যায় এবং প্রত্যাশা অনুযায়ী DNAT-ed হয়।

সম্পর্কিত একটি পোস্ট:


0

আমার একটি ফরওয়ার্ড নিয়ম যুক্ত করা দরকার

iptables -A FORWARD -p tcp -d 10.0.3.2 --dport 7002 -j ACCEPT

0

ঠিক আছে, 2018 সাল থেকে আমার 5 সেন্ট:

আমি এলএক্সসি ইনস্টল করেছি এবং এর চারপাশে খেলি। আমার ধারক আইপি হয়10.0.0.10

আমি এই নিয়মটি যুক্ত করেছি:

iptables -t nat -A PREROUTING -p tcp -i ens192 --dport 81 -j DNAT --to-destination 10.0.0.10:22

এটি কাজ করে না। তখন আমি বুঝতে পেরেছিলাম যে এমনকি ফরওয়ার্ড নীতিই এসিসিপিটি, এমন একটি নিয়ম রয়েছে যা সমস্ত ফরোয়ার্ডকে অবরুদ্ধ করে।

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      virbr0  0.0.0.0/0            10.0.0.0/24          ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  virbr0 *       10.0.0.0/24          0.0.0.0/0           
    0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0           
    5   268 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

সুতরাং আমাকে শীর্ষে রুল ইনজেকশন করতে হয়েছিল:

iptables -I FORWARD -p tcp -d 10.0.0.10 --dport 22 -j ACCEPT

এখন এগিয়ে host:81-> 10.0.0.10:22কাজ।


-2

আপনার ধারকটি হোস্ট ব্রিজ ইন্টারফেসের মাধ্যমে ল্যান থেকে অ্যাক্সেসযোগ্য এবং এইভাবে হোস্টের মতো একই সাবনেটের সাথে সংযুক্ত।

আপনার রাউটারটি আপনার পাত্রে এই পোর্টগুলি ফরোয়ার্ড করা দরকার।

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