एफ़टीपी एक्सेस को केवल / var / www के साथ vsftpd तक सीमित करें


41

मैं अपने लिनक्स (rasbian) पर ftp सर्वर के रूप में vsftpd चला रहा हूं, मैं मशीन में रूट उपयोगकर्ता के रूप में लॉग इन करता हूं।

मैं अभी भी केवल / var / www का उपयोग करने के लिए बंद रहना चाहता हूं, मैं इसे पूरा करने के लिए vsftpd कॉन्फिग को कैसे कॉन्फ़िगर कर सकता हूं?


1
चेक chroot में विकल्प vsftpd.confऔर यह जिसका homedir के लिए निर्धारित है के लिए एक अलग उपयोगकर्ता बनाने के /var/www
जिरीब

जवाबों:


65

विधि 1: उपयोगकर्ता की होम डायरेक्टरी बदलना

सुनिश्चित करें कि निम्न पंक्ति मौजूद है

chroot_local_user=YES

उपयोगकर्ता होम निर्देशिका को सेट करें /var/www/, यदि आप मौजूदा उपयोगकर्ता के लिए बदलना चाहते हैं तो आप उपयोग कर सकते हैं:

usermod --home /var/www/ username

फिर आवश्यक अनुमति सेट करें /var/www/

विधि 2: का उपयोग करें user_sub_token

यदि आप उपयोगकर्ता की होम निर्देशिका नहीं बदलना चाहते हैं तो आप इसका उपयोग कर सकते हैं:

chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER

के बारे में user_sub_token:

टेम्पलेट के आधार पर प्रत्येक वर्चुअल उपयोगकर्ता के लिए स्वचालित रूप से एक होम डायरेक्टरी जनरेट करें। उदाहरण के लिए, यदि guest_username के माध्यम से निर्दिष्ट वास्तविक उपयोगकर्ता की होम निर्देशिका / ftphome / $ USER है, और user_sub_token को USER पर सेट किया गया है, तो जब वर्चुअल उपयोगकर्ता परीक्षण लॉग इन करेगा, तो वह समाप्त हो जाएगा (आमतौर पर chroot () 'ed) निर्देशिका / फ़िफ़ोम / परीक्षण। यह विकल्प भी प्रभावित होता है अगर local_root में user_sub_token हो।

निर्देशिका बनाएं और अनुमतियाँ सेट करें:

mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test

एक बार पुनरारंभ करें vsftpdऔर अपने सेटअप का परीक्षण करें।

नमूना सफलता आउटपुट:

[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts? 
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r--    1 787      787            24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.

2
ध्यान दें कि आपके पास एक प्रत्यय हो सकता $USERहै local_root, जैसे कि /home/$USER/ftp(जो कि उपयोगकर्ताओं को ftpउनके होम डायर की उपनिर्देशिका में बदल देगा)।
बेनोइट डफेज़

उपयोगकर्ता लॉगिंग द्वारा फ़ोल्डर योग्य करने के लिए फ़ोल्डर को क्रियोटिंग करने के संबंध में vsftp FAQ में टिप्पणी करें। यह local_rootउपयोगकर्ता के वास्तविक होम डायरेक्टरी में डालने के मामले में अत्यधिक संभावित है ।
थॉमस अर्बन

यह पुष्टि करने के लिए कि "chroot_local_user = YES" कहां मौजूद है?
एक

4

तुम यह केर सकते हो:

usermod --home /var/www/ username

5
एक से दो पंक्ति के उत्तर अक्सर कम गुणवत्ता के माने जाते हैं। कृपया अपनी पोस्ट को विस्तार से विचार करें कि लिंक या दस्तावेज़ीकरण के साथ आपकी सिफारिश क्या करती है जो आपकी सिफारिश को वास्तव में समस्या को हल करने की क्षमता का सुझाव देती है।
हेलोसॉस्ट

2

मैंने ऊपर राहुल पाटिल के सुझाव का उपयोग किया:

chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER

लेकिन मुझे समझ में नहीं आ रहा था कि मैं केवल एक उपयोगकर्ता के साथ लॉग इन करने में सक्षम क्यों था। तब मैंने पाया कि हम एक रूट डायरेक्टरी (इस मामले के लिए /home/$USER/www-data) को चाउरॉट नहीं कर सकते, जिसकी राइट एक्सेस है। इसलिए मैं इसके साथ लिखने की पहुंच हटा देता हूं:

# chmod a-w /home/$USER/www-data

नोट:$USER अपने उपयोगकर्ता के साथ बदलें ।


1

चेक chrootमें विकल्प vsftpd.confऔर यह जिसका homedir के लिए निर्धारित है के लिए एक अलग उपयोगकर्ता बनाने के /var/www


मुझे इस बात की अच्छी जानकारी है कि मैं एक अलग उपयोगकर्ता बनाऊंगा। मुझे शायद अपने प्रश्न को फिर से डिज़ाइन करना चाहिए फिर मैं एक उपयोगकर्ता को केवल
Badr Hari

OpenSSH से sftp का उपयोग करें। आंतरिक sftp के लिए आदमी sshd_config देखें, फिर 'ForceCommand' और 'ChrootDirection' देखें। नए OpenSSH ने एक विशिष्ट पथ पर स्विच करने के लिए sftp-server के लिए विकल्प भी जोड़ा, इसलिए ChrootDirectory के साथ संयोजन में आप यह कर सकते हैं: chroot -> / path -> गंतव्य -> ​​'onlyhere' = / chroot / only
jirib
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.