Halo semua, hari ini dalam tutorial ini, kita akan mengkompilasi dan menginstal PureFTPd dari sumber di CentOS 7. Pure-ftpd adalah daemon FTP yang ringan dan stabil yang mendukung berbagai backend otentikasi seperti pengguna sistem Linux, puredb, MySQL dan PostgeSQL.
1. Menginstal Pureftpd
Instal rantai alat pengembangan CentOS.
# yum -y groupinstall 'Development Tools'
Instal file pengembangan MariaDB.
# yum -y install mariadb-devel
Unduh file sumber pure-ftpd dan buka paket arsipnya.
# cd /usr/local/src
# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.bz2
# tar xvjpf pure-ftpd-1*.tar.bz2
# cd pure-ftpd-1*
Jalankan perintah configure untuk menyiapkan build. Untuk mendapatkan gambaran umum tentang semua opsi kompilasi, jalankan ./configure --help.
# ./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin \
--libexecdir=/usr/libexec --datadir=/usr/share --sysconfdir=/etc \
--sharedstatedir=/usr/com --localstatedir=/var --libdir=/usr/lib64 \
--includedir=/usr/include --infodir=/usr/share/info --mandir=/usr/share/man \
--with-mysql --with-virtualchroot --with-everything
dan kompilasi biner murni-ftpd:
# make
# make install
2. Membuat file konfigurasi dan skrip awal
Pertama kita buat skrip start. Untuk build ini kita akan menggunakan skrip start dari CentOS 6.5 yang masih berfungsi dengan baik di CentOS 7.
# nano /etc/init.d/pure-ftpd
#!/bin/bash
#
# Startup script for the pure-ftpd FTP Server $Revision: 1.1 $
#
# chkconfig: - 85 15
# description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd
# processname: pure-ftpd
# pidfile: /var/run/pure-ftpd.pid
# config: /etc/pure-ftpd/pure-ftpd.conf
# Source function library.
. /etc/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is configured.
# [ ${NETWORKING} = "no" ] && exit 0
RETVAL=0
prog="pure-ftpd"
# Path to the pure-ftp binaries.
fullpath=/usr/sbin/pure-ftpd
pureftpwho=/usr/sbin/pure-ftpwho
pure_config=/etc/pure-ftpd/pure-ftpd.conf
pure_launch_script=/usr/sbin/pure-config.pl
start() {
echo -n $"Starting $prog: "
daemon "$pure_launch_script $pure_config --daemonize > /dev/null"
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/pure-ftpd
echo
}
stop() {
echo -n $"Stopping $prog: "
killproc pure-ftpd
RETVAL=$?
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/pure-ftpd
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
echo -n $"Reloading $prog: "
killproc pure-ftpd -HUP
RETVAL=$?
echo
;;
condrestart)
if [ -f /var/lock/subsys/pure-ftpd ] ; then
stop
# avoid race
sleep 3
start
fi
;;
status)
status pure-ftpd
RETVAL=$?
if [ -f $pureftpwho ] && [ $RETVAL -eq 0 ] ; then
$pureftpwho
fi
;;
*)
echo $"Usage: pure-ftpd {start|stop|restart|reload|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
3. Mengonfigurasi Izin File
Sekarang, kita perlu memberikan izin file yang diperlukan dengan perintah di bawah ini yang mencakup konfigurasi barang pasca instalasi.
# chmod +x /etc/init.d/pure-ftpd
# mkdir /etc/pure-ftpd/
# cp configuration-file/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf
# cp configuration-file/pure-config.pl /usr/sbin/pure-config.pl
# chmod 744 /etc/pure-ftpd/pure-ftpd.conf
# chmod 755 /usr/sbin/pure-config.pl
Kemudian buat tautan pengaktifan sistem dan mulai PureFTPd:
# chkconfig --levels 235 pure-ftpd on
# systemctl start pure-ftpd.service
4. Mengonfigurasi TLS dengan OpenSSL
Sekarang kita mengkonfigurasi PureFTPd untuk mengizinkan sesi FTP dan TLS. FTP tanpa TLS adalah protokol yang sangat tidak aman karena semua sandi dan semua data ditransfer dalam bentuk teks yang jelas . Dengan menggunakan TLS, seluruh komunikasi dapat dienkripsi , sehingga membuat FTP jauh lebih aman.
OpenSSL dibutuhkan oleh TLS; untuk menginstal OpenSSL, kita cukup menjalankan:
# yum -y install openssl
Buka /etc/pure-ftpd/pure-ftpd.conf...
# nano /etc/pure-ftpd/pure-ftpd.conf
Jika Anda ingin mengizinkan sesi FTP dan TLS, setel TLS ke 1:
# Opsi ini dapat menerima tiga nilai:
# 0 :nonaktifkan lapisan enkripsi SSL/TLS (default).
#1 :menerima sesi tradisional dan terenkripsi.
#2 :menolak koneksi yang tidak menggunakan mekanisme keamanan SSL/TLS,
# termasuk sesi anonim.
# Jangan _jangan_ batalkan komentar ini secara membabi buta. Pastikan bahwa:
#1) Server Anda telah dikompilasi dengan dukungan SSL/TLS (--with-tls),
# 2) Sertifikat yang valid sudah ada,
# 3) Hanya klien yang kompatibel yang akan masuk.
Untuk menggunakan TLS, kita harus membuat sertifikat SSL. Saya membuatnya di /etc/ssl/private/, oleh karena itu saya membuat direktori itu terlebih dahulu:
mkdir -p /etc/ssl/private/
Setelah itu, kita dapat membuat sertifikat SSL sebagai berikut:
# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Ubah izin sertifikat SSL:
# chmod 600 /etc/ssl/private/pure-ftpd.pem
Akhirnya restart PureFTPd:
# systemctl stop pure-ftpd.service
# systemctl start pure-ftpd.service
Kesimpulan
Hore, kami telah berhasil menginstal dan mengkonfigurasi pureftpd. Sekarang kita dapat menikmati transfer data FTP dengan keamanan TLS. Harap dicatat, saat menghubungkan server FTP, kami harus mengonfigurasi klien FTP kami untuk menggunakan TLS jika Anda menginstal dan mengonfigurasi sertifikat SSL dengan benar. Dan secara default, pureftpd akan membuka port 21 untuk berkomunikasi dengan klien. Jika Anda memiliki masalah, pertanyaan, atau pertanyaan, silakan beri komentar di bawah tanpa ragu-ragu agar kami dapat memperbarui dan meningkatkan blog dan konten kami lebih banyak lagi.