ftp server dengan fitur ldap authentication dan ftp status
TRANSCRIPT
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
1/45
FTP SERVER DENGAN FITUR
LDAP AUTHENTICATION DAN FTP STATUS
STEP-BY-STEP TUTORIALDiajukan untuk memenuhi tugas besar Cakru ARC
oleh
ALDY WIRAWAN / STEI
FATKUR ROSI / SAPPKISKANDAR SETIADI / STEI
PANDU KARTIKA PUTRA / STEI
MENTOR: MUHAMMAD AFIF
AMATEUR RADIO CLUB
INSTITUT TEKNOLOGI BANDUNG
2012
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
2/45
ii
PRAKATA
Puji dan syukur penulis panjatkan ke hadirat Tuhan yang Maha Pengasih dan Penyayang,
karena kasih dan karunia-Nya step-by-step tutorial ini dapat diselesaikan dengan baik dan juga tepat
pada waktunya.
Tutorial ini dibuat untuk mencapai berbagai tujuan. Tujuan utama pembuatan tutorial ini
adalah untuk memandu pengguna FreeBSD dalam melakukan installasi FTP Server dengan
integrasi LDAP Authentication. Selain itu tutorial ini ditujukan sebagai salah satu tugas Calon Kru
ARC.
Dalam menyelesaikan tutorial ini, penulis mendapatkan bantuan dari berbagai pihak baik
secara langsung maupun tidak langsung. Oleh karena itu, penulis ingin mengucapkan terima kasih
yang sebesar-besarnya kepada
1. Para mentor ARC, terutama Kak Muhammad Afif sebagai mentor dan Kak Satria Ady
Pradana serta mentor-mentor tahap sebelumnya,
2. orang tua penulis yang telah turut serta mendukung pembuatan tutorial ini,
3. teman-teman cakru ARC,
4. semua orang yang telah membantu pembuatan tutorial ini, yang tak dapat penulis sebutkan
satu persatu.
Tak ada gading yang tak retak. Penulis menyadari masih banyak kekurangan dalam tutorial ini,
karena itu penulis menerima kritik dan saran yang bersifat membangun untuk karya-karya
selanjutnya. Akhir kata penulis ucapkan selamat membaca. Semoga tutorial ini dapat berguna bagi
para pembaca.
Bandung, Mei 2012
Penulis
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
3/45
1
BAB I
PERSYARATAN AWAL
Agar FTP Server dapat terintegrasi dengan LDAP Authentication dengan baik,
dibawah ini akan dijelaskan software-software yang dibutuhkan untuk membantu
penggunaan FTP Server yang akan diinstall. Software-software tersebut ada yang
bersifat Opsional serta ada yang bersifat wajib. Penulis menggunakan VMWare
Workstation versi 8.0 yang berbasis Operating System FreeBSD.
Salah satu syarat awal dalam penginstallan kali ini adalah memiliki server yang
berjalan dengan baik, dan penulis menggunakan Apache22. Installasi dapat dilakukan
dengan dua cara, yaitu melalui ports maupun binary. Untuk penginstallan melalui
ports, anda cukup menuliskan:
cd /usr/ports/www/apache22
make install clean
Hostname yang penulis gunakan dalam installasi kali ini adalah example.com
dengan Server Name (IP) 192.168.200.128 (dapat dilihat pada file /etc/rc.conf)
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
4/45
2
Untuk mempermudah pengerjaan, penulis juga menggunakan Putty versi 0.60
yang dapat diunduhdisini.Penggunaan Putty dapat dilihat pada screenshot dibawah
ini:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlhttp://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlhttp://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlhttp://www.chiark.greenend.org.uk/~sgtatham/putty/download.html -
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
5/45
3
Selain itu, untuk mempermudah pengerjaan, penulis menggunakan php5 yang
dapat didownload di /usr/ports/lang/php5 dan program berbasis Windows yaitu
JXplorer yang dapat didownloaddisini.[Penggunaannya akan dijelaskan pada bagian
masing-masing]
Untuk mempermudah penginstallan FTP awal (sebelum menggunakan LDAP
Authentication), penulis menggunakan PureDB sebagai database sementara yang
dapat didownload melalui ports /usr/ports/databases/puredb. [Salah satunya adalah
dalam penggunaan pureftpd.pdb]
http://tenet.dl.sourceforge.net/project/jxplorer/jxplorer/version%203.2.2/jxplorer-3.2.2-windows-installer.exehttp://tenet.dl.sourceforge.net/project/jxplorer/jxplorer/version%203.2.2/jxplorer-3.2.2-windows-installer.exehttp://tenet.dl.sourceforge.net/project/jxplorer/jxplorer/version%203.2.2/jxplorer-3.2.2-windows-installer.exehttp://tenet.dl.sourceforge.net/project/jxplorer/jxplorer/version%203.2.2/jxplorer-3.2.2-windows-installer.exe -
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
6/45
4
BAB II
FTP SERVER BERBASIS PURE-FTPD
Untuk memulai installasi FTP Server (menggunakan Pure-FTPd) melalui ports,
kita cukup mengetik command berikut:
portsnap fetch update
#command tersebut digunakan untuk mengecek apakah ada update port terbaru dari
FTP freebsd, jika ada maka akan dilakukan peng-update-an
cd /usr/ports/ftp/pure-ftpd
#command diatas digunakan untuk mengakses lokasi port pure-FTPd berada
make config
#untuk melakukan konfigurasi awal, akan keluar box berikut (silang semua):
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
7/45
5
make install clean
#untuk memulai proses instalasi
rehash
#command ini berfungsi seperti refresh, yaitu untuk mengecek command-command
baru yang telah ditambahkan setelah proses installasi Pure-FTPd. Langkah
selanjutnya adalah melakukan konfigurasi awal terhadap Pure-FTPd.
cd /usr/local/etc
cp pure-ftpd.conf.sample pure-ftpd.conf
#setelah kita mengakses folder /usr/local/etc, cp digunakan untuk membuat duplikat
file pure-ftpd.conf.sample (konfigurasi default) menjadi file pure-ftpd.conf (file yang
akan kita konfigurasikan), lakukan konfigurasi berikut
Verboselog yes
PureDB /usr/local/etc/pureftpd.pdb
CreateHomeDir yes
#Verboselog digunakan untuk membuat log file dari kegiatan-kegiatan client
#PureDB disini digunakan untuk membantu proses pembuatan virtual user sementara
sebelum authentikasi menggunakan LDAP
#CreateHomeDir digunakan untuk memberikan akses kepada Pure-FTPd untuk
membuat direktori baru jika direktori yang dituju tidak ada
#P.S: tanda # pada configuration file mendadakan tulisan tersebut bersifat sebagai
komentar
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
8/45
6
#Langkah selanjutnya adalah kita akan mencoba apakah Pure-FTPd yang telah kita
install berjalan dengan lancar atau tidak. Untuk itu, kita akan menggunakan Virtual
User dengan database PureDB
chmod 600 /usr/local/etc/pureftpd.passwd
#command tersebut digunakan untuk mengatur tingkat accessible sistem dalam
mengakses file pureftpd.passwd. Penjelasan lebih lanjut mengenai chmod dapat
dibacadisini.
http://en.wikipedia.org/wiki/Chmodhttp://en.wikipedia.org/wiki/Chmodhttp://en.wikipedia.org/wiki/Chmodhttp://en.wikipedia.org/wiki/Chmod -
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
9/45
7
pw useradd cftps /sbin/nologinw nod /usr/home/cftp\
?c Virtual FTP user m
#perintah pw useradd digunakan untuk menambah semua grup dari Virtual User yang
akan kita tambahkan. Dalam kasus ini, penulis memberikan nama grup berupa cftp.
Syntax-syntax yang digunakan pada pw dapat dibaca penjelasannyadisini.(sepertid
untuk mengakses direktori, danc untuk menambah penjelasan/comment)
pure-pw useradd useru cftpg cftpd /usr/home/cftp/user
pure-pw mkdb
#pure-pw useradd adalah perintah yang digunakan untuk menambah user baru. User
dapat digantikan sesuai keinginan kita, dalam kasus ini, penulis menggunakan
iskandar3, sedangkan cftp merupakan nama grup yang telah kita buat sebelumnya.
Untuk memberikan akses penuh kepada user tersebut, kita dapat menggunakanD
untuk menggantikand.
#pure-pw mkdb digunakan untuk meng-import database yang telah kita buat (dalam
hal ini virtual user).
#Setelah selesai, kita dapat melakukan penghapusan user dengan perintah pure-pw
userdel user dimana user adalah nama dari pengguna yang kita buat. Untuk membuat
virtual user baru, kita cukup mengulangi langkah diatas. Screenshot berikut
menunjukkan contoh user yang telah berhasil dibuat:
http://www.freebsd.org/cgi/man.cgi?query=pw&sektion=8http://www.freebsd.org/cgi/man.cgi?query=pw&sektion=8http://www.freebsd.org/cgi/man.cgi?query=pw&sektion=8http://www.freebsd.org/cgi/man.cgi?query=pw&sektion=8 -
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
10/45
8
/usr/local/etc/rc.d/pure-ftpd start
#command diatas digunakan untuk menyalakan pure-FTPd yang telah kita install.
Kita dapat menstubtitusi start dengan perintah-perintah seperti restart dan stop (untuk
mengulang atau mematikan pure-FTPd).
ftp localhost
#Jika berhasil, anda dapat melihat screenshot seperti dibawah ini:
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
11/45
9
#Tampilan pada browser windows
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
12/45
10
#agar pure-FTPd menyala setiap kali melakukan boot-up system, kita cukup
menambahkan perintah echo pureftpd_enable=YES >>/etc/rc.confsehingga akan
terdapat baris baru berupa pureftpd_enable=YES pada file konfigurasi /etc/rc.conf.
#Untuk keluar dari ftp localhost di FreeBSD, kita dapat menggunakan perintah exit
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
13/45
11
BAB III
FTP STATUS PADA PURE-FTPD
Secara singkat, untuk melihat status dari FTP yang kita gunakan, kita dapat
melihat melalui perintah status setelah kita masuk kedalam ftp localhost. Localhost
yang digunakan oleh penulis dapat diganti dengan server lainnya (jika ada).
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
14/45
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
15/45
13
#Kita cukup mengakses direktori dari web server kita (dalam kasus ini penulis
menggunakan apache22) dan kita cukup menuliskan kode berikut ini:
#include
int main(int argc, char *argv[])
{
system(/usr/local/sbin/pure-ftpwhoHw);
return 0;
}
#Perintah yang dituliskan dalam bahasa C diatas memiliki prinsip kerja yang sama
dengan perintah pure-ftpwho yang kita gunakan sebelumnya. Untuk melakukan
kompilasi dan memberikan izin kepada sistem untuk menjalankan program, kita dapat
menambahkan perintah berikut ini:
ccWallo ftpstatus ftpstatus.c
chmod 755 ftpstatus
chmod ug+s ftpstatus
#setelah kompilasi, kita dapat menggunakan perintah rm ftpstatus.c untuk menghapus
file tersebut karena sudah tidak dibutuhkan lagi. Syntax umum yang dapat diketikkan
pada web browser adalah http://myipaddress.com/cgi-bin/ftpstatus seperti yang
terlihat pada screenshot berikut:
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
16/45
14
#untuk melakukan manajemen user, Pure-FTPd memiliki beberapa cara seperti
melakukan pengecekan terhadap database PureDB (Virtual User), MySQL, serta
LDAP Authentication(yang akan dijelaskan pada bab selanjutnya). Salah satu user
management berintegrasi MySQL tidak akan dibahas disini, melainkan dapat dibaca
pada situshttp://machiel.generaal.net/index.php?subject=pureftpd&language=eng .
Tampilan awal User Management menggunakan Apache + PHP + MySQL:
http://machiel.generaal.net/index.php?subject=pureftpd&language=enghttp://machiel.generaal.net/index.php?subject=pureftpd&language=enghttp://machiel.generaal.net/index.php?subject=pureftpd&language=enghttp://machiel.generaal.net/index.php?subject=pureftpd&language=eng -
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
17/45
15
BAB IV
LDAP AUTHENTICATION BERBASIS OPEN-LDAP
LDAP (Lightweight Directory Access Protocol) merupakan salah satu protokol
yang digunakan untuk mengakses dan mengirimkan subset data pada jaringan internet.
Salah satu manfaat penggunaan protokol LDAP adalah data-data tersusun secara
terstruktur (organized records) seperti dalam melakukan penyimpanan nama dan
profil pengguna. LDAP didukung dengan enskripsi keamanan data melalui TLS
(Transport Layer Security) melalui suatu skema enskripsi yang dinamakan SSL
Certificate.
Selain itu, data-data dalam LDAP biasanya memiliki ekstensi LDIF (LDAP Data
Interchange Format) yang biasanya berisikan sekumpulan data (records) dan kita
dapat melakukan operasi-operasi seperti menambah, mengubah, dan menghapus
bagian-bagian dari setiap data. Untuk lebih jelasnya, cara kerja dari LDAP
Authentication akan dijelaskan selama proses installasi dan konfigurasi OpenLDAP
berikut.
cd /usr/ports/net/openldap24-server
make clean install
rehash
#Pertama-tama, kita akan meng-install OpenLDAP melalui ports yang tersedia. Cara-
cara lain seperti pemasangan melalui binary juga dapat dilakukan.
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
18/45
16
mkdir /var/db/openldap-data
cp /usr/local/etc/openldap/DB_CONFIG.example /var/db/openldap-data/DB_CONFIG
#Setelah proses installasi selesai, selanjutnya kita akan membuat direktori baru yang
berada pada /var/db/ dan memiliki nama direktori openldap-data. Selanjutnya kita
melakukan penduplikasi file konfigurasi default DB_CONFIG yang terletak pada
/usr/local/etc/openldap/ ke direktori baru yang kita buat sebelumnya.
#Langkah selanjutnya adalah pembuatan certificate yang diperlukan oleh OpenLDAP
untuk melakukan proses autentikasi.
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
19/45
17
cd /usr/local/etc/openldap/
mkdir /usr/local/etc/openldap/private
#Pada direktori tempat kita melakukan peng-installan OpenLDAP, kita akan
membuat sebuah folder baru yang bernama private. Folder ini diperuntukkan untuk
meletakkan certificate-certificate yang akan kita buat.
openssl reqdays 3650nodesnewx509keyout /usr/local/etc/openldap/private/ca.key
out /usr/local/etc/openldap/ca.crt
#Perintah diatas digunakan untuk meminta (me-request) sebuah file certificate dari
OpenSSL yang akan digunakan untuk OpenLDAP (dalam contoh diatas, penulis
melakukan permintaan file certificate dengan jangka berlaku 3650 hari). Proses
selanjutnya adalah memasukkan entri data untuk mendapatkan CA (Certificate
Authority). PERHATIAN! Untukbagian Common Name (eg, YOUR name) []:,
isilah sub-entri tersebut dengan nama hostname yang anda miliki, dengan prefiks
tambahan. Dalam kasus ini, penulis menggunakan server.example.com
#CN = server.example.com
openssl reqdays 3650nodesnewkeyout /usr/local/etc/openldap/private/server.keyout
/usr/local/etc/openldap/private/server.csr
#Pada bagian ini, kita akan diminta untuk mengisi entri yang kurang lebih sama
dengan sebelumnya. Perlu diingat CN yang digunakan haruslah hostname yang kita
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
20/45
18
gunakan pada FreeBSD (dapat dicek pada /etc/rc.conf) yaitu CN= example.com
(tanpa prefiks). Bagian Challenge password dan Optional Company Name dapat
dikosongkan.
openssl x509reqdays 3650in /usr/local/etc/openldap/private/client.csrout
/usr/local/etc/openldap/client.crtCA /usr/local/etc/openldap/ca.crtCAkey
/usr/local/etc/openldap/private/ca.key
#Dari file client.csr yang telah kita buat sebelumnya, kita akan membuat self-sign
certificate berupa client.crt dan membuat file yang mengizinkan Certificate Authority
yaitu ca.key yang terletak pada direktori private. Jika proses berlangsung benar, maka
akan terdapat file-file berikut
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
21/45
19
#Selain itu akan terdapat file-file ca.key, client.csr, client.key, server.csr, dan
server.key pada direktori private.
ee /usr/local/etc/openldap/slapd.conf
#Selanjutnya tambahkan line-line dibawah ini untuk pengaturan direktori TLS
security ssf=128
TLSCipherSuite HIGH:MEDIUM:+SSLv3
TLSCertificateFile /usr/local/etc/openldap/server.crt
TLSCertificateKeyFile /usr/local/etc/openldap/private/server.key
TLSCACertificateFile /usr/local/etc/openldap/ca.crt
#Serta lakukan pengubahan terhadap suffix dan rootdn sesuai hostname yang
digunakan, misalnya example.com seperti pada screenshot dibawah ini:
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
22/45
20
#kemudian buka file konfigurasi ldap.conf dan lakukan konfigurasi seperti berikut:
ee /usr/local/etc/openldap/ldap.conf
TLS_CACERT /usr/local/etc/openldap/ca.crt
TLS_CIPHER_SUITE HIGH:MEDIUM:+SSLv3
#Tambahkan dua line tersebut pada baris terakhir konfigurasi, sehingga LDAP dapat
mengeset direktori dari sertifikat TLS yang telah kita buat sebelumnya.
ee /etc/rc.conf
slapd_enable=YES
slapd_flags=-4u ldapg ldaph ldaps:///
#Langkah selanjutnya adalah mengatur agar slapd selalu di start-up setiap kali
booting melalui etc/rc.conf. Line diatas memiliki arti menyalakan ldap untuk IPv4,
oleh user ldap, group ldap, dan menggunakan port ldaps://
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
23/45
21
cd /usr/local/etc/openldap
chownR ldap:ldap private
chmodR 700 private/
chmodR 700 private/*
#Perintah diatas digunakan untuk mengatur tingkat keaksesan dari direktori private
(tempat penyimpanan sertifikat) dengan perintah chmod seperti yang telah disinggung
dibagian sebelumnya
/usr/local/etc/rc.d/slapd restart
#Kemudian kita uji dengan me-restart sistem LDAP kita. Jika terdapat tulisan
WARNING: failed to start ldap menandakan ada konfigurasi yang salah dari
sertifikat kita (biasanya hostname yang digunakan)
sockstat -4p 636
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
24/45
22
#Perintah diatas digunakan untuk menguji apakah LDAP benar-benar berfungsi
dengan baik pada port lokal 636.
ee /usr/local/etc/openldap/ldap.conf
#Buka kembali file konfigurasi ldap.conf, lakukan pengaturan berikut ini
Ubah #BASE dc=example,dc=com menjadi BASE dc=example,dc=comsesuai hostname yang anda gunakan (hilangkan tanda komentar #)
Ubah #URI ldap://ldap.example.com ldap://ldap-master.example.com:666menjadi URI ldap:// ldaps://(URI = Uniform Resource Identifier)
Hilangkan tanda komentar dari #SIZELIMIT 12 dan #TIMELIMIT 15 Tambahkan atribut ssl start_tls dan pam_login_attribute uidsebagai penanda
bahwa LDAPAuthentication kita menggunakan TLS dan attribute uid
menandakan uid sebagai kunci autentikasi yang kita gunakan.
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
25/45
23
#langkah selanjutnya adalah membuat password untuk OpenLDAP kita.
/usr/local/sbin/slappasswdh {MD5} >> /usr/local/etc/openldap/slapd.conf
#Password yang kita gunakanakan dienskripsi dengan MD5 dan langsung
tersimpan pada file konfigurasi slapd.conf
ee /usr/local/etc/openldap/slapd.conf
#Lakukan pengaturan seperti berikut ini:
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
26/45
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
27/45
25
#Perintah diatas digunakan untuk mengecek entri data yang terdapat dalam LDAP
kita.Z yang digunakan berarti kita melakukan pencarian data yang memiliki
konfigurasi TLS Certificate.
#cn=Manager yang kita gunakan menandakan Manager setara dengan administrator
dari root user, dan akan diproses melalui penambahan entri LDIF berikut ini
ee /root/example.ldif
#file LDIF yang dibuat dapat berada pada direktori apapun, pada kasus ini, penulis
menggunakan /root/ sebagai tempat penyimpanan
dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: Example
dc: Example
dn: cn=Manager,dc=example,dc=com
objectclass: organizationalRole
cn: Manager
#File LDIF yang digunakan memiliki sebuah karakteristik khusus yang dinamakan
objectclass. Fitur LDIF sendiri memiliki banyak sekali tipe-tipe objectclass (hirarki
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
28/45
26
struktur data), pada contoh diatas, kita membuat sebuah struktur hirarki organisasi
dengan kata kunci dc=example,dc=com
#Untuk menambahkan data tersebut kedalam entri (import), kita dapat menggunakan
command berikut:
ldapaddZD cn=Manager,dc=example,dc=com Wf /root/example.ldif
#Perintah ldapadd diatas digunakan untuk menambah entri baru.W digunakan untuk
memintapasswordLDAP dari pengguna (Admin password); Selain perintah ldapadd,
kita dapat menggunakan ldapmodify untuk mengubah entri dari file LDIF yang sudah
ada. Jika proses berlangsung benar, maka akan terdapat tulisan adding new entry.
ldapsearch
#Jika proses berlangsung lancar, maka database LDAP kita akan ter-update secara
otomatis.
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
29/45
27
Seperti yang telah disinggung pada Bab I, kita dapat menggunakan fitur
Windows untuk memudahkan pengolahan data entri dalam OpenLDAP yang kita
miliki, yaitu dengan menggunakan JXplorer.
#Host diisi dengan IPv4 dari FreeBSD kita (dalam kasus penulis, 192.168.200.128)
dan Port diisi dengan 636
#Level menggunakan SSL + User + Password, lalu masukkan User DN seperti yang
tertera pada database yaitu cn=Manager,dc=example,dc=com dengan password
yang telah kita masukkan sebelumnya
#Jika proses berlangsung lancar, akan keluar kotak peringatan seperti berikut,
kemudian pilih Always
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
30/45
28
#Jika benar, maka semua tampilan data yang ada akan dimunculkan
#Untuk penambahan User FTP menggunakan JXplorer akan dibahas dibagian
selanjutnya
Pada bagian ini, OpenLDAP telah siap dikonfigurasi. Bab selanjutnya akan
membahas mengenai konfigurasi yang harus dilakukan untuk melakukan integrasi
OpenLDAP dengan Pure-FTPD.
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
31/45
29
BAB V
FTP SERVER TERINTEGRASI LDAP AUTHENTICATION
LDAP sebagai suatu protokol akses data, memiliki sekumpulan struktur data
yang terorganisir disebut schema. Schema dikenal juga sebagai DIT (Directory
Information Tree) yaitu sekumpulan data yang tersusun secara hirarki. Schema ini
didefinisikan oleh ObjectClasses yang biasanya terdapat dalam entri data. Dengan
menggunakan schema, suatu records (kumpulan data)dapat terstruktur dengan baik
karena setiap recordakan memiliki attribute-attribute yang sama.
Pada integrasi LDAP dengan FTP Server kali ini, akan digunakan dua macam
skema, yaitu nis.schema dan pureftpd.schema. Pada umumnya, nis.schema sudah
disediakan pada/usr/local/etc/openldap/schema dan kita dapat menggunakan
commanddan sourceberikutuntuk menambahkanpureftpd .schema:
cd /usr/local/etc/openldap/schema
ee pureftpd.schema
#kita cukup mendrag source, melakukan penduplikatan dengan mengklik kanan
mouse pada interface Putty yang kita gunakan (berfungsi sebagai Paste)
#nis.schema merepresentasikan ObjectClass: PosixAccount yang berfungsi sebagai
keyword dari FTP user yang kita gunakan dan pureftpd.schema merepresentasikan
http://code.google.com/p/iredmail/source/browse/extra/pureftpd.schemahttp://code.google.com/p/iredmail/source/browse/extra/pureftpd.schemahttp://code.google.com/p/iredmail/source/browse/extra/pureftpd.schemahttp://code.google.com/p/iredmail/source/browse/extra/pureftpd.schema -
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
32/45
30
ObjectClass: PureFTPdUser yang berfungsi sebagai kontrol panel untuk melakukan
manajemen pengguna.
ee /usr/local/etc/openldap/slapd.conf
#Tambahkan schema berikut ini:
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/pureftpd.schema
#Kemudian lakukan restart LDAP
/usr/local/etc/rc.d/slapd restart
Setelah menambahkan schema yang telah didefinisikan kedalam OpenLDAP,
langkah selanjutnya adalah melakukan penambahan user FTP baru kedalam database
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
33/45
31
melalui dokumen LDIF yang telah kita buat sebelumnya / menggunakan file LDIF
baru. Perlu diingat bahwa struktur data dari LDAP adalah struktur data hirarki,
sehingga kita tidak dapat mengabaikan objectClass: Organization yang telah kita buat
sebelumnya.
ee /root/example.ldif
#Kita akan menambahkan data yang memiliki uid (keyword) : ryznki2.
dn: cn=ryznki2,dc=example,dc=com
objectclass: organizationalRole
objectclass: PureFTPdUser
objectclass: posixAccount
cn: ryznki2
uid: ryznki2
uidNumber: 10000
gidNumber: 10000
userPassword: secret
homeDirectory: /usr/home/ryznki2
#uid yang digunakan merupakan faktor kunci dari nama User FTP yang akan kita
gunakan, sedangkan homeDirectory merupakan tempat penyimpanan FTP yang akan
digunakan
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
34/45
32
#uidNumber dan gidNumber yang dimasukkan bisa bervariasi, dalam kasus ini
penulis memilih angka yang lebih besar dari 1000 agar untuk menghindari terjadinya
proses yang bertabrakan
#userPassword yang dimasukkan merupakan kebebasan user, karena selanjutnya akan
melalui proses enskripsi dari LDAP
#Setelah selesai melakukan penambahan data, saatnya melakukan modifikasi
database dengan perintah berikut
ldapmodifyZD cn=Manager,dc=example,dc=com Wf /root/example.ldif
#Kemudian masukkanpasswordLDAP yang telah dibuat sebelumnya (Ingat!
password Admin bukanpassworduser)
ldapsearchZ
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
35/45
33
#Jika user yang ditambahkan telah berhasil, maka akan muncul tampilan berikut:
#Menggunakan JXplorer yang telah kita install sebelumnya, akan dimunculkan
tampilan berikut:
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
36/45
34
Selain menambahkan entri baru melalui FreeBSD seperti cara diatas, kita dapat
menggunakan JXplorer untuk menambahkan entri. Pertama-tama, klik kanan pada
example kemudian pilih New. Kemudian masukkan cn (common name) yang
diinginkan disertai dengan attribute posixAccount dan PureFTPdUser seperti pada
screenshot berikut:
#Akan terdapat banyak pilihanAttribute Type sebagai settingan yang dapat kita
gunakan. Berikut ini adalah contoh-contohAttribute Type yang disediakan dari
posixAccount dan pureFTPdUser:
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
37/45
35
ee /usr/local/etc/pure-ftpd.conf
#Langkah selanjutnya adalah kita mengatur agar Pure-FTPd yang kita gunakan
mengakses konfigurasi dari LDAP File, dengan mengubah LDAP Config File
menjadi LDAPConfigFile /usr/local/etc/pureftpd-ldap.conf seperti pada screenshot
berikut:
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
38/45
36
cp /usr/local/etc/pureftpd-ldap.conf.sample /usr/local/etc/pureftpd-ldap.conf
ee /usr/local/etc/pureftpd-ldap.conf
#Pertama-tama, kita menduplikasikan file konfigurasi pureftpd-ldap.conf.sample
menjadi pureftpd-ldap.conf, yang akan kita modifikasi selanjutnya. Lakukan
penyettingan berikut ini:
LDAPServer localhost
LDAPPort 636
LDAPBaseDN dc=example,dc=com
LDAPDefaultUID 500
LDAPDefaultGID 100
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
39/45
37
LDAPFilter (&(objectClass=posixAccount)(uid=\L))
LDAPHomeDir homeDirectory
LDAPUseTLS True
LDAPAuthMethod PASSWORD
#Sisanya dapat dijadikan komentar menggunakan #.
#Karena server yang kita gunakan adalah server lokal, maka kita melakukan
penyettingan ke localhost dan port 636. (port ini dapat dicek seperti cara pada bab
sebelumnya yaitu sockstat -4p 636)
#LDAPBaseDN adalah keywordyang digunakan LDAP dalam mengakses entri data
yang ada (ketika user melakukan autentikasi melalui Pure-FTPd).
#LDAPFilter menandakan objectClass yang dipakai adalah posixAccount, dengan
uid=\L berfungsi sebagai keyword pengenal (seperti uid = ryznki2 yang telah
dibuat sebelumnya).
#LDAPHomeDirectory memberikan kewenangan untuk membuat direktori baru
apabila homeDirectory belum diset sebelumnya.
#LDAPUseTLS menandakan entri yang digunakan akan dikirim melalui enskripsi
128 bit (pada pengaturan security ssf=128).
#LDAPAuthMethod memberikan pengaturan tentang bagaiman LDAP melakukan
proses autentikasinya
/usr/local/etc/rc.d/slapd restart
/usr/local/etc/rc.d/pure-ftpd restart
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
40/45
38
Lalu bagaimanakah cara membedakan data yang melalui PureDB maupun
OpenLDAP?
Perhatikan screenshot diatas, ketika kita mengetikkan command pure-pw show
iskandar3, kita akan mengecek apakah record tersebut tersimpan dalam PureDB atau
tidak. Sedangkan karena ryznki2 tersimpan dalam LDAP, maka kita tidak dapat
mengaksesnya melalui PureDB.
Berikut ini adalah screenshot dari database yang tersimpan dalam
/usr/local/etc/pureftpd.passwd (PureDB):
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
41/45
39
Langkah selanjutnya adalah kita akan menguji coba LDAP Authentication yang
telah kita buat. Berikut ini adalah screenshotnya:
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
42/45
40
FTP Status dan monitoringnya (Dengan LDAP Authentication):
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
43/45
41
Berikut ini adalah uji coba Pure-FTPd yang telah kita buat dengan CMD Windows:
-
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
44/45
42
DAFTAR PUSTAKA
http://bsdguides.org/guides/freebsd/networking/pure-ftpd_virtual_users.php
http://code.google.com/p/iredmail/source/browse/extra/pureftpd.schema
http://download.pureftpd.org/pub/pure-ftpd/doc/README.LDAP
http://forums.freebsd.org/showthread.php?t=591
http://freebsd.org/doc/en_US.ISO8859-1/articles/ldap-auth/index.html
http://home.roadrunner.com/~computertaijutsu/ldap.html
http://iredmail.org/wiki/index.php?title=Integration/PureFTPd.iRedMail.with.OpenLDA
P/FreeBSD#Config_OpenLDAP
http://kodiva.com/post/one-stop-ldap:-installation,-configuration,-testing
http://machiel.generaal.net/index.php?subject=pureftpd&language=eng
http://my.opera.com/weirdbricks/blog/openldap-101
http://rhyous.com/2009/11/06/how-to-install-php5-and-php5-extensions-on-freebsd/
http://bsdguides.org/guides/freebsd/networking/pure-ftpd_virtual_users.phphttp://bsdguides.org/guides/freebsd/networking/pure-ftpd_virtual_users.phphttp://code.google.com/p/iredmail/source/browse/extra/pureftpd.schemahttp://code.google.com/p/iredmail/source/browse/extra/pureftpd.schemahttp://download.pureftpd.org/pub/pure-ftpd/doc/README.LDAPhttp://download.pureftpd.org/pub/pure-ftpd/doc/README.LDAPhttp://forums.freebsd.org/showthread.php?t=591http://forums.freebsd.org/showthread.php?t=591http://freebsd.org/doc/en_US.ISO8859-1/articles/ldap-auth/index.htmlhttp://freebsd.org/doc/en_US.ISO8859-1/articles/ldap-auth/index.htmlhttp://home.roadrunner.com/~computertaijutsu/ldap.htmlhttp://home.roadrunner.com/~computertaijutsu/ldap.htmlhttp://iredmail.org/wiki/index.php?title=Integration/PureFTPd.iRedMail.with.OpenLDAP/FreeBSD#Config_OpenLDAPhttp://iredmail.org/wiki/index.php?title=Integration/PureFTPd.iRedMail.with.OpenLDAP/FreeBSD#Config_OpenLDAPhttp://iredmail.org/wiki/index.php?title=Integration/PureFTPd.iRedMail.with.OpenLDAP/FreeBSD#Config_OpenLDAPhttp://kodiva.com/post/one-stop-ldap:-installation,-configuration,-testinghttp://kodiva.com/post/one-stop-ldap:-installation,-configuration,-testinghttp://machiel.generaal.net/index.php?subject=pureftpd&language=enghttp://machiel.generaal.net/index.php?subject=pureftpd&language=enghttp://my.opera.com/weirdbricks/blog/openldap-101http://my.opera.com/weirdbricks/blog/openldap-101http://rhyous.com/2009/11/06/how-to-install-php5-and-php5-extensions-on-freebsd/http://rhyous.com/2009/11/06/how-to-install-php5-and-php5-extensions-on-freebsd/http://my.opera.com/weirdbricks/blog/openldap-101http://machiel.generaal.net/index.php?subject=pureftpd&language=enghttp://kodiva.com/post/one-stop-ldap:-installation,-configuration,-testinghttp://iredmail.org/wiki/index.php?title=Integration/PureFTPd.iRedMail.with.OpenLDAP/FreeBSD#Config_OpenLDAPhttp://iredmail.org/wiki/index.php?title=Integration/PureFTPd.iRedMail.with.OpenLDAP/FreeBSD#Config_OpenLDAPhttp://home.roadrunner.com/~computertaijutsu/ldap.htmlhttp://freebsd.org/doc/en_US.ISO8859-1/articles/ldap-auth/index.htmlhttp://forums.freebsd.org/showthread.php?t=591http://download.pureftpd.org/pub/pure-ftpd/doc/README.LDAPhttp://code.google.com/p/iredmail/source/browse/extra/pureftpd.schemahttp://bsdguides.org/guides/freebsd/networking/pure-ftpd_virtual_users.php -
7/23/2019 FTP Server dengan Fitur LDAP Authentication dan FTP Status
45/45
JADWAL KEGIATAN PENGERJAAN TUGAS BESAR
Tanggal Aktivitas
16 Mei (12.3014.00) Pertemuan perdana dan pengumpulan
literatur-literatur
18 Mei (13.0019.00) Penginstallan FTP Server dengan
menguji-coba FTP Status
20 Mei (12.3019.00) Penginstallan OpenLDAP beserta
konfigurasinya
22 Mei (13.0019.00) Penginstallan OpenLDAP beserta
konfigurasinya
24 Mei (12.00
20.00) Melakukan Integrasi Pure-FTPd dengan
OpenLDAP
25 Mei (00:0015.00) Pengerjaan laporan Step-by-step Tutorial