Temel Ubuntu FTP Sunucusu


33

Ubuntu Sunucum üzerine basit bir FTP sunucusu kurmak istiyorum. VSFTPD ile oynuyordum, ancak sunucuyu dizinler oluşturmam ve dosyaları kopyalamama izin vermesinde sorun yaşıyorum. Sistemi yerel kullanıcılara izin verecek şekilde ayarladım, ancak görünen o ki, dizin oluşturma erişimim olduğu anlamına gelmiyor. Bu, FTP sunucusunu uygun şekilde yapılandırmak için Ubuntu sunucusu kurulumunda daha iyi bir şekilde topraklanmam gereken bir örnek olabilir. Son amaç, dosyaları dağıtım için yerel dev klasörümden www klasörüme taşıyabilmektir. Dizinlerin de hareket edebilmesi gerekir. Herhangi bir yardım çok takdir edilecektir.


Hareketli dosya ve klasörleri yerel dilde www klasörüne çevirdiniz - tüm bunları aynı makinede mi yoksa farklı makinelerde mi yapıyorsunuz?
Marco Ceppi

Ayrıca tamamen VSFTPD ile satılıyor musunuz? Yoksa pureftp gibi diğer FTP yazılımları ile ilgilenir misiniz?
Marco Ceppi

Yerel dev tamamen ayrı bir makinedir. Dosyaları FTP üzerinden web sunucularına taşımaya aşina olduğumu biliyorum, belki de daha iyi bir yol var.
JPrescottSanders

VSFTPD'de satılmam, ilk önce googling yaparken bulduğum ilk şeydi, eğer daha basit bir çözüm varsa hep kulağım.
JPrescottSanders

Yanıtlar:


42

PureFTPD'yi önereceğim çünkü bence kullanımı en basit ve en kolay olanıydı. Önce onu kurmanız gerekir: sudo apt-get install pure-ftpdkurulduktan sonra kendi kendine başlar. Varsayılan olarak, PAM Kimlik Doğrulamaları kullanır - yani sistemde zaten kimlik doğrulaması için var olan hesapları kullanır. Tek yapmanız gereken, ana dizini www yolunuz yapan bir kullanıcı hesabı oluşturmak ve bu hesap için şifreyi ayarlamak. Daha sonra dosyaları yüklemek / indirmek için bu kullanıcı / şifre kombinasyonuna bağlanabilmelisiniz.

Bunun gibi bir şey:

sudo adduser ftpman --home /var/www/ --ingroup www-data

Bu, ftpmankullanıcıyı yaratacak ve Apache'nin kullandığı www-data grubuna yerleştirecek ve kurulum betiğinin geri kalanında size yol gösterecektir. Bu tanımlandıktan sonra, chmodoluşturduğunuz kullanıcı / grup kombinasyonunda zaten mevcut olan hataları alırsanız WWW klasörüne emin olun .

Son olarak, bu hesap çalıştırması için SSH erişimini kilitlemek istiyorsanız: sudo chsh -s /bin/false ftpmanbu, kullanıcıların kabuklarını false olarak değiştirecektir. (Ftpman'ı ftp kullanıcınızla değiştirin)


5
PureFTP, ilgilendiğim kadarıyla kurmak en kolay olanıdır.
Nathan Osman

1
Her zaman bir öğretmen gibi tam bir açıklama yapma alışkanlığınız var. Müthiş !!!
user3215

1
Bunu denedim, ancak yeni oluşturulan kullanıcıyla bağlantı kuramıyorum. Mevcut kullanıcılar iyi çalışıyor
wim

1
Tüm bunlar iyi çalışıyor, bunun dışında çalıştırdığımda, chshkullanıcıların FTP üzerinden de giriş yapmasını engelliyor gibi görünüyor. İçin arkasını ayarlanması /bin/bashtekrar çalışmasına olanak tanır.
DanH,

1
Teşekkür ederim ve kurulum sırasında tam bir günü vsftpd ve 5 dakika boyunca pureftpd ile geçirdiğimi onaylayabilirim. Basit bir kurulum ve güvenli olması için pureftpd kullanın. Neden mainstream'in vsftpd ile paylaştığı kafam karıştı!
RyBolt

10

Bence SFTP gitmek için daha iyi bir yol. Hey, adında "güvenli" kelimesi var, daha iyi olmalı :)

SFTP, dosya aktarımlarını yapmak için ssh kullanır (temel olarak FTP + TLS olan FTPS'den farklı olarak). Bunun anlamı, hedef makineye ssh yapabiliyorsanız, aynı kimlik doğrulama mekanizmalarını kullandığı için hemen hemen her zaman SFTP'ye erişebilmenizdir; bu nedenle, farklı sunucu daemon'ları (yani pureftpd veya vsftpd) kurmak ve yapılandırmak zorunda kalmazsınız. İzinleriniz için doğru bir şekilde ayarlandığı sürece /var/www- ki bu muhtemelen meselesi sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER- hemen SFTP'yi kullanabilmelisiniz.

Günümüzde çoğu istemci yazılımı SFTP'yi oldukça mutlu bir şekilde gerçekleştirir ve ayrıca scpşeyleri kopyalamak için dev sunucudaki bir kabuktan da kullanabilirsiniz ( scp -Rtüm klasörleri kopyalar ve çok kullanışlıdır). Hatta başka bir adıma geçebilir ve girişleri ortak anahtarlarla otomatikleştirebilirsiniz, bu da artık şifre yazmamanız anlamına gelir :)


3
ipucu ipucu ... Windows istemcileriniz varsa, bir sftp sunucusuna erişmek için WinSCP winscp.net/eng/index.php adresini kullanabilirler .
LassePoulsen,

Yorumunuza göre OP elbette vsftpd kullanmalı, çünkü vs çok güvenli bir şekilde duruyor . :-)
qbi

PureFTPD, SFTP ile aynı kimlik doğrulamasını kullanıyor - benim görüşüme göre daha güvenli çünkü hesap bilgileriniz sızdırılmışsa makinenize SSH erişimi olan hiç kimse. En kötüsü de Dosya erişimine sahipler.
Marco Ceppi

Uygulamanız yalnızca FTP'yi destekliyorsa ve onu SSH üzerinden tünelliyorsanız, fark nedir? :)
Endolit

5

Vsftpd kullanarak şiddetle tavsiye ediyorum. Linux'taki en güvenli FTP servislerinden biridir. Pek çokları geçmişte zayıf yönleri vardı ve FTP'nin güvenli bir şekilde uygulanması zor görünüyor.

vsftpd yükledikten hemen sonra başlar. Ubuntu, yerel kullanıcıların oturum açmasını sağlar. Bu nedenle, FTP istemcinizi başlatın ve sistem şifrenizle normal kullanıcı olarak oturum açın (Örnekte lftp kullanılıyor):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp qbi@127.0.0.1:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Şimdi yeni bir dizin oluşturmak foove FTP istemcime geri dönmek için bir tür dosya yöneticisi (Nautilus, Shell vb.) Kullanıyorum:

ftp qbi@127.0.0.1:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

Dizin var ve cdonu kullanıp kullanabiliyorum. Özel kullanıcılarınız varsa bu aynıdır. Orada ayrıca dizinler oluşturabilirsiniz ve bunlara hemen erişilebilir. Burada erişim haklarına bakmak önemlidir.


3

İncelikle kendimi sıfırdan yazdığım bir FTP sunucusunu öneriyorum: JetFTP . Öyle derece kurulumu ve kullanımı basit.


Kurulum:

  • PPA'mı yazılım kaynaklarınıza ekleyin ve güncelleyin:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Aşağıdaki komutu çalıştırın:

    sudo apt-get install jetftp
    
  • Bu kadar!

JetFTP kullanımı basittir - 8021JetFTP'nin çalıştığı bilgisayarda bir kullanıcı adı ve parola kullanarak bağlantı noktasına bağlanmanız yeterlidir.


2

Ftp kullanmayın , bu doğal olarak güvensiz bir protokoldür, çünkü kullanıcı adını ve şifreyi sunucuya açık olarak gönderir. Sftp uygulamak da kolaydır ve bağlantınızın güvenliğinde büyük bir avantaj elde edersiniz.


açık sorun en iyi cevaptır :-)
Sajad Bahmani

0

Bir ftp sunucusu kurmanın üç farklı yolu vardır:

(1) Anonim FTP:

Kullanıcılar sunucuya yalnızca anonim hesapla ve parola olmadan erişebilir. Tabii ki, sunucu yöneticisi kullanıcıların korsan müzik / filmler / oyunlar gibi yasa dışı dosyalar koymalarını önlemek için yüklemeler için bir sınır belirleyecektir.

(2) Hem anonim erişime sahip hem de şifreli bir hesaba sahip olan FTP:

Bu yöntem hem adsız hem de şifreli hesap kullanıcılarının sunucuya girmesini sağlar. Tüm dosyaları ve / veya klasörleri görüntüleyebilen / değiştirebilen / silen kullanıcı kökü dışında yalnızca belirli bir dizine erişebilirler.

(3) Sanal kullanıcıların kimlik doğrulaması için mysql destekli FTP:

Bu yöntem, sunucuya yalnızca sistemde sanal kullanıcı kimlik doğrulama kabuğu hesabı olmayan bazı kullanıcı grupları için izin verir. Kullanıcı bilgilerini depolayan harici bir mysql sunucusu kullanır.

İlk Seçenek: Anonim FTP

Anonim bir ftp sunucusu oluşturmaya başlamadan önce, sisteminize bir ev dizini de dahil olmak üzere ftp adlı bir kullanıcı eklemeniz gerekir. Bu adım gerçekten kolaydır, sadece şu komutları izleyin:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

Bunu yapmak yalnızca bu hesabın bu klasöre yazmasına izin verir. Ftp sunucusunun ne yapacağını belirlemek için daha fazla değişken kullanabilirsiniz. İşte bazı örnekler:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

İkinci Seçenek: '' 'Hem isimsiz hem de şifreli hesap kullanıcıları' ''

Aynı sunucuda hem adsız hem de şifreli hesap kullanıcılarının bulunmasını sağlamak için şu küçük kılavuzu izleyin:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

Üçüncü Seçenek: '' 'Mysql ile Sanal Kullanıcılar' ''

MySQL destekli bir sunucu oluşturmak için şu adımları izleyin:

Burada bulabileceğiniz PureFTPd için Kullanıcı Yöneticisi'ni indirip yükleyin http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Açın ve tüm içeriğini web sunucunuzun www dizinine yükleyin ve tarayıcınıza bu bağlantıyı yazın : http: //localhost/ftp/install.php Yükleyicinin size soracağı adımları izleyin rge pureftpd-mysql .conf pureftpd kullanıcı yöneticisi dizinine

Bitti. Bu bağlantıyı kullanarak yönetim paneline erişin http: // localhost / ftp

Sunucu işlemini başlatmadan önce eklenecek daha fazla seçenek

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

Ve bazı ftp sunucusu uygulamaları için bunu görün:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html


4
Bir yanıtı başka bir yerden kopyalayıp yapıştırdığınızda , kaynağı her zaman kredilendirmelisiniz .
Dori

0

VSFTPD'nin varsayılan kurulumu, varsayılan olarak herhangi bir oluşturma / değiştirme değişikliğine izin vermez . /etc/vsftpd.confAşağıdaki satırı düzenlemeniz ve yorumunuzu yapmanız gerekiyor ...

write_enable=YES

İkincisi, ilgili dosya ve klasörlerde uygun dosya sistemi izinlerini yapılandırmanız gerekir.

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.