সবচেয়ে নিরাপদ নিরাপত্তা বজায় রাখার সময় আমি কীভাবে একটি NAT এর পিছনে সার্ভারে সঠিকভাবে SSH করব?


4

আমি আমাজন এডব্লিউএস এ একটি ভিপিসি আছে। কোনও নেট সাবনেটে চলমান একটি NAT সার্ভার রয়েছে যা ইন্টারনেট গেটওয়েতে সংযোগ করে। আমি ভিপিসি মধ্যে বিভিন্ন ব্যক্তিগত উপনেট মধ্যে চলমান সার্ভারের একটি গুচ্ছ আছে। আমি ব্যক্তিগত সাবনেটে সার্ভারগুলিতে SSH করতে চাই। আমার সকল সার্ভার AWS লিনাক্স (CentOS) চালাচ্ছে।

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

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


জিজ্ঞাসা করতে ভুলে গেছেন - কোন ক্লায়েন্ট অপারেটিং সিস্টেম ব্যবহার করছেন? আমি ইউনিক্স / লিনাক্সে উইকগুলিকে বর্ণনা করি, কিন্তু কৌশলটি পুট্টি দিয়েও উইন্ডোজগুলিতে কাজ করে। এটি PUTTY এর সাথে পোর্ট ফরওয়ার্ডিং সেটআপ করার জন্য খুব বিরক্তিকর এবং এটি অন্য যে নামটি উপস্থাপিত হয় তার জন্য স্থানীয় হোস্ট হিসাবে অন্য নাম ব্যবহার করা উচিত তা বোঝাও ...
Florenz Kley

সমস্ত সার্ভার অ্যামাজন লিনাক্স (CentOS) চালাচ্ছে এবং আমি স্থানীয়ভাবে OSX চালাচ্ছি। প্রশ্নের এই বিবরণ যোগ করা হয়েছে।
T. Brian Jones

অসাধারণ! যে শুধু সেটআপ আমি ব্যবহার করছি, ক্লায়েন্ট পাশে ওএস এক্স। সার্ভার পার্শ্ব সত্যিই ব্যাপার না। আমার উত্তর দেখুন - আপনার ~ / .ssh / config এ একটি "টানেল" হোস্ট এন্ট্রি সম্পাদনা করুন এবং সেই টানেলগুলি ব্যবহার করে কয়েকটি এন্ট্রি যুক্ত করুন।
Florenz Kley

উত্তর:


3

আপনি গেটওয়ে আপনার গোপন কী রাখা উচিত নয়, এবং আপনি করতে হবে না :-)

আপনার স্থানীয় এসএসএইচ কনফিগারেশন সেটআপ করুন যাতে আপনি এটির প্রয়োজনে পোর্ট ফরওয়ার্ডিংয়ের জন্য NAT গেটওয়ে ব্যবহার করতে পারেন:

আপনার একটি এন্ট্রি তৈরি করুন ~/.ssh/config যা আপনি সংযুক্ত করতে চান এমন হোস্টগুলিতে স্থানীয় ফরওয়ার্ড সেট করে:

Host natgw-fwd
        User ec2-user
        HostKeyAlias natgw-fwd.my.domain
        HostName 54.182.32.11
        LocalForward 1025 10.0.2.1:22

তারপর একটি সঙ্গে প্রেরিত হোস্ট প্রতি এক এন্ট্রি যোগ করুন HostKeyAlias:

Host internal-one
        User ec2-user
        HostKeyAlias internal-one.ec2.internal
        HostName localhost
        Port 1025

এক শেল মধ্যে সুড়ঙ্গ আনুন:

ssh -C -v natgw-fwd

এবং অন্য শেলের অভ্যন্তরীণ হোস্টগুলিতে সংযোগ করুন:

ssh internal-one

শেল বা দুটি ছাড়াও "দ্রুত + সংক্ষিপ্ত" সংযোগগুলি অনেকগুলি ব্যবহার করার সময়, যেমন dsh এর মতো একটি সরঞ্জামের সাথে, সেটআপের জন্য বিলম্ব এবং একক সংযোগের টিয়ারডাউন আরও বেশি মনোযোগী হয় এবং আমি ব্যবহার করি ControlMaster এবং ControlPath সংযোগ শেয়ারিং সক্রিয় করতে। সীমাবদ্ধতাগুলি আমাকে বিরক্ত করে না কারণ আমি খুব কমই এজেন্ট বা এক্স 11 ব্যবহার করি।


1
এই মহান কাজ করে। আমার জিওআই টেক্সট এডিটর (কোডা) থেকে এসএসএইচিং ছিল আমার পরবর্তী সমস্যা সমাধান। কিছু নোট ... আপনি শুধুমাত্র natgw-fwd হোস্ট কনফিগারেশনে প্রথম স্থানীয় ফরওয়ার্ড এন্ট্রি প্রয়োজন। এছাড়াও, অন্যদের জন্য, হোস্টকি এলিয়াস কিছু হতে পারে। উপরন্তু, যদি আপনি সার্ভারগুলিতে লগইন করতে সর্বজনীন কীগুলি ব্যবহার করেন তবে আপনাকে সেট করতে হবে IdentityFile আপনার পাবলিক কী ফাইল অবস্থান উভয় হোস্ট জন্য নির্দেশিকা। অবশেষে, যখন কোনও কোড সম্পাদক যেমন কোডা বা টেক্সটওয়্যাংলারের সাথে লগ ইন করে, প্রথম $ssh -C natgw-fwd কমান্ড লাইন থেকে। তারপর SFTP এর মাধ্যমে সংযোগ করে আপনার পাঠ্য সম্পাদকের সাথে লগইন করুন localhost বন্দরে 1025
T. Brian Jones

@ টি। ব্রিয়ানজোনস এটা শুনে আপনার পক্ষে কাজ করে আনন্দিত। দুটি মন্তব্য: 1) আপনি যদি ssh-agent ব্যবহার করেন তবে আপনাকে কনফিগার করতে হবে না IdentityFile, এটি এজেন্ট কীচেইনে প্রতিটি লোড হওয়া পরিচয় চেষ্টা করবে 2) আমি প্রায়ই নেটওয়ার্কগুলি স্যুইচ করি, তবে একই হোস্টগুলিতে সংযোগ করতে হবে, তাই আমি আমার Host এন্ট্রি স্থিতিশীল, এবং একই সাথে "পরিবেশ এক্স ফরওয়ার্ড" এন্ট্রি এবং অন্য একটি "পরিবেশ Y" এন্ট্রি কনফিগার করুন LocalForward বিবৃতি
Florenz Kley

অতিরিক্ত টিপস: 1) হ্যাঁ, আপনার প্রতি হোস্ট প্রতি একাধিক স্থানীয় ফরওয়ার্ড নির্দেশিকা থাকতে পারে। 2) আপনি যদি কোন কমান্ড কার্যকর না করেন তবে আপনি টানেলটি খুলতে ssh কমান্ডটি -N বিকল্পটি পাস করুন, যেমন, আপনি মাত্র টানেল খোলার। 3) এছাড়াও ssh কমান্ডটি -f বিকল্পটি পাস করুন যা পটভূমিতে এটি চালানোর জন্য টানেলটি খোলে।
dgvid

3

আমি কিছু গবেষণা করেছি এবং আপনি যা জিজ্ঞাসা করছেন তার সাথে সম্পর্কিত একটি নিবন্ধ খুঁজে পাওয়া যায়।

SSH এবং বুনিয়াদি সার্ভার

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

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

http://blogs.aws.amazon.com/security/post/Tx3N8GFK85UN1G6/Securely-connect-to-Linux-instances-running-in-a-private-Amazon-VPC

আশা করি আপনি একটি বুশ সার্ভার তৈরি করতে এবং আপনার ক্লায়েন্টে এসএসএইচ এজেন্ট ফরোয়ার্ড ব্যবহার করে সমাধান খুঁজে পাবেন।


0

@ ডন কিং এর উত্তর খুব সহায়ক ছিল এবং এখানে অভিভাবকসংবঁধীয় সে পরামর্শ দিলো. এটি OSX এবং উইন্ডোজ জন্য নির্দেশাবলী আছে।

স্থানীয় OSX মেশিন থেকে লগ ইন করার সময় আমি যা করেছি তা সারাংশ এখানে। এটি অনুমান করে যে আপনার VPC এ প্রাথমিক অবকাঠামোটি ইতিমধ্যেই সঠিক। এটা দেখ অভিভাবকসংবঁধীয় বিস্তারিত জানার জন্য.

  1. NAT সুরক্ষা গোষ্ঠীতে একটি বহির্মুখী এসএসএইচ সংযোগ খুলুন যা ব্যক্তিগত সাবনেটের সার্ভারের সুরক্ষা গোষ্ঠীগুলির সংযোগগুলিকে অনুমতি দেয়।

  2. ব্যক্তিগত সাবনেটে সার্ভারের সুরক্ষা গোষ্ঠীতে একটি অভ্যন্তরীণ SSH সংযোগ খুলুন যা NAT সুরক্ষা গোষ্ঠী থেকে একটি সংযোগ অনুমোদন করে।

  3. ওএসএক্সে, আপনার public_key.pem আপনার স্থানীয় কীচেন এ যুক্ত করুন: ssh-add -K .aws/public_key.pem

  4. SSH ব্যবহার করে আপনার স্থানীয় মেশিন থেকে NAT-s (ssh-agent) ব্যবহার করে: ssh -A ec2-user@ip_of_nat

  5. এসএসএইচ থেকে নেট সাবনেটে সার্ভারে সার্ভারে: ssh ec2-user@ip_of_private_server

সম্ভাব্য সমস্যা:

  • নিশ্চিত করুন ফরওয়ার্ড অ্যাজেন্ট আপনার OSX / etc / ssh_config ফাইলে হ্যাঁতে সেট করা আছে। এটা ডিফল্ট দ্বারা হ্যাঁ হওয়া উচিত।

1
এটি প্রতি সংযোগের দুটি পদক্ষেপ, এটি কারণে স্ক্রিপ্টটি কঠিন (dsh ভুলে যান) এবং AUTH ফরওয়ার্ডিং ব্যবহার করে ভাগ করা হোস্টগুলিতে সমস্যাযুক্ত বলে মনে করা হয়। টিউটোরিয়াল চমৎকার, কিন্তু কেন আমি একটি কমান্ড দিয়ে আমার শেল থাকতে পারলে আমি দুইবার টাইপ করতে চাই?
Florenz Kley

আমি @ ফ্লোরেনজ ক্লে এর সমাধান ব্যবহার করে শেষ হয়ে গেছি। এটি আরও সামান্য সেটআপ প্রয়োজন, তবে কোডা বা টেক্সটওয়াগলারের মত GUI পাঠ্য সম্পাদক থেকে SSH- এ সক্ষম হওয়ার সমস্যাটি সমাধান করে। বিস্তারিত জানার জন্য যে সমাধান আমার মন্তব্য দেখুন।
T. Brian Jones
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.