এসএফটিপি অনুমতি দিন কিন্তু এসএসএইচকে অস্বীকার করবেন?


94

আমি কয়েক বন্ধু এবং ছোট ক্লায়েন্টদের জন্য একটি খুব সামান্য হোস্টিং সংস্থা শুরু করছি, বড় কিছু নয়।

আমি আমার "ক্লায়েন্টদের" সার্ভারে তাদের ফাইলগুলি পরিচালনা করার অধিকার দিতে চাই। আমি এফটিপি ঘৃণা করি কারণ এটি সুরক্ষিত নয় এবং এটি আমার মতে অপ্রচলিত।

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

সুতরাং আমি সার্ভারে একটি এফটিপি পরিষেবা ইনস্টল করতে হবে না এবং সবকিছু দুর্দান্ত হবে!

উত্তর:


121

সংস্করণ 4.9 দিয়ে শুরু করে ওপেনএসএইচএইচ (সেন্টোস 5.x এ উপলব্ধ নয় তবে ক্রুটডাইরেক্টরি বৈশিষ্ট্যটি ব্যাকপোর্ট করা হয়েছিল) এর একটি internal-sftpসাবসিস্টেম রয়েছে:

Subsystem sftp internal-sftp

এবং তারপরে অন্যান্য ব্যবহারগুলি অবরুদ্ধ করুন:

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

আপনার ব্যবহারকারীদের দলে যোগ করুন sftponly। ক্রুটের /কারণে আপনাকে ব্যবহারকারীর হোম ডিরেক্টরিতে পরিবর্তন করতে হবে এবং এর /home/userমালিকানাধীন হওয়া উচিত root। আমি /bin/falseব্যবহারকারীর শেল হিসাবে সেট করব ।


কি দারুন! সুপার-সন্ত্রস্ত! আমি এটি পরীক্ষা করব এবং যাচাই করতে এখানে ফিরে আসব। অনেক ধন্যবাদ!
টমি বি।

ক্রুটডাইরেক্টরি জিনিসটির জন্য +1!
কাইল হজসন

1
এটি করার পরে, আমার sftponly ব্যবহারকারী ssh দ্বারা অ্যাক্সেস করতে পারবেন না এবং sftp দ্বারা সংযোগ করতে সক্ষম। তবে এটি কোনও ফাইলই দেখতে পাচ্ছে না! তবুও এই ফাইলগুলির এই ব্যবহারকারীর জন্য অনুমতি রয়েছে। :-(
এমিলিও নিকোলস

3
আপনি যদি এটি করতে চান এবং ইতিমধ্যে বিদ্যমান "/ usr / lib / openssh / sftp-server" দিয়ে আপনার sshd_config এ একটি প্রবেশিকা খুঁজে পেতে চান, তবে এখানে চেক করুন: সার্ভারফল্ট / প্রশ্ন / /60০১60০/ - অভ্যন্তরীণ- এসএফটিপি আরও নতুন , আরও ভাল এবং সহজ "
Xosofox

19

এটি কী করে একটি শেল স্ক্যাপোনালি রয়েছে । এটি chroot খুব করতে পারেন ।


আপনার যদি এসএফটিপি ব্যবহারকারী এবং এসএসএইচ ব্যবহারকারী উভয়েরই প্রয়োজন হয় তবে এটি দুর্দান্ত হবে। আপনি কেবল এসএফটিপি-তে সীমাবদ্ধ তাদের জন্য শেলটি / etc / passwd এ প্রতিস্থাপন করুন।
ড্রাগগস

4

চেকআউট আরএসএস যা একটি নকল শেল যা এসফ্টপিকে অনুমতি দেয় তবে এসএসএস অস্বীকার করে

আরএসএসএইচ সম্পর্কে আরও

http://www.pizzashack.org/rssh/

RPM গুলি

http://pkgs.repoforge.org/rssh/

আপনি ssh, scp ইত্যাদির মতো বিভিন্ন আচরণের / অস্বীকার করার জন্য আরএসএস কনফিগার করতে পারেন


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

2

আপনি / ইত্যাদি / পাসডাব্লুটি সংশোধন করতে পারেন এবং সেই ব্যবহারকারীকে একটি নকল শেল দিতে পারেন যাতে সে ssh ব্যবহার করতে না পারে।


11
আপনি এটি পরীক্ষা করেছেন?
splattne

8
আমি যখন শেলটি /bin/falsessh বা sftp এর কাজগুলিতে না সেট করার চেষ্টা করি
ব্র্যাড ম্যাস

2
/ বিন / মিথ্যা হ'ল যে কোনও ধরণের লগইনকে অস্বীকার করা, এটি এখানে সঠিক পদ্ধতির নয়। রব ওয়েটারসের গৃহীত উত্তর হ'ল আপনার কীভাবে ব্যবহারকারীদের কেবল এসএফটিপি-তে সীমাবদ্ধ করা উচিত, শেল পরিবর্তন করে নয়। আপনি যদি শেলটি পরিবর্তন করতে চান তবে @ স্টোন এর অ্যাস্নওয়ারটি একটি ভাল ধারণা হবে।
jwbensley

1
সুতরাং / বিন / বাশ গ্রহণযোগ্য নয় এবং / বিন / মিথ্যা বা / এসবিন / নোলজিন অ্যাক্সেস অস্বীকার করে এই ধারণা করে কি শেল ব্যবহার করা উচিত?
পুত্নিক

1

আমি উল্লিখিত হিসাবে / শুল্ক / মিথ্যা হিসাবে ব্যবহারকারীর শেলটি নির্দিষ্ট করার পদ্ধতিটি ব্যবহার করি। তবে, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে / বিন / শেলটি / ইত্যাদি / শেলগুলিতে রয়েছে in তারপরে এটি ssh = no ftp = ঠিক আছে works

আমি vsftpd ব্যবহার করি এবং এই
chroot_local_user = YES কে /etc/vsftpd/vsftpd.conf এ যুক্ত করি যাতে ftp-ers তাদের অন্য কোনও তারিখ দেখতে না পারে।

এই সাধারণ পরিবর্তনের সুবিধা প্রতিটি ব্যবহারকারীর জন্য ssh কনফিগার করার জন্য কোনও বিরক্তিকর কনফিগারেশন নয়।


1

লাইনটি খুঁজে পেতে UsePAM yesএবং মন্তব্য করতে ভুলবেন না :

#UsePAM yes

এটি অক্ষম না করে আপনার এসএসএইচ সার্ভারটি পুনরায় লোড / পুনঃসূচনা করার সময় ক্রাশ হবে। যেহেতু আপনার প্যাম এর অভিনব ফাংশন প্রয়োজন হয় না, এটি ঠিক আছে।


0

কিছু নির্বাচিত ব্যবহারকারীর জন্য শুধুমাত্র SFTP সক্ষম করতে SSH কনফিগার করার পদ্ধতি একটি ভাল ধারণা এবং এটি সঠিকভাবে কাজ, আপনি ইনস্টল পারেন প্রদত্ত scponlyবা rssh

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

scponly জেল সেটআপের ক্ষেত্রে লগইন প্রত্যাখ্যানের সর্বদা উপস্থিত সমস্যার জন্য কনফিগারেশনের একটি গভীর বোঝাপড়া দরকার।

জেল সঠিকভাবে কাজ করার সাথে "ftp" কার্যকারিতা অনুমোদনের সোজা উপায়, নিরাপদ লেনদেন এবং লগইনের জন্য এসএসএল / টিএলএস সমর্থন হ'ল "পুরানো-তবে-পরিশ্রমী" ভিএসএফটিপিডি ব্যবহার করুন, যা দ্রুত এবং পরিষ্কারভাবে ইনস্টল করে এবং প্রয়োজনীয়ভাবে সমস্ত কনফিগারেশনে প্রস্তাব দেয় এবং শেষ তবে কমপক্ষে: এটি কাজ করে!

তথ্যের।


0

দুর্ভাগ্যক্রমে সমস্ত উত্তর অত্যন্ত বিভ্রান্তিকর: দয়া করে নিম্নলিখিতটি করুন:

  1. প্রথমে sftp ব্যবহারকারী এবং গোষ্ঠী sftp তৈরি করুন

  2. এসএফটিপি ফাইলগুলির জন্য রুট হিসাবে পৃথক ডিরেক্টরি তৈরি করুন: sudo mkdir -p /home/sftpdir

  3. সুরক্ষার কারণে র্যান্ডম পোর্টে এসএসএইচপি অনুমতি দেয় এমন একটি পরীক্ষিত sshd_config ফাইল রয়েছে যা 22 পোর্টের উপরে এসএসএইচকে অনুমতি দেয়
#$OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $
# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

Port 38250 Port 22 PasswordAuthentication no 
ChallengeResponseAuthentication no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'. UsePAM yes X11Forwarding yes PrintMotd no
# Allow client to pass locale environment variables AcceptEnv LANG LC_*
#DenyUsers sftpuser

# override default of no subsystems Subsystem       sftp    internal-sftp 
Match group sftp 
Match User sftpuser 
Match LocalPort 38250 
ForceCommand internal-sftp 
ChrootDirectory /home/sftpdir 
PermitTunnel no 
AllowAgentForwarding no 
X11Forwarding no    
AllowTcpForwarding no
  1. পুনঃসূচনা করুন এবং sshd পরিষেবার স্থিতি পরীক্ষা করুন

    sudo সার্ভিস sshd পুনরায় আরম্ভ করুন

    পরিষেবা sshd অবস্থা

  2. একটি শেল ফাইল তৈরি করুন। একটি বিজ্ঞপ্তি বার্তা প্রতিধ্বনিত করতে সম্পাদন যুক্ত করুন

    sudo টাচ / বিন / sftponly প্রতিধ্বনি- # '! sudo tee -a / bin / sftponly

  3. ফাঁসির অনুমতিগুলি দিন এবং শেল ফাইলটিতে যুক্ত করুন

    sudo chmod a + x / bin / sftponly প্রতিধ্বনি "/ বিন / sftponly" | সুডো টি-এ / ইত্যাদি / শেল

  4. শেষ পর্যন্ত পরীক্ষা করুন এবং আপনি সংযোগ করতে সক্ষম হবেন না।

  5. এসএসএইচ কী এবং বেসিক ভার্বোসিটি সহ এসএফটিপি ক্লায়েন্ট ব্যবহার করার জন্য একটি টেম্পলেট:

    sftp -v -oPort = $ RANDOM_PORT -i ~ / .ssh / $ SSH_KEY.pem sftpuser @ O হোস্ট

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