আমার সার্ভার ক্রমাগত আক্রমণ করা হচ্ছে [বন্ধ]


32

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

Feb 14 04:07:20 foodwiz3 sshd[1264]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Feb 14 04:07:21 foodwiz3 sshd[1264]: reverse mapping checking getaddrinfo for coenamor.columbiansabbatical.com [23.249.167.223] failed - POSSIBLE BREAK-IN ATTEMPT!
Feb 14 04:07:21 foodwiz3 sshd[1264]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=23.249.167.223  user=root
Feb 14 04:07:23 foodwiz3 sshd[1264]: Failed password for root from 23.249.167.223 port 32997 ssh2
Feb 14 04:07:23 foodwiz3 sshd[1264]: Received disconnect from 23.249.167.223: 11: Bye Bye [preauth]
Feb 14 04:13:04 foodwiz3 sshd[1289]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Feb 14 04:13:05 foodwiz3 sshd[1289]: reverse mapping checking getaddrinfo for coenamor.columbiansabbatical.com [23.249.167.223] failed - POSSIBLE BREAK-IN ATTEMPT!
Feb 14 04:13:05 foodwiz3 sshd[1289]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=23.249.167.223  user=root
Feb 14 04:13:07 foodwiz3 sshd[1289]: Failed password for root from 23.249.167.223 port 41562 ssh2

এটি কি এমন কিছু যা মোটামুটি স্বাভাবিক, বা আমি কি উদ্বিগ্ন / এ বিষয়ে কিছু করা উচিত?


3
পোর্ট নম্বর পরিবর্তন করার চেষ্টা করুন এবং দেখুন কি এটি অবিরত আছে। যদি তারা আপনাকে নির্দিষ্টভাবে লক্ষ্যবস্তু না করে থাকে তবে সম্ভবত তা তা করবে না।
স্বর্ণিলোক

13
সর্বোত্তম সমাধান হ'ল এসএসএইচে পাসওয়ার্ড প্রমাণীকরণ অক্ষম করা, কারণ এটি অবশ্যই নিষ্ঠুর বলয়ের আক্রমণ বন্ধ করবে!
উইলেম


3
@Willem - না, পাসওয়ার্ড প্রমাণীকরণ অক্ষম করার হবে না হামলা বন্ধ। এটি কেবল তাদের ব্যর্থ রেন্ডার করবে (আক্রমণকারীরা বুঝতে পারবে না যে পাসওয়ার্ড প্রমাণীকরণ অক্ষম করা হয়েছে, এবং চেষ্টা চালিয়ে যাবেন)।
মার্টিন Vegter

উত্তর:


59

ইন্টারনেটের দুর্দান্ত পৃথিবীতে আপনাকে স্বাগতম ... আপনি কি:

তবে আসল উত্তরটি হ'ল: হ্যাঁ, এটি সাধারণ : বটনেট মাফিয়া সর্বদা কয়েকটি অতিরিক্ত খারাপভাবে সুরক্ষিত সার্ভার ব্যবহার করতে পারে ...


1
আমি বন্য, ওয়াইল্ড ইন্টারনেটে এসএসএইচ না রাখাই পছন্দ করি। +1
রুই এফ রিবেইরো

2
Ssh এর জন্য ডিফল্ট পোর্ট পরিবর্তন করার পাশাপাশি আমাদের কাছে পোর্ট নকও রয়েছে
পাবলো এ

15

প্লাবন লগ করার জন্য লগইন ট্রাইআউটগুলি রাখা মোটামুটি স্বাভাবিক।

এসএসএইচ বন্দর পরিবর্তন করা 'ধোঁয়া দ্বারা সুরক্ষা' ধরণের সমাধানের আরও বেশি, তবে এটি বন্যায় সহায়তা করে। আমি জোর দিয়েছি এটি খুব মার্জিত নয়; কোনও কারণে পরিষেবার জন্য ডি-ফ্যাক্টো পোর্ট রয়েছে।

এটি ডিফল্ট হিসাবে হওয়া উচিত, তবে আপনি আপনার সার্ভারে রুট হিসাবে এসএসএইচ করতে পারবেন না তা নিশ্চিত করুন। এটি ব্যবহারকারীর নাম যা সার্ভারগুলির মধ্যে মোটামুটি সুসংগত এবং এইভাবে পাসওয়ার্ড ব্রুট ফোর্স লগইন প্রচেষ্টাগুলির জন্য প্রধান লক্ষ্য। নিম্নলিখিত লাইনের সাহায্যে সেটিংস প্রয়োগ করুন sshd_config:

PermitRootLogin no

এছাড়াও fail2banপুনরাবৃত্তি অপরাধীদের জন্য sshd লগ নিরীক্ষণ দেখুন । উদাহরণস্বরূপ, একটি নির্দিষ্ট আইপি থেকে 3 মিনিটের মধ্যে 5 ব্যর্থ লগইনগুলি এই আইপিটি 10 ​​মিনিটের জন্য অবরুদ্ধ করে দেবে। সফলভাবে - লগ স্প্যামকে আরও কমাতে আমি এই নিষেধাজ্ঞার সময়কে 24 ঘন্টা বাড়িয়েছি। :)


1
apt-get install fail2ban আপনাকে মূলত কভার করবে
উইলেম

7
"লগ স্প্যামকে আরও কমাতে আমি এই নিষেধাজ্ঞার সময়কে 24 ঘন্টা বাড়িয়েছি" বিশ্বাস করুন। সার্ভারে আপনার শারীরিক অ্যাক্সেস না থাকলে একদিন আপনি গভীরভাবে অনুশোচনা করবেন। ;)
ড্যানিয়েল

8

আমি আপনাকে কয়েকটি জিনিস করার পরামর্শ দিচ্ছি:

  1. পোর্ট ssh শুনতে পারা পরিবর্তন করুন (1024 এর চেয়ে বেশি কিছুতে) এবং নিশ্চিত করুন যে আপনি প্রোটোকলের কোনও সংস্করণ 1 ব্যবহার করছেন না:

জন্য / etc / SSH / sshd_config

# What ports, IPs and protocols we listen for
Port 50022
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
  1. ইনস্টল করুন fail2ban- এটি লগ ফাইলগুলিকে পর্যবেক্ষণ করে এবং অস্থায়ীভাবে বা অবিচ্ছিন্নভাবে বিদ্যমান ফায়ারওয়াল নিয়ম ( iptables) আপডেট করে ব্যর্থতা-প্রবণ ঠিকানাগুলিতে নিষিদ্ধ করে ।

  2. নিশ্চিত হয়ে নিন যে আপনি নিজের বিশ্বস্ত অবস্থানগুলিকে সাদা তালিকাভুক্ত করেছেন।


7

হ্যাঁ, চিন্তিত হবেন । আপনি কখনই জ্বলে উঠতে পারেন না, তবে আপনার উচিত আইটি সেরা অনুশীলন অনুসরণ করা। দুঃখিত চেয়ে ভাল নিরাপদ.

আমি একটি হাসপাতালে নেটওয়ার্ক অ্যাডমিন সরাসরি কোনও বক্সকে ইন্টারনেটে সংযুক্ত করা সবসময় খারাপ ধারণা। আপনি যা দেখছেন তা হ'ল হাজার হাজার স্বয়ংক্রিয় স্ক্যানার যা ইন্টারনেটে দুর্বলতার জন্য স্ক্যান করে। আমি দেখতে পাই এই এবং সমস্ত ধরণের জিনিস (পোর্ট স্ক্যান, বিভিন্ন পরিচিত দুর্বলতা পরীক্ষা) সমস্ত ধরণের সফ্টওয়্যার (এসএসএস, টেলনেট, এফটিপি, ইত্যাদি) এর জন্য আমাদের আইডি বক্সে দেখায়
আপনার মেশিনটি ফায়ারওয়াল / এনএটি সমাধানের পিছনে থাকা উচিত এবং আপনার কেবলমাত্র প্রয়োজনীয় পোর্টগুলি ইন্টারনেটে পোর্ট-ফরোয়ার্ড করুন (80, 443 ইত্যাদি)। এটি করা তুলনামূলকভাবে সহজ।
ম্যানেজমেন্ট (এসএসএইচ টেলনেট) এর জন্য আপনি যে কিছু ব্যবহার করতে পারেন তা ইন্টারনেটের মুখোমুখি হওয়া একটি খারাপ ধারণা কারণ যদি - যে কারণেই হোক না কেন - সেই সার্ভারে এসএসএইচ / টেলনেট সফ্টওয়্যারটিতে একটি বাগ রয়েছে, স্বয়ংক্রিয় বট এটি হৃদস্পন্দনে সনাক্ত করবে এবং আপনি বিভ্রান্ত হবে সফ্টওয়্যারগুলিতে বাগগুলি সর্বদা ঘটে থাকে এবং প্যাচটি প্রকাশ হতে বা আপনাকে এটি প্যাচ করতে মনে রাখতে কিছু সময় নিতে পারে।

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

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

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


7
আসলে, কোনও ভিপিএন দ্রষ্টব্য এসএসএইচ সার্ভারের চেয়ে কম বা বেশি সুরক্ষিত নয়। তারা উভয়ই ক্রিপ্টোগ্রাফিক প্রোটোকলগুলি সঠিকভাবে প্রয়োগ করা হচ্ছে এবং পরিষেবাগুলি সঠিকভাবে কনফিগার করা হয়েছে তার উপর নির্ভর করে। বিভিন্ন মাধ্যমে আমি বলব যে তারা ঠিক একই স্তরের সুরক্ষা সরবরাহ করে। তারপরে, আমি যদি আপনাকে ভাল করে বুঝতে পারি তবে আপনি একটি ভিপিএন এর পিছনে একটি এসএসএইচ রেখেছিলেন , তবে হ্যাঁ এটি আরও এক স্তর আরও সুরক্ষিত।
দীর্ঘ

হ্যাঁ আপনি ঠিক বলেছেন যে আমি বলতে চাইছিলাম, ফায়ারওয়াল / নাট পাস করার জন্য ভিপিএন ব্যবহার করুন তারপর সার্ভারে
ব্যক্তি

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

5

আপনি iptables দ্বারা কার্নেলের অভ্যন্তরীণ ফায়ারওয়াল কনফিগার করতে পারেন । যাতে আপনার সার্ভারে কেবলমাত্র কয়েকটি মেশিনই প্রবাহিত হতে পারে এবং অন্যান্য আইপি প্যাকেজগুলি নামতে দেয়। দেখুন man iptablesআরও তথ্যের জন্য।

উদাহরণস্বরূপ, যদি 192.168.1.67 আপনি যে হোস্ট থেকে প্রেরণ করেন তা সার্ভারে টাইপ করুন:

sudo iptables -A INPUT -p tcp --dport ssh -s 192.168.1.67 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport ssh -j DROP
sudo iptables-save

2
মনে রাখবেন যে দূরবর্তী পরিচালনা যদি আপনার একমাত্র বিকল্প হয় তবে আপনি গুরুতরভাবে ক্ষতিগ্রস্থ হবেন। বেশিরভাগ আইপি শুধুমাত্র আধা-স্থায়ী। হার্ডওয়্যার পরিবর্তন করুন এবং আপনি পোড়া হবে।
মাস্ট

3

আপনার কি সত্যিই ইন্টারনেটে আপনার সার্ভারের দরকার? আপনি যদি সত্যিই এটি ইন্টারনেটে রাখতে চান তবে সেখানে রাখার আগে নিশ্চিত হয়ে নিন যে এটি নিরাপদ।

বন্দর পরিবর্তন করা কেবল অস্পষ্টতার মাধ্যমে সুরক্ষা। আপনার আক্রমণকারী যদি কেবল স্ক্রিপ্টগুলি চালানোর চেয়ে আরও পরিশীলিত হয় তবে এটি কোনও লাভ করবে না।

ইতিমধ্যে উল্লিখিত কয়েকটি বিষয় যা আমি সুপারিশও করি:

  1. আমি Fail2Ban এর সাথে একমত, এবং সঠিকভাবে কনফিগার করা স্ক্রিপ্টগুলি এবং সর্বাধিক পরিশীলিত হ্যাকারগুলিকে উপসাগরে রাখবে।
  2. পারমিট রুটলগিনকে কোনও হিসাবে সেট করা আবশ্যক।
  3. একটি ফায়ারওয়াল কনফিগার করুন। আমি সাধারণত iptables নিয়মগুলি সহজেই সম্পাদনা করি তবে ইউএফডাব্লু বা ফায়ারহলের মতো কিছু খুব কার্যকর হবে।

আমি এই সম্প্রদায়টিতে যোগদান করেছি কারণ দুটি বিষয় আছে যা আমি মনে করি না যে পর্যাপ্তভাবে সম্বোধন করা হয়েছে।

  • ফায়ারওয়াল কনফিগারেশনে ব্লক / সম্পূর্ণরূপে প্রয়োজনীয় নয় এমন সমস্ত কিছুই অক্ষম করুন। কোনও বন্দর খোলার আগে নিজেকে জিজ্ঞাসা করুন, "আমার কি সত্যিই ইন্টারনেট থেকে এই পরিষেবাটি প্রয়োজন?" আপনার খোলার প্রতিটি বন্দর / পরিষেবা অন্য সম্ভাব্য ভেক্টর হয়ে যায় যা কেউ শোষণ করতে সক্ষম হতে পারে। যদি সেই পরিষেবায় কোনও বাগ থাকে যা তাদের সার্ভারে রুট অ্যাক্সেস পেতে দেয় তবে তারা এতে সমস্ত কিছু অ্যাক্সেস করতে সক্ষম হতে পারে। আপনার সুরক্ষা কেবল দুর্বলতম লিঙ্কের মতোই শক্ত।
  • এখন শেষ জিনিসটির জন্য এবং তর্কসাপেক্ষে সবচেয়ে গুরুত্বপূর্ণ। আপনি যে স্ক্রিপ্টগুলি ssh অ্যাক্সেস করার চেষ্টা করে দেখেছেন তা আপনার পাসওয়ার্ডটি সময়ের সাথে সাথে অনুমান করতে সক্ষম হতে পারে। Fail2Ban এগুলিকে অনেকটা কমিয়ে দেবে তবে তারা এখনও এটি সম্ভাব্যভাবে অনুমান করতে পারে। যদি তারা তা করে, আপনি অ্যাক্সেসযোগ্য পরিষেবাগুলিতে 2 ফ্যাক্টর প্রমাণীকরণ চান । তার জন্য আমি দ্বৈত সুরক্ষা সহ একটি নিখরচায় অ্যাকাউন্টের প্রস্তাব দিই। https://www.duosecurity.com/docs/duounix

1
পোর্ট পরিবর্তন করার ফলে লগ ফাইলগুলি পরিষ্কার করার সুবিধা রয়েছে: যেহেতু স্ক্রিপ্ট কিডিগুলি বেশিরভাগ অ-ডিফল্ট পোর্টগুলিতে আক্রমণ করে না, আপনি জানেন যে কোনও লগ এন্ট্রি একটি গুরুতর হুমকির প্রতিনিধিত্ব করে।
চিহ্নিত

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

2

@ সিএফ উত্তরের আরও একটি উদাহরণ, যদি আপনি নিজের এসএসএইচ সার্ভারে ধারাবাহিকভাবে "চেষ্টা" নিষিদ্ধ করতে চান:

sudo iptables -A INPUT -p tcp -m tcp --dport ssh -m state --state NEW -m recent --update --seconds 600 --hitcount 4 --name DEFAULT --mask 255.255.255.255 --rsource -j DROP
sudo iptables -A INPUT -p tcp -m tcp --dport ssh -m state --state NEW -m recent --set --name DEFAULT --mask 255.255.255.255 --rsource
sudo iptables-save

এটির একটি 'ট্যাগ' সংযোগ চেষ্টা করে এবং যদি 600 এর দশকে (10 মিলিয়ন) 4 এর বেশি হয়, তবে উত্সটি 'নিষিদ্ধ'। @ সিএফ সমাধানের পরিবর্তে এটি ব্যবহার করুন কারণ এটি আরও নিরাপদ (যদি আপনি নিজেকে লক আউট করেন, 10 মিলিয়ন অপেক্ষা করুন এবং আবার চেষ্টা করুন)।

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