Anda di halaman 1dari 52

Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network

Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan


Nusantara X (Persero)

PERANCANGAN DAN PEMBUATAN PERANGKAT


LUNAK
3.1 RANCANGAN UMUM
Pada perencanaan dan pembuatan perangkat lunak ini
akan dibahas tentang proses instalasi dan penyesuaian perangkat
lunak agar dapat berjalan sesuai dengan infrastruktur pada PT.
Perkebunan Nusantara X (Persero). Semua komunikasi antara node
pusat server di Kantor Pusat Surabaya dan node pada Unit Pabrik
di daerah-daerah adalah melalui jaringan Private secara virtual.
Dengan menggunakan Central Authentication Service Pengguna
yang belum terautentikasi akan diarahkan ke halaman autentikasi
yang berada pada server autentikasi, seperti pada gambar 3.1
dibawah ini :

Halaman autentikasi ini hanya berjalan pada mode https


untuk memastikan semua proses autentikasi aman. Pada gambar
3.2 dan 3.3 diilustrasikan proses otentikasi antara web browser di
sisi klien dan server CAS sebagai server otentikasi.Pengguna akan
diautentikasikan berdasarkan database user ldap, setelah pengguna
terautentikasi maka aplikasi CAS akan mengirimkan tiket ke
aplikasi yang membutuhkan otentikasi.

Gambar 3. 1 Proses otentikasi pada browser

1
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Gambar 3. 2 Proses otentikasi dengan Ticket (Single Sign On)[9]

Seluruh aplikasi yang digunakan dalam Infrastruktur dan


aplikasi dalam proyek akhir ini, berjalan pada sistem operasi Linux
untuk Server dan Sistem Operasi Windows untuk Client Yang
terhubung dengan spesifikasi :

a. Sistem Operasi : Debian Linux Kernel 2.6.26-2-686 i686


b. Web Server : 1. Apache2 versi 2.2.9-10+lenny8
 apache2-mpm-prefork 2.2.9-10+lenny8
 apache2-utils 2.2.9-10+lenny8
 apache2.2-common 2.2.9-10+lenny8
: 2. Tomcat6 versi 6.0.28-9
 libtomcat6-java
 tomcat6
 tomcat6-admin
 tomcat6-common
c. Bahasa Pemrograman : PHP5 Versi 5.3.3-6
 php5
 php5-cli
 php5-common
 php5-curl
 php5-gd
 php5-imap
 php5-ldap
 php5-mcrypt

2
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

 php5-mysql
 php5-pspell
 php5-sqlite
 php5-suhosin

d. Java Environment : Sun-java6 Versi 6-22-0lenny1


 sun-java6-bin
 sun-java6-jdk
 sun-java6-jre

e. PEAR : php PEAR versi 5.3.3-6


f. LDAP : Slapd Versi 2.4.23-7
g. PhpLdapAdmin : phpLdapAdmin Versi 1.2.0.5-2
h. Module LDAP :
 ldap-utils 2.4.23-7
 libldap-2.4-2 2.4.23-7
 libnss-ldap 264-2.2
 libpam-ldap 184-8.5
 php-net-ldap2 2.0.9-1
 php5-ldap 5.3.3-6
i. Connector Apache-Tomcat : libapache2-mod-jk V 1.2.30-1
j. OpenSSL : OpenSSL 0.9.8o-4
k. OpenVPN Server : OpenVPN 2.1.3-2
l. CAS Server : CAS Server 3.4.4 Jasig
m. phpCAS : phpCAS 1.2.0
n. pam_cas : Cas-Client 2.0.11
o. Webmail : RoundCube 0.3.16
p. IMAP : Courier 4.8.0-3
q. Flash Media Server : FMS 3.0.1
r. Flash Media Live Encoder : FMLE 3.2

3.2 KONFIGURASI INFRASTRUKTUR VIRTUAL PRIVATE


NETWORK (VPN)

3.2.1. Konfigurasi Server

Untuk membangun infrastruktur VPN dibutuhkan aplikasi


yaitu OpenVPN. OpenVPN adalah aplikasi open source untuk
Virtual Private Networking (VPN), dimana aplikasi tersebut
dapat membuat koneksi point-to-point tunnel yang telah
3
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

terenkripsi. OpenVPN menggunakan private keys, certificate, atau


username/password untuk melakukan authentikasi dalam
membangun koneksi. Dimana untuk enkripsi menggunakan
OpenSSL.

Langkah-langkah membangun jaringan VPN adalah :


1. Pada VPN gateway membuat shared key dan certificate
2. Mengirimkan key tersebut kepada client yang akan melakukan
koneksi
3. Membangun koneksi dengan menggunakan key yang telah
didapat dari suatu VPN Gateway

Untuk menggunakan openVPN perlu dilakukan installasi dengan


cara :

root@enterprise-ptpn10:~# apt-get install openvpn


Get:1 http://kebo.vlsm.org squeeze/main liblzo2-2 2.03-2 [62.4kB]
Get:2 http://kebo.vlsm.org squeeze/main libpkcs11-helper1 1.07-1 [43.8kB]
Get:3 http://kebo.vlsm.org squeeze/main openvpn-blacklist 0.4 [1068kB]
Get:4 http://kebo.vlsm.org squeeze/main openvpn 2.1.3-2 [431kB]
Fetched 1606kB in 5s (307kB/s)
Preconfiguring packages ...
Selecting previously deselected package liblzo2-2.
(Reading database ... 106266 files and directories currently installed.)

Selanjutnya adalah mempersiapkan Certificate Authority


(CA) Certificate dan key. Untuk mempersiapkan key pada
openVPN dapat dilakukan dengan bantuan tools “easy-rsa”,
dimana tools tersebut terdapat di /usr/share/doc/openvpn/e
xamples. Salin tools tersebut kedirektori /root, dengan cara :

enterprise-ptpn10:~#cp /usr/share/doc/openvpn/examples/easy-rsa/ /root/ -Rf

Kemudian gunakan tools tersebut dengan masuk ke


direktori tersebut :
enterprise-ptpn10:~# cd /root/easy-rsa/2.0/

Key dan cert ificate yang dibuat akan disimpan pada


direktory “/root/easy-rsa/2.0/keys”.

enterprise-ptpn10:/root/easy-rsa/2.0# source ./vars


4
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

NOTE: If you run ./clean-all, I will be doing a rm -rf on /root/easy-


rsa/2.0/keys
enterprise-ptpn10:/root/easy-rsa/2.0# ./clean-all
enterprise-ptpn10:/root/easy-rsa/2.0# ./build-ca
Generating a 1024 bit RSA private key
......................++++++
writing new private key to 'ca.key'

Country Name (2 letter code) [US]:ID


State or Province Name (full name) [CA]:East Java
Locality Name (eg, city) [SanFrancisco]:Surabaya
Organization Name (eg, company) [Fort-Funston]:enterprise-ptpn10

Organizational Unit Name (eg, section) []:JARKOM


Common Name (eg, your name or your server's hostname) [Fort-Funston
CA]:10.252.2.150
Name []:admin
Email Address [me@myhost.mydomain]:admin@enterprise-ptpn10.com

5
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Kemudian dilanjutkan untuk membuat key untuk server (VPN


gateway) :
enterprise-ptpn10:/root/easy-rsa/2.0# ./build-key-server server
Generating a 1024 bit RSA private key
.....................................................++++++
Country Name (2 letter code) [US]:ID
State or Province Name (full name) [CA]:East Java
Locality Name (eg, city) [SanFrancisco]:Surabaya
Organization Name (eg, company) [Fort-Funston]:enterprise-ptpn10
Organizational Unit Name (eg, section) []:JARKOM
Common Name (eg, your name or your server's hostname)
[server]:10.252.2.150
Name []:admin
Email Address [me@myhost.mydomain]:admin@enterprise-ptpn10.com

Please enter the following 'extra' attributes


to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /root/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'ID'
stateOrProvinceName :PRINTABLE:'East Java'
localityName :PRINTABLE:'Surabaya'
organizationName :PRINTABLE:'enterprise-ptpn10'
organizationalUnitName:PRINTABLE:'JARKOM'
commonName :PRINTABLE:'10.252.2.150'
name :PRINTABLE:'admin'
emailAddress :IA5STRING:'admin@enterprise-ptpn10.com'
Certificate is to be certified until Jan 14 08:24:52 2021 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y


Write out database with 1 new entries
Data Base Updated

6
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Dilanjutkan pembuatan key untuk client :

enterprise-ptpn10:/root/easy-rsa/2.0# ./build-key client


Generating a 1024 bit RSA private key
................++++++
writing new private key to 'client.key'
Country Name (2 letter code) [US]:ID
State or Province Name (full name) [CA]:East Java
Locality Name (eg, city) [SanFrancisco]:Surabaya
Organization Name (eg, company) [Fort-Funston]:enterprise-ptpn10
Organizational Unit Name (eg, section) []:JARKOM
Common Name (eg, your name or your server's hostname) [client]:10.252.2.150
Name []:admin
Email Address [me@myhost.mydomain]:admin@enterprise-ptpn10.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /root/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'ID'
stateOrProvinceName :PRINTABLE:'East Java'
localityName :PRINTABLE:'Surabaya'
organizationName :PRINTABLE:'enterprise-ptpn10'
organizationalUnitName:PRINTABLE:'JARKOM'
commonName :PRINTABLE:'10.252.2.150'
name :PRINTABLE:'admin'
emailAddress :IA5STRING:'admin@enterprise-ptpn10.com'
Certificate is to be certified until Jan 14 08:41:10 2021 GMT (3650 days)
Sign the certificate? [y/n]:y

Setelah dibuat key untuk client dan server, maka dilanjutkan


untuk membuat key parameter dari Diffie Hellman :

enterprise-ptpn10:/root/easy-rsa/2.0# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time

Kemudian folder /root/easy-rsa/2.0/keys didistribusikan kepada


Client berupa ca.crt,ca.key,client.csr,client.crt, dan client.key untuk bisa
membuat koneksi dengan VPN gateway.
7
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Pada VPN gateway, dibutuhkan antara lain dh1024.pem, ca.*,


dan server.* yang dicopykan pada /etc/openvpn/. Selanjutnya untuk
konfigurasi dari server VPN gateway, mengambil template dari :
/usr/share/doc/openvpn/examples/sample-config-files/server .conf .gz
dicopykan pada /etc/openvpn/server.conf.
Rubah pada file konfigurasi /etc/openvpn/server .conf, pada bagian :
;local a.b.c.d
Apabila IP dari VPN Gateway adalah 10.252.2.150 maka ganti
a.b.c.d dengan 10.252.2.150. Sesuaikan dengan IP Router yang akan
dijadikan VPN Gateway . Sehingga file tersebut dirubah menjadi:
local 10.252.2.150
Setelah konfigurasi selesai, restart service openVPN dengan
menggunakan perintah : /etc/init.d/openvpn restart

3.2.2. Konfigurasi Client

Pada konfigurasi client, bisa dilakukan pada 2 jenis system


operasi yaitu Linux dan Windows.

a. Konfigurasi pada Client Linux

Salin key dan certificate (ca.* dan client.*) dari server


atau VPN Gateway yang diperlukan ke dalam direktori
/etc/openvpn. Hal ini dapat dilakukan dengan mendownload
atau mengambil dengan menggunakan protocol sftp.
Selanjutnya salin juga contoh file konfigurasi client.conf
ke direktori /etc/openvpn, dengan cara
#cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/
openvpn/
Rubah file konfigurasinya dengan cara
# vim /etc/openvpn/client.conf
Pada bagian :
remote my-server -1 1194
Menjadi :
remote 202.154.187.2 1194
Dimana 202.154.187.2 adalah IP server OpenVPN, ganti IP
tersebut dengan IP VPN Gateway yang dituju.
Jalankan OpenVPN pada client dengan perintah :
# /etc/init.d/openvpn restart

8
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

b. Konfigurasi pada Client Windows

Untuk konfigurasi openVPN client pada windows,


langkahnya tidak begitu rumit seperti openVPN client pada linux.
Langkahnya untuk yang pertama adalah mengcopykan file .ca dan
.crt pada direktori C:/Program Files/OpenVPN/Config
Kemudian, untuk konfigurasinya, file yang dirubah adalah
client.ovpn pada direktori Config/, yang isi dari konfigurasi hamper
sama dengan konfigurasi pada Linux.
Kemudian untuk menjalankannya, seperti gambar 3.4
dibawah ini :

Gambar 3. 3 Koneksi untuk openVPN Client Windows

Jika koneksi berhasil, maka akan muncul tanda seperti


gambar 3.5 dibawah ini:

Gambar 3. 4 Koneksi oepnVPN berhasil

3.3 KONFIGURASI CENTRAL AUTHENTICATION SERVICE


Perancangan sistem ini terdiri atas beberapa tahap yang akan
diuraikan pada sub bab di bawah ini :

3.3.1 Instalasi Tomcat Server

Untuk servlet container pada proyek akhir ini digunakan apache


tomcat. Tomcat merupakan servlet container yang umum dipakai pada

9
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

banyak system. Untuk menginstal tomcat diperlukan java development


kit untuk compiling maupun running program-program berbasis java.
Langkah-langkah instalasi dan konfigurasi tomcat dengan cara
mengetikkan perintah-perintah dibawah ini pada shell :

# apt-get install tomcat6 tomcat6-webapps tomcat6-common

Perintah diatas akan menginstall tomcat beserta jdk yang


dibutuhkan untuk menjalankan CAS server. Setelah tomcat terinstall edit
file /etc/default/tomcat6 dan sesuaikan parameter seperti skrip 3.1 di
bawah ini :

TOMCAT6_USER=tomcat6
TOMCAT6_GROUP=tomcat6
JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk
TOMCAT6_SECURITY=no

Skrip 3. 1 Parameter Tomcat

Baris ketiga adalah konfigurasi letak java development kit yang


terinstall pada komputer server. Baris keempat adalah konfigurasi java
security manager, konfigurasi ini harus dimatikan agar proses
deployment server CAS berjalan lancar.
Setelah mengkonfigurasi tomcat, agar konfigurasi yang baru
dijalankan oleh tomcat maka tomcat perlu direstart.
# /etc/init.d/tomcat6 restart
Uji coba pada browser dengan mengetikkan
http://namaserver:8080, jika pada browser muncul seperti gambar 3.2
maka instalasi tomcat berhasil. Edit file /etc/tomcat6/tomcat-
users.xml seperti skrip 3.2 dibawah untuk menambahkan hak
sebagai admin pada pengguna tomcat :

<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="zizmanis" password="zizmanis" roles="admin,manager"/>
</tomcat-users>

Skrip 3. 2 Penambahan hak sebagai administrator

10
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Gambar 3. 5 Tomcat terinstall

Dikarenakan CAS server membutuhkan mode https untuk berjalan


dengan baik maka tomcat yang kita gunakan harus bisa berjalan pada
mode https. Tambahkan konfigurasi https pada file
/etc/tomcat6/server.xml seperti terlihat pada skrip 3.3 di bawah :

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"


maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />

Skrip 3. 3 Konfigurasi https pada tomcat

3.3.2 Instalasi LDAP Server Sebagai Database user

Untuk database pengguna pada proyek akhir ini digunakan


OpenLDAP. LDAP digunakan karena mudah untuk dikonfigurasi dan di
integrasikan ke banyak aplikasi.
Langkah-langkah instalasi OpenLDAP seperti dibawah ini :

# apt-get install slapd ldap-utils migrationtools

Pada saat instalasi installer akan menampilkan berapa form isian


yang harus kita isi, pada skrip 3.4 di bawah ini merupakan contoh dari
form :

11
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Omit OpenLDAP server configuration? ... No


DNS domain name: ... www.enterprise-ptpn10.com
Name of your organization: ... EEPIS PTPN10
Admin Password: *******
Confirm Password: ******
OK
HDB
Do you want your database to be removed when slapd
is purged? ... No
Move old database? ... Yes
Allow LDAPv2 Protocol? ... No

Skrip 3. 4 Proses instalasi OpenLDAP

Cek apakah server ldap telah berjalan dengan mengetikkan


perintah di bawah ini :

$ ldapsearch -x -b dc=www,dc=enterprise-ptpn10,dc=com

Jika tampil keluaran seperti gambar 3.7 di bawah ini berarti


server ldap telah berjalan :

Gambar 3. 6 Test LDAPsearch

12
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Setelah ldap server berjalan, import nama pengguna dan kata


sandi dari basisdata pengguna sistem operasi menggunakan
migrationtools.
Langkah pertama pindah direktori ke direktori tempat instalasi
migrationtools :
#cd /usr/share/migrationtools/
Edit konfigurasi dari migratontools, sesuikan dengan parameter
dari ldap server yang telah dikonfigurasi di atas seperti terlihat pada
skrip 3.5 di bawah ini:

$DEFAULT_MAIL_DOMAIN = "www.enterprise-ptpn10.com";
$DEFAULT_BASE = "dc= www,dc= enterprise-ptpn10,dc=com";

Skrip 3. 5 Parameter migrationtools

Migrasikan daftar pengguna dari sistem operasi ke format


basisdata ldap :

# ./migrate_group.pl /etc/group ~/group.ldif


# ./migrate_passwd.pl /etc/passwd ~/passwd.ldif

Perintah di atas digunakan hanya untuk memigrasikan list


pengguna dan grup dari basisdata sistem operasi ke dalam format
basisdata ldap, untuk node People dan Group pada basisdata ldap kita
harus membuat sendiri file people_group.ldif dan menambahkan secara
manual ke dalam basisdata ldap. Isi dari people_group.ldif adalah seperti
terlihat pada skrip 3.6 di bawah ini:

dn: ou=People,dc=www,dc=enterprise-ptpn10,dc=com
ou: People
objectclass: organizationalUnit
objectclass: top
objectclass: dcObject
dc: People

dn: ou=Group,dc=www,dc=enterprise-ptpn10,dc=com
ou: Group
objectclass: organizationalUnit
objectclass: top
objectclass: dcObject
dc: Group

Skrip 3. 6 Isi people_group.ldif

13
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Setelah semua siap hasil import siap untuk dimasukkan


kedalam database ldap dengan perintah dibawah ini :

# cd ~
# ldapadd -x -W -D "cn=admin,dc=www,dc=enterprise-
ptpn10,dc=com” -f ~/people_group.ldif
# ldapadd -x -W -D "cn=admin, dc=www,dc=enterprise-
ptpn10,dc=com” -f ~/group.ldif
# ldapadd -x -W -D "cn=admin, dc=www,dc=enterprise-
ptpn10,dc=com” -f ~/passwd.ldif

Cek kembali dengan cara diatas dan pastikan user telah masuk ke
dalam database ldap dengan tool tambahan yaitu PHPLDAPADMIN
atau CPU (Change Password Utility). Untuk instalasi CPU dan
PHPLDAPADMIN perlu dilakukan instalasi dengan perintah :

# apt-get install cpu phpldapadmin

Perintah di atas akan mencari dependensi dari cpu dan


phpldapadmin dan melakukan instalasi. Setelah proses instalasi selesai
cek masing-masing tool, untuk cpu pengecekan dilakukan melalui
konsol dengan mengetikkan perintah :
# cpu
Apabila keluar tampilan seperti pada gambar 3.8 di bawah ini
maka cpu telah berajalan dengan baik.

14
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Gambar 3. 7 Cpu terinstall

Konfigurasi yang dilakukan pada tool CPU adalah merubah


parameter-parameter pada file /etc/cpu/cpu.conf, seperti gambar 3.9
dibawah ini :

15
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Gambar 3. 8 Konfigurasi CPU

Untuk pengecekan instalasi PHPLDAPADMIN buka browser


ketikkan http://namaserver/phpldapadmin, apabila keluar seperti pada
gambar 3.10 di bawah ini maka phpldapadmin telah terinstall dengan
benar.

Gambar 3. 9 phpLDAPadmin terinstall

16
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Gambar 3. 10 phpLDAPadmin berhasil Login

Pada Gambar 3.11 Import user dari system kedalam database


LDAP telah berhasil sehingga database LDAP siap digunakan untuk
autentikasi pada server CAS.

3.3.3 Instalasi Apache Dan Mod_Jk Untuk Integrasi Dengan


Tomcat

Webserver dengan dukungan PHP dan mod_ssl digunakan untuk


integrasi dengan klien yang berbasis php. Mod_ssl digunakan untuk
menambahkan layanan https pada http server. Proses instalasi apache,
php dan modul-modul pendukungnya akan dijelaskan dibawah ini.

Untuk instalasi apache dan php ketikkan perintah dibawah ini :

#apt-get install apache2 openssl ssl-cert libapache2-


mod-php5 php5-cli php5-common php5-cgi

Untuk mengecek apakah instalasi telah berjalan dengan benar buat


file phpinfo.php dan kopikan ke direktori root /var/www/ dari apache.
Isi dari file phpinfo.php.
Program ini akan memanggil fungsi bawaan dari php yang
menampilkan parameter-parameter dari server tempat php berjalan.Buka
web browser dan ketikkan http://namaserver/phpinfo.php pada browser,

17
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

jika keluar tampilan seperti gambar 3.12 maka instlasi telah berjalan
dengan sukses.

Gambar 3. 11 PHP dan Apache terinstall

Langkah selanjutnya adalah konfigurasi dari mod_ssl. Modul ini


dipakai untuk menyediakan layanan https pada web server apache.

Untuk mengaktifkan modul tersebut ketikkan perintah :


# a2enmod ssl
Perintah di atas akan membuat satu file konfigurasi baru pada
direktori /etc/apache2/site-enabled. Nama file default adalah default-ssl
yang merupakan file konfigurasi virtual host untuk protokol https. Agar
protokol https dapat berjalan dengan baik kita perlu menambahkan port
yang akan dipakai pada file /etc/apache2/ports.conf, skrip 3.7 di bawah
ini adalah contoh dari file ports.conf

18
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Skrip 3. 7 Konfigurasi ports.conf

Dari skrip 3.9 di atas terlihat bahwa apache akan mendengarkan


permintaan klien pada dua port yaitu 80 dan 443, port 80 digunakan
untuk permintaan http biasa dan 443 digunakan untuk permintaan https.
Langkah selanjutnya adalah pembuatan file sertifikat untuk ssl.
Pada proyek akhir kali ini tidak menggunakan file sertifikat bawaan
openssl dikarenakan CAS server membutuhkan file sertifikat ssl yang
ditandatangani oleh vendor otoritas yang dipercaya seperti Verisign,
InstantSSL Comodo dsb, pada proyek akhir ini digunakan sertifikat
gratis dari Vendor InstantSSL yang bekerja sama dengan Comodo CA.
Dikarenakan gratis maka masa berlaku dari sertifikat ini hanya 90 hari.
Langkah pertama untuk pembuatan sertifikat adalah pembuatan key
yang akan digunakan untuk enkripsi dan CSR (Certificate Signing
Request) yang akan dikirimkan ke otoritas penandatangan sertifikat ssl
pembuatan CSR dan key dapat dilakukan dengan perintah :

#openssl req -new -newkey rsa:2048 -nodes -keyout server.key


-out server.csr

Perintah di atas akan menghasilkan key dan CSR yang akan


digunakan untuk membuat sertifikat ssl. CSR tersebut akan dikirimkan
ke Vendor CA(Certificate Authorithy) untuk dibuatkan sertifikat ssl.

Setelah proses di atas selesai CA akan mengirimkan file sertifikat


yang telah ditandatangani file ini yang akan kita gunakan untuk protokol
https. Skrip 3.8 di bawah ini adalah contoh dari file konfigurasi virtual
host untuk https yang telah ditambahkan dengan file sertifikat ssl :

19
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Skrip 3. 8 Konfigurasi virtual host untuk https

Untuk memudahkan konfigurasi selanjutnya maka aplikasi tomcat


akan diintegrasikan dengan apache dengan menggunakan mod_jk.
Mod_Jk adalah aplikasi yang berfungsi untuk menjembatani
(ProxyPass) antara tomcat6 dan apache2 Untuk menginstal mod_jk
ketikkan perintah di bawah ini :

# apt-get install libapache2-mod-jk

Setelah mod_jk terinstall dengan baik edit file


/etc/libapache2-mod-jk/workers.properties
Sesuaikan dengan parameter yang ada pada server. Skrip 3.9 di
bawah ini contoh konfigurasi dari file workers.properties :

Skrip 3. 9 Konfigurasi workers

Kemudian, agar workers.properties diatas dikenali oleh apache,


pada mod-enable pada apache, terdapat file jk.load yang berfungsi untuk

20
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

mengenalkan module mod_jk pada apache. Konfigurasi dari jk.load ini


adalah seperti skrip 3.10 :

Skrip 3. 10 Konfigurasi jk_load

Langkah selanjutnya masukkan parameter mount point dari tomcat


yang akan kita panggil melalui apache ke dalam virtual host yang kita
inginkan. Edit file konfigurasi virtual host /etc/apache2/sites-
enabled/default-ssl, tambahkan baris pada skrip 3.11 ke dalam
file konfigurasi :

JkMount /cas/* ajp13_worker

Skrip 3. 11 Konfigurasi mod_jk

Restart apache dengan perintah :

# /etc/init.d/apache2/restart

Untuk pengecekan buka browser ketikkan https://namaserver/cas,


jika tampil halaman login cas maka konfigurasi telah berhasi dan url
tersebut akan dipakai untuk konfigurasi CAS selanjutnya.

3.3.4 Instalasi dan Konfigurasi Server CAS

Server CAS terdiri dari file-file java yang harus dikompilasi


dengan pustaka ant atau maven agar dapat menjadi class servlet dan
dapat dijalankan pada container tomcat. Untuk mengkompilasi source
CAS, digunakan aplikasi apache maven dan pustaka ant . Untuk
menjalankan kompilasi dengan maven, sebelumnya masuk pada folder
source CAS, dan jalankan perintah seperti dibawah :

# mvn package

Maven atau ant akan mendownlod beberapa file pustaka dan mulai
mengompilasi dan memaketkan server CAS. Setelah selesai kompilasi

21
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

maka pada direktori webapp akan terdapat file .war. Untuk deployment
server salin file .war tersebut kedalam direktori webapps dari tomcat.
Atau juga bisa melalui tomcat-manager pada browser, seperti gambar
3.12 dibawah :

Skrip 3. 12 Deployment pada tomcat-manager

Restart tomcat dan lihat hasilnya pada browser dengan


mengetikkan https://namaserver:8443/cas/. Jika keluar tampilan seperti
pada gambar 3.14 maka instalasi server telah berhasil.

Gambar 3. 12 CAS Server Telah terinstall

22
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

3.3.5 Integrasi Dengan Klien

Seperti yang telah dijelaskan pada bab 2 CAS dapat di integrasikan


dengan berbagai macam pustaka klien. Pada proyek akhir ini pustaka
klien yang digunakan adalah PAM_CAS dan phpCAS. PAM_CAS dan
phpCAS ini akan diintegrasikan untuk aplikasi Roundcube Webmail,
Sistem Informasi Central Application System, dan Monitoring system
serta beberapa aplikasi tambahan lain.

3.3.5.1. Integrasi dengan Webmail

Untuk meintegrasikan CAS dengan webmail, terlebih dahulu harus


disiapkan mail server. Dalam hal ini dipakai aplikasi Postfix, Courier-
Imap, dan Roundcube sebagai webmail.
Sebelum diintegrasikan dengan webmail roundcube, terlebih
dahulu harus dilakukan instalasi pustaka phpCAS dan PAM_CAS.
Untuk mengintegrasikan CAS dengan klien php kita perlu mengunduh
terlebih dahulu pustaka untuk menghubungkan CAS server dengan klien
berbasis php.
Pustaka phpCAS dapat diunduh pada url http://www.ja-
sig.org/downloads/cas-clients/php/1.0.1/CAS-1.0.1.tgz pada mesin linux
yang digunakan pada tugas akhir kali ini dapat menggunakan perintah :

#wget http://www.jasig.org/downloads/cas-clients/php/1.0.1/
CAS-1.0.1.tgz

Setelah selesai mengunduh pustaka klien, ekstrak dengan perintah :

#tar -xzvf CAS-1.0.1.tgz

Setelah selesai proses ekstraksi akan muncul satu direktori dan satu
file, kopikan direktori yang ada pada /usr/share/php/PEAR/, kopikan
juga file yang ada ke direktori yang sama. Kemudian tambahkan dua
baris konfigurasi pada skrip 3.13 ini ke file php.ini :

23
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Skrip 3. 13 Konfigurasi PEAR pada php.ini

Selanjutnya adalah integrasi dengan PAM_CAS yang akan


menjembatani proses autentikasi antara mail server dengan PAM_CAS
untuk dapat memperoleh Proxy Ticket yang tervalidate oleh CAS Server
yang bisa digunakan untuk mengautentikasi aplikasi clien yang
terintegrasi. Untuk PAM_CAS ini digunakan karena mail server adalah
aplikasi yang membutuhkan autentikasi level sistem.
Untuk mengintegrasikan server CAS dengan sistem otentikasi
sistem dibutuhkan modul pam_cas yang terdapat pada YALE CAS
client, pada klien CAS ini terdapat beberapa pustaka klien diantaranya
adalah pam_cas. Untuk mendapatkan YALE CAS client ini dapa
diunduh melalui
url: http://www.ja-sig.org/wiki/download/attachments/827/cas-
client-2.0.1. tar.gz
Setelah terdownload ekstrak dengan perintah
#tar -xzvf cas-client-2.0.11.tar.gz
Setelah terekstrak masuk kedalam direkotri hasil ekstrkasi dan
masuk lagi kedalam direktori modul pam :
# cd cas-client-2.0.11/pam_cas/
Kemudian kompilasi dengan mengetikkan perintah :
# make
Hasil kompilasi akan berupa modul pam unix yang berekstensi .so,
kopikan hasil kompilasi ini kedalam direktori /lib/security :
# cp pam_cas.so /lib/security/
Tambahkan konfigurasi seperti gambar 3.15 di bawah pada file
otentikasi unix yang berada pada direktori /etc/pam.d/imap :

Gambar 3. 13 Setting pada IMAP pam.d


24
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Kemudian ditambahkan file konfigurasi untuk modul pam_cas ini


pada direktori /etc/pam_cas.conf seperti terlihat pada gambar 3.16 di
bawah ini:

Gambar 3. 14 Konfigurasi pam_cas.conf

Setelah konfigurasi selesai, maka bisa dilakukan test untuk login


melalui # telnet localhost 143, dan pada log di /var/log/auth.log, akan
muncul log seperti gambar 3.17 dibawah ini :

25
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

PAM_cas[24802]: We use SSL as configured


PAM_cas[24802]: We connect to host www.enterprise-ptpn10.com
PAM_cas[24802]: ---- request :#012GET https://www.enterprise-
ptpn10.com/cas/proxyValidate?ticket=ST-303-2d0QgxpmFwTT3wdFhtOR-
cas&service=imap://www.enterprise-ptpn10.com HTTP/1.1#012Connection:
close#012Host: www.enterprise-ptpn10.com#012#012
PAM_cas[24802]: ---- response :#012HTTP/1.1 200 OK#015#012Date:
Mon, 03 Jan 2011 11:39:46 GMT#015#012 Server: Apache/2.2.9 (Debian)
mod_jk/1.2.26 PHP/5.3.3-6 with Suhosin-Patch mod_ssl/2.2.9
OpenSSL/0.9.8o#015#012Content- Language: en-US#015#012Content-Length:
296#015#012Vary: Accept-Encoding#015#012 Connection: close#015#012
Content-Type: text/html;charset=UTF-8#015#012#015#012<cas:service
Responsexmlns:cas='http://www.yale.edu/tp/cas'>#012#011<cas:authentic
ationSuccess>#012#011#011<cas:user>aziz</cas:user>#012#012#012#011#01
1<cas:proxies>#012#012#011#011#011<cas:proxy>https://www.enterprise-
ptpn10.com/squirrelmail/src/login.php</cas:proxy>#012#012#011#011</ca
s:proxies>#012#012#011</cas:authenticationSuccess>#012</cas:serviceRe
sponse>#012

PAM_cas[24802]: checking element https://www.enterprise-


ptpn10.com/squirrelmail/src/login.php
PAM_cas[24802]: USER 'aziz' AUTHENTICATED WITH CAS PT:ST-303-
2d0QgxpmFwTT3wdFhtOR-cas

Gambar 3. 15 Output Log pada /var/log/auth.log

Kemudian Selanjutnya adalah integrasi dengan Roundcube


webmail sebagai frontend dari mail server. Roundcube adalah webmail
berbasis ajax sehingga diperlukan integrasi dengan pustaka phpCAS.
Autentikasi CAS dan Webmail ini, dijembatani oleh LDAP untuk
mendapatkan akses pada IMAP server, sehingga CAS mampu
memberikan autentikasi pada user untuk mengakses webmail.
Masuk pada direktori Roundcube di /usr/share/roundcube/,
kemudian tambahkan pada file index.php dengan skrip 3.14 seperti
dibawah :

26
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Skrip 3. 14 Integrasi roundcube dengan CAS

Setelah ditambahkan skrip di atas, lalu diedit juga pada file yang
sama, dengan skrip 3.15 dibawah ini :

27
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Skrip 3. 15 Authentikasi dengan IMAP Server

Pada Skrip 3.15 tersebut diatas, melalui method


exec_hook(’authenticated’), user dan password yang didapat dari proses
login, diteruskan kepada fungsi imap_open() pada Roundcube, pada
class $RCMAIL. Setelah user authenticated, maka akan dibuat session
oleh CAS dan IMAP agar user bisa masuk dan beroperasi pada mailbox
masing-masing user.
Kemudian, pada Login Roundcube yang default, proses login harus
melalui tombol Login untuk bisa masuk ke dalam aplikasi webmail.
Sehingga harus dikonfigurasi pada form login untuk auto redirect pada
halam utama email seperti pada skrip 3.16 dibawah.

Skrip 3. 16 konfigurasi auto redirect pada login page Roundcube

28
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Berikut adalah gambar 3.18 tampilan webmail roundcube sebelum


diintegrasikan dengan CAS Server :

Gambar 3. 16 Login Page roundcube belum terintegrasi

Setelah diintegrasikan dengan CAS Server maka, pada gambar


3.19 adalah login page dari roundcube akan ter redirect pada login CAS,
seperti gambar dibawah ini :
url redirect to CAS:
https://www.enterprise-ptpn10.com/cas/login?service= https
%3A%2F%2Fwww.enterprise-ptpn10.com%2Froundcube%2F

Gambar 3. 17 login page roundcube setelah terintegrasi

29
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

3.3.5.2. Integrasi Dengan Central Application System

Untuk Integrasi dengan Sistem Informasi Central Authentication


Sistem, pustaka yang digunakan adalah phpCAS. Untuk integrasi ini,
pada file index.php aplikasi Central Application System ditambahkan
skrip 3.17 seperti dibawah ini :

Skrip 3. 17 Integrasi Central Application dengan CAS

Berikut adalah gambar 3.20 dan 3.21 tampilan dari halaman login
Central Application yang telah terintegrasi dengan CAS :

30
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Gambar 3. 18 Login Central Application System Setelah di integrasi


dengan CAS

Gambar 3. 19 halaman Utama Setelah Login dengan CAS

31
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

3.3.5.3. Integrasi Dengan WAP Mobile Application

Pada mobile application bisa diintegrasikan juga dengan CAS


dengan menggunakan modul phpCAS, karena WAP diakses melalui
web browser juga.
Untuk mengintegrasikan aplikasi WAP, terlebih dahulu
copykan pustaka phpCAS pada folder aplikasi WAP yang akan
diintegrasikan. Berikut pada skrip 3.18 adalah source aplikasi WAP
yang belum terintegrasi dengan CAS.

Skrip 3. 18 WAP yang belum terintegrasi

32
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Skrip 3. 19 WAP yang telah terintegrasi CAS

Pada skrip 3.19, baris ke 1 sampe ke 3 adalah inisialisasi


konfigurasi CAS auth dan validasi sertifikat SSL, kemudian pada
baris ke 5, halaman akan dipaksa masuk ke login page CAS, jika
user belum terautentikasi. Jika user terautentikasi, maka halaman
akan masuk pada home.php, yang bisa langsung mengakses aplikasi
WAP seperti gambar 3.22 dibawah ini.

Gambar 3. 20 Aplikasi CAS yang berhasil login


33
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

3.4 KONFIGURASI DAN PEMBUATAN MONITORING


STREAMING SERVER

3.4.1. Instalasi Server Streaming


Pada proyek akhir ini, dibangun juga monitoring Streaming
Server, yang berfungsi untuk memonitor kegiatan produksi pada
tiap Unit Pabrik Gula di lokasi melalui streaming tanpa harus
datang secara fisik ke lokasi dengan desain sistem seperti gambar
3.23 dibawah ini.

Gambar 3. 21 Desain Sistem Monitoring Streaming Server

Untuk pembuatan monitoring Streaming Server ini, digunakan


aplikasi dari Adobe System, yaitu Flash Media Streaming (FMS)
Server dan Flash Media Live Encoder (FMLE). FMS berfungsi
sebagai layanan penyedia Streaming RTMP protokolnya yang
fungsinya mirip seperti Switch Hub. Sedangkan FMLE berfungsi
34
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

sebagai encoder dari input video/audio untuk selanjutnya diteruskan


pada server RTMP yang terhubung.
Untuk FMS ini adalah aplikasi berbayar yang dikeluarkan oleh
Adobe System. Untuk kali ini digunakan versi FMS 3.0.1.
Kemudian untuk instalasi pada Debian adalah dengan mengekstrak
file FlashMediaServer3.tar.gz dengan perintah :
#tar –xzvf FMS.3.0.1.tar.gz

Kemudian untuk menjalankan installer dari FMS adalah


dengan perintah sebagai berikut :

#./installFMS –platformWarnOnly

Maka akan muncul beberapa dialog pertanyaan untuk setting


FMS. Untuk awal kali, isi dengan default pada tiap dialog untuk
mempermudah instalasi.
Setelah instalasi selesai, maka FMS akan start automatically
dan membuka prt RTMP (19350).

root@enterprise-ptpn10:~/FMS_3_0_1_r123# netstat -nptlu | grep 19350


tcp 0 0 127.0.0.1:19350 0.0.0.0:* LISTEN 11160/fmsedge

Setelah server RTMP sudah berjalan, maka server siap


menerima koneksi dari client.

35
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

3.4.2. Pembuatan Website Monitoring dengan


Flowplayer
Setelah server streaming selesai dikonfigurasi, maka
dilanjutkan untuk pembuatan aplikasi streaming dengan
Flowplayer. Flowplayer berfungsi untuk memutar file .flv baik
secara offstream maupun livestream.
Dengan menggunakan player dari flowpalyer ini, maka hasil
encoder dari client dengan Flash Media Live Encoder bisa langsung
ditampilkan melalui web browser.
Pada script 3.20 dibawah ini adalah fungsi untuk
menampilkan hasil encoder dari client :

Skrip 3. 20 Fungsi untuk menampilkan hasil encoder

Pada baris ke 17, adalah dimana kita mendefinisikan


konfigurasi dari server Streaming. Maksud dari cam1, adalah class
livestream pada folder /opt/adobe/fms/applications/cam1, yang
berfungsi untuk menangkap hasil encoder dari client.

36
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Pada proyek akhir ini, didefinisikan ada 3 node Unit yang


mengintepretasikan Unit Pabrik Gula PTPN10, sehingga terdapat 3
class liveStream pada folder /opt/adobe/fms/applications yaitu
cam1, cam2, dan cam3. Yang mana masing-masing dari class
tersebut digunakan oleh masing-masing node.
Sehingga Tampilan untuk aplikasi monitoring sebelum ada
input dari client seperti gambar 3.24 dibawah ini :

Gambar 3. 22 Interface Monitroing Streaming Server

3.4.3. Proses Encoder pada Client Dengan Flash Media


Live Encoder

Setelah Aplikasi Streaming siap menerima hasil encoder dari


client, selanjutnya adalah langkah bagaimana proses encoder
dilakukan pada client.
Sebelumnya, aplikasi Flash Media Live Encoder harus
diinstall pada masing-masing Client berikut include Camera
Webcame sebagai media input dari proses encoding. FMLE ini
tersedia dalam format .exe untuk OS Windows dan .dmg untuk
MAC OSX.
37
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Gambar 3. 23 Tampilan FMLE pada Windows

Pada Gambar 3.25 adalh tampilan dari FMLE versi 3.2. Pada
form yang dilingkari merah, adalah untuk mendeklarasikan URL
dari server Streaming yang dituju dengan protokol RTMP, dan
sesuai dengan class yang dituju, dalam gambar ... adalah cam1.
Jika konfigurasi telah sesuai, maka proses encoding siap
dijalankan, seperti gambar 3.26 dibawah ini :

38
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Gambar 3. 24 Proses Encoding dari FMLE

Pada saat proses encoding berjalan, maka pada aplikasi


website monitoring akan langsung menampilkan hasil streaming
dari proses encoding client, seperti gambar 3.27 dibawah ini :

39
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

Gambar 3. 25 Streaming dari hasil Encoding 3 Client

Pada tampilan gambar 3.27 diatas, adalah hasil encoding dari 3


Client yang terhubung melalui jalur VPN pada server. 3 Client
tersebut adalah interpretasi dari 3 Node Unit pabrik Gula.

40
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)

41
LITERATUR

[1.] VPN - Virtual Private Network and OpenVPN. From :


http://www.openvpn.org/VPN_-
_Virtual_Private_Network_and_OpenVPN, (Diakses 23 Juli
2010)
[2.] Sufian, Indra (2010). Pengertian Virtual Private Network. From
: http://www.indrasufian.web.id/2007/09/19/pengertian-virtual-
private-network vpn/, (diakses 20 Juni 2010)
[3.] Santoso, Budi (2009). Enkripsi Komunikasi Data dengan
OpenVPN. From : http://ardelindo.livejournal.com/1768.html,
(diakses 16 february 2009)
[4.] Aubry Pascal, Julien Marchal, Vincent Matheieu,ESUP-Portail:
open source Single Sign-On with CAS (Central Authentication
Service) Paper On EUNIS2004, 2004
[5.] Wikan A.,Gatra, Winarno, SST,M.Kom, Idris (2009).
Implementasi Central Authentication Service Pada Eepis-
Network, Teknik Informatika PENS ITS, Surabaya
[6.] Tutorial Gentting Started With Red5 Server. From :
http://www.red5tutorials.net/index.php/Tutorials:Getting_Starte
d_With_Red5_Server, (diakses 1 Oktober 2010)
[7.] Adobe System Inc. 2010. Adobe® Flash® Media Server 3.0.1
Developer Guide.
[8.] Adobe System Inc. 2010. Adobe® Flash® Media Live Encoder
3.2 Developer Guide.
[9.] Mazurek, Drew, uPortal And Yale Central Authentication
Service, ITS Technology & Planning, Yale University, JA-SIG
Summer Conference ’04, Denver
[10.] Roundcube – Ajax Modern Webmail. From :
http://www.wiki.roundcube.org/, (Diakses 27 Desember 2010)

xiv
LAMPIRAN

 Konfigurasi Apache2 Webserver (sites-enabled/


default_ssl):

<VirtualHost *:443>
ServerAdmin webmaster@localhost

ServerName www.enterprise-ptpn10.com
DocumentRoot /var/www/

SSLEngine on
#SSLCACertificateFile /etc/x509/gs_root.pem
#SSLCertificateFile /etc/x509/server.crt
#SSLCertificateFile /etc/x509/verisign.crt
#SSLCertificateFile /etc/x509/thawte.crt
#SSLCertificateChainFile
/etc/x509/geo_inter.pem
#SSLCertificateFile /etc/x509/thawte.crt
#SSLCertificateChainFile
/etc/x509/inter_thawte.crt
SSLCertificateChainFile /etc/x509/enterprise-
ptpn10_com.ca-bundle
SSLCertificateFile /etc/x509/enterprise-
ptpn10_com.crt
SSLCertificateKeyFile /etc/x509/server.key

JkMount /cas/* ajp13_worker

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

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


<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews
+SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

xv
ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice,


warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"


<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

 Konfigurasi /etc/tomcat6/server.xml :

<Server port="8005" shutdown="SHUTDOWN">


<Listener
className="org.apache.catalina.core.JreMemoryLeakPrevent
ionListener" />
<Listener className="org.apache.catalina.mbeans.
ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.
GlobalResourcesLifecycleListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be
updated and saved"
factory="org.apache.catalina.users.
MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"

xvi
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort
="8443" />

 Source Code PAM_CAS.c

/*

* Copyright (c) 2000-2003 Yale University. All rights


reserved.
*

* THIS SOFTWARE IS PROVIDED "AS IS," AND ANY EXPRESS OR


IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
EXPRESSLY
* DISCLAIMED. IN NO EVENT SHALL YALE UNIVERSITY OR ITS
EMPLOYEES BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED, THE
COSTS OF
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS
* SOFTWARE, EVEN IF ADVISED IN ADVANCE OF THE POSSIBILITY OF
SUCH
* DAMAGE.
*
* Redistribution and use of this software in source or binary
forms,
* with or without modification, are permitted, provided that
the
* following conditions are met:
*
* 1. Any redistribution must include the above copyright
notice and
* disclaimer and this list of conditions in any related
documentation
* and, if feasible, in the redistributed software.
*
* 2. Any redistribution must include the acknowledgment,
"This product

xvii
* includes software developed by Yale University," in any
related
* documentation and, if feasible, in the redistributed
software.
*
. The names "Yale" and "Yale University" must not be used to
endorse

* or promote products derived from this software.


*/ * * modify by esup consortium : http://esup-portail.org/
*
*/
#define PAM_SM_AUTH
#include <security/pam_appl.h>
#include <security/pam_modules.h>
#include <stdlib.h>
#include <string.h>
#include <syslog.h>
#include <sys/param.h>
#include "cas.h"
#define END(x) { ret = (x); goto end; }
static char *ErrorMessage[] = {
"",
"reading failure",
"bad parameter",
"bad CAS ticket",
"error in memory allocation",
"error with ssl initialization",
"error loading local certificate",
"error dengan certificate",
"error with ssl connection",
"error with network connection",
"error with http(s) connection",
"error CAS protocol",
"error CAS bad proxy",
NULL
};

static int _get_authtok (pam_handle_t * pamh);


int pam_sm_authenticate(pam_handle_t *pamh, int flags, int
argc,
const char **argv)

{
pam_cas_config_t *pstConfig = NULL;
char *configFile = NULL;
char *user, *pw;
char *service = NULL;
char netid[CAS_LEN_NETID];
int i, success, res, ret;
/* prepare log */
openlog("PAM_cas", LOG_PID, LOG_AUTH);
/* get username and password */
if (pam_get_user(pamh, (const char**) &user, NULL) !=
PAM_SUCCESS){
syslog(LOG_ERR, "Cannot get username");
END(PAM_AUTH_ERR);

xviii
}
if (pam_get_item(pamh, PAM_AUTHTOK, (const void**) &pw) !=
PAM_SUCCESS){
syslog(LOG_ERR, "Cannot get password (ticket)");
END(PAM_AUTH_ERR);
}
if (!pw)
{
if (_get_authtok(pamh) != PAM_SUCCESS){
syslog(LOG_ERR, "Cannot get_authtok from pamh");
END(PAM_AUTH_ERR);
}
if (pam_get_item(pamh, PAM_AUTHTOK, (const void**) &pw)
!= PAM_SUCCESS){
syslog(LOG_ERR, "Cannot get password (ticket) item from
pamh");
END(PAM_AUTH_ERR);
}
}
/*
* Abort if the password doesn't look like a ticket. This
speeds things
* up and reduces the likelihood that the user's password
will end up
* in an HTTPD log.
*/
if ((strncmp(CAS_BEGIN_PT, pw, strlen(CAS_BEGIN_PT)) != 0)
&& (strncmp(CAS_BEGIN_ST, pw, strlen(CAS_BEGIN_ST)) !=
0))
END(PAM_AUTH_ERR);
/* check arguments */
for (i = 0; i < argc; i++) {
if (!strncmp(argv[i], "-s", 2)) {
service = strdup(argv[i] + 2);
} else if (!strncmp(argv[i], "-f", 2)) {
configFile = strdup(argv[i] + 2);
} else if (!strncmp(argv[i], "-e", 2)) {
/* don't let the username pass through if it's excluded
*/
if (!strcmp(argv[i] + 2, user)) {
syslog(LOG_NOTICE, "user '%s' is excluded from the CAS
PAM",user);
END(PAM_AUTH_ERR);
}
} else
syslog(LOG_ERR, "invalid option '%s'", argv[i]);
}
res = read_config (configFile, &pstConfig, DEBUG_NO);
if (res != CAS_SUCCESS)
{
syslog(LOG_ERR, "Error with config file %s : %s\n",
configFile, ErrorMessage[res]);
END(PAM_AUTH_ERR);
}
/* determine the CAS-authenticated username */
success = cas_validate(pw,service,

netid,

xix
sizeof(netid),

pstConfig);

/* Confirm the user and return appropriately. */


if ((success == CAS_SUCCESS) && (!strcasecmp(user, netid)))
{
if (pstConfig->debug)
syslog(LOG_NOTICE, "USER '%s' AUTHENTICATED WITH CAS
PT:%s", user, pw);
END(PAM_SUCCESS);
} else {
if (strcmp(user, netid) && (success == CAS_SUCCESS)) {
syslog(LOG_NOTICE,
"authentication failure : PAM login (%s)
different from CAS login (%s)", user, netid);
} else {
if (pstConfig->debug)
syslog(LOG_NOTICE,
"authentication failure for user '%s' : %s.
PT=%s", user, ErrorMessage[success],pw);
else

syslog(LOG_NOTICE,

"authentication failure for user '%s' : %s.",


user, ErrorMessage[success]);

END(PAM_AUTH_ERR);
}
end:
closelog();
if (service)
free(service);
if (configFile)
free(configFile);
// if (pstConfig)
//free_config(&pstConfig);
return ret;
}
int pam_sm_setcred(pam_handle_t *pamh, int flags, int argc,
const char **argv)
{
return PAM_SUCCESS;
}

static int _get_authtok (pam_handle_t * pamh)


{
int rc;
char *p;
struct pam_message msg[1], *pmsg[1];
struct pam_response *resp;
struct pam_conv *conv;
pmsg[0] = &msg[0];
msg[0].msg_style = PAM_PROMPT_ECHO_OFF;

xx
msg[0].msg = "Password: ";
resp = NULL;
rc = pam_get_item (pamh, PAM_CONV, (const void **) &conv);
if (rc == PAM_SUCCESS)
{
rc = conv->conv (1,
(const struct pam_message **) pmsg,
&resp, conv->appdata_ptr);
}
else
{
return rc;
}
if (resp != NULL)
{if (resp[0].resp == NULL)

free (resp);

return PAM_AUTH_ERR;
}

p = resp[0].resp;

/* leak if resp[0].resp is malloced. */

resp[0].resp = NULL;
}
else
{
return PAM_CONV_ERR;
}
free (resp);
pam_set_item (pamh, PAM_AUTHTOK, p);
return PAM_SUCCESS;
}

char * getErrorMessage(int index)


{return ErrorMessage[index];

xxi
 uPortal and the Yale Central Authentication Service
Concept :

xxii
xxiii
BIODATA PENULIS

Nama : AHMAD AZIZ


Tempat
: Bojonegoro
Lahir
Tanggal
: 28 Januari 1989
Lahir
Agama : Islam
Email : Basmalah.ahmadaziz@gmail.com
Moto :
Bismillah Nawaitu Lillahi Ta’ala
Hidup

Penulis dilahirkan di Bojonegoro tepat pada awal tahun 1989,


tepat pada hari Sabtu Legi. Pada tahun 1994 penulis putus sekolah
pada pendidikan taman kanak-kanak di TK Pancasila (Bojonegoro). Lalu
setelah 6 tahun, tepatnya tahun 2000, penulis menyelesaikan
pendidikan dasar di SDN Banjarjo 3, Kecamatan Padangan, Bojonegoro.
Kemudian pada tahun 2000 penulis melanjutkan pendidikannya
di SLTPN 1 Padangan (Bojonegoro). Lulus dari sekolah lanjutan tingkat
pertama pada tahun 2003, kemudian penulis melanjutkan pada sekolah
menengah kejuruan SMK Negeri 2 Bojonegoro dengan mengambil
program keahlian Mekanik Otomotif. Lulus tahun 2006 penulis
melanjutkan ke Politeknik Elektronika Negeri Surabaya (EEPIS) dengan
mengambil program studi D3 Teknologi Informasi dan Lulus tahun
2009, selanjutnya penulis melanjutkan studi Lintas Jalur D4 Teknik
Informatika hingga saat penyusunan proyek akhir ini.

xxiv