AWS VPC + IPtables + NAT: পোর্ট ফরওয়ার্ডিং কাজ করছে না


10

গতকাল, আমি এখানে একটি প্রশ্ন পোস্ট করেছি তবে আমি মনে করি আমার কথায় যথেষ্ট পরিষ্কার ছিল না। বিটিডাব্লু, এই প্রশ্নটি সদৃশ নয়।

আমার নীচের মতো AWS VPC সেটআপ আছে।

এখানে চিত্র বর্ণনা লিখুন

লক্ষ্য / সমস্যা : এসএসএইচ ইন্টারনেট থেকে সার্ভার এ। এবং এটি কাজ করছে না।

সার্ভার এ প্রাইভেট সাবনেটে আছে এবং তাই আমি আমার নেট উদাহরণে আইপ্যাব্যাটেলস নাটিং সক্ষম করতে চাই যাতে আমি সরাসরি ইন্টারনেট থেকে সেরার এ-তে এসএসএস করতে পারি

আমি এই এবং এই অনুসরণ করছি

আমি NAT উদাহরণে কমান্ডের নীচে দৌড়েছি:

NAT# iptables -t nat -A PREROUTING  -p tcp --dport 2222 -j DNAT --to-destination 10.0.1.243:22

আইপি ফরওয়ার্ডিং NAT উদাহরণে সক্ষম করা হয়েছে:

NAT# sysctl  -p
net.ipv4.ip_forward = 1

ম্যাসকোরেড NAT সংস্করণে চলছে:

NAT# iptables -t nat -vnL POSTROUTING
Chain POSTROUTING (policy ACCEPT 6 packets, 312 bytes)
 pkts bytes target     prot opt in     out     source               destination
  199 16466 MASQUERADE  all  --  *      eth0    10.0.0.0/16          0.0.0.0/0

এই পরীক্ষার ক্ষেত্রে প্রয়োজনীয় অ্যাক্সেসের অনুমতি দেওয়ার জন্য AWS সুরক্ষা গোষ্ঠীগুলি সূক্ষ্মভাবে কনফিগার করা হয়েছে।

সমস্যা সমাধান:

আমি নেট থেকে সার্ভার এ পোর্ট 22 এ টেলনেট করতে পারি So তাই অ্যাক্সেস ভাল।

আমি যখন telnet 54.213.116.251 2222আমার ল্যাপটপে চালাই , আমি নীচে টিসিপিডম্পে প্রবেশের নীচে দেখতে পাচ্ছি:

NAT# tcpdump -n -i eth0 dst 10.0.1.243 and port 22
09:59:13.738316 IP xxx.xxx.xxx.xxx.51709 > 10.0.1.243.ssh: Flags [S], seq 1868541786, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
09:59:16.737009 IP xxx.xxx.xxx.xxx.51709 > 10.0.1.243.ssh: Flags [S], seq 1868541786, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
09:59:22.775567 IP xxx.xxx.xxx.xxx.51709 > 10.0.1.243.ssh: Flags [S], seq 1868541786, win 8192, options [mss 1460,nop,nop,sackOK], length 0

সুতরাং এর অর্থ iptables প্যাকেটগুলিতে রাউটিং করছে 10.0.1.243। (বিটিডাব্লু, xxx.xxx.xxx.xxxআমার ল্যাপটপের সর্বজনীন আইপি ঠিকানা)

তবে আমি যখন সার্ভার এ-তে টিসিপিডম্প চালনা করি, তখন 10.0.0.54NAT এর অভ্যন্তরীণ / প্রাইভেট আইপি অ্যাড্রেস থেকে কিছু আসে না আমি দেখতে পাই না ( এবং আমি মনে করি এটিই সমস্যা ):

Server A# tcpdump  -n src 10.0.0.54
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 

তবে আমি যদি NAT উদাহরণ থেকে সার্ভার এ-তে টেলনেট করি, আমি সার্ভার এ-তে tcpdump এ ভাল জিনিস দেখতে পাচ্ছি ( এর অর্থ, আমার সামগ্রিক PREROUTINGবিধিটি প্রত্যাশার মতো কাজ করছে না ):

Server A# tcpdump  -n src 10.0.0.54
05:01:47.500080 IP 10.0.0.54.44627 > 10.0.1.243.ssh: Flags [S], seq 2862522431, win 14600, options [mss 1460,sackOK,TS val 3013083 ecr 0,nop,wscale 7], length 0
05:01:47.501601 IP 10.0.0.54.44627 > 10.0.1.243.ssh: Flags [.], ack 760676524, win 115, options [nop,nop,TS val 3013083 ecr 12074896], length 0
05:01:47.535720 IP 10.0.0.54.44627 > 10.0.1.243.ssh: Flags [.], ack 22, win 115, options [nop,nop,TS val 3013092 ecr 12074928], length 0

উপসংহার:

NAT এ tcpdump আউটপুট থেকে, মনে হচ্ছে Iptables আমার প্যাকেটগুলি সূক্ষ্মভাবে ফরওয়ার্ড করছে।

সার্ভার এ-তে টিসিপি ডাম্প থেকে আমার NAT থেকে সার্ভার এ-তে ভাল সংযোগ রয়েছে have

তবে শেষ থেকে শেষ পর্যন্ত, আমি আমার ল্যাপটপ থেকে সার্ভার এ এর ​​সাথে সংযোগ করতে সক্ষম নই।

( BTW, আমি, SSH টানেল এবং অন্যান্য ভাল জিনিস জানি। কিন্তু আমি শুধুমাত্র iptables এই আমাকে সাহায্য করতে চাই। )


2
আপনি আপনার NAT উদাহরণে উত্স / গন্তব্য চেকিং অক্ষম করেছেন?
দুশান বাজিক

এর মানে কী? কিভাবে তা যাচাই করবেন? আমি পুরো Iptables ম্যান পৃষ্ঠাটি সন্ধান করেছি কিন্তু উত্স / গন্তব্য চেকিং সম্পর্কে কিছুই বলে না (যদি না আমি কিছু স্পষ্ট
করেই

আপনাকে এডাব্লুএস ওয়েব কনসোল (বা সিএলআই) এ করতে হবে। docs.aws.amazon.com/AmamaonVPC/latest/UserGuide/…
দুসান বাজিক

ধন্যবাদ। আমি দেখতে পাচ্ছি যে এটি ইতিমধ্যে DisabledNAT উদাহরণের জন্য।
স্লেয়েডব্লিউসিফার

উত্তর:


8

অবশেষে, আমি এটি ক্র্যাক !!!!

NAT উদাহরণে, আমাকে কমান্ডের নীচে পরিবর্তন করতে হয়েছিল:

থেকে:

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/16 -j MASQUERADE

প্রতি:

iptables -t nat -A POSTROUTING -j MASQUERADE

এবং এটা কাজ করে!!!!

সুতরাং, আমি শীঘ্রই সার্ভারফল্টে একটি নতুন প্রশ্ন তৈরি করব যা জিজ্ঞাসা করছে উপরোক্ত দুটি কমান্ড ব্যবহার করে কী কী সুবিধা এবং অসুবিধা রয়েছে।


এক মিলিয়ন লোককে ধন্যবাদ একই সমস্যা ছিল, একই .... প্রতি পদক্ষেপটি ছিল ... কিন্তু এই "-ও এথ0" সেখানেও ছিল। এটি মুছে ফেলা, মোহন মত কাজ। মিলিয়নে ধন্যবাদ
নেভেন

এটি কাজ করার কারণটি হ'ল "-s 10.0.0.0/16" শুধুমাত্র সোর্স আইপি ১০.১০xxx এর সাথে প্যাকেটগুলি অনুবাদ করতে বলেছে আমি অনুমান করছি যে আপনার হোম ল্যাপটপটি আপনার হোম নেটওয়ার্কে ছিল এবং কোনও বাহ্যিক আইপি থেকে আসছিল তাই NAT আপনার ল্যাপটপের অনুরোধগুলি উপেক্ষা করছে। অন্যেরা लिनথ কমান্ড লাইনে "ip r" চালাতে চাইতে পারে এটিথের সত্যই তাদের ইথারনেট ডিভাইসের নাম কিনা তা দেখতে to যদি তা না হয় তবে আপনার এথ ডিভাইসের নাম অনুসারে যেকোন কিছুতে এটি পরিবর্তন করুন (উদাহরণস্বরূপ, ১৯১২ বা যা কিছু)।
রায়ান শিলিংটন

ওহ, এছাড়াও, আমি iptables ম্যান পৃষ্ঠাটি পড়ে উপরেরটি শিখেছি। এটি সত্যিই ভাল এবং দীর্ঘ পঠিত নয়। আমি এটি সুপারিশ। কমান্ড প্রম্পট থেকে "ম্যান iptables" চালান এটির সমস্ত গৌরবতে এটি দেখতে।
রায়ান শিলিংটন

7
  • নিশ্চিত হয়ে নিন যে আপনি আপনার নাট বাক্সের জন্য সুরক্ষা গোষ্ঠীর 2222অভ্যন্তরে টিসিপি পোর্টের অনুমতি দিচ্ছেন0.0.0.0/0
  • আপনার ভিপিসি "রুট টেবিল" সঠিকভাবে সেটআপ করেছেন তা নিশ্চিত করুন।
  • কমপক্ষে দুটি পৃথক সারণী (একটি ব্যক্তিগত সাবনেটের সাথে যুক্ত, একটি পাবলিক সাবনেটের সাথে যুক্ত)
  • আপনার 10.0.1.0(বেসরকারী) সাবনেটের একটি রুট টেবিলের নিয়ম থাকা উচিত: গন্তব্য 0.0.0.0/0:, লক্ষ্য: "নেট বাক্স"
  • আপনার 10.0.0.0(সর্বজনীন) সাবনেটের একটি রুট টেবিলের নিয়ম থাকা উচিত: গন্তব্য 0.0.0.0/0:, লক্ষ্য: "ইন্টারনেট গেটওয়ে"
  • আপনার NAT বাক্সের জন্য NIC এ আপনার উত্স / গন্তব্য চেকিং অক্ষম রয়েছে তা নিশ্চিত করুন , এটি ছাড়া কোনও নেটিং মজা নেই। (আমি জানি আপনার কাছে এটি ইতিমধ্যে রয়েছে তবে এটি সত্যিই গুরুত্বপূর্ণ, তাই এটি ভবিষ্যতের কিছু দর্শকের জন্য অন্তর্ভুক্ত)

  • আউটবাউন্ড প্যাকেটগুলি কোথায় যেতে হবে তা নিশ্চিত করুন:

    iptables --table nat --append POSTROUTING --source 10.0.0.0/16 --destination 0.0.0.0/0 --jump MASQUERADE

  • ইনবউড প্যাকেটগুলি 2222সঠিকভাবে পুনরায় তৈরি করতে নিশ্চিত করুন :

    iptables --table nat --append PREROUTING --protocol tcp --dport 2222 --jump DNAT --to-destination 10.0.1.243:22


আপনার প্রতিটি একক পরামর্শ ইতিমধ্যে স্থানে রয়েছে। ধন্যবাদ।
স্লেয়েডব্লিউসিফার

1
সমস্ত পদক্ষেপগুলি দেখানোর জন্য আমি এটি আপডেট করেছি
c4ursल्फ

ধন্যবাদ। আপনার প্রচেষ্টার জন্য +1। আপনার MASQUERADEআদেশ আমার ক্ষেত্রে সহায়ক নয়। হতে পারে আমি কিছু মিস করছি। আমার উত্তরেMASQUERADE আমি উল্লেখ করেছি এমন একমাত্র আদেশই আমাকে উড়াল দেয়
স্লেয়েডব্লিউসিফার

এটি ব্যতীত এগুলি ব্যতীত সমস্ত দুর্দান্ত পরামর্শ কারণ আপনি নিজের প্রথম iptables কমান্ডে কেবলমাত্র 10.XXX রট করছেন। তিনি ইন্টারনেট থেকে যে কোনও কিছু রুট করতে চান। নীচে ওপির নিজস্ব উত্তর দেখুন See
রায়ান শিলিংটন

2

এই পোস্টগুলি আমাকে এডাব্লুএস NAT সম্পর্কে বুঝতে অনেক সহায়তা করেছে। সুতরাং আমি কী iptables -t nat -A POSTROUTING -j MASQUERADEকাজ করে তা তদন্ত শুরু করেছি।

ঠিক আছে, উপরের বিবৃতিটি যে উত্তরটি পেয়েছি তা NAT বাক্সটি NAT '' ল্যাপটপ 'আইপি '10 .0.0.54' তে উত্সাহিত করার সময় একই সময় গন্তব্য NAT থেকে 10.0.1.243 তে সম্পাদন করছে। এই মুহুর্তে প্রাইভেট সাবনেট বক্সটি এসএটিএস অনুরোধটি কেবল নাটি ডিভাইস থেকে আসছে। এই কমান্ডটি প্রকৃতপক্ষে ব্যক্তিগত সাবনেট সার্ভারের সুরক্ষা হ্রাস করছে। নীচে উল্লিখিত হিসাবে ssh এবং NAT বাক্সের মাধ্যমে ব্যক্তিগত সাবনেট অ্যাক্সেস টিউন করতে নীচের কমান্ডটি ব্যবহার করার পরামর্শ দেওয়া হয়;

iptables --table nat --append POSTROUTING --source "INTERNET IP of the Laptop" --destination 10.0.1.243 --jump MASQUERADE

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