buku enterprise cas
TRANSCRIPT
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
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
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
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
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]
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
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.
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
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
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
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 :
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
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
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.
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 :
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
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,
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
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 :
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
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
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
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 :
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
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 :
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 :
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 :
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
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
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 :
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
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
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
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
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.
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.
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.
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 :
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 :
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.
41
Rancang Bangun Jaringan Enterprise Dengan Virtual Private Network
Dan Central Authentication System Pada Pabrik Gula PT. Perkebunan
Nusantara X (Persero)
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)
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>
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"
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
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);
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,
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;
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];
}
xxii
uPortal and the Yale Central Authentication Service
Concept :
xxiii
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