কেউ আমাকে বলেছে এটি সম্ভব, তবে আমি গুগল বা ম্যান পৃষ্ঠায় কিছুই খুঁজে পাচ্ছি না।
আমাকে নির্দিষ্ট সময়ের জন্য আইপি নিষিদ্ধ করতে হবে এবং তারপরে স্বয়ংক্রিয়ভাবে নিষিদ্ধ করা উচিত।
কেউ আমাকে বলেছে এটি সম্ভব, তবে আমি গুগল বা ম্যান পৃষ্ঠায় কিছুই খুঁজে পাচ্ছি না।
আমাকে নির্দিষ্ট সময়ের জন্য আইপি নিষিদ্ধ করতে হবে এবং তারপরে স্বয়ংক্রিয়ভাবে নিষিদ্ধ করা উচিত।
উত্তর:
যদি আপনি আইপ্যাবেটেলগুলি নিজে থেকে নিয়মটি সম্পূর্ণরূপে মুছে ফেলার জন্য বোঝাতে চান তবে আপনি এটি করতে পারবেন না, যতদূর আমি জানি। এর উদ্দেশ্য কী? আপনার যদি এক ধরণের স্বয়ংক্রিয় অস্থায়ী প্রয়োজন হয় তবে স্ট্যান্ডার্ড সলিউশন নিষিদ্ধ করা ব্যর্থ 2ban ।
বিকল্প হিসাবে আপনি যে নিয়মটি যুক্ত করছেন তা মুছে ফেলার জন্য আপনি ক্রোন জব ব্যবহার করতে পারেন বা আপনি যদি ইন্টারেক্টিভভাবে এটি করতে চান তবে একটি at
কাজ:
iptables -I INPUT -s 192.168.1.100 -j DROP
echo "iptables -D INPUT -s 192.168.1.100 -j DROP" | at @10pm
recent
Iptables এর মডিউলটি একবার দেখুন । --seconds
আপনার প্রকৃত প্রয়োজনের উপর নির্ভর করে এর বিকল্পটি সহ এটি সহায়ক হতে পারে। man iptables
আরও তথ্যের জন্য.
/bin/sh
ডিফল্টরূপে। তবে সম্ভবত এই ক্ষেত্রে কোনও সমস্যা হবে না।
বিধিগুলিতে একটি টাইমস্ট্যাম্প (সম্ভবত পর্বের প্রথম থেকে কয়েক সেকেন্ড) দিয়ে একটি মন্তব্য দিন। মেয়াদোত্তীর্ণ মেয়াদোত্তীর্ণ নিয়মের জন্য ঝাড়ু।
নোট করুন যে সাম্প্রতিকতম লিনাক্স কার্নেলটিতে আইপি অ্যাড্রেসগুলি গতিযুক্ত লোড করার জন্য সমর্থন রয়েছে একটি ক্যাশে আইপ্যাটেবল নিয়মের পরিবর্তে সরাসরি iptables নিয়মের পরিবর্তে।
উদাহরণ:
iptables -A INPUT -s 192.168.200.100/32 -m comment --comment "expire=`date -d '+ 5 min' +%s`" -j DROP
iptables -L INPUT -n --line-numbers | tac | perl -ne 'next unless /(^\d+).*expire=(\d+)/; if ($2 < time) { print "iptables -D INPUT $1\n"; }'
আপনি অবশ্যই iptables -D INPUT $1
কমান্ড মুদ্রণের পরিবর্তে করতে পারেন ।
iptables -L FORWARD --line-numbers | sort -r | awk 'substr($8,1,4) == "exp@" && substr($8,5) < systime() { systems("iptables -D FORWARD " $1) }'
করতে হয়েছিল , আমি আমার ক্লিনআপের জন্য বিশ্রী ব্যবহার করেছি: যেখানে নিয়মগুলি তৈরি করা হয়:iptables -A FORWARD -j DROP -m comment --comment "exp@EPOCH"
iptables -L FORWARD --line-numbers | tac | perl -walne 'system "iptables -D FORWARD $F[0]" if $F[-2] =~ /^expire=(\d+)$/ and $1<time()'
আইপেটেবলগুলির একটি তালিকাতে স্বয়ংক্রিয়ভাবে আইপি ঠিকানা যুক্ত করার জন্য একটি পদ্ধতি রয়েছে যদি ব্যবহারকারীর সংজ্ঞায়িত শর্ত পূরণ হয়। আমি আমার এসএস পোর্টে স্বয়ংক্রিয় হ্যাক প্রচেষ্টা এড়াতে সহায়তা করতে নিম্নলিখিতটি ব্যবহার করি:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --name ssh --seconds 60 --reap -j DROP
এটি একই আইপি ঠিকানা থেকে প্রতি 60 সেকেন্ডে সংযোগের প্রচেষ্টা সীমাবদ্ধ করে সার্ভারে অ্যাক্সেস অর্জনের স্বয়ংক্রিয় প্রচেষ্টা সীমাবদ্ধ করতে সহায়তা করে।
যদি আপনি সময়সীমার মধ্যে একটি সেট সংখ্যার প্রচেষ্টার অনুমতি দিতে চান, যেমন 5 মিনিটের মধ্যে 4, এবং ব্যর্থতার পরে তাদের আরও দীর্ঘ সময়ের জন্য কালো তালিকাভুক্ত করা হয়, যেমন 24 ঘন্টা, আপনি যেমন কিছু করতে পারেন:
iptables -X black
iptables -N black
iptables -A black -m recent --set --name blacklist -j DROP
iptables -X ssh
iptables -N ssh
iptables -I ssh 1 -m recent --update --name blacklist --reap --seconds 86400 -j DROP
iptables -I ssh 2 -m recent --update --name timer --reap --seconds 600 --hitcount 4 -j black
iptables -I ssh 3 -m recent --set --name timer -j ACCEPT
iptables -A INPUT -p TCP --dport ssh -m state --state NEW -j ssh
উপরের অংশে, আমরা 2 টি চেইন তৈরি করি; "ssh" এবং "কালো", এবং 2 তালিকা; "টাইমার" এবং "ব্ল্যাকলিস্ট"।
সংক্ষেপে; উপরে প্রদর্শিত শেষ চেইনটি এসএস চেইনের "দ্বারপথ"।
"--Reap" বিকল্পটি কার্নেলকে তালিকাটি অনুসন্ধান করতে এবং নির্ধারিত সময়সীমার চেয়ে পুরানো কোনও আইটেম শুদ্ধ করতে বলে; "টাইমার" তালিকার জন্য 5 মিনিট এবং "ব্ল্যাকলিস্ট" তালিকার জন্য 24 ঘন্টা।
দ্রষ্টব্য: অতিরিক্ত স্থানগুলি পাঠযোগ্যতার জন্য এবং এটি আপনার শেল স্ক্রিপ্টে alচ্ছিক।
আইপিটিবেলে এর জন্য স্পষ্টভাবে তৈরি করা একটি বৈশিষ্ট্য রয়েছে: আইপি সেট। আপনি একবার নিয়ম তৈরি করেন এবং এটি যথারীতি স্থায়ী হয় তবে এটি ম্যাচের জন্য আইপস (বা পোর্ট) এর একটি সেট পরীক্ষা করে। দুর্দান্ত জিনিসটি হ'ল এই ফায়ারটি বাকী ফায়ারওয়ালকে বিরক্ত না করে গতিশীল এবং দক্ষতার সাথে আপডেট করা যেতে পারে।
সুতরাং, এটি ব্যবহার করতে, আপনাকে এখনও ব্যবহার করতে হবে at
বা cron
সরানোর সময় নির্ধারণ করতে হবে।
আপনি আইপি ঠিকানাগুলি নিষিদ্ধ করতে ব্যর্থ 2ban ব্যবহার করতে পারেন এবং ঠিকানার জন্য নিষিদ্ধের সময়টি কনফিগার করতে পারেন ।
যেমন কেউ ইতিমধ্যে বলেছে: আপনার এই বৈশিষ্ট্যটির জন্য আইপসেট ব্যবহার করা উচিত।
আইপসেট সময়সীমার মান সহ আইপি ঠিকানা যুক্ত করতে পারে। সময় শেষ হওয়ার পরে, রেকর্ডটি স্বয়ংক্রিয়ভাবে আইপসেট থেকে সরানো হবে।
timeout
All set types supports the optional timeout parameter when creating a set and adding entries. The value of the timeout parameter for the create command means the default timeout value (in seconds) for new entries. If a set is created with timeout support, then the same timeout option can be used to specify non-default timeout values when adding entries. Zero timeout value means the entry is added permanent to the set. The timeout value of already added elements can be changed by readding the element using the -exist option. Example:
ipset create test hash:ip timeout 300
ipset add test 192.168.0.1 timeout 60
ipset -exist add test 192.168.0.1 timeout 600
http://ipset.netfilter.org/ipset.man.html
এই আচরণটি নিয়ন্ত্রণ করার পক্ষে এটি সর্বোত্তম উপায়।
নেটফিল্টারটি সাম্প্রতিককালে বা সময়ের মডিউলগুলি কার্যকর করতে আপনি ঠিক কী অর্জন করতে চান তার উপর নির্ভর করে এটি সম্পাদন করতে ব্যবহৃত হতে পারে।
উভয়ই iptables ম্যান পৃষ্ঠাতে নথিভুক্ত করা হয় ।