পরিচিত_হোস্টগুলিতে আইপি পরিসীমা কীভাবে যুক্ত করবেন?


15

অনেক পরিষেবা (যেমন গিটহাব) বিস্তৃত আইপি ব্যবহার করে এবং অবশ্যই একই পাবলিক কী ব্যবহার করে।

আমি কীভাবে আইপি রেঞ্জটি যুক্ত করতে পারি (পছন্দসইভাবে একক ক্ষেত্রে) ফাইলে_হোস্ট ফাইলটিতে?

গিটহাব উদাহরণের জন্য, এটি নিম্নলিখিত রেঞ্জগুলি ব্যবহার করে:

  • 207.97.227.224/27
  • 173.203.140.192/27
  • 204.232.175.64/27
  • 72.4.117.96/27
  • 192.30.252.0/22

এবং কীটি হ'ল:

AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa + + PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31 / yMf + + Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB + + weqqUUmpaaasXVal72J + + UX2B + + 2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi / w4yCE6gbODqnTWlg7 + + wC604ydGXA8VJiS5ap43JXiUFFAaQ ==


1
ঐ আইপিগুলি সম্পূর্ণরূপে সর্বজনীন এখানে
RSFalcon7

উত্তর:


11

অন্যান্য উত্তরে উল্লিখিত হিসাবে, ज्ञात_হোস্টের আইপি অ্যাড্রেস রেঞ্জগুলির পক্ষে সমর্থন নেই। এটি অবশ্য ওয়াইল্ডকার্ডকে সমর্থন করে। অবশ্যই ওয়াইল্ড কার্ডগুলি একই জিনিস নয় তাই আপনার আইপি ঠিকানাগুলিতে কীভাবে সেগুলি ব্যবহার করবেন সে সম্পর্কে আপনাকে সত্যই সতর্ক হওয়া দরকার তবে গিথুবের বিশেষ ক্ষেত্রে এটি নিরাপদে করা যেতে পারে।

প্রশ্নটি জিজ্ঞাসা করার পর থেকে পরিস্থিতি আরও সহজ হয়েছে বলে মনে হচ্ছে। গিথুবের অফিসিয়াল ডকুমেন্টেশন অনুসারে কেবলমাত্র একটি আইপি ঠিকানার ব্যাবহার রয়েছে (কমপক্ষে আইপিভি 4 যতদূর যায়)। এটি 192.30.252.0/22 ​​পরিসীমা। এটি 1020 সম্ভাব্য আইপি অ্যাড্রেসগুলিকে তৈরি করে যা কেবলমাত্র চারটি পৃথক সি ব্লকে সর্বশেষ অক্টোটেটের জন্য পুরো সম্ভাব্য ব্যাপ্তিটি সুবিধামতভাবে বিস্তৃত করে।

থেকে man 8 sshd, এই কি আমরা known_hosts সঙ্গে কাজ করতে হবে তা হল

হোস্টনামগুলি নিদর্শনগুলির একটি কমা-বিচ্ছিন্ন তালিকা ( *' and? 'ওয়াইল্ডকার্ড হিসাবে কাজ করুন); পরিবর্তে প্রতিটি প্যাটার্নটি ক্যানোনিকাল হোস্ট নামের (যখন কোনও ক্লায়েন্টকে প্রমাণীকরণ করা হয়) অথবা ব্যবহারকারী-সরবরাহ করা নামের (যখন কোনও সার্ভারকে প্রমাণীকরণ করা হয়) বিপরীতে মিলিত হয়। একটি প্যাটার্নের আগে !' to indicate negation: if the host name matches a negated pattern, it is not accepted (by that line) even if it matched another pattern on the line. A hostname or address may optionally be enclosed within['এবং ]' brackets then followed by:' এবং একটি অ-মানক বন্দর নম্বরও থাকতে পারে ।

এই তথ্যটি ব্যবহার করে, আমরা সর্বশেষ অক্টেটের জন্য * ওয়াইল্ডকার্ড ব্যবহার করে একটি এন্ট্রি তৈরি করতে পারি যা সমস্ত সম্ভাব্য গিথুব শেষ পয়েন্টগুলি (এবং কেবলমাত্র সেই শেষ পয়েন্টগুলি) এর সাথে মিলে যায়:

github.com,192.30.252.*,192.30.253.*,192.30.254.*,192.30.255.* ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==

আপনার যে আইপি পরিসীমাটি তৈরি করতে হবে তা যদি একটি সি সিটির জন্য পুরো সি ব্লক এবং এইভাবে সমস্ত সম্ভাব্য মান পূরণ না করে তবে এই জাতীয় সঠিক ম্যাচের জন্য ওয়াইল্ডকার্ড ব্যবহার করা অসম্ভব।


8

আমি মনে করি না আপনি সহজেই রেঞ্জগুলি যুক্ত করতে পারবেন তবে আমি মনে করি (এখনই এটি পরীক্ষা করতে পারছি না) .ssh / ssh_config এ নিম্নলিখিতগুলি যুক্ত করে একই প্রভাবটি অর্জন করা যেতে পারে:

Host *.github.com
HostKeyAlias github-server-pool.github.com

এরপরে, আপনি github-server-pool.github.com নামে পরিচিত_হোস্ট ফাইলের চাবিটি যুক্ত করবেন।

অনুমান: হোস্ট github-server-pool.github.com বিদ্যমান নেই বা কখনও এসএসএইচ এর মাধ্যমে সংযুক্ত নেই।

এর পিছনে ধারণাটি হ'ল, ssh গিথুব.কম ডোমেনের সমস্ত হোস্টের জন্য সর্বজনীন হোস্ট কী দেখার জন্য কী হিসাবে গিথুব-সার্ভার -পুল.github.com ব্যবহার করবে।


এটি একটি দুর্দান্ত উত্তর এবং মূলটির চেয়ে সহজ।
Kael

4

known_hostsফাইলে আইপি ঠিকানা সেটগুলির জন্য কোনও সমর্থন নেই । আপনার ঠিকানা প্রতি এক লাইন থাকতে হবে।

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

for net in 207.97.227.224/27 173.203.140.192/27 204.232.175.64/27 72.4.117.96/27 192.30.252.0/24 192.30.252.1/24 192.30.252.2/24 192.30.252.3/24; do
  base=${net%/*}; d=${base##*.}; abc=${base%.*}
  bits=$((32 - ${net#*/}))
  e=0
  while [ $e -lt $((2 ** bits) ]; do
    echo "$abc.$((d + e)) ssh-rsa AAAAB3NzaC1yc…" >>~/.ssh/known_hosts
    e=$((e + 1))
  done
done

মনে রাখবেন এটি ডুপ্লিকেট যুক্ত করতে পারে।


স্থির, তবে কেবল 0.0.0.0/24 পর্যন্ত নেটওয়ার্কগুলির জন্য কাজ করছে
আরএসফালকন 7

@ আরএসফালকন 7 আইপি ঠিকানা গাণিতিক বিরক্তিকর। আমি দ্রুত এবং নোংরা কাজটি করেছি ... আপনার যদি বৃহত্তর নেটওয়ার্কগুলির জন্য সমর্থনের প্রয়োজন হয় তবে গণনা করার আগে আইপি ঠিকানাটি 32-বিট সংখ্যায় রূপান্তর করুন।
গিলস 'অশুভ হওয়া বন্ধ করুন'

0

এসএসএইচ-এর কাছে পরিচিত_হোস্টগুলির জন্য আইপি রেঞ্জের কোনও ধারণা নেই বলে মনে হচ্ছে। আমি মনে করি সুরক্ষা কারণে প্রতিটি হোস্টের একটি অনন্য কী থাকবে key

আপনার পরিচিত_হোস্টগুলি প্রাক-জনবসতি করতে দুটি উপায় দেখতে পাচ্ছি:

  1. ssh-keyscan- এই সমস্ত ঠিকানাগুলির মধ্যে পুনরাবৃত্তি করতে একটি সংক্ষিপ্ত স্ক্রিপ্ট লিখুন এবং হয় এটিতে ফিড করুন ssh-keyscanবা ssh-keyscanপড়ার জন্য কোনও ফাইল । ssh-keyscanঅনুরোধ অনুযায়ী একাধিক হোস্ট স্ক্যান করতে পারে, হয় এক লাইনে নির্দিষ্ট করে বা হোস্টের একটি তালিকা নির্দিষ্ট করে।

  2. known_hostsএকটি স্ক্রিপ্ট বা সম্পাদক দিয়ে নিজেকে পপুলেট করুন। আপনি যদি অ-হ্যাশ সংস্করণ ব্যবহার করেন তবে ফর্ম্যাটটি মোটামুটি সহজ। এটা:

    হোস্টনাম, আইপি ঠিকানা ssh-keytype কী

hostnameআপনার সাথে যোগাযোগ করা হোস্টনামটি এবং সমস্ত গিটহাব ঠিকানার জন্য একই হবে the IP addressকোনও স্ক্রিপ্টের মাধ্যমে পুনরাবৃত্তি হবে। keyআপনি উপরোক্ত কীটি হ'ল

উভয়ই মার্জিত নয়, তবে আমি মনে করি এসএসএইচ লোকেরা ধরে নিয়েছিল যে গিটহাব যা করছে তা কেউ করবে না।


গিথুব যা করছে তা কারও উচিত হবে না। এটি একটি হোস্ট কী, "অনুরূপ হোস্টের গ্রুপ" কী নয়।

@ WumpusQ.Wumbley আমি সম্মত। তবে আমি সন্দেহ করি আমার এই কথার ফলে গিথহাবের পরিবর্তন হবে।
কুর্তেম

0

হাই আমি গিলিসের স্ক্রিপ্টটি বেশ কাজে লাগলাম, তবে কেবলমাত্র নেটওয়ার্কগুলির জন্য কাজ 0.0.0.0/24করা একটি সীমাবদ্ধতা ছিল, আমি স্ক্রিপ্টটি আরও বড় নেটওয়ার্কগুলির সাথে কাজ করার জন্য বাড়িয়েছি 0.0.0.0/16সম্ভবত এটি কারওর পক্ষে কার্যকর হবে।

#!/bin/sh
# http://unix.stackexchange.com/questions/94448/how-to-add-an-ip-range-to-known-hosts
# answered Oct 11 '13 at 0:21  Gilles
# only working for networks up to 0.0.0.0/24
# Declan Forde - Increased the range up to 0.0.0.0/16 networks


NETWORKS="127.0.0.0/30 127.0.0.0/29 127.0.0.0/28 127.0.0.0/27 127.0.0.0/26 127.0.0.0/25 127.0.0.0/24 127.0.0.0/23 127.0.0.0/22 127.0.0.0/21 127.0.0.0/16"

for net in ${NETWORKS}
do
  base=${net%/*}
  bits=$((32 - ${net#*/}))

  abc=${base%.*}
  ab=${abc%.*}
  c=${abc##*.}
  d=${base##*.}

  if [ $bits -gt 8 ] && [ $bits -le 16 ]
  then
    netbits=$((bits - 8))
    bits=8
  else
    netbits=0
  fi

  netcount=0
  while [ $netcount -lt $((2 ** netbits)) ]
  do
    count=0
    while [ $count -lt $((2 ** bits)) ]
    do
      echo "$ab.$c.$((d + count))"
      echo "$ab.$c.$((d + count)) ssh-rsa AAAAB3NzaC1yc." >>~/.ssh/known_hosts
    count=$((count + 1))
    done
    netcount=$((netcount + 1))
    c=$((c + 1))
  done
done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.