buku enterprise cas

52
1 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

Upload: ziz-manis

Post on 29-Jun-2015

524 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: BUKU Enterprise CAS

1

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

Page 2: BUKU Enterprise CAS

2

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

Page 3: BUKU Enterprise CAS

3

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

Page 4: BUKU Enterprise CAS

4

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

Page 5: BUKU Enterprise CAS

5

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 [[email protected]]:[email protected]

Page 6: BUKU Enterprise CAS

6

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 [[email protected]]:[email protected]

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:'[email protected]'

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

Page 7: BUKU Enterprise CAS

7

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 [[email protected]]:[email protected]

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:'[email protected]'

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.

Page 8: BUKU Enterprise CAS

8

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

Page 9: BUKU Enterprise CAS

9

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

Page 10: BUKU Enterprise CAS

10

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

Page 11: BUKU Enterprise CAS

11

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 :

Page 12: BUKU Enterprise CAS

12

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

Page 13: BUKU Enterprise CAS

13

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

Page 14: BUKU Enterprise CAS

14

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.

Page 15: BUKU Enterprise CAS

15

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 :

Page 16: BUKU Enterprise CAS

16

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

Page 17: BUKU Enterprise CAS

17

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,

Page 18: BUKU Enterprise CAS

18

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

Page 19: BUKU Enterprise CAS

19

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 :

Page 20: BUKU Enterprise CAS

20

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

Page 21: BUKU Enterprise CAS

21

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

Page 22: BUKU Enterprise CAS

22

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

Page 23: BUKU Enterprise CAS

23

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 :

Page 24: BUKU Enterprise CAS

24

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

Page 25: BUKU Enterprise CAS

25

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 :

Page 26: BUKU Enterprise CAS

26

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 :

Page 27: BUKU Enterprise CAS

27

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 :

Page 28: BUKU Enterprise CAS

28

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

Page 29: BUKU Enterprise CAS

29

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

Page 30: BUKU Enterprise CAS

30

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 :

Page 31: BUKU Enterprise CAS

31

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

Page 32: BUKU Enterprise CAS

32

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

Page 33: BUKU Enterprise CAS

33

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

Page 34: BUKU Enterprise CAS

34

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

Page 35: BUKU Enterprise CAS

35

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.

Page 36: BUKU Enterprise CAS

36

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.

Page 37: BUKU Enterprise CAS

37

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.

Page 38: BUKU Enterprise CAS

38

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 :

Page 39: BUKU Enterprise CAS

39

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 :

Page 40: BUKU Enterprise CAS

40

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.

Page 41: BUKU Enterprise CAS

41

Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network

Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan

Nusantara X (Persero)

Page 42: BUKU Enterprise CAS

xiv

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)

Page 43: BUKU Enterprise CAS

xv

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>

Page 44: BUKU Enterprise CAS

xvi

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"

Page 45: BUKU Enterprise CAS

xvii

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

Page 46: BUKU Enterprise CAS

xviii

* 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);

Page 47: BUKU Enterprise CAS

xix

}

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,

Page 48: BUKU Enterprise CAS

xx

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;

Page 49: BUKU Enterprise CAS

xxi

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];

}

Page 50: BUKU Enterprise CAS

xxii

uPortal and the Yale Central Authentication Service

Concept :

Page 51: BUKU Enterprise CAS

xxiii

Page 52: BUKU Enterprise CAS

xxiv

BIODATA PENULIS

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.

Nama : AHMAD AZIZ Tempat Lahir

: Bojonegoro

Tanggal Lahir

: 28 Januari 1989

Agama : Islam Email : [email protected] Moto Hidup

: Bismillah Nawaitu Lillahi Ta’ala