কীভাবে সম্ভব এসএসএল আক্রমণকারীদের আইপি ঠিকানাগুলি পুনরুদ্ধার করবেন?


17

আমি স্রেফ cat /var/log/auth.logলগইন করে দেখেছি, অনেক | grep "Failed password for"রেকর্ড রয়েছে।

তবে, দুটি সম্ভাব্য রেকর্ড প্রকার রয়েছে - বৈধ / অবৈধ ব্যবহারকারীর জন্য। এটি | cutতাদের আমার প্রচেষ্টা জটিল করে তোলে ।

আমি সম্ভাব্য আক্রমণকারীদের আইপি ঠিকানা এবং প্রতিটি আইপি ঠিকানার জন্য প্রচেষ্টার সংখ্যা সহ একটি তালিকা (পাঠ্য ফাইল) তৈরি করতে দেখতে চাই। এটি তৈরি করার কোনও সহজ উপায় আছে?

এছাড়াও, কেবলমাত্র সম্পর্কিত ssh: /var/log/auth.logসম্ভাব্য আক্রমণকারীদের তালিকা তৈরি করার সময় আমার সমস্ত রেকর্ডগুলি বিবেচনা করা উচিত?

লুকানো সংখ্যার সাথে আমার 'auth.log' উদাহরণ:

cat /var/log/auth.log | grep "Failed password for" | sed 's/[0-9]/1/g' | sort -u | tail

ফলাফল:

Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user ucpss from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user vijay from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user webalizer from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user xapolicymgr from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user yarn from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zookeeper from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zt from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for mysql from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.111.111.1 port 11111 ssh1

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি ssh কী তৈরি করুন, সেগুলি আপনার সার্ভারে ইনস্টল করুন এবং পাসওয়ার্ডগুলি সম্পূর্ণরূপে আপনার সার্ভারে sshd কনফিগারেশন ফাইলে অক্ষম করুন /etc/ssh/sshd_config... অনুসন্ধানের সেটিংস PasswordAuthentication noএবং PermitRootLogin without-password ... তারপরে এই জাতীয় সমস্ত পাসওয়ার্ড প্রচেষ্টা কখনই auth.log প্রবেশ করার আগে ব্যর্থ হবে ...
স্কট স্টেনসল্যান্ড

উত্তর:


19

আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন:

grep "Failed password for" /var/log/auth.log | grep -Po "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" \
| sort | uniq -c

এটি স্ট্রিংয়ের জন্য গ্রেপ করে Failed password forএবং -oআইপি ঠিকানাটি বের করে। এটি বাছাই করা uniqহয় এবং উপস্থিতির সংখ্যা গণনা করে।

আউটপুটটি তখন এর মতো দেখাবে (ইনপুট ফাইল হিসাবে আপনার উদাহরণ সহ):

  1 111.111.111.1
  3 111.11.111.111
  6 111.111.11.111

আউটপুটটিতে সর্বশেষটি 6 বার চেষ্টা করেছে।


এটিই হ'ল সেরা উত্তর @ চাওস - আমার দরকারী অনেলাইনারদের বাক্সে যুক্ত - ধন্যবাদ!
জেক

দুর্দান্ত সমাধান। আমি জানতাম না যে গ্রেপ কেবল ফিল্টার লাইনগুলিকেই নয়, রেগেক্স ম্যাচগুলি বের করতে পারে। আমি কেবল | sort -nচেইনে যুক্ত করেছি ।
ক্রাভেমির

1
ভাল উত্তর - একাধিক গ্রেপ সাধারণত সেড ব্যবহার করার জন্য একটি চিহ্ন। sed -nr '/Failed/{s/.*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/;p}'উভয় গ্রেপ প্রতিস্থাপন।
orion

1
@ ওরিওন সত্য তবে কল্পনা করুন যে প্রথম গ্রেপটি zgrep "Failed" /var/log/auth.log*সংকীর্ণ লগ সংরক্ষণাগারগুলিও অনুসন্ধান করতে পারে , কী sedপারে না।
বিশৃঙ্খলা

1
আইপিভি 6 সম্পর্কে কী?
অরটোমালা লোকনি

6

এটি একটি পুষ্পযুক্ত সমাধান হতে পারে তবে আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি ফেইল 2 ব্যানের মতো কিছু ইনস্টল করবেন

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


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

আমি @ মিরোর সাথে একমত, আপনি যদি এখানে এটি উল্লেখ না করে থাকেন তবে আমি এটি একটি মন্তব্যে যুক্ত করেছিলাম।
সাইলার কায়ার

@ মিরো, আপনি ঠিক বলেছেন, নিজেই প্রশ্নের উত্তর নয়, এই ধরণের লগিংয়ের জন্য এটি একটি সুবিধাজনক সরঞ্জাম হিসাবে মনে এসেছে।
জেক

0

এটি আমার পক্ষে সত্যই কার্যকর হয়েছে। (দোষীদের সুরক্ষার জন্য আইপি পরিবর্তন করা হয়েছে)

$ awk '/Failed/ {x[$(NF-3)]++} END {for (i in x){printf "%3d %s\n", x[i], i}}' /var/log/auth.log | sort -nr
 65 10.0.0.1
 14 10.0.0.2
  4 10.0.0.3
  1 10.0.0.4

0
grep "Failed password for" /var/log/auth.log |
    awk -F"from" {'print $2'} |
    awk {'print $1'} |
    sort -u

ফলাফলটি password- কাজ করছে না। এটি এমনকি বিভিন্ন এন্ট্রি প্রকারগুলিও কভার করে না, awkমুদ্রণ কলামটি বিকল্প cutনয়, সমাধান নয়।
ক্রাভেমির

এটি আমার পক্ষে বাস্তব /var/log/auth.log উপরের নমুনা নিয়ে কাজ করে
আর্চেমার

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