আইপটিবলস কেন অনুমোদিত প্যাকেটের দ্বিতীয় এবং পরবর্তী টুকরোটি প্রত্যাখ্যান করছে?


9

আমার দুটি হোস্ট রয়েছে যা একে অপরের সাথে আইপিসেক সংযোগ স্থাপনের চেষ্টা করছে। এর জন্য তাদের ইউডিপি বন্দরগুলিতে 500 এবং 4500 যোগাযোগ করতে হবে, সুতরাং আমি এগুলি উভয় প্রান্তে ফায়ারওয়ালে খুললাম (প্রাসঙ্গিক অংশে দেখানো হয়েছে):

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m udp -p udp --dport 500 -j ACCEPT
-A INPUT -m udp -p udp --dport 4500 -j ACCEPT
#.....
-A INPUT -j REJECT --reject-with icmp6-port-unreachable

তবে কী এক্সচেঞ্জ কখনই সফল হয় না। প্রতিটি পক্ষই ইউডিপি প্যাকেটগুলিকে বারবার পুনঃপ্রেরণ করার চেষ্টা চালিয়ে যায়, অবশেষে হাল ছাড়ার আগ পর্যন্ত কোনও প্রতিক্রিয়া শুনেনি।

আমি tcpdumpএক প্রান্তে শুরু করে দেখেছি যে ইউডিপি প্যাকেটটি খণ্ডিত হচ্ছে এবং দ্বিতীয় আইসিএমটি আসার পরে কোনও আইসিএমপি পোর্ট অপ্রাপ্যযোগ্য ফিরে আসছিল।

এই জাতীয় ব্যর্থ বিনিময়ের উদাহরণ (আপনার সুরক্ষার জন্য স্যানিটাইজড):

04:00:43.311572 IP6 (hlim 51, next-header Fragment (44) payload length: 1240) 2001:db8::be6b:d879 > 2001:db8:f:608::2: frag (0x5efa507c:0|1232) ipsec-nat-t > ipsec-nat-t: NONESP-encap: isakmp 2.0 msgid 00000001 cookie 55fa7f39522011ef->f8259707aad5f995: child_sa  ikev2_auth[I]: [|v2e] (len mismatch: isakmp 1596/ip 1220)
04:00:43.311597 IP6 (hlim 51, next-header Fragment (44) payload length: 384) 2001:db8::be6b:d879 > 2001:db8:f:608::2: frag (0x5efa507c:1232|376)
04:00:43.311722 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 432) 2001:db8:f:608::2 > 2001:db8::be6b:d879: [icmp6 sum ok] ICMP6, destination unreachable, length 432, unreachable port[|icmp6]

ফায়ারওয়াল এই প্যাকেট সম্পর্কিত নিম্নলিখিত লগ ইন:

Aug 26 04:00:43 grummle kernel: iptables: REJECT IN=eth0 OUT= MAC=############### SRC=2001:0db8:0000:0000:0000:0000:be6b:d879 DST=2001:0db8:000f:0608:0000:0000:0000:0002 LEN=424 TC=0 HOPLIMIT=51 FLOWLBL=0 OPT ( FRAG:1232 ID:5efa507c ) PROTO=UDP

আমি এই ছাপে ছিলাম যে লিনাক্স প্যাকেট ফিল্টারে যাওয়ার আগে টুকরোগুলি স্বয়ংক্রিয়ভাবে পুনরায় সংযুক্ত হয়ে যায়। তাহলে কেন এই খণ্ডগুলি পুনরায় সংযুক্ত করা হচ্ছে না এবং এরপরে দ্বিতীয় খণ্ডটি পরবর্তীকালে প্রত্যাখ্যাত হবে?


পার্শ্ব নোট হিসাবে, আইএমই iptables -A INPUT -p esp -j ACCEPT
আপনাকেও

@ fukawi2 হ্যাঁ, তবে এটি এই প্রশ্নের সাথে প্রাসঙ্গিক নয়।
মাইকেল হ্যাম্পটন ২

উত্তর:


14

নেটফিল্টার কোডটি প্যাকেট ফিল্টারিংয়ের আগে কেবল টুকরোগুলি পুনরায় সংশ্লেষ করে যদি আপনার ফায়ারওয়াল নিয়ম কানেকশন ট্র্যাকিং ব্যবহার করে (যেমন ফায়ারওয়াল নিয়ম রাষ্ট্রীয় এবং ব্যবহার -m conntrackবা অবমানিত -m state) বা NAT ব্যবহার করে। অন্যথায় সমস্ত খণ্ডগুলি পৃথকভাবে প্রক্রিয়াজাত করা হয় এবং আপনি এটির মতো সমস্যা পান।

এটি সমস্যার সমাধান সহজ এবং সুস্পষ্ট করে তোলে (যাইহোক, পূর্ববর্তী ক্ষেত্রে)। প্রশ্নযুক্ত ফায়ারওয়াল বিধিগুলিতে কেবল সংযোগ ট্র্যাকিং যুক্ত করুন।

-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m conntrack --ctstate NEW -m udp -p udp --dport 500 -j ACCEPT
-A INPUT -m conntrack --ctstate NEW -m udp -p udp --dport 4500 -j ACCEPT

বা পুরানো লিনাক্স সিস্টেমের জন্য (যেমন RHEL 5 এবং তার আগের):

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 500 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 4500 -j ACCEPT
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.