ওপেনএসএইচ 'ইন্টার্নাল-এসএফটিপি' এর মতো এসসিপি ছাড়া আর কি?


16

আমি ডেবিয়ান স্থিতিশীল চালাচ্ছি এবং আমি আমার 'স্পাফোনলি' গ্রুপের ব্যবহারকারীদের জন্য নিম্নলিখিত পরিবেশটি প্রতিষ্ঠা করতে চাই:

  • জেলে
  • এসএফটিপি দিয়ে স্থানান্তর করতে পারে
  • এসসিপি দিয়ে স্থানান্তর করতে পারেন
  • এসএসএইচের সাথে ইন্টারেক্টিভ লগইন করতে পারবেন না

আমার পরীক্ষা-নিরীক্ষা থেকে মনে হয় যে sshd_config এর নীচের স্তবনাটি আমাকে সেখানে 90% পেয়েছে:

Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

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

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

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


1
ক্লায়েন্টরা কি কোনও এসএসএইচ কী ব্যবহার করে সংযুক্ত হচ্ছে, বা তারা পাসওয়ার্ড ব্যবহার করছে? যদি এটি কোনও কীফাইল হয় তবে তারা কী করতে পারে তা সীমাবদ্ধ করা সম্ভব।
জেনি ডি

তারা পাসওয়ার্ডের সাথে সংযুক্ত হচ্ছে।
ব্রায়ানজকোহেন

উত্তর:


3

আরএসএসে একবার দেখুন যা একটি বিকল্প শেল যা কোনও সিস্টেমে সীমাবদ্ধ অ্যাক্সেসের অনুমতি দেয়।

ssh (1) এর মাধ্যমে হোস্টের সীমাবদ্ধ অ্যাক্সেস সরবরাহের জন্য আরএসএস একটি সীমাবদ্ধ শেল, যার ব্যবহারকারীর শেলটি আরএসএসে কনফিগার করা হয়েছে তার এক বা একাধিক কমান্ড (গুলি) স্কিপ (1), এসফ্টপ (1) সিভিএস (1) ব্যবহার করতে পারে ), rdist (1), এবং rsync (1) এবং কেবলমাত্র সেই আদেশগুলি।

আরএসএসসিএনএফ ফাইল ব্যবহার করে প্রতি-ব্যবহারকারী বা সিস্টেমের প্রশস্ত ভিত্তিতে কোন আদেশগুলি ব্যবহার করা যাবে তা আপনি কনফিগার করতে পারেন

বিকল্পভাবে আপনি যা চান তা করতে scponly ব্যবহার করতে পারেন। এটি ssh স্যুটে একটি মোড়ক হিসাবে কাজ করে এবং ফাইল স্থানান্তরের অনুমতি দেয় তবে শেল অ্যাক্সেসের অনুমতি দেয় না।


2

Ssh এর মাধ্যমে আপনার কি এটি করা দরকার?

যদি আপনি তাদের শেলটি এতে সেট করার চেষ্টা করতে পারেন:

/usr/libexec/openssh/sftp-server

এবং নিশ্চিত করুন যে আপনি উপরেরগুলিকে / ইত্যাদি / শেলগুলিতে যুক্ত করেছেন

আপনি যদি অন্তর্নির্মিত অ্যাকাউন্টগুলি ব্যবহার থেকে ডিকুয়াল করতে চান তবে আপনি proftpd সেটআপ করতে পারেন

আমি proftpd ব্যবহার করে একটি সুরক্ষিত এসএফটিপি সেটআপ করি। এর মতো সংকলিত proftpd:

./configure --prefix = / usr --sysconfdir = / etc - উইথ-মডিউলগুলি = mod_sftp

নীচে এই নিবন্ধটি ব্যবহার করতে পারেন, এবং গুগলে আরও কীভাবে এটি সেট আপ করতে হবে:

http://tutorialgenius.blogspot.com/2012/02/linux-installing-and-configuring.html


2

আমি আশঙ্কা করছি ওপেনএসএইচ-তে অনুরূপ সহজ বা নির্ভরযোগ্য কিছুই নেই, যেহেতু আপনি দেখেছেন যে একটি বিল্ট-ইন এসএফটিপি সার্ভার রয়েছে, তবে কোনও অন্তর্নির্মিত এসসিপি সার্ভার নেই।

একটি সতর্কতা: ভিন্স বার্কের দেওয়া পরামর্শ বেশ কয়েকটি কারণে খারাপ:

  1. স্টার্টআপ ফাইলগুলির সাথে শেলের আচরণটি পরিবেশের ভেরিয়েবল দ্বারা প্রভাবিত হতে পারে, যা এসএসএইচ সার্ভারের কনফিগারেশনের উপর নির্ভর করে দূরবর্তীভাবে সেট করতে পারে।
  2. ব্যবহারকারী কেবল ssh / bin / bash চালাতে পারেন এবং একটি শেল পেতে পারেন। এটির কোনও টিটি নেই এবং এটি ব্যবহারে অসুবিধা হবে তবে কী ... তিনি চালাতে পারেন এমন অন্যান্য সমস্ত প্রোগ্রামের কথা উল্লেখ না করে আপনি সম্ভবত এটি চান না।
  3. ব্যবহারকারী কেবল "ssh হোস্ট আরএম -f .bash_profile" করতে পারলে .bash_profile এর অনুমতিগুলি পরিবর্তন করা খুব ভাল কাজ করে; হোম ডিরেক্টরি অনুমতি সম্পর্কে কিছুই উল্লেখ করা হয়নি।

... ইত্যাদি। এই ধরণের পদ্ধতির উপায় খুব ভঙ্গুর।


0

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

জেলকিট: https://olivier.sessink.nl/jailkit/

এতে কারাগারে বাইনারি এবং লাইব্রেরি অনুলিপি করা এবং কারাগারের অভ্যন্তর থেকে ওএসে লগিং স্থাপন করা সহজতর করার জন্য সরঞ্জামগুলির একটি সংগ্রহ রয়েছে। আমি এটি sftp / scp / rsync- শুধুমাত্র ক্রোগট তৈরি করতে ব্যবহার করেছি।

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


-1

এই সার্ভারসাইডটি কীভাবে সম্পাদন করা যায় সে সম্পর্কে এখানে একটি কৌশল। ব্যবহারকারীদের শেলটি সেট করুন, বলুন:

usermod -S /bin/bash [username]

এখন নিম্নলিখিত পংক্তির সাহায্যে তাদের বাড়ির একটি '.বাশ_ প্রোফাইল' তৈরি করুন:

[ -n "$PS1" ] && exit

এটি অ-ইন্টারেক্টিভ সেশনগুলি ('স্ক্রিপ'-এর মতো) চালিয়ে যাওয়ার কারণ ঘটায়। তবে, যদি তারা একটি 'ssh' লগইন চেষ্টা করে, তবে 'প্রস্থান' বলা হবে এবং সংযোগটি বন্ধ রয়েছে।

নিশ্চিত করুন যে তারা তাদের হোম ডিরেক্টরিতে 'নতুন' .bash_profile 'চালাতে পারবেন না!

chown root:root .bash_profile

আশা করি এইটি কাজ করবে!


এই পদ্ধতির ফলে কারাগারের প্রয়োজনীয়তা আমলে নেওয়া হবে বলে মনে হয় না।
bianjcohen

হ্যাঁ, দুর্ভাগ্যক্রমে আপনাকে 'scp' সাইডের জন্য একটি ম্যানুয়াল ক্রুট পরিবেশ তৈরি করতে হবে, sshd_config-তে প্রদত্ত chroot ডিরেক্টরিটি দিয়ে ওভারল্যাপিং করতে হবে এবং আপনি সীমাবদ্ধ রাখতে চান এমন প্রতিটি ব্যবহারকারীর জন্য উপরের কৌশলটি সম্পাদন করতে হবে। 'Scp' অভ্যন্তরীণ sftp সার্ভারের সাথে কাজ করে না।
ভিন্স বার্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.