আইপটবেল বিধিগুলির মেয়াদ শেষ হবে কীভাবে?


18

কেউ আমাকে বলেছে এটি সম্ভব, তবে আমি গুগল বা ম্যান পৃষ্ঠায় কিছুই খুঁজে পাচ্ছি না।

আমাকে নির্দিষ্ট সময়ের জন্য আইপি নিষিদ্ধ করতে হবে এবং তারপরে স্বয়ংক্রিয়ভাবে নিষিদ্ধ করা উচিত।

উত্তর:


18

যদি আপনি আইপ্যাবেটেলগুলি নিজে থেকে নিয়মটি সম্পূর্ণরূপে মুছে ফেলার জন্য বোঝাতে চান তবে আপনি এটি করতে পারবেন না, যতদূর আমি জানি। এর উদ্দেশ্য কী? আপনার যদি এক ধরণের স্বয়ংক্রিয় অস্থায়ী প্রয়োজন হয় তবে স্ট্যান্ডার্ড সলিউশন নিষিদ্ধ করা ব্যর্থ 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 

recentIptables এর মডিউলটি একবার দেখুন । --secondsআপনার প্রকৃত প্রয়োজনের উপর নির্ভর করে এর বিকল্পটি সহ এটি সহায়ক হতে পারে। man iptablesআরও তথ্যের জন্য.


ওহ, 'এট' কাজটি দুর্দান্ত দেখাচ্ছে। আমি কি এটি নোহপ এবং এর সাথে একত্রিত করতে পারি? কিভাবে?
হ্যাপিডাউনপার

নোহুপ ব্যবহার করার দরকার নেই - এট জবটি আপনি এটি তৈরি করতে যে টার্মিনালটি ব্যবহার করেছিলেন তা থেকে স্বাধীনভাবে সম্পাদন করা হয়। এর অর্থ এটি একটি শেল চালিত যা আপনার পরিবেশের ভেরিয়েবলগুলি উত্তরাধিকারসূত্রে পায় না, এবং এটি /bin/shডিফল্টরূপে। তবে সম্ভবত এই ক্ষেত্রে কোনও সমস্যা হবে না।
এডুয়ার্ডো ইভানেক

9

বিধিগুলিতে একটি টাইমস্ট্যাম্প (সম্ভবত পর্বের প্রথম থেকে কয়েক সেকেন্ড) দিয়ে একটি মন্তব্য দিন। মেয়াদোত্তীর্ণ মেয়াদোত্তীর্ণ নিয়মের জন্য ঝাড়ু।

নোট করুন যে সাম্প্রতিকতম লিনাক্স কার্নেলটিতে আইপি অ্যাড্রেসগুলি গতিযুক্ত লোড করার জন্য সমর্থন রয়েছে একটি ক্যাশে আইপ্যাটেবল নিয়মের পরিবর্তে সরাসরি 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কমান্ড মুদ্রণের পরিবর্তে করতে পারেন ।


ভালো বুদ্ধি. কীভাবে
ঝোলা

+1 খুব ভাল ধারণা, সম্ভবত সহজ নয় তবে অবশ্যই ঝরঝরে।
কাইল স্মিথ

1
@ হ্যাপিডাউনপার: অ্যাড / সুইপ এর জন্য সরবরাহিত উদাহরণ
শেঠ রবার্টসন

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"
কাইল স্মিথ

পার্ল আমার 2 সেন্ট:iptables -L FORWARD --line-numbers | tac | perl -walne 'system "iptables -D FORWARD $F[0]" if $F[-2] =~ /^expire=(\d+)$/ and $1<time()'
tuomassalo

5

আইপেটেবলগুলির একটি তালিকাতে স্বয়ংক্রিয়ভাবে আইপি ঠিকানা যুক্ত করার জন্য একটি পদ্ধতি রয়েছে যদি ব্যবহারকারীর সংজ্ঞায়িত শর্ত পূরণ হয়। আমি আমার এসএস পোর্টে স্বয়ংক্রিয় হ্যাক প্রচেষ্টা এড়াতে সহায়তা করতে নিম্নলিখিতটি ব্যবহার করি:

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 তালিকা; "টাইমার" এবং "ব্ল্যাকলিস্ট"।

সংক্ষেপে; উপরে প্রদর্শিত শেষ চেইনটি এসএস চেইনের "দ্বারপথ"।

  • সোর্স চেইনে 1 নম্বর বিধিটি পরীক্ষা করে উত্স আইপি "ব্ল্যাকলিস্ট" আছে কিনা তা পরীক্ষা করে দেখুন। যদি তা হয় তবে সংযোগটি বাদ দেওয়া হবে এবং 24 ঘন্টা ব্ল্যাকলিস্ট টাইমারটি পুনরায় শুরু হবে। নিয়ম 1 যদি মিথ্যা হয় তবে আমরা 2 রুল করতে যাব।
  • উত্স আইপি 5 মিনিটের মধ্যে 4 টির বেশি সংযোগের চেষ্টা করেছে কিনা তা পরীক্ষা করে দেখুন ssh চেইনের 2 বিধিটি পরীক্ষা করে দেখুন। যদি তা হয় তবে এটি প্যাকেটটি "কালো" শৃঙ্খলে প্রেরণ করে যেখানে এটি "ব্ল্যাকলিস্ট" তালিকায় যুক্ত করা হয়েছে। চেন "কালো" এরপরে সংযোগটি DROPs করে ফেলেছে এবং আমরা শেষ করেছি।
  • "Ssh" শৃঙ্খলে 3 নীতিটি কেবল তখনই পৌঁছে যাবে যদি নিয়ম 1 এবং 2 টি মিথ্যা থাকে। যদি তা হয় তবে প্যাকেটটি এসিসিপিটিড হয় এবং উত্স আইপি তালিকাতে "টাইমার" যুক্ত করা হয় যাতে আমরা সংযোগের চেষ্টাের ফ্রিকোয়েন্সি পর্যবেক্ষণ করতে পারি।

"--Reap" বিকল্পটি কার্নেলকে তালিকাটি অনুসন্ধান করতে এবং নির্ধারিত সময়সীমার চেয়ে পুরানো কোনও আইটেম শুদ্ধ করতে বলে; "টাইমার" তালিকার জন্য 5 মিনিট এবং "ব্ল্যাকলিস্ট" তালিকার জন্য 24 ঘন্টা।

দ্রষ্টব্য: অতিরিক্ত স্থানগুলি পাঠযোগ্যতার জন্য এবং এটি আপনার শেল স্ক্রিপ্টে alচ্ছিক।


3

আইপিটিবেলে এর জন্য স্পষ্টভাবে তৈরি করা একটি বৈশিষ্ট্য রয়েছে: আইপি সেট। আপনি একবার নিয়ম তৈরি করেন এবং এটি যথারীতি স্থায়ী হয় তবে এটি ম্যাচের জন্য আইপস (বা পোর্ট) এর একটি সেট পরীক্ষা করে। দুর্দান্ত জিনিসটি হ'ল এই ফায়ারটি বাকী ফায়ারওয়ালকে বিরক্ত না করে গতিশীল এবং দক্ষতার সাথে আপডেট করা যেতে পারে।

প্রধান ওয়েবসাইট , উদাহরণ

সুতরাং, এটি ব্যবহার করতে, আপনাকে এখনও ব্যবহার করতে হবে atবা cronসরানোর সময় নির্ধারণ করতে হবে।



2

যেমন কেউ ইতিমধ্যে বলেছে: আপনার এই বৈশিষ্ট্যটির জন্য আইপসেট ব্যবহার করা উচিত।

আইপসেট সময়সীমার মান সহ আইপি ঠিকানা যুক্ত করতে পারে। সময় শেষ হওয়ার পরে, রেকর্ডটি স্বয়ংক্রিয়ভাবে আইপসেট থেকে সরানো হবে।

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

এই আচরণটি নিয়ন্ত্রণ করার পক্ষে এটি সর্বোত্তম উপায়।


0

আমাকে নির্দিষ্ট সময়ের জন্য আইপি নিষিদ্ধ করতে হবে এবং তারপরে স্বয়ংক্রিয়ভাবে নিষিদ্ধ করা উচিত।

আপনি নিম্নলিখিতটি চেষ্টা করতে পারেন

# iptables -I INTPUT -s xxx.xxx.xxx.xxx -m time --utc --datestart 2013-09-09T15:00 --datestop 2013-09-09T15:30 -j DROP

0

নেটফিল্টারটি সাম্প্রতিককালে বা সময়ের মডিউলগুলি কার্যকর করতে আপনি ঠিক কী অর্জন করতে চান তার উপর নির্ভর করে এটি সম্পাদন করতে ব্যবহৃত হতে পারে।

উভয়ই iptables ম্যান পৃষ্ঠাতে নথিভুক্ত করা হয় ।

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