কীভাবে কোনও এসএসএইচ ব্যবহারকারীকে কেবল এসএসএইচ-টানেলিংয়ের অনুমতি দেওয়ার জন্য সীমাবদ্ধ করবেন?


31

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

আমার লিনাক্স সার্ভারগুলি হ'ল উবুন্টু ১১.০৪ এবং ওপেনওআরটি।

উত্তর:


35

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

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


আমি এটি ব্যবহার করে দেখব: পি থেক্স!
ল্যান্সবায়নেস

2
কালেবের উত্তরে যুক্ত করতে আপনাকে ক্লায়েন্টকে শেল চালিত না করার কথাও বলতে হতে পারে। ওপেনশাল কমান্ড লাইনের সাহায্যে এটি এন-ফ্ল্যাগের সাহায্যে সম্পন্ন হয়। পিটিটিওয়াইতে অনুরূপ বিকল্প রয়েছে, তবে আমি সঠিক নামটি মনে করতে পারি না।
বিল বি

হুম, এটাই মূলত ক্লায়েন্ট সাইড সিকিউরিটি, না? আমি একটি সার্ভার সাইড সুরক্ষা সেটিংস অনুসন্ধান করছি, তবে আপনাকে ধন্যবাদ!
ল্যান্সবায়নেস

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

3
আপনি এই জাতীয় ব্যবহারকারী তৈরি useradd sshtunnel -m -d /home/sshtunnel -s /bin/true
fracz

14

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

আপনার মধ্যে নিম্নলিখিত রাখুন /etc/ssh/sshd_config:

Match User that-restricted-guy
  AllowTcpForwarding yes
  X11Forwarding no
  AllowAgentForwarding no
  ForceCommand /bin/false

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

আপনি যদি এটিকে আরও সীমাবদ্ধ করতে চান (যা একটি ভাল ধারণা) তবে আপনি নিম্নলিখিতগুলিও করতে পারেন:

Match User even-more-restricted-guy
  PermitOpen 127.0.0.1:12345
  X11Forwarding no
  AllowAgentForwarding no
  ForceCommand /bin/false

এটি even-more-restricted-guyকেবলমাত্র 127.0.0.1 টিসিপি পোর্ট 12345 (এটি আপনার এসএসএইচ সক্ষম মেশিনের মাধ্যমে দৃশ্যমান হিসাবে) কেবলমাত্র সংযোগগুলি ফরোয়ার্ড করার অনুমতি দেবে ।

ব্যবহারকারী যখন সাধারণত সংযুক্ত হন তিনি এখনই তাত্ক্ষণিকভাবে সংযোগ বিচ্ছিন্ন হয়ে পড়বেন কারণ /bin/falseকমান্ডটি ট্রিগার করা হবে যা 1 এর কোড সহ তাত্ক্ষণিকভাবে প্রস্থান করা ছাড়া কিছুই করে না যদি আপনি এটি এড়াতে চান এবং আপনার ফরোয়ার্ডিং সংযোগটি উন্মুক্ত রাখতে চান -Nতবে sshকমান্ডটিতে পতাকাটি যুক্ত করুন । এটি কোনও কমান্ড কার্যকর করার চেষ্টা করবে না তবুও টিসিপি ফরওয়ার্ডিং সেটআপ করার অনুমতি দেয়।

ফরোয়ার্ড কমান্ডের একটি উদাহরণ যা পরের সেটআপে কাজ করা উচিত:

ssh -L 12345:127.0.0.1:12345 -N even-more-restricted-guy@insert-your-machine

1
আমি উত্তরটি ক্যালবসের উত্তরের উন্নত সমাধান হিসাবে পুনরায় জমা দিয়েছি।
এফ

অবশ্যই। আমিও পরিষ্কার করে ফেলেছি। ভুল বোঝাবুঝির সমাধান দেখে ভাল Good শুভ রাত্রি.
জাকুজে

1

আপনার ssh এর সংস্করণটিকে সমর্থন করার পক্ষে যথেষ্ট নতুন এটি ধরে রেখে গ্রুপগুলি মিলে লোকেরা ssh এ কী করতে পারে তা আপনি নিয়ন্ত্রণ করতে পারেন (ওপেনশ 5.x +)।

মূলত, আমরা তাদের আচরণ যেন তারা SFTP ব্যবহারকারীদের ছিল, কিন্তু TCP ফরওয়ার্ডিং সাহায্য করে এবং ঐচ্ছিকরূপে গন্তব্যস্থল তারা ফরওয়ার্ড করতে পারে উল্লেখ করুন। আপনি যদি তাদের কোনও হোম ডিরেক্টরি দেন তবে এর অধীনে কোনও ডিরেক্টরি তৈরি না করে, তারা কোনও ফাইল স্থানান্তর করতে পারবেন না কারণ তাদের এটি করার অনুমতি থাকবে না।

Match Group                     nicepeople
    PubkeyAuthentication        yes
    PasswordAuthentication      yes
    PermitEmptyPasswords        no
    GatewayPorts                no
    ChrootDirectory             /opt/dummy_location/%u
    ForceCommand                internal-sftp
    AllowTcpForwarding          yes
        PermitOpen              192.168.0.8:22
        PermitOpen              192.168.0.5:8080
    # Or leave out the PermitOpen to allow forwarding to anywhere.
    HostbasedAuthentication     no
    RhostsRSAAuthentication     no
    AllowAgentForwarding        no
    Banner                      none

আপনি বিভিন্ন দলের আচরণ বা বিধিনিষেধ সরবরাহ করতে চান এমন প্রতিটি গ্রুপের জন্য এই ম্যাচ গ্রুপ ব্লকের পুনরাবৃত্তি করতে পারেন ।

আপনি আরও নিয়ন্ত্রণ করতে পারবেন এই ব্যক্তি iptables ব্যবহার করে নেটওয়ার্কে কোথায় যেতে পারে

/sbin/iptables -I OUTPUT -m owner --gid-owner 500 -j REJECT
/sbin/iptables -I OUTPUT -m owner --gid-owner 500 -m tcp -p tcp -d 192.168.0.0/24 -j ACCEPT

এটি গ্রুপটি "ছদ্মবেশী" জিআইডি ধরে নিয়েছে।

উপরের কিছু এসএসএস বিকল্পগুলি ওপেনশরের পুরানো সংস্করণগুলিতে উপলভ্য, তবে ম্যাচ গ্রুপ বিভাগের মধ্যে নয়। ওপেনএসএসএইচ ৪.x এবং এর আগের ম্যাচে ম্যাচ গ্রুপটি খুব সীমাবদ্ধ।

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