SFTP उपयोगकर्ता बनाना और CentOS पर चेरोट करने के लिए जिलेटिंग - उपयोगकर्ता प्रमाणीकरण त्रुटि


18

मुझे डिजिटल ओशन के साथ एक CentOs रिलीज़ 6.4 मिला है और वह SFTP उपयोगकर्ताओं को सफलतापूर्वक बनाना और उन्हें उपयोगकर्ता के अपने चेरोट होम डाइरेक्टरी में जेल करना चाहेगा, लेकिन मुझे डर है कि मैं इसमें गड़बड़ कर रहा हूं।

मैंने बहुत सी चीजों की कोशिश की है, यहाँ तक कि बहुत से लोग वास्तव में यहाँ सूचीबद्ध करने के लिए बहुत गलत हैं या बहुत ज्यादा समझ में नहीं आएंगे, लेकिन जो मुझे लगता है कि सही प्रक्रिया होनी चाहिए और जो मैंने कोशिश की है वह है: -

इसके लिए एक समूह बनाएँ sftp: -

groupadd sftp

एक उपयोगकर्ता बनाएँ और उनके घर निर्देशिका सेट करें: -

useradd -d /var/www/vhosts/domain.com dummyuser

उपयोगकर्ता के लिए एक पासवर्ड सेट करें: -

passwd dummyuser

उपयोगकर्ता के समूह को 'sftp' में बदलें: -

usermod -g sftp dummyuser

उपयोगकर्ता के शेल को इसके लिए सेट करें /bin/false: -

usermod -s /bin/false dummyuser

sshd_config( /etc/ssh/) में सबसिस्टम संपादित करें : -

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

sshd_configफ़ाइल के नीचे करने के लिए निम्नलिखित जोड़ें : -

Match group sftp
    X11Forwarding no
    ChrootDirectory %h
    AllowTcpForwarding no
    ForceCommand internal-sftp

मैं सुनिश्चित करता हूं कि निम्नलिखित सभी निर्देशिकाएं हैं root:root: -

/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com

यदि मैं तब उपयोगकर्ता के साथ dummyuser(WinSCP में) SFTP के माध्यम से सर्वर में लॉग इन करने की कोशिश करता हूं, तो मुझे निम्नलिखित मिलते हैं: -

Authentication log (see session log for details):
Using username "dummyuser".

Authentication failed.

मैं जो कुछ भी हासिल करना चाहता हूं वह एक उपयोगकर्ता को उनकी होम डायरेक्टरी के लिए मिल रहा है। मैं भी vsftpd सेट अप और कॉन्फ़िगर किया गया है। उपयोगकर्ता ठीक से लॉग इन कर सकते हैं, लेकिन पूरे सर्वर तक पहुंच होगी - मैं अभी काम करने के लिए जेलिंग प्राप्त करने में कामयाब नहीं हुआ हूं।

संपादित करें

उल्लेख करना भूल गया, फिर मैंने sshdभी पुनः आरंभ किया: -

service sshd restart

जब WinSCP में त्रुटि उत्पन्न होती है, तो इस पर उनका सहायता पृष्ठ यहाँ है

लॉग परिणाम

/var/log/secure

मैंने वास्तविक सर्वर का नाम बदल दिया server_name

 Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
 Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
 Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
 Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser

क्या आपने पुनः आरंभ किया sshd? सर्वर पर लॉग फ़ाइलों में क्या है?
फकर

हाँ, मैंने किया, क्षमा करें कि मैं अपने प्रश्न के अंत में इसे जोड़ना भूल गया (अब इसमें शामिल होगा)। मुझे कौन सी लॉग फ़ाइल (और स्थान) देखनी चाहिए क्योंकि मैं अब तक 'सत्र लॉग' फ़ाइल खोजने में विफल रहा हूं? धन्यवाद।
जिगोजाको

आप पर एक नज़र रखना चाहते हैं /var/log/secure
फकर

बहुत बढ़िया, धन्यवाद - यह मदद करता है (लॉग प्रविष्टियों के साथ सवाल अपडेट करना)।
जिगोजाको

घातक: खराब स्वामित्व या चेरोट निर्देशिका घटक के लिए मोड "/ var / www / vhosts /" कुछ ऐसा है जैसे यह मुझे संदेह है लेकिन vhostsहै root:root
ज़िगोजाको

जवाबों:


14

यह एक सामान्य नुकसान है:
चेरोट घर तक सभी फ़ोल्डर्स का स्वामित्व होना चाहिए और rootउपयोगकर्ता द्वारा केवल लेखन योग्य होना चाहिए ।
फ़ोल्डर समूह योग्य नहीं हो सकते हैं - भले ही समूह हो root


4
मैंने बस इसे आसानी से जांचने का एक तरकीब सीखा है:namei -l /var/www/vhosts
घड़ी की कल की

5

मैंने पाया और सफलतापूर्वक CentOS 6.5: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/ पर sftp को कॉन्फ़िगर किया

Sshd config संपादित करें:

vim / etc / ssh / sshd_config

#Subsystem      sftp    /usr/libexec/openssh/sftp-server (comment out the default with "#")

add:

Subsystem sftp internal-sftp
Match Group sftp-only
ChrootDirectory /var/www/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

बाहर निकलें और सहेजें।

फिर:

mkdir /etc/skel2
groupadd sftp-only
getent group |grep sftp-only  (take note the GID (Group ID).  Here, in my example it's 500)

"Testuser" नामक एक नए उपयोगकर्ता के लिए (GID 500 के साथ sftp- केवल समूह का सदस्य):

useradd --base-dir /var/www --gid 500 --skel /etc/skel2 --create-home --shell /sbin/nologin testuser

(मैं खाली / etc / skel2 का उपयोग करता हूँ इसलिए no .bashrc आदि को CentOS द्वारा डिफ़ॉल्ट रूप से कॉपी किया जाता है)

mkdir -p /var/www/testuser/home/testuser

chown root:sftp-only /var/www/testuser
chmod 750 /var/www/testuser

chown root:root /var/www/testuser/home
chmod 755 /var/www/testuser/home

chown testuser:sftp-only /var/www/testuser/home/testuser
chmod 770 /var/www/testuser/home/testuser

इसलिए इस उदाहरण में, मैंने वेबसाइटों को प्रबंधित करने वाली बाहरी परामर्श फर्मों को सुरक्षित पहुंच प्रदान करने के लिए इसे बनाया। आप यह सब करने के बाद कर सकते हैं:

mkdir /var/www/testuser/home/testuser/www.somesite.com
chown testuser:apache /var/www/testuser/home/testuser/www.somesite.com
chmod xxx (permissions to the website as needed, usually 750 so apache would get read access)

एक जरूरत के रूप में यह सब ठीक धुन सकता है।

उम्मीद है कि इस मदद की!

गाइ बिसवर्ट इनगेटग्रेशन इंक। http://www.ingtegration.com


सर्वर दोष में आपका स्वागत है! जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
मसलोगेह

1
चूँकि आपने sshd config को बदल दिया है, मेरा सुझाव है कि आप इसे पुनः आरंभ करेंगे:service sshd restart
Lo .c
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.