FTP erişimini sadece / var / www ile vsftpd ile sınırlayın


41

Linux'umda ftp sunucusu olarak vsftpd kullanıyorum (rasbian), makineye root kullanıcısı olarak giriş yapıyorum.

Ben sadece / var / www kullanarak hala kilitli olmak istiyorum, vsftpd conf bunu nasıl yapılandırabilirim?


1
İçindeki chroot seçenekleri kontrol edin vsftpd.confve homedir olarak ayarlanmış ayrı bir kullanıcı oluşturun /var/www.
jirib

Yanıtlar:


65

Yöntem 1: kullanıcının giriş dizini değiştirme

Aşağıdaki satırın bulunduğundan emin olun

chroot_local_user=YES

/var/www/Mevcut kullanıcı için değişiklik yapmak istiyorsanız, kullanıcı HOME Dizini olarak ayarlayın , sonra şunları kullanabilirsiniz:

usermod --home /var/www/ username

sonra gerekli izni ayarlamak /var/www/

Yöntem 2: Kullanım user_sub_token

Kullanıcının Giriş dizinini değiştirmek istemiyorsanız, şunları kullanabilirsiniz:

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

Hakkında user_sub_token:

Bir şablonu temel alarak her sanal kullanıcı için otomatik olarak bir ev dizini oluşturun. Örneğin, guest_username ile belirtilen gerçek kullanıcının giriş dizini / ftphome / $ USER ise ve user_sub_token $ USER değerine ayarlanmışsa, sanal kullanıcı testi giriş yaptığında (genellikle chroot () 'ed) yazacaktır. / ftphome / test dizini. Bu seçenek ayrıca local_root user_sub_token içeriyorsa etkili olur.

Dizin oluşturun ve izinleri ayarlayın:

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

Bir kez yeniden vsftpdbaşlatıp kurulumunuzu test edin.

Örnek başarı çıktısı:

[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
Peşinde bir sonek sahip olabileceği Not $USERiçin local_rootgibi, /home/$USER/ftp(kullanıcıların chroot hangi ftpevlerine dir alt dizini).
Benoit Duffez 17:15

Kullanıcı girişi yaparak giriş yapılabilen bir klasöre chrooting yapılmasıyla ilgili vsftp SSS bölümündeki notlara dikkat edin local_root.
Thomas Urban,

"Chroot_local_user = YES" varlığını nerede doğrulayabilirim?
Bir

4

Bunu yapabilirsiniz:

usermod --home /var/www/ username

5
Bir veya iki satırlık cevaplar genellikle düşük kalite olarak kabul edilir. Lütfen önerinizin ne yaptığına dair bir açıklama yaparak, önerinizin sorunu gerçekten çözme yeteneğini öneren bağlantılar veya belgelerle birlikte yayınınızı genişletmeyi düşünün.
HalosGhost

2

Rahul Patil'in önerisini yukarıda kullandım:

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

Ancak neden yalnızca bir kullanıcıyla oturum açabildiğimi anlayamadım. Daha sonra /home/$USER/www-datayazma erişimi olan bir kök dizine (bu durumda ) chroot yapamayacağımızı öğrendim . Böylece yazma erişimini şu şekilde kaldırırım:

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

NOT:$USER kullanıcınızla değiştirin .


1

İçindeki chrootseçenekleri kontrol edin vsftpd.confve homedir olarak ayarlanmış ayrı bir kullanıcı oluşturun /var/www.


Bunun farkındayım, ayrı bir kullanıcı yaratacağım. Sorumu yeniden tasarlamalıyım, o zaman bir kullanıcıyı yalnızca
Badr Hari

OpenSSH'den sftp kullanın. İnternal-sftp için adam sshd_config, ardından 'ForceCommand' ve 'ChrootDirectory' bölümüne bakın. Daha yeni OpenSSH, sftp sunucusunun belirli bir yola geçmesi için bir seçenek de ekledi, bu yüzden ChrootDirectory ile birlikte şunları yapabilirsiniz: chroot -> / path -> destination -> 'onlyhere' = / chroot / onlyhere
jirib
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.