Pure-FTPd adalah server FTP gratis dan ringan berdasarkan Troll-FTPd, pengembangan dimulai pada tahun 2001 dan berjalan di banyak OS mirip Unix termasuk Linux, *BSD, Solaris, dan HP-UX. Pure-FTPd memiliki banyak fitur seperti domain virtual, direktori home chroot, pengguna virtual, dukungan TLS/SSL, kuota virtual, dan banyak lagi.
Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengkonfigurasi pure-ftpd pada OpenSUSE Leap 42.1. Saya akan menunjukkan cara menyiapkan pure-ftpd dengan TLS/SSL dan kemudian menyiapkan pengguna virtual.
Prasyarat
- OpenSUSE Leap 42.1
- Hak istimewa root
- OpenSUSE, Pengetahuan Zypper
Langkah 1 - Instal dan Konfigurasi SuSEfirewall2
SuSEfirewall2 adalah script untuk menghasilkan konfigurasi firewall pada file '/etc/sysconfig/SuSEfirewall2'. Kami akan menginstal SuSEfirewall2 dan kemudian membuka port untuk SSH dan layanan FTP.
Instal SuSEfirewall2 dengan zypper:
zypper in SuSEfirewall2
Selanjutnya, edit file konfigurasi '/etc/sysconfig/SuSEfirewall2' dengan vim:
vim /etc/sysconfig/SuSEfirewall2
Tambahkan layanan baru ssh dan FTP ke baris 253:
FW_SERVICES_EXT_TCP="ssh ftp"
Simpan dan keluar.
Sekarang Mulai SuSEfirewall2 dengan perintah systemctl:
systemctl start SuSEfirewall2
Langkah 2 - Instal dan Konfigurasikan Pure-FTPd
Pada langkah ini, kita akan menginstal pure-ftpd dengan OpenSSL untuk konfigurasi TLS/SSL dan mengkonfigurasi pengguna dan grup pure-ftpd.
Instal aplikasi dengan zypper seperti gambar di bawah ini:
zypper in pure-ftpd openssl
Sekarang tambahkan grup baru 'ftpgroup ' dan pengguna baru untuk master 'pengguna FTP' yang disebut 'ftpuser ' ke grup.
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Buka direktori pure-ftpd dan edit file konfigurasi 'pure-ftpd.conf' dengan editor vim:
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Ubah nilai pada baris 81 menjadi 'yes' untuk menonaktifkan pengguna anonim.
NoAnonymous yes
Batalkan komentar pada baris 131 untuk mengonfigurasi backend. Pure-ftpd memiliki dukungan untuk MySQL, PostgreSQL, dan LDAP sebagai backend, tetapi dalam tutorial ini, kita akan menggunakan 'PureDB' untuk backend.
PureDB /etc/pure-ftpd/pureftpd.pdb
Beri komentar pada baris PAMAuthentication untuk menonaktifkan otentikasi PAM pada baris 141 karena kami akan menggunakan PureDB sebagai sumber otentikasi.
#PAMAuthentication yes
Simpan dan keluar.
Langkah 3 - Konfigurasikan TLS/SSL untuk Pure-FTPd
Buat file sertifikat baru yang ditandatangani sendiri di direktori '/etc/ssl/private' dengan perintah openssl:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365
Ubah izin file sertifikat menjadi 0600:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Selanjutnya, kembali ke direktori pure-ftpd dan edit file konfigurasi untuk mengaktifkan dukungan TLS/SSL untuk koneksi klien.
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Batalkan komentar pada baris 439 untuk mengaktifkan TLS.
TLS 1
Batalkan komentar pada baris 449 dan tambahkan opsi baru untuk membuatnya lebih aman.
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
Batalkan komentar pada baris 445 untuk menentukan file sertifikat.
CertFile /etc/ssl/private/pure-ftpd.pem
Simpan dan keluar.
Sekarang mulai pure-ftpd dengan perintah systemctl:
systemctl start pure-ftpd
Langkah 4 - Konfigurasikan Pengguna Virtual
Pure-FTPd menyediakan fitur untuk membuat dan menggunakan pengguna virtual alih-alih pengguna sistem nyata (Linux). Pure-FTPd menyediakan beberapa backend auth dan konfigurasi pengguna virtual tergantung pada backend yang digunakan oleh server. Pada langkah 2 kita telah menetapkan 'PureDB' sebagai backend.
Kita dapat membuat pengguna virtual baru dengan perintah 'pure-pw' yang disediakan oleh pure-ftpd. Pada langkah ini, kita akan membuat pengguna virtual baru bernama 'shiro' dengan direktori '/srv/ftp/shiro' sebagai direktori home ftp dan pengguna tersebut di-chroot ke direktori tersebut sehingga dia tidak dapat mengakses direktori sistem lainnya.
Buat pengguna virtual baru dengan pure-pw:
pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro
Buat direktori untuk pengguna virtual dan ubah pemilik direktori tersebut menjadi 'pengguna FTP' master.
mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiro
Selanjutnya, kita harus menyimpan perubahan dengan perintah di bawah ini:
pure-pw mkdb
Sekarang shiro pengguna sudah siap digunakan, kita dapat menggunakan FTPp dari baris perintah atau FileZilla untuk antarmuka GUI untuk terhubung ke server.
Catatan:
pure-pw memiliki lebih banyak opsi perintah, Anda dapat menggunakan 'bantuan pure-pw ' untuk melihat semua perintah yang berguna.
Langkah 5 - Pengujian
Saya akan menggunakan perintah FTP di terminal untuk pengujian. Buka terminal Anda dan ketik "ftp":
ftp
Selanjutnya masukkan ip server pure-ftpd:
open 192.168.43.69
Login dengan pengguna 'shiro' dan kata sandi lalu tekan 'Enter'.
Coba upload file dengan perintah 'put':
put picture.png mypict.png
Sekarang Anda akan melihat file mypict.png di server dengan perintah ls di bawah ini:
ls