প্রশ্ন ব্যর্থ ssh লগইন শত শত


প্রতি রাতে আমি আমার রেডহ্যাট 4 সার্ভারে শত শত, কখনও কখনও হাজার হাজার ব্যর্থ এসএসআই লগইন পেয়েছি। দূরবর্তী সাইট থেকে ফায়ারওয়াল কারণে, আমি স্ট্যান্ডার্ড পোর্টে চালানোর প্রয়োজন। আমি এই ব্লক করতে হবে কিছু আছে। আমি অনেক একই আইপি ঠিকানা থেকে আসা যে লক্ষ্য। এটা কি কিছুক্ষণ পরে থামবে না?


76
2018-06-02 16:18


উত্স




উত্তর:


আপনি এসএসএইচ পোর্টে নতুন ইনকামিং সংযোগ হার-সীমাবদ্ধ করতে iptables ব্যবহার করতে পারেন। আপনাকে একটি টার্নিকি সমাধান দেওয়ার জন্য আপনার সম্পূর্ণ iptables কনফিগারেশন দেখতে হবে, তবে আপনি মূলত নিয়মগুলি যোগ করার বিষয়ে কথা বলছেন:

iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 5 --name SSH --rsource -j DROP 
iptables -A INPUT -p tcp --dport 22 -m recent --set --name SSH --rsource -j ACCEPT 

এই নিয়মগুলি অনুমান করে যে আপনি পূর্বে টেবিলে ইনস্টল থাকা সংযোগগুলি গ্রহণ করছেন (যাতে শুধুমাত্র নতুন সংযোগগুলি এই নিয়মগুলিকে আঘাত করবে)। নতুন এসএসএইচ সংযোগ এই নিয়ম আঘাত করবে এবং চিহ্নিত করা হবে। 60 সেকেন্ডে, একক আইপি ঠিকানা থেকে 5 টি প্রচেষ্টা আইপি থেকে নেমে আসা নতুন ইনকামিং সংযোগের ফলে হবে।

এটা আমার জন্য ভাল কাজ করেছে।

সম্পাদনা: আমি এই পদ্ধতিটি "fail2ban" পছন্দ করি কারণ কোনও অতিরিক্ত সফ্টওয়্যার ইনস্টল করা হবে না এবং এটি সম্পূর্ণরূপে কার্নেল-মোডে ঘটে। এটি "fail2ban" প্যারিসিং লগ ফাইলগুলিকে হ্যান্ডেল করে না, তবে আপনার সমস্যাটি যদি শুধুমাত্র এসএসএইচ থাকে তবে আমি কিছু ব্যবহারকারী-মোড ব্যবহার করব না যা সফ্টওয়্যার ইনস্টলেশনের প্রয়োজন এবং আরও জটিল।


63
2018-06-02 16:25



আমি এই সমাধানটি পছন্দ করি এবং আমি আজ রাতে এটি পেতে হলে আমি আজ রাতে এটি পেতে পরিকল্পনা করছি। - MattMcKnight
এটি আক্রমণকে হ্রাস করে এবং আমি এটি সুপারিশ করি, কিন্তু সেখানে সেখানে নিষ্ক্রিয় স্ক্যানিং বোটনেটগুলি আছে, এটি একটি প্যানাসিয়াস নয়। এখনও আপনার বিরুদ্ধে বিতরিত স্ক্যান স্ক্যান চলমান botnets থেকে অবৈধ লগন করা হবে। আপনি যে বিষয়ে খুব বেশি কিছু করতে পারবেন না, আপনি কোনও ধরণের "পোর্ট নকিং" স্কিমটি দূর করতে এসএসএইচ পোর্টটিকে দূরবর্তী স্থানে আনতে চান। - Evan Anderson
@ ইভান এর "পোর্ট ডকিং" পরামর্শের জন্য +1। কিছু তথ্য: linux.die.net/man/1/knockd । কিন্তু এটি ম্যান পৃষ্ঠাটি না করে (যেমন, আইপিটিবেলের নিয়মগুলি যুক্ত / মুছে ফেলা), তবে এর পরিবর্তে ব্যবহার করুন -m condition পরিবর্তে iptables ম্যাচ। - pepoluan
এই শর্তে আপনার কি প্রয়োজন নেই --পোর্টপোর্ট 22 যাতে শুধুমাত্র এসএসএস ট্রাফিকের জন্য আবেদন করা হয়? - clime
@ ক্লাইম - হ্যাঁ। বিশ্বাস করা কঠিন যে ২২ বছর এখানে ২1 বছর কেউ নেই! ভালো বল ধরা. - Evan Anderson


fail2ban অনেক ব্যর্থ লগ ইন প্রচেষ্টা সঙ্গে আইপি ঠিকানা ব্লক করে এই সঙ্গে সাহায্য করতে পারেন।


38
2018-06-02 16:20



আমি sysadmin ব্যবহারকারীর পক্ষ থেকে লগ এবং সমস্যা কমান্ড সরঞ্জাম / স্ক্রিপ্ট পছন্দ না - asdmin
@asdmin, হ্যাঁ, বিশেষ করে যখন তারা যেমন একটি চমৎকার ট্র্যাক রেকর্ড আছে ... - maxschlepzig


আমি যদি SSH- এর জন্য একটি অ-মানক পোর্ট ব্যবহার করে সুপারিশ করি (অর্থাত্ পোর্ট 10২২২) তবে আপনি উল্লেখ করেছেন যে আপনি এটি করতে পারবেন না তাই আমি DenyHosts এর মতো কিছু ব্যবহার করার সুপারিশ করব।

http://denyhosts.sourceforge.net/

গ্রেট প্যাকেজ, ইনস্টল এবং কনফিগার করা সহজ।


25
2018-06-02 17:16



আমি জানি না কেন মানুষ এই উত্থাপন করে; এসএসএইচ একটি স্ট্যান্ডার্ড পোর্ট 22. এটি মানে যে যখন আপনি কোনও বিদেশী নেটওয়ার্কে থাকেন, তখন আপনি আউটডাউন্ড ফায়ারওয়ালের মাধ্যমে নন-মানক পোর্ট খোলে তাদের উপর নির্ভর করেন না। এই সমস্যাটির আসল সমাধান উপরে নথিবদ্ধ করা হয়েছে, আপনার অন্তর্বর্তী ফায়ারওয়ালের মাধ্যমে পুনরাবৃত্তি সংযোগগুলির সংখ্যা বা স্যুইচ বন্ধ পাসওয়ার্ড লগইনগুলি সীমাবদ্ধ করুন। - Andrew Taylor
OpenSSH 6.7 ড্রপ tcpwrappers সমর্থনযা denyhosts ব্যবহার করে। - Zoredache


ইন্টারনেটে ইচ্ছাকৃত অবস্থানগুলি থেকে আপনার সিস্টেমে ssh সক্ষম হওয়ার পক্ষে চমৎকার হতে পারে তবে স্বয়ংক্রিয় পাসওয়ার্ড পাসওয়ার্ড আক্রমণগুলি রয়েছে যা একটি খোলা ssh পোর্টে লক হবে এবং আপনার সিস্টেমের বিরুদ্ধে বিভিন্ন জো অ্যাকাউন্ট এবং অভিধান আক্রমণগুলি প্রয়োগ করবে। এটি আপনার রাতের লগ সারসংক্ষেপে পড়তে বিরক্ত হতে পারে এবং আপনার ব্যান্ডউইথের বর্জ্য।

আপনার যদি একই সিস্টেমে ওয়েব সার্ভার থাকে তবে আপনি এসপি ইনবাউন্ড ট্র্যাফিককে পরিচিত সিস্টেমে সীমাবদ্ধ করতে php এবং tcp wrappers ব্যবহার করতে পারেন, এবং ইন্টারনেটে ইচ্ছাকৃত সিস্টেমে অ্যাক্সেসের অনুমতি দেওয়ার জন্য আপনাকে ব্যাক-ডোর কী দেয়।

এখানে আপনি কিভাবে করবেন:

সব ssh সংযোগ /etc/hosts.deny এ অস্বীকার করুন:

# /etc/hosts.deny fragment
sshd:  all

IP দ্বারা /etc/hosts.allow মধ্যে পরিচিত সিস্টেমগুলিকে অনুমতি দিন, প্লাস অস্থায়ী অ্যাক্সেসের জন্য একটি ফাইল যুক্ত করুন:

# /etc/hosts.allow fragment
sshd:  10.0.10.2     # some system
sshd:  172.99.99.99  # some other system
sshd:  /etc/hosts.allow.temporary-sshd-access

আপনার ওয়েব সার্ভারে একটি পিএইচপি ফাইল তৈরি করুন এবং এটি আমার-sshd-access.php মত একটি অ-সুস্পষ্ট নাম দিন:

<?php
function get_ip()
{
    return getenv("REMOTE_ADDR"); 
}

?>

<?php
$out='/etc/hosts.allow.temporary-sshd-access';
$log='/var/log/sshd-access-addition-log';

print "Was:";
readfile($out);
print "<br>";
$ip=get_ip();
$fp=fopen($out,"w");
fputs($fp,$ip);
fclose($fp);

$lfp=fopen($log,"a");
fputs($lfp,$ip);
fputs($lfp,"n");
fclose($lfp);

print "Wrote: ";
readfile($out);
?>

পিএইচপি কোডটি ক্ষমা করুন - আমি অন্য কোথাও থেকে এটি স্যুইপ করেছি, তাই সম্ভবত এটি সম্পূর্ণ গোছাটিকে পরিষ্কার করতে দাঁড়াতে পারে। এটি সমস্ত সিস্টেমে /etc/hosts.allow.temporary -shdd -access ফাইলটি অ্যাক্সেস করার সিস্টেমের আইপি ঠিকানা যোগ করে, যা এসএসডিডি দ্বারা পড়ে (সংযোগের সময় /etc/hosts.allow এর দ্বারা অন্তর্ভুক্ত হওয়ার কারণে) ।

এখন যখন আপনি ওয়েবে কিছু নির্বিচারে সিস্টেম এ আছেন এবং এই সিস্টেমে ssh করতে চান, প্রথমে একটি ওয়েব ব্রাউজার ব্যবহার করুন এবং এই ফাইলটিকে আঘাত করুন (বা wget বা equivalent ব্যবহার করুন):

$ wget http://your.system.name/my-sshd-access.php

এখন আপনি আপনার সিস্টেমে ssh করতে সক্ষম হওয়া উচিত। যদি এটি কোথাও আপনি ঘন ঘন থেকে ssh'ing করা হবে, /etc/hosts.allow.temporary -shdd -access ফাইলের বিষয়বস্তু পড়তে তুচ্ছ হবে এবং স্থায়ীভাবে / etc / হোস্টগুলিতে আইপি ঠিকানা যুক্ত করুন। অনুমতি দেয়।


15
2018-06-02 17:07



এই নিরাপদ করতে, https এ এই পৃষ্ঠাটি চালান। - Robert Munteanu
যদি আপনি স্ক্রিপ্টটি পরিবর্তন করেন তবে এটি "অনুমোদিত অস্থায়ী আইপি ঠিকানা" ফাইলের সামগ্রী আউটপুট না করে, স্নিফের জন্য স্নিফারের জন্য কিছু থাকবে না। তারপর আপনি https এর পরিবর্তে http এ এটি চালাতে পারেন। - Barry Brown
"অনুমোদিত অস্থায়ী আইপি ঠিকানা" সর্বদা অনুরোধকারীর (অর্থাৎ আপনার)। আমি এটা এক উপায় বা অন্য বিষয় মনে করি না। Https এর মানে হল যে অনুরোধ করা URL এনক্রিপ্ট করা হয়েছে যার অর্থ হল এটি তারের থেকে সঙ্কুচিত নয়। - David Mackintosh
এটি এমন কোনও কাজ করবে না যদি আপনি এমন কোনও নেটওয়ার্কে থাকেন যা HTTP সংযোগগুলি প্রক্সি করে তবে ইন্টারনেটের আপনার সরাসরি রুটটি ভিন্ন ভিন্ন ত্রুটির মাধ্যমে হয়। - Andrew Taylor
OpenSSH 6.7 ড্রপ tcpwrappers সমর্থন, যা আপনার উত্তর ব্যবহার করা হয়। - Zoredache


আপনি তাকান করতে পারেন denyhosts যেমন.

FYI: OpenSSH 6.7 ড্রপ tcpwrappers সমর্থন, denyhosts সম্ভবত নতুন ইনস্টলেশনের জন্য সমাধান নয় মানে।


9
2018-06-02 16:23





নিজেকে একটি উপকার করুন এবং পাসওয়ার্ড লগইন নিষ্ক্রিয় করুন। একচেটিয়াভাবে প্রমাণীকরণ কী ব্যবহার করুন (উদাহরণস্বরূপ google ssh-keygen - উদাহরণ: http://www.puddingonline.com/~dave/publications/SSH-with-Keys-HOWTO/document/html/SSH-with-Keys-HOWTO-4.html ) আপনার সার্ভারটি আরো নিরাপদ হবে, আপনি এটি আরও বেশি আরামদায়কভাবে সংযুক্ত করবেন (এসএসসি-এজেন্ট, এসএসসি-অ্যাড, কীচেন চেক করুন) এবং আপনি আর এসএস ব্রুট ফোর্স আক্রমণের শিকার হবেন না।


8
2017-08-17 22:08





আরেকটি সমাধান শুধু অন্য বন্দরে ssh সরানো হয়। এই কৃমি বেশ মূঢ়।


2
2018-06-02 16:28



মূল পোস্টার তিনি স্ট্যান্ডার্ড পোর্ট চালানোর প্রয়োজন। - kbyrd
দুঃখিত, আমি আরো সাবধানে প্রশ্ন পড়তে হবে :) - disserman
আমি একমত হব ... আমার এসএসএইচ "বিকল্প" পোর্টে চলছে এবং এটি লগগুলিতে পার্থক্যের বিশ্ব সৃষ্টি করে। কীট একটি ইট হিসাবে স্মার্ট সম্পর্কে হয়, তাই এটি নির্বোধ অটোমেশন স্ক্রিপ্ট বিরুদ্ধে ভাল কাজ করে; মানব আক্রমণকারীদের বিরুদ্ধে এত ভাল না। এখনও, লগ এর সুখী শব্দ আছে নীরবতা তাদের মধ্যে... - Avery Payne


আরেকটি বিকল্প হতে পারে সমস্ত ssh সংযোগগুলি একটি শংসাপত্রের দ্বারা যাচাই করা প্রয়োজন এবং পাসওয়ার্ডগুলি সম্পূর্ণরূপে সরানো হবে।

আমি Denyhosts ব্যবহার করার জন্য ব্যবহার করি, কিন্তু আমি দেখলাম যে আমি কেবল কয়েকটি জায়গা থেকে নিয়মিতভাবে দূরবর্তীভাবে সংযুক্ত ছিলাম, তাই আমি অন্য যে কোনও স্থান ছাড়া সমস্ত পোর্ট 22 টি সংযোগ বন্ধ করে দিয়েছি এবং পোর্টটি নষ্ট করে ব্যবহার করছি যাতে আমি আমার ল্যাপটপের সাথে যে কোন জায়গায় সংযোগ করতে পারি ।


2
2018-06-03 00:51





যেকোনো সমাধান যা একাধিক ব্যর্থতার পরে স্বয়ংক্রিয়ভাবে আইপিগুলিকে অবরোধ করে থাকে সেগুলি পরিষেবার আক্রমণ অস্বীকার করার ঝুঁকি প্রবর্তন করে। যতক্ষন পর্যন্ত বর্বর শক্তি বা অভিধান আক্রমণের কার্যকারিতা হ্রাস করার জন্য একটি ভাল পাসওয়ার্ড নীতি রয়েছে, আমি তাদের সম্পর্কে খুব বেশি চিন্তা করব না।

আপনি যদি ব্যবহারকারীদের / গোষ্ঠীগুলিকে কেবলমাত্র প্রথম স্থানে এসএসসি করার অনুমতি দেওয়া হয় এবং রুট হিসাবে লগিং নিষ্ক্রিয় করাতে সীমাবদ্ধ করেন তবে আপনাকে যথেষ্ট নিরাপদ হতে হবে। এবং, যদি এটি যথেষ্ট না হয় তবে সর্বদা কী-ভিত্তিক প্রমাণীকরণ থাকে।


1
2018-06-02 17:03