GNU/Linux >> Belajar Linux >  >> Panels >> Webmin

Server ProFTPD

Halaman ini menjelaskan protokol FTP, kemudian menjelaskan cara mengatur server ProFTPD dan cara mengkonfigurasinya untuk berbagai tujuan.

Catatan: Karena klien FTP modern mendukung SSH, pertimbangkan untuk menggunakan Server SSH daripada Server FTP, untuk keamanan (jauh) lebih dari yang dapat dijanjikan oleh server FTP mana pun

Isi

Pengantar FTP dan ProFTPD

FTP adalah singkatan dari protokol transfer file, dan bersama dengan telnet dan SMTP adalah salah satu protokol tertua yang masih umum digunakan di Internet. FTP dirancang untuk memungkinkan program klien membaca, menulis, dan menghapus file di server jauh, terlepas dari sistem operasi yang dijalankan server. Pada dasarnya, ini adalah protokol berbagi file, tetapi tidak seperti protokol NFS dan SMB yang lebih umum, protokol ini lebih cocok untuk digunakan melalui jaringan dengan latensi lambat atau tinggi.

Biasanya, FTP digunakan untuk mentransfer file dari satu sistem ke sistem lainnya. Terkadang file-file tersebut adalah image CD distribusi Linux atau paket RPM, yang diunduh oleh berbagai host klien di Internet dari sistem server besar yang menampungnya agar dapat diakses semua orang. Di lain waktu file adalah halaman untuk situs web, diunggah oleh klien FTP yang dijalankan oleh pemilik situs ke sistem yang menjalankan server web dan server FTP.

Meskipun protokol FTP sebagian besar telah digantikan oleh HTTP sebagai metode pengunduhan file, namun tetap memiliki banyak kelebihan. Yang terbesar adalah kemampuan klien untuk mengunggah file ke server, dengan asumsi bahwa telah dikonfigurasi untuk mengizinkannya. Lainnya adalah format daftar direktori semi-standar, yang dapat digunakan klien untuk mengambil daftar file dalam direktori dari server.

Ketika klien FTP terhubung ke server, itu harus terlebih dahulu mengotentikasi dirinya sendiri sebelum transfer file dapat dilakukan. Seringkali klien akan masuk sebagai pengguna anonim khusus, yang tidak memerlukan kata sandi dan biasanya dikonfigurasi untuk hanya dapat mengunduh file. Pada sistem Unix, sebagian besar server FTP mengizinkan setiap pengguna lokal untuk masuk dengan nama pengguna dan kata sandi yang sama yang akan ia gunakan untuk telnet atau SSH, dan memberikan akses kliennya ke file yang sama dengan izin yang sama.

Fitur unik lainnya dari protokol FTP adalah dukungannya untuk menerjemahkan file antara format data yang digunakan pada klien dan yang digunakan pada server. Penggunaan yang paling umum dari ini adalah konversi file teks antara format Unix, Windows dan MacOS, yang masing-masing menggunakan karakter yang berbeda untuk mewakili akhir baris. Fitur ini dapat dinonaktifkan untuk transfer file biner seperti gambar, file yang dapat dieksekusi, dan ISO, karena merusak data non-teks.

Ada banyak program klien FTP yang berbeda, dari perintah ftp Unix dasar hingga browser seperti IE dan Mozilla. Setiap sistem operasi modern memiliki setidaknya satu, dan hampir semua menyertakan klien dari beberapa jenis sebagai standar. Server FTP juga banyak, tetapi bab ini hanya berfokus pada satu - ProFTPD, yang menurut saya adalah server paling fleksibel yang tersedia untuk sistem operasi Unix.

Meskipun semua jenis Unix dikirimkan dengan server FTP sebagai standar, server yang disediakan biasanya sangat mendasar dan kurang fitur, atau WU-FTPd yang lebih kuat. Meskipun yang terakhir memiliki banyak opsi yang dapat dikonfigurasi, tetapi tidak mampu seperti ProFTPD dalam hal hosting virtual, pembatasan direktori, dan mengunci pengguna ke direktori home mereka.

ProFTPD umumnya menggunakan file konfigurasi tunggal, ditemukan di /etc/proftpd.conf. File ini terdiri dari arahan, yang masing-masing biasanya menempati satu baris dan memiliki nama dan nilai. Setiap arahan menetapkan satu opsi yang dapat dikonfigurasi, seperti nama file tersembunyi atau jalur ke pesan selamat datang. Ada juga arahan wadah khusus untuk mengelompokkan arahan lain yang hanya berlaku untuk satu server atau direktori virtual, yang menjangkau beberapa baris.

Modul Server ProFTPD

Ikon modul ProFTPD Server dapat ditemukan di Webmin di bawah tab Servers pada menu utama. Ketika Anda mengkliknya, halaman utama modul seperti yang ditunjukkan pada gambar di bawah ini akan muncul, dengan asumsi bahwa Anda benar-benar telah menginstal server.


Modul Server ProFTPD

Jika halaman utama malah menampilkan pesan kesalahan seperti *Server ProFTPD /usr/sbin/proftpd tidak dapat ditemukan di sistem Anda*, maka server mungkin tidak diinstal dan dengan demikian modul tidak dapat digunakan. Sebagian besar distribusi Linux menyertakan paket ProFTPD di CD atau situs web mereka, jadi gunakan modul Paket Perangkat Lunak (dibahas dalam bab 12) untuk menginstalnya. Jika tidak ada paket, unduh kode sumber dari www.proftpd.org, kompilasi dan instal.

Jika Anda sudah menginstal beberapa server FTP lain, itu harus dihapus terlebih dahulu agar tidak bentrok.

Kesalahan lain yang mungkin ditampilkan halaman utama adalah *Program /usr/sbin/ftpd tampaknya bukan server ProFTPD*. Ini akan terjadi jika Webmin mendeteksi bahwa beberapa server FTP lain yang diinstal sebagai gantinya - jika demikian, Anda harus menghapusnya dan menginstal ProFTPD.

ProFTPD dapat dijalankan dalam dua mode berbeda - baik sebagai proses daemon yang berdiri sendiri yang mendengarkan koneksi FTP, atau dari server super seperti inetd atau xinetd. Yang pertama menerima koneksi lebih cepat, tetapi dengan mengorbankan lebih banyak memori yang digunakan oleh proses yang berjalan sepanjang waktu. Yang terakhir ini lebih baik untuk sistem yang tidak berharap menerima banyak lalu lintas FTP, karena program ProFTPD hanya dijalankan saat dibutuhkan.

Karena mode stand-alone lebih mudah diatur dan karena memori berlimpah di sebagian besar sistem, bab ini mengasumsikan bahwa Anda akan menjalankannya dalam mode tersebut. Untuk memulai proses server ProFTPD, ikuti langkah berikut :

  1. Dalam modul Layanan dan Protokol Internet (tercakup pada Layanan Internet), pastikan bahwa layanan yang ada bernama ftp Program dinonaktifkan atau Tidak ada program yang ditetapkan terpilih. Ini memastikan bahwa tidak ada layanan FTP yang akan dijalankan oleh inetd. Jika Anda menonaktifkan layanan, pastikan untuk menekan tombol Terapkan Perubahan tombol di halaman utama modul itu untuk mengaktifkan perubahan Anda.
  2. Dalam modul Extended Internet Services, pastikan bahwa setiap layanan dengan nama ftp (seperti wu-ftpd, proftpd, atau vsftpd) Layanannya diaktifkan? bidang disetel ke Tidak . Sekali lagi, Anda harus menekan modul Terapkan Perubahan untuk mengaktifkan perubahan apa pun.
  3. Kembali ke modul Server ProFTPD, klik ikon Opsi Jaringan.
  4. Pilih Daemon yang berdiri sendiri dari Jenis server Tidak bisa.
  5. Klik tombol Simpan tombol di bagian bawah halaman.
  6. Kembali ke halaman utama modul, sebuah tombol berlabel Mulai Server harus muncul di bagian bawah. Tekan untuk memulai daemon ProFTPD.
  7. Jika Anda ingin daemon dijalankan ulang saat boot, gunakan modul Bootup dan Shutdown untuk membuat aksi bernama proftpd yang menjalankan perintah /usr/sbin/proftpd saat boot. Jalur sebenarnya mungkin /usr/local/sbin/proftpd atau /usr/sbin/in.proftpd tergantung pada distribusi Linux yang Anda jalankan atau jika Anda mengkompilasi dan menginstal program sendiri alih-alih menggunakan paket. Selain itu, beberapa paket ProFTPD mungkin sudah menyertakan skrip boot seperti ini, yang mungkin harus Anda aktifkan.

Setelah ProFTPD dimulai, Anda dapat mengujinya dengan menggunakan klien FTP Unix baris perintah untuk terhubung ke sistem Anda sendiri. Jalankan saja ftp localhost, dan pastikan Anda bisa login sebagai pengguna selain root. Anda dapat memverifikasi bahwa server benar-benar ProFTPD dengan memeriksa versi yang ditampilkan oleh perintah ftp sebelum meminta nama pengguna, kecuali jika telah dikonfigurasi secara default untuk tidak menampilkan informasi versi.

Menjalankan ProFTPD dari inetd atau xinetd

Menyiapkan ProFTPD untuk dijalankan dari server super juga tidak terlalu sulit, dan mungkin merupakan ide yang bagus jika sistem Anda kekurangan memori atau hampir tidak pernah menerima koneksi FTP. Sebelum Anda dapat melakukan ini, Anda harus mematikan proses server proftpd yang ada (mudah dilakukan dengan modul Running Processes), dan menonaktifkan atau menghapus tindakan apa pun yang memulainya saat boot.

Jika sistem Anda menggunakan xinetd superior, ikuti petunjuk ini untuk menyiapkan layanan FTP. Karena banyak paket menyertakan file konfigurasi /etc/xinetd.d untuk server, beberapa bidang yang dijelaskan di bawah ini mungkin sudah diisi dengan benar.

  1. Buka kategori Jaringan Webmin dan klik ikon *Layanan Internet yang Diperluas*. Jika tidak ada, xinetd tidak diinstal dan Anda harus mengatur server menggunakan inetd sebagai gantinya.
  2. Pada halaman utama modul, periksa layanan yang ada bernama ftp atau proftp. Jika ada, klik di atasnya - jika tidak, ikuti Buat layanan internet baru link di atas atau di bawah tabel.
  3. Dalam Nama layanan bidang, masukkan ftp (kecuali sudah diisi).
  4. Pastikan Ya opsi dipilih di Layanan diaktifkan? bidang.
  5. Tinggalkan Ikat ke alamat bidang disetel ke Semua , dan *Nomor port* ke Standar atau 21 .
  6. Pilih Aliran dari Jenis soket menu, dan Default atau TCP dari Protokol daftar.
  7. Dalam Layanan yang ditangani oleh bidang, pilih Program server dan masukkan jalur ke proftpd yang dapat dieksekusi (seperti /usr/sbin/proftpd ) ke dalam kotak teks yang berdekatan. Jalurnya tergantung pada apakah Anda menginstal program dari sebuah paket atau mengompilasinya dari kode sumber.
  8. Dalam Jalankan sebagai pengguna bidang, masukkan root .
  9. Pilih Tidak untuk Tunggu sampai selesai? bidang.
  10. Biarkan semua bidang lain disetel ke default, dan tekan tombol Simpan atau Buat tombol di bagian bawah formulir.
  11. Kembali ke halaman utama modul, klik tombol Terapkan Perubahan tombol di bawah daftar layanan.

Sebagai alternatif, untuk menyiapkan layanan inetd untuk ProFTPD menggunakan modul Layanan dan Protokol Internet, ikuti langkah-langkah berikut:

  1. Buka kategori Jaringan Webmin dan klik ikon *Layanan dan Protokol Internet*. Jika tidak ada, sistem Anda mungkin menggunakan xinetd sebagai gantinya - lihat langkah-langkah di paragraf sebelumnya untuk instruksi tentang cara mengkonfigurasinya.
  2. Pada halaman utama modul, klik ftp di tabel *Layanan Internet*. Jika tidak terlihat, masukkan ftp ke dalam kolom *Edit service* dan tekan tombol. Either way, halaman yang sama untuk mengedit layanan protokol FTP akan ditampilkan.
  3. Dalam Program Server bagian, pilih Program diaktifkan .
  4. Di bidang Program , pilih Perintah dan masukkan path lengkap ke server ProFTPD yang dapat dieksekusi ke bidang di sebelahnya, seperti /usr/sbin/proftpd . Dalam Args bidang, masukkan saja proftpd . Jalurnya tergantung pada apakah Anda menginstal program dari sebuah paket atau mengompilasinya dari kode sumber.
  5. Setel Mode tunggu untuk Jangan menunggu , dan masukkan root di Jalankan sebagai Pengguna bidang. Semua yang lain dapat dibiarkan tidak berubah.
  6. Klik tombol Simpan tombol, lalu kembali ke halaman utama modul, tekan Terapkan Perubahan .

Setelah ProFTPD diatur untuk dijalankan dari inetd atau xinetd, Anda dapat mengujinya dengan menggunakan klien FTP Unix baris perintah untuk terhubung ke sistem Anda sendiri. Jalankan saja ftp localhost, dan pastikan Anda bisa login sebagai pengguna selain root. Jika koneksi pengujian Anda gagal dengan kesalahan seperti Layanan tidak tersedia , kemungkinan besar penyebabnya adalah ProFTPD dikonfigurasi untuk dijalankan sebagai server yang berdiri sendiri. Ini dapat dengan mudah diperbaiki dengan mengikuti langkah-langkah berikut :

  1. Buka modul Server ProFTPD dan klik ikon *Opsi Jaringan* di halaman utama.
  2. Dari Jenis server pada form yang muncul, pilih Run from Inetd .
  3. Tekan tombol Simpan tombol di bagian bawah halaman.

Instruksi di sisa bab ini akan bekerja dengan baik tidak peduli mode mana yang dijalankan ProFTPD. Satu-satunya perbedaan adalah Terapkan Perubahan tombol tidak akan muncul di halaman utama, karena tidak perlu memulai ulang proses server agar perubahan konfigurasi dapat diterapkan. Sebagai gantinya, perubahan akan diterapkan ke sesi FTP berikutnya yang dimulai.

Menggunakan modul Server ProFTPD

ProFTPD menggunakan format file konfigurasi yang sangat mirip dengan Apache, sehingga antarmuka pengguna untuk modul ini dalam banyak hal sama dengan modul Konfigurasi Apache. Pada tingkat tertinggi dalam konfigurasi adalah pengaturan global yang mempengaruhi seluruh server. Di bawahnya adalah server virtual, lalu opsi FTP anonim, opsi per direktori, dan opsi yang hanya berlaku untuk perintah FTP tertentu.

Opsi yang berlaku untuk setiap koneksi atau perintah FTP ditentukan oleh server virtual yang terhubung, jenis login, direktori tempat file yang diminta berada dan perintah FTP spesifik yang digunakan. Opsi yang disetel oleh objek yang lebih rendah dalam hierarki mengesampingkan yang ada di level atas, sehingga Anda dapat mencegah pengunggahan ke server, tetapi mengizinkannya untuk direktori. Demikian pula, opsi untuk direktori yang lebih spesifik (seperti /usr/local/upload) menimpa direktori induknya (seperti /usr/local).

Kasus khusus adalah server default, yang menentukan pengaturan untuk klien yang tidak terhubung ke server virtual tertentu. Tidak seperti Apache, opsi yang diatur di server default tidak memengaruhi server virtual. Sebaliknya jika Anda ingin menentukan beberapa pengaturan yang mempengaruhi semuanya, itu harus di bagian global khusus dari konfigurasi ProFTPD. Ini berlaku untuk direktori dan opsi khusus perintah FTP juga.

Modul ini memiliki halaman untuk opsi pengeditan untuk setiap objek di pohon, yang berisi ikon yang menghubungkan ke objek lebih jauh ke bawah. Misalnya, pada halaman opsi server virtual terdapat ikon untuk berbagai kategori opsi yang berlaku untuk server tersebut (seperti logging, dan pengguna dan grup), bersama dengan ikon untuk direktori atau perintah FTP apa pun yang memiliki opsi sendiri di dalam virtual server. Ada juga ikon untuk opsi khusus untuk koneksi FTP anonim.

Pada setiap halaman dalam hierarki terdapat formulir untuk menambahkan objek (seperti direktori atau grup perintah FTP) di bawahnya, dan Konfigurasi ikon untuk mengubah atau menghapus objek saat ini. Setiap halaman juga berisi Edit Arahan ikon yang memungkinkan Anda untuk melihat dan secara manual mengubah arahan ProFTPD untuk direktori, server virtual, atau apa pun yang diwakili halaman tersebut. Pengecualian adalah halaman server default, yang tidak memiliki ikon seperti itu karena tidak dapat diubah atau dihapus dan karena arahannya tidak dapat dipisahkan dari file konfigurasi lainnya.

Sekilas, beberapa formulir dalam modul mungkin tampak menakutkan karena menampilkan bidang untuk hampir semua opsi ProFTPD yang tersedia dalam beberapa kategori yang terkait dengan objek. Namun, banyak dari opsi ini sangat khusus dan dapat diabaikan hampir sepanjang waktu. Langkah-langkah di berbagai bagian bab ini menjelaskan mana yang perlu Anda modifikasi untuk mencapai beberapa hasil - yang lain dapat dibiarkan saja, karena standarnya biasanya memadai.

Karena setiap versi baru ProFTPD yang dirilis mendukung arahan baru, modul ini dapat mendeteksi versi yang Anda jalankan dan menyesuaikan antarmuka penggunanya untuk menampilkan hanya bidang yang valid untuk versi Anda. Ini berarti bahwa formulir mungkin tidak terlihat sama persis di semua sistem, dan bahwa beberapa bagian dari instruksi dalam bab ini mungkin tidak valid untuk server FTP Anda jika Anda menjalankan rilis yang lebih lama.

Membuat server virtual

Mungkin fitur ProFTPD yang paling berguna adalah dukungannya untuk server FTP virtual. Ini memungkinkan Anda untuk menentukan serangkaian opsi yang sama sekali berbeda yang berlaku untuk klien yang terhubung ke alamat IP tertentu. Dalam banyak hal, mereka mirip dengan server virtual berbasis IP Apache, yang harus diketahui oleh sebagian besar administrator situs web.

Server virtual hanya benar-benar berguna jika sistem Anda memiliki beberapa alamat IP. Biasanya, ini dilakukan dengan menambahkan alamat IP virtual tambahan ke antarmuka jaringan Anda yang terhubung ke Internet, seperti yang dijelaskan pada halaman Konfigurasi Jaringan. Seperti biasa, alamat IP tambahan apa pun harus dirutekan dengan benar ke sistem Anda - jika Anda terhubung ke ISP dan hanya menetapkan satu alamat statis, Anda tidak bisa hanya menambahkan antarmuka virtual tambahan dan mengharapkannya berfungsi. Tidak seperti Apache, ProFTPD tidak mendukung server virtual berbasis nama karena tidak ada ketentuan dalam protokol FTP untuk mereka. Klien tidak pernah memberi tahu server nama host yang mereka sambungkan, sehingga server FTP hanya dapat menggunakan alamat IP yang menerima koneksi untuk menentukan server virtual mana yang diinginkan klien.

Ketika sistem Anda menerima koneksi FTP, ProFTPD akan membandingkan alamat yang terhubung dengan semua server virtual yang dikonfigurasi. Yang pertama cocok menentukan opsi yang berlaku untuk koneksi. Jika tidak ada kecocokan yang ditemukan, server default digunakan sebagai gantinya.

Untuk menambahkan server FTP virtual baru ke sistem Anda, langkah-langkah yang harus diikuti adalah:

  1. Dalam modul Konfigurasi Jaringan, tambahkan alamat IP virtual baru ke antarmuka jaringan eksternal di sistem Anda. Pastikan itu akan diaktifkan saat boot dan aktif sekarang.
  2. Kembali ke modul Server ProFTPD, gulir ke bawah ke formulir *Buat server virtual* di bagian bawah halaman utama.
  3. Di Alamat bidang, masukkan alamat IP yang baru saja Anda tetapkan. Itu tidak boleh digunakan oleh server virtual lain yang sudah ditentukan.
  4. Keluar dari Port bidang disetel ke Default .
  5. Dalam Nama server bidang, pilih tombol radio kedua dan masukkan nama untuk server ini yang akan ditampilkan untuk menghubungkan klien. Misalnya, Anda dapat memasukkan _Example Corporation's FTP server_. Jika Default dipilih, klien akan melihat pesan seperti Server ProFTPD 1.2.2rc2.
  6. Tekan tombol Buat tombol untuk menambahkan server. Setelah dibuat, Anda akan dibawa ke halaman opsi server baru.
  7. Kembali ke halaman utama modul dan klik Terapkan Perubahan tombol untuk mengaktifkannya.

Setelah server virtual dibuat, Anda dapat mengatur opsi yang berlaku untuknya dengan mengklik ikonnya di halaman utama, lalu di salah satu ikon kategori. Beberapa di antaranya dijelaskan secara lebih rinci nanti dalam bab ini. Anda juga dapat mengubah atribut server virtual dengan mengklik Configure Virtual Server ikon, mengedit bidang pada formulir (yang memiliki arti yang sama dengan yang ada pada formulir pembuatan) dan mengklik Simpan . Atau Anda dapat menghapusnya sama sekali dengan menekan Hapus server virtual tombol pada formulir konfigurasi.

Menyiapkan FTP anonim

Dalam konfigurasi defaultnya, ProFTPD umumnya akan mengizinkan semua pengguna Unix untuk masuk dengan kata sandi normal mereka dan mengakses semua file di sistem dengan izin yang sama seperti yang mereka miliki jika masuk melalui telnet atau SSH. Beberapa paket juga memiliki FTP anonim yang diaktifkan untuk server default, sehingga siapa pun dapat terhubung sebagai pengguna anonim dan melihat file di direktori tertentu. Untuk menyiapkan FTP anonim untuk server virtual baru, konfigurasikan apa yang dapat dilakukan klien dan direktori mana yang dapat mereka akses, ikuti langkah berikut :

  1. Pada halaman utama modul, klik ikon untuk server default atau virtual yang ingin Anda konfigurasikan untuk FTP anonim.
  2. Pada halaman opsi server virtual, klik ikon *Anonymous FTP*. Jika ini adalah pertama kalinya telah diatur untuk server ini, formulir kecil akan muncul untuk memasukkan pengaturan FTP anonim.
  3. Di Batas ke direktori bidang, masukkan direktori tempat klien anonim harus dibatasi, seperti /home/example.com/anonftp .
  4. Dalam Akses file sebagai pengguna pilihan, pilih tombol radio kedua dan masukkan nama pengguna Unix yang tidak memiliki hak seperti ftp atau tidak ada . Klien tidak hanya akan dibatasi ke direktori yang dipilih, tetapi juga hanya dapat mengakses file dengan izin pengguna Unix tersebut. Secara alami, Anda harus memastikan bahwa itu benar-benar dapat membaca dan membuat daftar direktori dan file yang dikandungnya. Pengguna ini tidak boleh berada dalam daftar yang ditolak ProFTPD, atau memiliki shell yang tidak valid. Lihat Membatasi siapa yang dapat login bagian selanjutnya di bab ini untuk informasi lebih lanjut tentang mengedit daftar ini dan mengizinkan pengguna dengan shell apa pun.
  5. Jika Anda senang klien menggunakan izin grup dari set pengguna di bidang sebelumnya, biarkan bidang *Akses file sebagai grup* disetel ke Default . Jika tidak, pilih tombol radio kedua dan masukkan nama grup ke dalam bidangnya.
  6. Tekan tombol Buat untuk mengatur konfigurasi FTP anonim awal. Dengan asumsi itu berhasil, browser akan diarahkan kembali ke halaman opsi FTP anonim yang merupakan ikon untuk berbagai kategori opsi yang dapat dikonfigurasi yang berhubungan dengan koneksi FTP anonim.
  7. Klik Otentikasi dan di tabel Nama pengguna alias masukkan anonim di bawah Nama pengguna masuk , dan nama pengguna yang Anda pilih pada langkah 4 di bawah Nama pengguna asli . Ini memberi tahu ProFTPD bahwa klien yang masuk sebagai anonim harus diberi izin dari pengguna itu.
  8. Klik tombol Simpan untuk kembali ke halaman opsi FTP anonim.
  9. Dalam perintah FTP bidang, masukkan MENULIS dan tekan tombol Buat tombol untuk memulai proses menentukan opsi yang berlaku untuk perintah FTP yang mengubah data di server. Anda akan dibawa ke halaman opsi per-perintah.
  10. Klik Kontrol Akses ikon, dan pilih Tolak semua klien di Kontrol akses bidang kebijakan. Ini memberitahu ProFTPD untuk memblokir upaya klien anonim untuk mengunggah, menghapus, atau mengganti nama file.
  11. Klik tombol Simpan tombol.
  12. Kembali ke halaman utama modul, dan tekan Terapkan Perubahan . Untuk memastikan semuanya berfungsi, coba masuk ke server virtual sebagai pengguna anonim dan unduh beberapa file.

Jika Anda menggunakan sistem Anda untuk meng-host beberapa situs web dan FTP untuk pelanggan yang berbeda, masing-masing dapat diberikan server anonim virtualnya sendiri untuk membuat file tersedia bagi orang-orang melalui FTP. Browser berasumsi bahwa ftp:// URL memerlukan login anonim dan sebagian besar tidak menangani server FTP yang memerlukan otentikasi.

Membatasi pengguna ke direktori home mereka

Secara default, klien yang login ke ProFTPD sebagai pengguna Unix yang valid (bukan anonim) dapat meramban seluruh sistem file sistem Anda, sama seperti jika pengguna login melalui SSH atau telnet. Namun, ini tidak selalu diinginkan pada sistem yang memiliki banyak pengguna tidak tepercaya yang ingin Anda cegah agar tidak saling melihat file. Meskipun izin Unix dapat digunakan untuk menghentikan pengguna mendaftar direktori satu sama lain, mereka menimbulkan masalah jika Anda juga menjalankan server web dan memerlukan pengguna httpd untuk memiliki akses ke file semua orang.

Untungnya, ProFTPD memudahkan untuk membatasi pengguna ke direktori home mereka atau ke direktori lain. Karena ini hanya berlaku untuk koneksi FTP, sangat tidak berguna jika pengguna yang sama dapat melakukan telnet atau SSH. Namun, mudah untuk mengizinkan pengguna terhubung hanya melalui FTP dengan memberinya shell seperti /bin/false. Pada server hosting virtual, pengguna hanya benar-benar perlu mengunggah file untuk situs web mereka dan tidak memerlukan akses shell Unix sama sekali. Pastikan saja /bin/false atau shell non-fungsional apa pun yang Anda pilih disertakan dalam file /etc/shells sehingga ProFTPD tidak menolak akses pengguna.

Untuk membatasi direktori yang dapat diakses klien FTP, ikuti langkah berikut :

  1. Jika Anda ingin pembatasan untuk diterapkan hanya pada satu server virtual, klik ikonnya pada halaman utama modul dan kemudian pada File dan Direktori ikon pada halaman opsi server virtual. Namun, ini tidak disarankan karena memungkinkan pengguna untuk menghindari pembatasan dengan menghubungkan ke server virtual lain. Sebagai gantinya, Anda cukup menekan File dan Direktori ikon di Konfigurasi Global bagian di halaman utama - batasan apa pun yang ditentukan di dalamnya akan berlaku untuk semua server. Either way, halaman untuk mengonfigurasi bagaimana server mencantumkan direktori dan mana yang tersedia (ditunjukkan pada tangkapan layar di bawah) akan muncul.
  2. Membatasi pengguna ke direktori field sebenarnya adalah tabel yang memungkinkan Anda untuk memasukkan satu batasan direktori pada satu waktu. Itu akan selalu memiliki satu baris kosong, dan jika ini adalah batasan pertama yang Anda buat, hanya itu yang akan ada di dalamnya. Di Direktori kolom, pilih Direktori beranda jika itu adalah tempat Anda ingin pengguna dibatasi. Sebagai alternatif, Anda dapat memilih tombol radio ketiga dan memasukkan jalur seperti /home atau /var/www untuk membatasi pengguna ke direktori itu. Dimungkinkan juga untuk memasukkan jalur relatif ke direktori home pengguna, seperti ~/public_html . Di grup Unix kolom, pilih Semua orang agar pembatasan berlaku untuk semua pengguna, atau pilih tombol radio kedua dan masukkan nama grup agar itu hanya berlaku untuk anggota grup itu. Beberapa grup dapat dimasukkan dengan memisahkan namanya dengan koma, seperti pengguna,staf .
  3. Klik tombol Simpan tombol untuk kembali ke halaman opsi server virtual. Jika Anda ingin menambahkan batasan lain (seperti untuk grup dan direktori yang berbeda), klik File dan Direktori lagi dan isi baris kosong baru di tabel.
  4. Setelah selesai, kembali ke halaman utama modul dan tekan tombol *Terapkan Perubahan* untuk mengaktifkan pembatasan.


Bentuk file dan direktori

Mulai sekarang ketika pengguna yang dibatasi terhubung, mereka tidak akan dapat melihat file di luar direktori yang ditentukan atau bahkan mengetahui direktori mana yang telah mereka batasi. Tidak seperti beberapa server FTP lain yang mendukung pembatasan semacam ini, tidak perlu menyalin file atau pustaka apa pun seperti /bin/ls ke dalam direktori, karena ProFTPD tidak bergantung pada program eksternal apa pun.

Membatasi siapa yang bisa login

ProFTPD tidak mengizinkan setiap pengguna Unix untuk masuk, bahkan jika mereka memiliki nama pengguna dan kata sandi yang valid. File /etc/ftpusers yang terpisah mencantumkan pengguna yang tidak diizinkan untuk mengautentikasi, yang biasanya menyertakan akun sistem seperti bin, daemon, dan uucp. Selain itu, ada opsi konfigurasi terpisah yang mengontrol apakah pengguna root diizinkan untuk masuk atau tidak. Secara default tidak, karena kata sandi yang dikirim oleh protokol FTP tidak dienkripsi dan dengan demikian mengizinkan root untuk mengautentikasi dapat menjadi risiko keamanan utama.

ProFTPD juga secara default mencegah pengguna tanpa shell yang valid untuk login. Shell yang valid adalah yang terdaftar di file /etc/shells. Fitur ini dapat berguna untuk mencegah sekelompok besar pengguna masuk, seperti mereka yang seharusnya hanya dapat terhubung ke server POP3 untuk mengunduh email mereka. Namun, itu bisa dimatikan jika perlu.

Untuk mengedit daftar pengguna yang ditolak dan batasan login lainnya, ikuti langkah berikut :

  1. Pada halaman utama modul, klik Pengguna FTP yang Ditolak ikon. Dalam formulir yang muncul adalah kotak teks yang mencantumkan semua pengguna Unix yang diblokir. Edit untuk menambahkan atau menghapus semua yang tidak boleh atau seharusnya diizinkan untuk masuk, dan tekan tombol Simpan tombol.
  2. Untuk mengizinkan pengguna root terhubung, klik Otentikasi ikon dan ubah Izinkan login dengan root? bidang ke Ya .
  3. Untuk mengizinkan pengguna dengan shell yang tidak terdaftar untuk login, ubah bidang *Hanya izinkan login oleh pengguna dengan shell yang valid?* menjadi Ya demikian juga.
  4. Tekan tombol Simpan untuk kembali ke halaman utama, lalu klik Terapkan Perubahan untuk mengaktifkan pembatasan baru.

Opsi untuk mengizinkan pengguna root dan pengguna dengan shell yang tidak valid untuk masuk juga dapat diatur pada basis server per-virtual, di bawah Otentikasi ikon pada halaman opsi server virtual. Namun, secara umum tidak berguna dari sudut pandang keamanan untuk mengizinkan klien hanya dari satu server untuk login, karena pengguna dapat memilih server mana pun untuk terhubung.

Menyetel opsi daftar direktori

Biasanya, ketika klien FTP meminta daftar direktori, ProFTPD akan mengembalikan daftar akurat lengkap dalam format yang dihasilkan oleh perintah ls -l. Terkadang meskipun ini memberikan terlalu banyak informasi tentang sistem Anda, seperti nama pengguna dan grup atau tujuan tautan simbolik. Seringkali berguna untuk menyembunyikan file tertentu yang tidak relevan dengan klien karena harus disimpan dalam direktori yang dapat diakses FTP karena alasan lain. Penyembunyian informasi semacam ini paling baik diterapkan pada pengguna FTP anonim, karena mereka seharusnya tidak dapat menemukan apa pun tentang sistem Anda yang tidak perlu mereka ketahui.

Untuk mengubah format daftar direktori, ikuti langkah-langkah berikut:

  1. Pada halaman utama modul, klik ikon untuk server default atau virtual yang ingin Anda ubah daftar direktorinya untuk membuka halaman opsinya.
  2. Dengan asumsi bahwa Anda hanya ingin mengubah informasi yang terdaftar untuk klien anonim, klik FTP Anonim ikon untuk membuka halaman opsi FTP anonim. Jika tidak, pengguna Unix normal akan terpengaruh juga.
  3. Klik pada File dan Direktori ikon untuk menampilkan formulir yang mirip dengan yang ada di Gambar 40-3 untuk mengatur berbagai opsi daftar.
  4. Untuk menyembunyikan file dengan pemilik grup tertentu, masukkan satu atau beberapa nama grup yang dipisahkan oleh spasi ke dalam bidang *Sembunyikan file yang dimiliki oleh grup*. Ketahuilah bahwa file yang disembunyikan dengan cara ini masih dapat diunduh, diganti namanya, atau dihapus kecuali izin Unix atau konfigurasi server mencegahnya.
  5. Demikian pula untuk menyembunyikan file dengan kepemilikan pengguna tertentu, isikan Sembunyikan file milik pengguna bidang dengan daftar nama pengguna Unix.
  6. Untuk menyembunyikan file yang tidak dapat dibaca oleh pengguna FTP anonim, ubah Sembunyikan file yang tidak dapat diakses? bidang ke Ya .
  7. Agar ProFTPD mengonversi tautan simbolik dalam daftar ke izin dan ukuran file targetnya, ubah bidang *Tampilkan tautan simbolik?* menjadi Ya . Biasanya tautan dan nama target ditampilkan, dan izin serta kepemilikan yang ditampilkan adalah milik tautan. Namun, meskipun fitur ini diaktifkan, target tautan harus tetap berada dalam direktori FTP anonim.
  8. Biasanya, daftar direktori menyertakan pengguna sebenarnya dan pemilik grup file. Untuk mengubahnya, setel bidang *Grup palsu dalam daftar direktori?* ke Ya, sebagai grup . Kemudian dari kotak di bawah ini pilih salah satu ftp untuk memaksa pemilik grup agar selalu ditampilkan sebagai ftp, atau tombol radio ketiga untuk menampilkannya sebagai grup apa pun yang Anda masukkan ke dalam kotak teks yang berdekatan. Opsi *Connected group* hanya benar-benar masuk akal untuk klien non-anonim, karena membuat file tampak dimiliki oleh grup utama pengguna yang terhubung.
  9. Demikian pula, Anda dapat mengubah pemilik file pengguna Unix dengan Pengguna palsu dalam daftar direktori? bidang. Jika *Pengguna yang terhubung* dipilih, file akan tampak dimiliki oleh pengguna yang saat ini masuk ke server FTP.
  10. Secara default, ProFTPD akan menampilkan izin file Unix yang sebenarnya dalam daftar. Untuk memaksa tampilan palsu, pilih opsi kedua di Izin palsu dalam daftar direktori dan masukkan angka oktal seperti 0644 dari jenis yang digunakan oleh perintah chmod. Ini tidak berpengaruh pada izin sebenarnya yang berlaku jika klien mencoba mengunduh atau mengunggah file tentu saja.
  11. Untuk menyembunyikan file titik seperti .login dan .profile dalam daftar (seperti yang biasanya dilakukan oleh perintah ls), atur *Tampilkan file yang dimulai dengan . dalam cantuman?* bidang ke Ya .
  12. Terakhir, tekan tombol Simpan tombol di bagian bawah halaman untuk memperbarui file konfigurasi ProFTPD.
  13. Return to the module's main page and press the Apply Changes button to make the settings active.

As well as hiding certain files (as explained in steps 4 and 5), you can also prevent clients from reading or writing those files altogether. This can be done using the Make hidden files inaccessible? field, explained in the Restricting access to FTP commands section later in the chapter.

Message and readme files

ProFTPD can be configured to display messages to clients when they login or enter certain directories. This can be useful for notifying users of possible mirror sites, the locations of various common files on the server, and the details of the contents of a directory.

To set the messages that are displayed to clients, follow these steps :

  1. If you want the messages to be used by all virtual servers, click on the Authentication icon on the module's main page. To set messages for a specific virtual server, click on its icon and then on Authentication on the server options page. Either way, the same form will be displayed. It is also possible to set most of the message file options below for only anonymous clients by clicking on the Anonymous FTP icon on the virtual server page and then on Authentication . Naturally, you cannot set the pre-login message because the server does not know if a client is anonymous or not at that stage.
  2. In the Pre-login message file field, enter the full path to a file whose contents should be sent to clients as soon as they connect. If you don't want any message file to be used at all, select None sebagai gantinya.
  3. In the Post-login message file field, enter the path to a text file whose contents will be sent to clients after they have been properly authenticated. If the client is limited to a directory (because it logged in anonymously or has a home directory restriction in force), the file must be within and relative to that directory. If the filename is relative (like welcome.txt ), it will be searched for in the directory that the client is initially placed in.
  4. To set a message sent to clients when they request to disconnect, fill in the Logout message file bidang. Again, this must be relative to and under any directory that the client is restricted to.
  5. If you have a restriction on the maximum number of simultaneous logins in force, you can set the message sent to clients blocked by it by filling in the Too many connections message file bidang. You should enter a full path, which can be anywhere on your system. See the Limiting concurrent logins section for more details.# Hit the Save button at the bottom of the page to go back to the global, virtual server or anonymous FTP options page.
  6. Click on the Files and Directories icon on the same page.
  7. In the Directory README filename field, enter a relative name like readme.txt that will be searched for in each directory that a client enters. If this is the first time the client has entered the directory in this session (or if the file has changed since the last time), its contents will be sent to the FTP client.
  8. To have the server send a message to clients suggesting that a particular file should be read, fill in the *Notify user of readme files matching* field. If files in the directory matching the specified regular expression (like README.* ) exist, a short message containing their names and modification times will be sent.
  9. Klik tombol Simpan button on this form, then return to the module's main page. Finally click the Apply Changes button to activate the new message file settings.

The files sent to the client by the options covered above can contain certain special cookies that start with a %, which are replaced by ProFTPD with text determined at the time of sending. According to the ProFTPD documentation, the currently supported cookies are :

Not all may make sense in all situations though - for example, %U will not be set in the pre-login message file.

Menyetel opsi per direktori

The ProFTPD module allows you to set options that apply only to a specific directory, rather than globally or to an entire virtual server. This allows you to do things like hide a directory from clients, allow uploads by anonymous clients in just one location, or set the user and group ownership of files added to a directory.

To create a new set of per-directory options, follow these steps:

  1. If you want the options to apply to all virtual servers, enter the directory into the Directory path field in the *Add per-directory options for* form on the module's main page and hit the Create tombol. Alternately, you can limit them to a particular virtual server by clicking on its icon and using the same form on the virtual server options page. Or you can define options that only apply to anonymous clients by hitting the Anonymous FTP icon for a virtual server and using its directory options creation form. In all cases, the directory should be entered as an absolute path like /usr/local . It is also possible to specify a path relative to the connecting user's home directory, like ~/public_html . You can even enter a path in a particular user's home directory, like ~jcameron/www . Normally, the options will apply to the directory and all its contents and subdirectories. To have them apply to only the contents and not the directory itself, add /* to the end of the path that you enter, like /usr/local/* .
  2. After hitting Create , you will be taken to a page of option category icons for the directory as shown in Figure 40-4. As usual, clicking on these icons will take you to forms for configuring various settings that apply only to requests for and listings of that directory.
  3. To totally deny access to clients, click on Access Control and change the Access control policy field to Deny all clients, then click Save .
  4. Normally, files uploaded by clients will end up owned by the Unix user that the client logged in as. To change this, click on the User and Group icon and enter a username for the *Owner of uploaded files* field. Uploaded files' group will be the primary group of the specified user, unless you fill in the Group owner of uploaded files field as well. Again, click Save after making any changes to return to the per-directory options page.
  5. To limit only the uploading or downloading of files in this directory, you will need to create a set of per-command options under it. The Restricting access to FTP commands section explains how.
  6. To activate your changes for this directory, return to the module's main page and hit the Apply Changes tombol.


The per-directory options page

You can also remove a directory options object from the ProFTPD configuration entirely by clicking on Configure Directory and then hitting the Delete directory config tombol. All settings and per-command options for the directory will be immediately and permanently deleted from the FTP server's configuration.

If you define options for both a directory and one of its children (such as /usr/local and /usr/local/bin ), ProFTPD will always give precedence to the most specific directory when deciding which options to apply to a particular client request. This means that a setting made for /usr/local will apply to a download of /usr/local/bin/foo, unless it is overridden by a setting for /usr/local/bin.

Restricting access to FTP commands

When a client wants to download or upload a file, list a directory or perform any other operation it sends a command to the server. ProFTPD can be configured to restrict which commands a client can use for a particular virtual server or directory, or when logged in anonymously. However, before you can do this you need to have a basic understanding of which FTP commands exist and what they do. The table below lists the ones that are relevant for access control purposes :

ProFTPD allows you to define options that only apply to particular client commands or groups of commands. Typically, this is used to deny access to certain operations, such as uploading by anonymous FTP users. It is also possible to allow or deny only certain Unix users, or only clients connecting from certain addresses.

To create a new set of per-command options, follow these steps:

  1. First decide if the options should apply to commands only in a particular directory, only to clients of a virtual server, only to anonymous clients or to all users of your FTP server. On the per-directory, virtual server, anonymous FTP and main pages is a form titled Add per-command options for . In the FTP commands field, enter one or more commands from the list above, separated by spaces. When you hit the Create button, your browser will be taken to the page shown in Figure 40-5.
  2. Click on the Access Control icon to bring up a form for restricting who can use these commands.
  3. To completely deny access to everyone, change the *Access control policy* field to Deny all clients . Conversely, to allow access select Allow all clients sebagai gantinya. This is most useful if you are editing options for commands within a directory and there is a set of options for the same commands at a higher level (such as for the virtual server or anonymous FTP) that denies access. For example, typically anonymous clients cannot use the WRITE commands, but you may want to allow it for a particular directory.
  4. To only allow certain Unix users or members of certain group access to the commands, fill in the Only allow users and Only allow group bidang. Multiple user or group names must be entered separated by spaces.
  5. Similarly, to deny certain users and groups while allowing everyone else access to the FTP commands, fill in the *Deny users* and Deny groups bidang.
  6. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from using the commands. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will contain. In the empty row select either Allow or Deny from the Action Tidak bisa. Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied. *All *All clients match, no matter where they are from. *None *No clients match the rule. *IP address *Only clients from the IP address entered in the adjacent text field match. *Network *Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1. . *Hostname *Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com . If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action Tidak bisa.
  7. When you are done choosing who can use the FTP commands, hit the Save tombol. Then return to the module's main page and click Apply Changes to make the restrictions active.


The per-command options page

Configuring logging

By default, ProFTPD logs all transfers to the file /var/log/xferlog in the standard FTP logging format (unless a different path has been selected at compile time). However, you can configure the server to log transfers to and from each virtual server differently, and anonymous FTP traffic as well. This is most useful in a virtual hosting environment, in which your system hosts FTP sites for many different customers.

It is also possible to define additional log files that use different formats, and optionally include only a subset of FTP commands. This can be useful if you only care about uploads, and don't want your log files clogged up with useless information.

To configure where and how logs are written globally or for an individual virtual server, the steps to follow are :

  1. If you want to change the location of the global log file that is used for all transfers (unless overridden by a virtual server), click on the Logging icon on the main page. Alternately, if you want to configure a specific virtual server to use a different log file, click on its icon and then on Logging on the virtual server options page. To change the logging settings for anonymous clients only, click on a virtual server icon, then on Anonymous FTP and finally on the Logging icon on the anonymous FTP options page.
  2. On the resulting logging options form, the *FTP transfers logfile* field controls where logs are written to. To specify a file, select the last option and enter a full path like /var/log/example.com.xfers into the adjacent text field. To turn off logging altogether, select Logging disabled . To use the global default, select the Default option (if you are editing the global logging settings, ProFTPD will use the compiled-in default log file /var/log/xferlog).
  3. The Custom logfiles table can be used to define additional logs for specific commands and with arbitrary formats. As usual, it will always have one empty row for adding a new custom log file. To add one, fill in the fields under these headings :*Logfile *The full path to the log file, such as /home/example.com/ftplog . For FTP commands *If *All is selected, all FTP commands will be logged. However, if you choose the second option only those command classes in the adjacent text box will be included. Recognized classes are NONE (no commands), ALL (all commands), INFO (information requests), DIRS (directory navigation), READ (file download), WRITE (file upload and directory creation), SITE (non-standard commands like CHMOD) and MISC (other miscellaneous commands). Multiple classes must be separated by commas, like READ,WRITE . You cannot use the names documented in the Restricting access to FTP commands bagian. *Log format If *Default is selected, the standard FTP log format will be used. But if the second option is chosen, you must enter a recognized log format name into the text box. The next paragraph explains how to set up named log formats. Because only one empty row appears in the table, you can only add one custom log at a time. To add more, click on the Logging icon again after saving and fill in the new blank row. To delete a custom log, just clear out its field in the Logfile kolom.
  4. Hit the Save button to save the new settings, and then *Apply Changes* on the main page to activate them.

If you want to use your own custom formats for log files, they must first be defined globally. The steps to create a format are :

  1. On the module's main page, click on the Logging icon to bring up the global log file options page.
  2. The Custom log formats table is for defining your own formats. In the first blank field under Format name , enter a short name for your new format such as filesonly . In the field next to it under Format string , enter text containing the log codes recognized by ProFTPD, like Downloaded %f at %t . The special codes in the string starting with % are replaced by the server with information about the command, as explained in the table below. As usual, you can add more than one custom format by re-entering the page after saving so that a new blank row appears. A format can be deleted by just clearing out its Format name bidang.
  3. Klik tombol Simpan button to return to the main page, and then click Apply Changes . The new format can now be used in custom log files.

Limiting concurrent logins

If your system is configured to allow anonymous FTP logins and you expect to receive a lot of traffic, it makes sense to limit the number of connections that can be open to the FTP server at any one time. This puts a ceiling on the network and CPU load that FTP transfers can generate, which is important if the system is being used for some other purpose (such as running a web server).

This limit can be set globally, on a per-virtual server basis or just for anonymous clients. This means that you can set a limit that applies to all servers, and then increase or decrease it for a particular virtual host. Or you can set a lower limit for anonymous clients versus those that have valid logins.

ProFTPD can also be configured to limit the number of concurrent connections that a single client host can have. This is useful if you want to stop people downloading more than one file at a time from your server, and thus taking more than their fair share of bandwidth.

To set a connection limit for your server, follow these steps:

  1. If you want to set a global limit, click on the *Networking Options* icon on the module's main page. To set a limit for a single virtual server, click on its icon and then on *Networking Options*. To define a limit that applies only to anonymous clients, click on the icon for a virtual server, then on *Anonymous FTP* and finally on the Networking Options icon on the anonymous FTP options page.
  2. On the form that appears, find the Maximum concurrent logins bidang. To set a limit, select the third radio button and enter a number in the text box next to it. Alternately, you can select Unlimited to turn off any restriction that applies to this virtual server that has been set globally.
  3. To define an error message sent to clients that try to connect when the limit has been reached, enter it into the *Login error message* box in the Maximum concurrent logins bidang. If the message contains the special code %m it will be replaced with the maximum allowed number.
  4. To set the per-client host limit, fill in the *Maximum concurrent logins per host* field in the same way. It also has a *Login error message* box that can be used to set a message sent to FTP clients that exceed the limit.
  5. If you are editing the global networking options, you can also set a limit on the total number of ProFTPD sub-processes that can be active at any one time. This is useful for protecting your system from denial-of-service using hundreds of useless connections. Just select the second option for the *Maximum concurrent sessions* field and enter a number into its adjacent text box. If Default is selected, no limit will be enforced. If you are running the server from a super-server like inetd or xinetd, this limit will have no effect. Fortunately, both those servers have configuration options that can be used to achieve the same result.
  6. When you are done editing client restrictions, hit the *Save *button at the bottom of the form to update the ProFTPD configuration, and then the Apply Changes button back on the main page.

Restricting clients by IP address

By default, ProFTPD will allow clients to connect from any IP address. However, like everything else this is configurable so that you can restrict access to systems on your own network, either globally or for particular virtual servers. This comes in handy if you are setting up an FTP server that is for internal use only, even though the system it is running on is accessible from the Internet.

To restrict clients by address, follow these steps:

  1. To create a global restriction that will apply to all virtual servers, enter LOGIN into the FTP commands field of the Add per-command options for form on the module's main page, then click Create . If you only want to limit who can connect to a particular virtual server, click on its icon before entering LOGIN into the same form on the virtual server options page.
  2. Regardless of what level the restriction is being defined at, you will be taken to the per-command options page shown above. Click on the Access Control icon to go to the aptly-named access control form.
  3. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from logging in. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will initially contain. In the empty row select either Allow or Deny from the Action Tidak bisa. Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied.
  • All
    All clients match, no matter where they are from. *None *No clients match the rule.
    IP address
    Only clients from the IP address entered in the adjacent text field match.
    Network
    Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1. .
    Hostname
    Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com . If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action Tidak bisa.
  1. When you are finished entering client restrictions, hit the Save button at the bottom of the form. Then return to the main page and click Save and Apply to activate them.

Commonly, you will want to give only clients on a single network access. To do this, select the Deny then allow option, choose Allow from the Action menu , Network from the Condition menu and enter the network address with a trailing dot (like 10.254.1.) into the condition text box.

Limiting uploads

If clients are allowed to upload files to your server, they will be able to choose any name that they wish for uploaded files. Sometimes this is not desirable though - you may want to allow the storing of only image files whose names end with .gif or .jpg, or prevent the uploading of Windows executables with filenames ending in .exe or .com. Fortunately, ProFTPD has configuration options that allow you to set this up.

There are also several other settings that apply to uploads, which control whether clients are allowed to overwrite files and if partially transferred files are visible. All can be set globally, for a single virtual server or for anonymous clients only. The steps to set these options are :

  1. If you want to the settings to be global, click on the *Files and Directories* icon on the module's main page. To have them apply to just a single virtual server, click on its icon and then on Files and Directories . Or to effect just clients that login anonymously, click on a virtual server icon, then on Anonymous FTP and finally on Files and Directories icon on the virtual server options page. No matter which configuration object you chose, the files and directories form that appears will be almost identical.
  2. To hide files that are in the process of being uploaded, change the Hide files during upload? field to Yes . This tells ProFTPD to use a temporary file whose name starts with .in. for transferred data, which is only renamed to the real filename when the upload is complete. This prevents incomplete partial uploads, and stops files being downloaded or accessed while they are still being sent.
  3. To have ProFTPD delete uploaded files that are not fully transferred, select Yes for the Delete aborted uploads? bidang. Again, this prevents corrupt partially uploaded files from being created on your system.
  4. To allow users to only create files whose relative names match a certain pattern, fill in the *Allowed uploaded filename regex* field with a Perl regular expression. For example, to only allow GIF files you might enter ^.*\.gif$ . Because clients are normally allowed to rename files, this option alone is not enough to stop the creation of invalid filenames. You will also need to block access to the RNFR command, as explained in the Restricting access to FTP commands bagian.
  5. Alternately, you can block the use of certain filenames by filling in the Denied uploaded filename regex field with a regular expression like ^.*\.exe$ . If both this and the previous field are set, only files that match the allow expression but not this deny expression will be permitted. Another common use of this option is blocking the upload of .ftpaccess or .htaccess files, which set per-directory ProFTPD and Apache options.
  6. Hit the Save tombol di bagian bawah halaman.
  7. If you want to stop clients overwriting files with new uploads, click on the Access Control icon and change the *Allow overwriting of files?* field to No . This can be useful on an server that allows anonymous users to upload to a particular directory, perhaps for incoming files of some kind. Don't forget to click Save if you make this change.
  8. Return to the module's main page and hit the Apply Changes button to activate your new filename restrictions.

Manually editing directives

If you prefer to manually edit your ProFTPD configuration file in some cases or just want to see which directives an action in Webmin has set, you can do so using this module. Except for the default server, every object's options page (virtual server, per-directory and per-command) has an icon labeled Edit Directives . When clicked on it will take you to a form containing a large text box showing the lines from the configuration file in the section related to the object. You can edit them to your heart's content, then click the Save button to update the actual file. Be aware though that no validation of your input is done. Also, you will need to use the Apply Changes button on the module's main page to activate any changes, as usual.

To view and edit the entire ProFTPD configuration, use the *Edit Config Files* icon on the module's main page. This will bring up a similar form, but showing and allowing the editing of a complete configuration file at once. Because ProFTPD can read multiple configuration files (though the use of Include directives), at the top of the form is a button labeled Edit Directives in File with a menu of filenames next to it. To switch the view to a different file, just select the one you want and hit the button. Normally though only a single proftpd.conf file will be used.


Webmin
  1. Cara Menginstal ProFTPD di Debian 8

  2. Cara Menginstal ProFTPD di CentOS 7

  3. Cara Menginstal ProFTPD di Ubuntu 14.04

  1. Server WU-FTPD

  2. Cara Menginstal ProFTPD di Ubuntu 15.04

  3. Server Ftp Ubuntu Dasar?

  1. Penyiapan server ProFTPD yang aman di CentOS 7 dengan TLS

  2. Bagaimana Cara Menghubungkan Ke Server Lokal?

  3. Cara menginstal server FTP di CentOS 7