দেখা যাচ্ছে যে আইপিটিবেলে কিছু প্রকার জিওআইপি সমর্থন মিশ্রিত করতে আমাকে চাকাটিকে পুরোপুরি পুনর্নবীকরণ করতে হবে না। কেবলমাত্র সিএসভি ফর্ম্যাটে ম্যাক্সমাইন্ডের জিওআইপি কান্ট্রি ডাটাবেস-এর একটি অনুলিপি সহ আইপিসেট ব্যবহার করা simple একটি সাধারণ আইপিটবেলস নিয়ম ছাড়াও - আপনাকে এটি পেতে এবং উবুন্টু 12.04.5 (এলটিএস) এ চলতে হবে।
একটি পার্শ্ব নোট, তবে কিছু অনলাইন টিউটোরিয়াল যা এই জাতীয় পদ্ধতির ব্যাখ্যা দেয়, ওয়েব-ভিত্তিক কান্ট্রি জোন ফাইলগুলি আইপিডেনির ওয়েবসাইট থেকে আসা ফাইলগুলির মতো ব্যবহার করার পরামর্শ দেয়:
http://www.ipdeny.com/ipblocks/data/countries/cn.zone
এটি প্রযুক্তিগতভাবে কাজ করার সময়, আমি বাইরের ওয়েবসাইটের ডেটার উপর এত নির্ভরশীল হওয়ার ধারণাটি পছন্দ করি না। আমি যদি এটি পরিচালনা করতে একটি স্বয়ংক্রিয় স্ক্রিপ্টিং প্রক্রিয়া তৈরি করতে চাই এবং আইপিডেনি সাইটটি নীচে যায় বা হ্যাক হয়? যার আইপিগুলি আমি ব্লক করব।
এজন্য আমি আমার সার্ভারে সিএসভি ফর্ম্যাটে ম্যাক্সমাইন্ড জিওআইপি কান্ট্রি ডাটাবেস ব্যবহার করতে পছন্দ করছি। আমার আপডেটের প্রয়োজন হলে এবং সর্বদা আমার সার্ভারে ডাটাবেসের একটি অনুলিপি থাকলে আমার কাছে সর্বদা সেই ডাটাবেসের একটি নতুন অনুলিপি আনতে পারি। এবং যেহেতু সেই ডাটাবেসটিতে বিশ্বের সমস্ত দেশ রয়েছে, তাই আমি সর্বদা সহজেই দেশের দুটি বর্ণের আইএসও 3166-1 দেশের কোড ব্যবহার করে আইপি সেটটিতে আরও বেশি দেশ যুক্ত করতে পারি ।
যাইহোক, আইপিসেট এবং ম্যাক্সমাইন্ড জিওআইপি কান্ট্রি ডাটাবেস দিয়ে এটি করার জন্য আমি যে পদক্ষেপ নিয়েছি তা এখানে।
1. আইপিসেট ইনস্টল করুন।
প্রথমে আইপিসেটটি এভাবে ইনস্টল করুন।
sudo aptitude install ipset
এটি ইনস্টল হয়ে গেলে, BANNED_RANGES
এই জাতীয় আইপি সেট তৈরি করুন :
sudo ipset create BANNED_RANGES hash:net
২. সিএসভি ফর্ম্যাটে ম্যাক্সমাইন্ড জিওআইপি কান্ট্রি ডাটাবেসের একটি অনুলিপি পান।
এর পরবর্তী কীটি হ'ল সার্ভারে ইনস্টল থাকা সিএসভি ফর্ম্যাটে ম্যাক্সমাইন্ড জিওআইপি কান্ট্রি ডাটাবেসের একটি অনুলিপি পাওয়া। আমার পদক্ষেপগুলি নিম্নরূপ:
curl -O -L http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
এখন কেবল সেই সংরক্ষণাগারটিকে ইউএনজিপ করুন:
unzip -o -q -d . GeoIPCountryCSV.zip
3. ফিল্টার করুন এবং এর মতো একটি দেশের নির্দিষ্ট আইপ্যাসেট কনফিগারেশন আমদানি করুন।
এখন আমরা চীন সুনির্দিষ্ট আইপি রেঞ্জগুলিকে আইপিসেট কনফিগারেশন ফাইলে ফিল্টার করার জন্য ওউকে ব্যবহার করব:
awk -F "," -v COUNTRY_CODE=CN -v IPSET_TABLE=BANNED_RANGES} '$5 ~ COUNTRY_CODE { gsub(/"/, "", $1); gsub(/"/, "", $2); print "add "IPSET_TABLE" "$1"-"$2; }' /usr/local/share/GeoIP/GeoIPCountryWhois.csv >> ipset.BANNED_RANGES.conf
এটি নামের একটি আইপিসেট কনফিগারেশন ফাইল তৈরি করবে ipset.BANNED_RANGES.conf
যা এরপরে আইপিসেটে আমদানি করা যায়:
sudo ipset restore < ipset.BANNED_RANGES.conf
এবং তারপরে আপনি এই কমান্ডটি দিয়ে সেটে থাকা আইটেমগুলি চেক করতে পারেন:
sudo ipset -l BANNED_RANGES | more
৪. আইপিটিবেলকে আইপিসেট সম্পর্কে সচেতন করুন।
এখন চূড়ান্ত পদক্ষেপ যা এটিকে একত্রিত করে তা হ'ল আইপিটিবেলে একটি সাধারণ নিয়ম thisোকানো:
sudo iptables -I INPUT -p tcp -m set --match-set BANNED_RANGES src -j REJECT
এটি শেষ হয়ে গেলে, আইপিটিবেলস এখন জানেন যে সেটগুলিতে যুক্ত হওয়া কোনও আইপি ঠিকানা বা রেঞ্জগুলি BANNED_RANGES
কেবল প্রত্যাখাত হয়ে যাবে REJECT
।
আপনি যদি কোনওভাবে পরে এই নিয়ম থেকে মুক্তি পেতে চান তবে আপনি এই আদেশটি চালাতে পারেন:
sudo iptables -D INPUT -p tcp -m set --match-set BANNED_RANGES src -j REJECT
তবে আমার কাছে এটি বাজে বাজে। এর মতো কেস হ্যান্ডেল করার একটি ক্লিনার উপায় হ'ল BANNED_RANGES
সেট থেকে সমস্ত আইপি ডেটা এইভাবে সরিয়ে ফেলা :
sudo ipset flush BANNED_RANGES
এটি করার মাধ্যমে আপনি সেই আইপিটিবেলগুলি নিয়ম করে রাখতে পারেন এবং অন্য কিছু করতে হবে না তবে ডেটা বাইরে বের করে দেওয়া BANNED_RANGES
। আপনি যদি সেই সেট থেকে আইপি ঠিকানা বা রেঞ্জগুলি যুক্ত করতে বা সরাতে চান তবে ঠিকানাগুলি বা রেঞ্জগুলি আপডেট করা আরও সুন্দর / সহজ করে তোলে।