আমার একটি সার্ভারে মোটামুটি সহজ iptables ফায়ারওয়াল রয়েছে যা মাইএসকিউএল পরিষেবাদি সরবরাহ করে, তবে আইপটিবলগুলি মনে হয় আমাকে খুব বেমানান ফলাফল দিচ্ছে।
স্ক্রিপ্টে ডিফল্ট নীতিটি নিম্নরূপ:
iptables -P INPUT DROP
এরপরে আমি নিম্নলিখিত বিধি দ্বারা মাইএসকিউএলটিকে সর্বজনীন করতে পারি:
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
এই নিয়মটি যথাযথভাবে রেখে, আমি কোনও সমস্যা ছাড়াই সার্ভারের যে কোনও গন্তব্য আইপি থেকে সোর্স আইপি থেকে মাইএসকিউএলে সংযোগ করতে পারি। যাইহোক, যখন আমি উপরের রেখাটি নিম্নলিখিতটির সাথে প্রতিস্থাপন করে মাত্র তিনটি আইপি ব্যবহারের সীমাবদ্ধ করার চেষ্টা করি, তখন আমি সমস্যায় পড়ি (xxx = মুখোশযুক্ত অষ্টেকটি):
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.XXX.XXX.184 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.XXX.XXX.196 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.XXX.XXX.251 -j ACCEPT
উপরোক্ত নিয়মগুলি একবার হয়ে গেলে নিম্নলিখিতটি ঘটে:
আমি করতে এটি ডিফল্ট IP ঠিকানা ব্যবহার .184, .196 এবং .251 হোস্ট ঠিক সূক্ষ্ম যতদিন মাইএসকিউএল সার্ভারে সংযোগ করছি থেকে মাইএসকিউএল সার্ভারে সংযোগ বা ডিফল্ট আইপি এড্রেস হিসাবে একই সাবনেট মধ্যে একটি IP ওরফে।
আমি যখন .184 বা .196 হোস্ট থেকে আসছি তখন সার্ভারের ডিফল্ট আইপি থেকে আলাদা সাবনেট থেকে সার্ভারকে বরাদ্দ করা আইপি এলিয়াসগুলি ব্যবহার করে মাইএসকিউএল সংযোগ করতে পারছি না , তবে .251 ঠিক কাজ করে। .184 বা .196 হোস্টগুলি থেকে, একটি টেলনেট প্রচেষ্টা কেবল স্তব্ধ হয়ে যায় ...
# telnet 209.xxx.xxx.22 3306 Trying 209.xxx.xxx.22...
যদি আমি .251 লাইনটি সরিয়ে ফেলি (সর্বশেষ বিধিটি যোগ করে .196 তৈরি করে), .196 হোস্টটি এখনও আইপি এলিয়াসগুলি ব্যবহার করে মাইএসকিউএলে সংযুক্ত হতে পারে না (সুতরাং এটি বিধিবিধানের ফলে নয় এমন নিয়মের ক্রম নয়)। আমি জানি, এই বিশেষ পরীক্ষাটি নির্বোধ ছিল কারণ এই তিনটি নিয়ম কী অর্ডারে যুক্ত করা উচিত তা বিবেচনা করা উচিত নয়, তবে আমি বুঝতে পেরেছিলাম যে কেউ জিজ্ঞাসা করতে পারে।
যদি আমি "সর্বজনীন" নিয়মে ফিরে যাই তবে সমস্ত হোস্ট মাইএসকিউএল সার্ভারের সাথে ডিফল্ট বা এলিয়াসযুক্ত আইপি (সাবনেটে) ব্যবহার করে সংযোগ করতে পারে:
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
সার্ভারটি সেন্টোস 5.4 ওপেনভিজেড / প্রক্সমক্স পাত্রে (2.6.32-4-pve) চলছে।
এবং, কেবলমাত্র যদি আপনি iptables স্ক্রিপ্টের প্রসঙ্গে সমস্যার বিধিগুলি দেখতে পছন্দ করেন তবে এখানে এটি (xxx = মুখোশযুক্ত অষ্টেক্ট):
# Flush old rules, old custom tables
/sbin/iptables --flush
/sbin/iptables --delete-chain
# Set default policies for all three default chains
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT
# Enable free use of loopback interfaces
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
# All TCP sessions should begin with SYN
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Accept inbound TCP packets (Do this *before* adding the 'blocked' chain)
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow the server's own IP to connect to itself
/sbin/iptables -A INPUT -i eth0 -s 208.xxx.xxx.178 -j ACCEPT
# Add the 'blocked' chain *after* we've accepted established/related connections
# so we remain efficient and only evaluate new/inbound connections
/sbin/iptables -N BLOCKED
/sbin/iptables -A INPUT -j BLOCKED
# Accept inbound ICMP messages
/sbin/iptables -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
/sbin/iptables -A INPUT -p ICMP --icmp-type 11 -j ACCEPT
# ssh (private)
/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -s xxx.xxx.xxx.xxx -j ACCEPT
# ftp (private)
/sbin/iptables -A INPUT -p tcp --dport 21 -m state --state NEW -s xxx.xxx.xxx.xxx -j ACCEPT
# www (public)
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# smtp (public)
/sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 2525 -j ACCEPT
# pop (public)
/sbin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT
# mysql (private)
/sbin/iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.xxx.xxx.184 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.xxx.xxx.196 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.xxx.xxx.251 -j ACCEPT
কোন ধারনা? আগাম ধন্যবাদ. :-)
.184 or .196 hosts
ক্লায়েন্ট হোস্ট এছাড়াও আপনার অন্য সাবনেট অতিরিক্ত IP ঠিকানা আছে? যদি আপনি কিছু করেনtcpdump -qn port 3306
এবং চেষ্টা করেন এবং সেই সিস্টেমগুলির মধ্যে একটির সাথে সংযুক্ত হন তবে আপনি কী দেখছেন? আপনি যে উত্সের ঠিকানাটি আশা করেছেন তা কি দেখছেন?