T0__BAB III Institutional Repository | Satya Wacana Christian University: Penerapan Enkripsi Openssl Untuk Meningkatkan Keamanan Transfer Data Dalam Web Server Melalui File Transfer Protocol (FTP) Server T0 BAB III

BAB III
PERANCANGAN SISTEM
3.1 Flow Pengerjaan Sistem
Metode yang digunakan untuk perancangan sistem
adalah metode waterfall di mana setiap tahap dilakukan sampai
akhir, dan kemudian diakukan evaluasi terhadap sistem yang
dibuat. Dalam proses pengerjaannya dilakukan instalasi dan
konfigurasi baik di PC Server maupun di PC Client, alur dari
pengerjaanya adalah sebagai berikut :
MULAI

Install OS Debian 6 ,package dan software yang dibutuhkan

No
OK

Yes
Konfigurasi bind9, apache2, proftpd, dan openssl

Tes hasil konfigurasi yang telah dilakukan


No
OK

Yes
Analisa keamanan enkripsi pada port FTP

SELESAI

Gambar 3.1 Alur Perancangan Sistem

9

10

3.2 Perancangan Sistem
3.2.1

Analisis Kebutuhan
Analisis


kebutuhan

merupakan

suatu

proses yang mengidentifikasi dan melakukan
evaluasi

terhadap

permasalahan

yang

ada,

sehingga dari identifikasi dan evaluasi tersebut
dapat dibangun sistem yang sesuai dengan
diharapkan. Pada sistem yang akan dibangun ini

ada beberapa analisis kebutuhan yang akan
dibangun, yaitu :
a. FTP

server

yang

menggunakan

mode

akan

dibangun

autentikasi

untuk


mengamankan data atau file yang disimpan
pada direktori di komputer server.
b. Penerapan Openssl untuk mengamankan
proses autentikasi dan transfer data antara
FTP server dan FTP client.

3.2.2

Tahap Persiapan dan Konfigurasi Server
OS yang digunakan adalah Debian versi 6.
Master dari debian tersebut dapat diunduh dari
internet dengan kapasitas 4,5 GB untuk versi full
package include. Debian diinstall tanpa desktop
environment karena pada umumnya PC webserver
menggunakan command line, agar OS yang

11

berjalan lebih ringan dan stabil. Setelah debian
berhasil diinstall selanjutnya install package yang

dibutuhkan untuk analisa, package tersebut adalah
Bind9, Apache2, Proftpd, dan Openssl. Untuk PC
client agar lebih mudah gunakan OS Windows,
install FileZilla, Wireshark dan Unsniff Network
Analyzer untuk proses analisa nantinya.
Login sebagai root di Debian dan ketikan script
berikut untuk instal package yang diperlukan :
Kode Program 1. Kode Program untuk install package bind9, apache2,
Proftpd, dan openssl
apt-get install bind9 apache2 proftpd openssl



Bind9 berfungsi untuk membangun dns server,
umumnya sebuah web server menggunakan dns untuk
pengalamatannya.



Apache2 berfungsi sebagai webserver.




Proftpd berfungsi sebagai server untuk FTP.



Openssl berfungsi untuk enkripsi data yang akan
dilakukan untuk mengamankan port FTP.
Setelah proses instalasi selesai dan berhasil,
restart PC server untuk memastikan package
tersebut berjalan saat PC start up. Jika gagal ulangi
langkah

proses

instalasi

di


atas.

12

Tahap konfigurasi adalah tahap yang paling
penting

karena

banyak

script

yang

perlu

ditambahkan, sehingga dilakukan dengan hati-hati.
Konfigurasi di PC server meliputi network
interfaces, host, DNS server, Apache, dan Proftpd

+ Openssl. Untuk mempermudah pemahaman
maka konfigurasi dari masing-masing package
dijelaskan satu per satu.
Konfigurasi network interfaces :
Konfigurasi

yang

dilakukan

meliputi

alamat IP PC server, netmask, network, broadcast,
dan

gateway

(jika

diperlukan).


Untuk

melakukannya ketik script berikut :
Kode Program 2. Kode Program untuk editing konfigurasi interfaces
nano /etc/network/interfaces

Ubah
tambahkan

allow-hotplug
beberapa

script

menjadi

auto,dan

sehingga


hasil

tampilannya seperti berikut :
Kode Program 3. Tampilan kode Program untuk konfigurasi Ethernet, IP,
netmask, network, dan dns name-server
#This file describe the network interfaces available on
your system
#and how to activate them. For more information, see
interfaces (5).
#The loopback network interface
auto lo
iface lo inet loopback
#The primary network interface
auto eth0
iface eth0 inet static
address 56.201.20.26

13


Konfigurasi host
Untuk melakukan konfigurasi host ketikan
script berikut :
Kode Program 4. Kode Program untuk editing konfigurasi host pada
server
nano /etc/hosts

Tambahkan

beberapa

script

sehingga

tampilannya menjadi seperti berikut :
Kode Program 4. Tampilan kode program untuk konfigurasi host pc server
127.0.0.1
56.201.20.26
#The following
hosts
: : 1
fe00 : :0
ff00 : :0
ff02 : :1
ff02 : :2

localhost
proyekd3ti.com
d3ti
lines are desirable for IPv6 capable
ip6-localhost ip6-loopback
ip6-localnet
ip6-mcastprefix
ip6-allnodes
ip6-allrouters

Selanjutnya

konfigurasi

domain

dan

nameserver dengan perintah berikut :
Kode Program 5. Kode Program untuk konfigurasi domain dan nameserver
/etc/resolv.conf

Edit script di dalamnya dan sesuaikan
dengan host dan IP PC server yang kita buat,
sehingga tampilannya seperti berikut :
Kode Program 6. Tampilan Kode Program untuk domain dan nameserver
search
domain
nameserver

proyekd3ti.com
proyekd3ti.com
56.201.20.26

14

Setelah itu ketikan 2 script berikut :
Kode Program 7.Kode Program untuk mengganti hostname menjadi
proyekd3ti
echo proyekd3ti.com > /etc/hostname

Restart

network

dengan

interfaces

mengetikan script berikut :
Kode Program 8. Kode Program untuk restart network setting PC server
/etc/init.d/networking restart

Konfigurasi DNS server
Untuk
tentunya

membangun
dibutuhkan

sebuah
dns

webserver

server

guna

mempermudah mengingat alamat webserver. Pada
OS debian 6 dapat menggunakan Bind9 untuk
membangun

dns

server,

tahap-tahap

pembuatannya sebagai berikut :
Kode Program 9. Kode Program untuk editing konfigurasi loopback pada PC
Server.
nano /etc/bind/db.127

Db.127 yang berada di direktori bind
berfungsi untuk konfigurasi loopback pada PC
server, secara default loopback tersebut tertulis
localhost, namun kita ubah sehingga isi dari
db.127

seperti

berikut

:

15

Kode Program 10. Kode Program untuk konfigurasi loopback pada PC
Server.
;
; BIND reverse data file for local loopback interface
;
$ TTL 604800
@
IN
SOA
proyekd3ti.com.
root.proyekd3ti.com.
(
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
;
@
IN
NS
proyekd3ti.com.
26.20.201
IN
PTR
proyekd3ti.com.

Simpan konfigurasi yang telah dibuat dengan
mengetikan Ctrl + O. Selanjutnya edit file db.local
dengan cara ketikan script berikut :
Kode Program 11. Kode Program untuk konfigurasi alias dan server dns
nano /etc/bind/db.local

db.local yang berada di direktori bind
berfungsi untuk menambah alias dan digunakan
sebagai server dns yang akan digunakan. Edit
db.local sehingga tampilannya seperti gambar
berikut :

16

Kode Program 12. Tampilan Kode Program untuk konfigurasi alias dan
server dns
; BIND data file for local interface
;
$ TTL 604800
@
IN
SOA
proyekd3ti.com.
root.proyekd3ti.com. (
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
;
@
IN
NS
proyekd3ti.com.
@
IN
A
56.201.20.26
ftp
IN
A
56.201.20.26
www
IN
A
56.201.20.26
server
IN
A
56.201.20.26
26.20.201
IN
PTR
proyekd3ti.com.

Simpan konfigurasi yang telah dibuat dengan
mengetikan Ctrl + O. Selanjutnya kita konfigurasi
named.conf.local dengan cara mengetikan :
Kode Program 13.Kode Program untuk konfigurasi zona pengalamatan dns.
nano /etc/bind/named.conf.local

Setelah itu tambahkan script berikut :
Kode Program 14.Tampilan Kode Program untuk konfigurasi zona
pengalamatan dns.
// Do any local configuration here
//Consider adding the 1918 zones here, if they are not used
in //your organization
//include “/etc/bind/zones.rfc1918”;
Zone “proyekd3ti” {
Type master;
File “/etc/bind/db.local”;
Zone “56.in-addr.arpa” {
Type master;
File “/etc/bind/db.127”;
};

17

Simpan konfigurasi yang telah dibuat dengan
menekan tombol Ctrl + O.
3.2.3 Konfigurasi apache
Konfigurasi yang dilakukan pada package
Apache bertujuan untuk menentukan di mana file
website diakses, dan mengaktifkan web yang telah
dibuat. Web sederhana dibuat dengan Notepad di
Windows, proses pengiriman file.html yang dibuat
dilakukan melalui port ftp. file.html yang telah
diupload disimpan di direktori /home, guna
mempermudah admin mengingatnya. Sebelum
melakukan konfigurasi

copy default website

terlebih dahulu dengan mengetikkan :
Kode Program 15. Kode Program untuk masuk ke direktori sites-available
cd /etc/apache2/sites-available

Kode Program 16. Kode Program untuk copy default website
cp default websited3ti

Selanjutnya konfigurasi Apache dapat
dilakukan dengan cara sebagai berikut :
Kode Program 17. Kode Program untuk edit isi dari sebuah file
nano websited3ti

Dan tambahkan beberapa script berikut :

18

Kode Program 18. Tampilan kode program di mana file.html disimpan.
NameVirtualHost 56.201.20.26:80

ServerAdmin [email protected]
ServerName websited3ti.proyekd3ti.com
DocumentRoot /home/websited3ti

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None

Script di atas bertujuan untuk mengganti
alamat IP sesuai dengan IP yang digunakan oleh
PC Server, serta menentukan tempat penyimpanan
file.html yang akan ditampilkan jika client
mengakses. Simpan konfigurasi yang telah dibuat
dengan mengetikan Ctrl + O.
Selanjutnya
apache2/sites-enable,

masuk

ke

direktori

ketikan perintah berikut

untuk enable websited3ti dan disable default
website :
Kode Program 19. Kode program untuk enable websited3ti.
a2ensite websited3ti

19

Kode Program 20. Kode program untuk disable default website.
a2dissite default

3.2.4

Konfigurasi Proftpd
Setelah package Proftpd diinstall dan PC
server direstart, otomatis ftp server telah berjalan.
Untuk melakukan transfer file melalui port ftp
dapat

dilakukan

dengan

mengetikan

ftp://56.201.20.26 pada browser client atau bisa
juga dilakukan melalui windows explorer. Namun
sebelumnya perlu membuat user terlebih dahulu
dengan perintah sebagai berikut :
Kode Program 21. Kode program untuk menambah user untuk bisa
terhubung ke PC Server.
Useradd (nama user yang diinginkan)

Kemudian isi form yang muncul seperti password, full
name, work phone, dan lain-lain. Berikutnya restart FTP server
dengan perintah :
Kode Program 22. Kode program untuk restart server FTP.
/etc/init.d/proftpd restart

3.2.5

Konfigurasi Openssl
Openssl akan digunakan untuk enkripsi
data pada port FTP. Untuk menggunakan TLS
(Transport Layer Security) perlu dibuat certificate

20

key terlebih dahulu. Agar mudah mengingat di
mana certificate key disimpan maka perlu dibuat
direktori untuk TLS. Direktori SSL dapat dibuat di
dalam direktori Proftpd dengan perintah sebagai
berikut :
Kode Program 23. Kode program untuk membuat folder ssl di dalam
direktori Proftpd.
mkdir /etc/proftpd/ssl

Certificate key kita dapatkan otomatis
dengan generate SSL certificate dengan perintah
berikut :
Kode Program 24. Kode program untuk generate certificate key dengan
menggunakan openssl.
Openssl req –new –x509 –days 365 –nodes –out
/etc/proftpd/ssl/proftpd.cert.pem
–keyout /etc/proftpd/ssl/proftpd.key.pem

Certificate
Selanjutnya
mengijinkan

key

konfigurasi

telah
pada

sambungan

berhasil
Proftpd
TLS.

dibuat.
untuk
Untuk

melakukannya dapat dikerjakan dengan perintah
berikut :
Kode Program 25. Kode program untuk edit isi file Proftpd.conf
nano /etc/proftpd/proftpd.conf

21

Hapus tanda # (comment) pada baris
include /etc/Proftpd/tls.conf. agar setiap ftp server
berjalan maka secara otomatis meminta client yang
mencoba

terhubung

untuk

menggunakan

sambungan TLS. Tampilannya menjadi seperti ini:
Kode Program 26. Kode program agar saat ftp server berjalan maka akan
mengikutsertakan koneksi TLS.
#This is used for FTPS connections
Include /etc/proftpd/tls.conf

Sebelum merubah isi script dari file tls.conf
lakukan backup terlebih dahulu dengan perintah
berikut :
Kode Program 27. Kode program untuk backup konfigurasi TLS.
cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf_orig

Setelah itu edit script tls.conf dan
tambahkan script berikut:
Kode Program 28. Kode program untuk menentukan lokasi log, certificate
key, dan menjalankan permintaan koneksi TLS/SSL setiap kali client mencoba
terhubung ke server melalui port FTP.

TLSEngine
on
TLSLog
/var/log/proftpd/tls.log
TLSProtocol
SSLv23
TLSOptions
OnCertRequest
TLSRSACertificteFile
/etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile
/etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient
off
TLSRequired
on


22

Script di atas berfungsi untuk menentukan
lokasi Certificate dan Certificate Key disimpan,
menentukan di mana log atau history di simpan,
dan mengatur on/off permintaan sambungan TLS.
Jika TLS Required (on) maka sambungan melalui
port FTP tidak dapat dilakukan dengan browser
maupun windows explorer, sambungan FTP hanya
bisa dilakukan dengan menggunakan aplikasi FTP
yang support sambungan TLS misal : FileZilla,
Winscp.