Bu el kitabını deneyin. Belki senin için çalışacaktır.
Nasıl yapılır
Vsftpd ve bir PAM kütüphanesini kurun
Düzenle /etc/vsftpd.conf
ve/etc/pam.d/vsftpd
Özel dizinlerle kullanıcı hesapları oluşturun (örneğin / var / www / içinde)
Dizinleri doğru olarak ayarlayın chmod
vechown
Sunucuya tam erişime sahip bir yönetici kullanıcı oluşturun
- Kur
vsftpd
(Çok Güvenli FTP Deamon) ve libpam-pwdfile
sanal kullanıcılar yaratmak
FTP kullanıcıları oluşturmak istedim ama yerel unix kullanıcıları eklemek istemedim (kabuk erişimi yok, ev dizini yok vb.). Bir PAM (Takılabilir Kimlik Doğrulama Modülleri) sanal kullanıcılar oluşturmanıza yardımcı olur.
sudo apt-get install vsftpd libpam-pwdfile
- Düzenle
vsftpd.conf
İlk önce orijinal dosyayı yedeklemeniz gerekir
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
O zaman yeni bir tane oluşturun
sudo vim /etc/vsftpd.conf
Aşağıdaki satırları kopyalayıp yapıştırın. Dosya SADECE bu satırları içermelidir:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- Sanal kullanıcıları kaydet
Kullanmakta olduğunuz bir kullanıcıyı kaydetmek için sunucunuz üzerinde çalıştığınızı htpasswd
varsayalım apache2
. Bir vsftpd
klasör oluşturun ve ardından konfigürasyon dosyalarını içine yerleştirin.
sudo mkdir /etc/vsftpd
sonra
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c henüz mevcut değilse dosyayı oluşturacağımız anlamına gelir -d MD5'e zorlarsa, ubuntu 12.04'te ihtiyacınız olur, her zaman kullanın
Komut bir şifre ister.
Daha sonra yeni kullanıcılar eklemek istiyorsanız:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- PAM'yi yapılandır
/etc/pam.d/vsftpd
Yine, orijinal dosyayı yedeklemeniz gerekir.
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
ve yeni bir tane oluşturun
sudo vim /etc/pam.d/vsftpd
Bu 2 satırı kopyalayıp yapıştırın (bu tek içerik olmalıdır). Sadece bu 2 çizgide ısrar ediyorum, orijinalleri saklamak için çok zaman harcadım ve sadece bunları ekledim.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- Kabuk erişimi olmayan yerel bir kullanıcı oluşturun
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
İd komutuyla oluşturulduğunu kontrol edebilirsiniz: id vsftpd. Check_shell parametresi nedeniyle kullanıcıyı / bin / false kabuğu ile tanımlıyoruz (kullanmasanız bile). Son kullanıcı FTP sunucusuna bağlandığında, haklar ve mülkiyet için kullanılırlar:
chmod
ve chown
.
- Tekrar başlat
vsftpd
Ortak yol tüm deamon gibi init.d kullanmak
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- Dizinler oluştur
Yapılandırmaya göre, tüm kullanıcılar bu klasöre yerleştirilecektir: / var / www / user1.
Bunları belirli haklara sahip olarak oluşturmanız gerekir: kök klasörü yazılabilir olamaz!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Not: kullanıcı, kök dizinde dosya veya klasör oluşturamaz.
Sahip vsftpd.conf
olduğumuzda chroot_local_user=YES
kullanıcı klasörünün dışında hiçbir şey göremez. Ona göre, sunucu şöyle görünüyor:
Yani sadece bu komutları çalıştırın:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
/var/www/user1
Klasör mevcut ZORUNDA veya bağlantı başarısız olur.
Şu anda FTP ile bağlanmayı deneyebilirsiniz
- Tüm sunucuya erişmek için bir Yönetici kullanıcısı oluşturun
Bir yönetici kullanıcı oluşturmak için yeni bir kullanıcıyı kaydetmemiz gerekir htpasswd
.
Bunu yapmadan önce /etc/ftpusers
, ftp ile bağlanmasına izin verilmeyen belirli kullanıcıları tanımlayan dosyayı kontrol etmenizi öneririm . Sanırım sadece yerel kullanıcılar için değil, sanal kullanıcılar için değil, sadece bu dosyada yer alan bir ismi seçmemeniz durumunda.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Şimdi yeni bir satır eklememiz gerekiyor /etc/vsftpd.conf
chroot_list_enable=YES
Bu, kullanıcılarınızın klasörlerine (bir hapishane olarak) yerleştirileceği anlamına gelir / etc / içindeki EXCEPT kullanıcıları
vsftpd.chroot_list
Hadi bu dosyayı oluşturalım ve kullanıcılarımızı ekleyelim, dosya “theadmin” içeren basit bir satır. Her satıra bir kullanıcı ekleyin. Bu, bir /var/www/theadmin
klasör oluşturmanıza gerek yok , kullanıcı giriş yapıp başlayacaktır /home/vsftpd
.
Sunucuyu yeniden başlatın ve bitirdiniz!