Ubuntu Server FTP Dasar

33

Saya ingin mengatur server FTP dasar pada instalasi Ubuntu Server saya. Saya telah bermain dengan VSFTPD, tetapi saya mengalami masalah dalam mendapatkan server untuk memungkinkan saya membuat direktori dan menyalin file. Saya telah mengatur sistem untuk mengizinkan pengguna lokal, tetapi tampaknya itu tidak berarti saya mendapatkan akses untuk membuat direktori. Ini mungkin sebuah contoh di mana saya harus lebih membumi dalam pengaturan server Ubuntu untuk mengkonfigurasi server FTP ini secara memadai. Tujuan akhirnya adalah untuk dapat memindahkan file dari folder dev lokal saya ke folder www saya untuk ditempatkan. Direktori harus dapat bergerak juga. Bantuan apa pun akan sangat dihargai.

JPrescottSanders
sumber
Anda menyebutkan memindahkan file dan folder dari dev lokal ke folder www - apakah Anda melakukan ini semua di mesin yang sama atau mesin yang berbeda?
Marco Ceppi
Apakah Anda juga sudah terjual dengan VSFTPD? Atau apakah Anda tertarik pada jenis perangkat lunak FTP lain seperti pureftp?
Marco Ceppi
Pengembang lokal adalah mesin yang terpisah sama sekali. Saya kenal dengan memindahkan file ke server web melalui FTP, mungkin ada cara yang lebih baik.
JPrescottSanders
Saya tidak dijual di VSFTPD, itu adalah yang pertama yang saya temukan saat googling, jika Anda memiliki solusi yang lebih sederhana, saya semua tahu.
JPrescottSanders

Jawaban:

42

Saya akan merekomendasikan PureFTPD karena ini adalah yang paling sederhana dan termudah untuk digunakan menurut saya. Anda harus menginstalnya terlebih dahulu: sudo apt-get install pure-ftpdsetelah diinstal, ia akan mulai dengan sendirinya. Secara default menggunakan Otentikasi PAM - artinya menggunakan akun yang sudah ada pada sistem untuk auth. Yang perlu Anda lakukan adalah membuat akun pengguna dengan direktori home menjadi jalur www Anda dan mengatur kata sandi untuk akun itu. Anda kemudian dapat terhubung dengan kombinasi pengguna / pass untuk mengunggah / mengunduh file.

Sesuatu seperti ini:

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

Yang akan membuat ftpmanpengguna dan menempatkannya di grup data-www yang digunakan Apache dan akan memandu Anda melalui sisa skrip pengaturan. Setelah itu ditetapkan, pastikan untuk chmodfolder WWW jika Anda mendapatkan kesalahan tentang itu sudah ada untuk kombinasi pengguna / grup yang Anda buat.

Terakhir jika Anda ingin mengunci akses SSH untuk menjalankan akun itu: sudo chsh -s /bin/false ftpmanyang akan mengubah bahwa shell pengguna menjadi false. (Ganti ftpman dengan pengguna ftp Anda)

Marco Ceppi
sumber
5
PureFTP adalah cara termudah untuk mengatur sejauh yang saya ketahui.
Nathan Osman
1
Anda memiliki kebiasaan memberikan penjelasan lengkap seperti guru. Luar Biasa !!!
user3215
1
Saya mencoba ini tetapi saya tidak bisa terhubung dengan pengguna yang baru dibuat. Pengguna yang ada berfungsi dengan baik
wim
1
Ini semua berfungsi dengan baik, kecuali ketika saya menjalankan chshini tampaknya mencegah pengguna masuk melalui FTP juga. Pengaturan kembali untuk /bin/bashmemungkinkannya berfungsi lagi.
DanH
1
Terima kasih, dan saya dapat mengonfirmasi bahwa saya menghabiskan satu hari penuh dengan vsftpd dan 5 menit dengan pureftpd dalam waktu setup. Untuk pengaturan yang sederhana, dan aman, gunakan pureftpd. Saya bingung mengapa calo utama vsftpd!
RyBolt
10

Menurut pendapat saya SFTP adalah cara yang lebih baik. Hei, ada kata "aman" di namanya, pasti lebih baik :)

SFTP menggunakan ssh untuk melakukan transfer file (berbeda dari FTPS, pada dasarnya adalah FTP + TLS). Apa artinya itu adalah bahwa jika Anda dapat ssh ke mesin target, Anda hampir selalu dapat SFTP untuk itu, karena menggunakan mekanisme auth yang sama, jadi tidak perlu menginstal dan mengkonfigurasi daemon server yang berbeda sama sekali (yaitu tidak ada pureftpd atau vsftpd). Selama izin Anda ditetapkan dengan benar /var/www- yang mungkin merupakan masalah sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER- Anda harus dapat menggunakan SFTP segera.

Sebagian besar perangkat lunak klien saat ini akan melakukan SFTP dengan sangat senang, dan Anda juga dapat menggunakan scpdari shell pada server dev untuk menyalin hal-hal di seluruh ( scp -Rakan menyalin seluruh folder di seluruh, dan sangat berguna). Anda bahkan dapat melangkah lebih jauh dan mengotomatiskan login dengan kunci publik, artinya tidak perlu mengetik kata sandi lagi :)

Ben Williams
sumber
3
hint hint ... jika Anda memiliki klien Windows, mereka dapat menggunakan WinSCP winscp.net/eng/index.php untuk mengakses server sftp.
LassePoulsen
Menurut komentar Anda OP tentu saja harus menggunakan vsftpd, karena vs berarti sangat aman . :-)
qbi
PureFTPD menggunakan otentikasi yang sama seperti SFTP - sebenarnya lebih aman menurut saya karena jika informasi akun Anda dibocorkan maka tidak ada orang yang mengakses SSH ke mesin Anda. Paling buruk mereka memiliki akses File.
Marco Ceppi
Jika aplikasi Anda hanya mendukung FTP, dan Anda menggunakannya di SSH, apa bedanya? :)
endolith
5

Saya akan sangat menyarankan menggunakan vsftpd. Ini adalah salah satu daemon FTP paling aman di Linux. Banyak yang lain memiliki kelemahan di masa lalu dan tampaknya FTP sulit untuk diimplementasikan dengan cara yang aman.

vsftpd dimulai tepat setelah Anda menginstalnya. Ubuntu memungkinkan pengguna lokal untuk masuk. Jadi mulailah klien FTP Anda dan masuk sebagai pengguna normal dengan kata sandi sistem Anda (Contoh saya menggunakan lftp):

> 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 [email protected]:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Sekarang saya menggunakan beberapa jenis manajer file (Nautilus, Shell dll) untuk membuat direktori baru foodan kembali ke klien FTP saya:

ftp [email protected]:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

Direktori ada di sana dan saya bisa cdke dalamnya dan menggunakannya. Ini juga sama jika Anda memiliki pengguna khusus. Di sana Anda juga dapat membuat direktori dan langsung dapat diakses. Di sini penting untuk mencari hak akses.

qbi
sumber
3

Dengan rendah hati saya merekomendasikan server FTP yang saya tulis sendiri dari awal: JetFTP . Hal ini sangat sederhana untuk menginstal dan menggunakan.


Instalasi:

  • Tambahkan PPA saya ke sumber perangkat lunak Anda dan perbarui:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Jalankan perintah berikut:

    sudo apt-get install jetftp
    
  • Itu dia!

Menggunakan JetFTP sederhana - cukup sambungkan ke port 8021menggunakan nama login dan kata sandi di komputer yang sedang menjalankan JetFTP.

Nathan Osman
sumber
2

Jangan gunakan ftp , ini merupakan protokol yang pada dasarnya tidak aman karena mengirimkan nama pengguna dan kata sandi secara jelas ke server. Menerapkan sftp sama mudahnya dan Anda memperoleh keuntungan besar dalam keamanan koneksi Anda.

Stuart
sumber
masalah yang jelas adalah jawaban terbaik :-)
Sajad Bahmani
0

Ada tiga cara berbeda untuk mengatur server ftp:

(1) FTP Anonim:

Orang dapat mengakses server hanya dengan akun anonim dan tanpa kata sandi. Tentu saja, administrator server akan menetapkan batas unggahan untuk mencegah pengguna memasukkan file ilegal seperti musik / film / game bajakan.

(2) FTP dengan akses anonim dan pengguna dengan akun kata sandi:

Metode ini memungkinkan pengguna akun anonim dan kata sandi untuk memasuki server. Mereka hanya akan memiliki akses ke direktori yang ditentukan, kecuali untuk root pengguna yang dapat melihat / memodifikasi / menghapus semua file dan / atau folder.

(3) FTP dengan dukungan mysql untuk otentikasi pengguna virtual:

Metode ini memungkinkan akses ke server hanya untuk beberapa grup pengguna yang belum mendapatkan akun shell otentikasi pengguna virtual pada sistem. Ini menggunakan server mysql eksternal yang menyimpan informasi pengguna.

Opsi Pertama: FTP Anonim

Sebelum memulai pembuatan server ftp anonim, Anda harus menambahkan pengguna bernama ftp ke sistem Anda, dengan direktori home juga. Langkah ini sangat mudah, cukup ikuti perintah ini:

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

mkdir -p /home/ftp/upload

Melakukan ini hanya mengizinkan akun ini untuk menulis di folder ini. Anda dapat menggunakan lebih banyak variabel untuk menentukan apa yang akan dilakukan server ftp. Berikut ini beberapa contohnya:

-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

Opsi Kedua: '' 'Pengguna akun anonim dan kata sandi' ''

Untuk memungkinkan pengguna akun anonim dan kata sandi di server yang sama, ikuti panduan kecil ini:

-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 

Opsi Ketiga: '' 'Pengguna Virtual dengan Mysql' ''

Untuk membuat server dengan dukungan mysql ikuti langkah-langkah ini:

Unduh dan instal Manajer Pengguna untuk PureFTPd yang dapat Anda temukan di sini http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Dekompres dan unggah semua isinya ke direktori www server web Anda dan kemudian tulis di browser Anda tautan tautan ini http: //localhost/ftp/install.php Ikuti semua langkah yang diminta pemasang untuk Anda Salin dan simpan rge pureftpd-mysql .conf ke dalam direktori manajer pengguna pureftpd

Selesai Akses ke panel administrasi menggunakan tautan ini http: // localhost / ftp

Lebih banyak opsi untuk ditambahkan sebelum memulai proses server

-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 

Dan lihat ini untuk beberapa aplikasi server ftp:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html

Sajad Bahmani
sumber
4
Saat Anda menyalin dan menempelkan jawaban dari tempat lain, Anda harus selalu memberi kredit pada sumbernya .
Dori
0

Instalasi default VSFTPD tidak mengizinkan perubahan buat / modifikasi apa pun secara default. Anda perlu mengedit /etc/vsftpd.confdan menghapus komentar pada baris berikut ...

write_enable=YES

Dan kedua Anda perlu mengkonfigurasi izin sistem file yang sesuai pada file dan folder masing-masing.

Simon Timur
sumber