LDAP (Lightweight Directory Access Protocol)

LDAP (Lightweight Directory Access Protocol) adalah sebuah protokol aplikasi yang mengatur mekanisme pengaksesan layanan direktori (Directory Service). Direktori yang dimaksud adalah sekumpulan obyek yang memilki atribut yang secara logika maupun hirarki terorganisasi dengan baik. Direktori ini dapat mendeskripsikan banyak informasi seperti informasi tentang manusia, organisasi, aturan-aturan, layanan dan banyak entitas lainnya. Salah satu contoh dari direktori LDAP adalah sebuah direktori telepon yang berisi nama (orang maupun perusahaan) dikelompokkan secara alpabetis, dimana setiap nama memilki alamat, no telepon dan lain-lain. LDAP dalam melakukan query dan perubahan layanan direktori menggunakan protokol TCP/IP. LDAP menggunakan model client-server, dimana client mengirimkan identifier pada server dan server akan mencoba mencarinya pada DIT (Directory Information Tree) yang tersimpan pada server. Apabila ditemukan maka hasilnya akan dikirimkan ke client tersebut namun apabila tidak ditemukan maka hasilnya berupa pointer ke server lain yang menyimpan data yang di cari.

KONSEP

Dalam mempelajari LDAP, diperlukan pemahaman dari arti direktori dan apa kegunaannya. Direktori pada LDAP dapat berupa personal address book, phone book, yellow pages bahkan web direktori. Direktori dapat membantu pengguna untuk menemukan informasi yang dibutuhkan, sebagai contoh yellow pages. Pada yellow pages dapat dicari mengenai alamat lengkap, nomor telepon, alamat website dan e-mail dari suatu perusahaan hanya dengan mencari berdasarkan nama dari perusahaan yang telah disusun secara alpabetis pada direktori yellow pages. Dalam terminology computer, directory services bisa dikatakan sebagai suatu database tempat penyimpanan data, yang dapat di gunakan untuk memberikan informasi-informasi terkait dengan objeknya. Bagian dari direktori mungkin dapat berisi kumpulan informasi tentang user seperti surname, first name, phone number, User ID, mail address dan lain sebagainya.

Pada server LDAP, suatu directory service akan memilki item yang di jadikan sebagai root. Untuk sebuah titik root, secara umum di tunjukkan dengan suatu attribute dc (Domain Component), o (Organization) atau ou (Organization Unit). Kemudian pada leaf biasanya akan berisi item dengan atribut uid (User ID) ataupun cn (Common Name).

Directory service biasanya menyimpan informasi dalam bentuk struktur tree yang dinamakan Directory Information Tree (DIT). Setiap titik pada DIT diberi suatu alamat, baik secara relative maupun secara absolute. Untuk suatu alamat yang absolute di sebut sebagai DN (Distinguish Name). Sebuah server LDAP terdiri dari 3 komponen yang perlu diketahui sebelum membangun sebuah server LDAP.

  • Schema : Aturan yang mendeskripsikan jenis data apa saja yang akan disimpan, schema sangat membantu dalam menjaga konsistensi dan kualitas data untuk menghindari adanya duplikasi data.
  • ObjectClass : Sekumpulan entry yang menjelaskan tentang sebuah entry grup. ObjectClass membutuhkan atribut – atribut yang akan dapat merepresentasikan entry group tersebut.
  • Attribute : Entri yang bersifat unik seperti uid, cn, sn, ou, o, dc dan sebagainya. Atribut dapat berupa single value atau multi value.

MANFAAT

Seperti yang dijelaskan diatas, dalam mempelajari LDAP, terdapat istilah direktori. Direktori adalah suatu database tempat penyimpanan data, yang dapat digunakan untuk memberikan informasi – informasi yang berkaitan dengan object nya. Sebagai contoh : direktori dapat berupa address book, phone book , dan  yellow pages. Suatu direktori dapat membantu mencari informasi yang dibutuhkan.

Manfaat LDAP dapat dirasakan dengan memperhatikan tiga komponen penting pada DLAP itu sendiri yaitu Schema, Object Class dan Attribute. Dengan demikian penggunaan DLAP akan menjadikan informasi yang dihasilkan ataupun disimpan menjadi konsisten dan terhindar dari duplikasi data.

INTALASI LDAP

Pada bagian ini akan dijelaskan bagaimanakah cara melakukan installasi ldap pada server debian dan apa sajakah package-package yang di perlukan untuk menjalankan ldap dan memastikan bahwa ldap telah berjalan sebagaimana mestinya.

  • #aptitude install slapd

Perintah untuk melakukan instalasi pada suatu package, untuk menginstall package LDAP dapat menggunakan package slapd.

# export http_proxy=http://152.118.25.15:8888

# aptitude install slapd

  • #aptitude install ldap-utils

Perintah yang dilakukan untuk melakukan instalasi terhadap package yang digunakan untuk melakukan testing terhadap ldap. Package tersebut bernama ldap-utils.

# aptutide install ldap-utils

  • #ls /etc/rc2.d

Untuk memastikan apakah slapd telah terinstal dan berjalan dengan baik pada server dapat dilihat dengan melihat pada direktori runlevel apakah slapd ada pada proses yang sedang dijalankan. Karena server berjalan pada runlevel 2, untuk melakukan pengecekan pada direktori /etc/rc2.d.

KONFIGURASI LDAP

Konfigurasi tersebut meliputi proses dan langkah-langkah dalam membuat sebuah Directory Information Tree(DIT) sederhana, lalu akan dijelaskan juga bagaimana menjalankan perintah-perintah yang ada pada package ldap.

  • #slapcat

Slapcat adalah sebuah perintah yang dilakukan oleh super user untuk melakukan pencarian dan juga untuk mengetahui segala hal yang terkait ldap yang ada di file system. Slapcat dioperasikan secara offline. Pada kasus ini, perintah ini dijalankan untuk mengetahui domain yang ada pada server. Dapat dilihat bahwa domain yang telah ada pada server bisa adalah adsis.

  • #nano /etc/ldap/schema/ou.ldif

Buatlah sebuah file ldif pada directory /etc/ldap/schema. File ini akan digunakan nanti ketika proses ldapadd.

Lalu pada file ou.ldif tersebut masukkan konfigurasi seperti berikut ini :

Pada kasus tersebut, akan dibuat 2 buah organization unit yang berada pada domain adsis. Kedua organization unit tersebut bernama People dan Group.

  • #invoke-rc.d slapd stop

Perintah yang digunakan untuk mematikan proses slapd. Proses ini dimatikan sementara untuk melakaukan penambahan ldap.

  • #slapadd –c –v –l /etc/ldap/schema/ou.ldif

Slapadd adalah sebuah perintah yang digunakan untuk menambahkan suatu directory baru untuk ldap pada server.  Opsi –l digunakan untuk melakukan input melalui sebuah file ldif. Masukan direktori file ou.ldif yang sebelumnya telah dibuat.

  • # invoke-rc.d slapd start

Untuk mengaktifkan proses slapd setelah tadi dilakukan pengeditan pada slapd.

  • #slapcat

Untuk memastikan bahwa organizational unit telah terinstal, dapat dilakukan dengan perintah slapcat atau lpadsearch. Disini, digunakan perintah slapcat dan pada slapcat akan tampil 2 organizational unit baru yang sebelumnya tidak ada yaitu ou=people dan ou=group.

  • #nano /etc/ldap/schema/derp.ldif

Buatlah sebuah file ldif yang akan digunakan untuk menambah user baru dan grup baru pada server ldap.

Setelah itu, pada file tersebut masukkan semua konfigurasi terkait user dan grup baru tersebut.

  • #ldapadd –c –x –D cn=admin,dc=adsis –W –f /etc/ldap/schema/derp.ldif

Setelah membuat file derp.ldif, lakukan perintah ldapadd untuk menambahkan user dan grup baru tersebut. Untuk melakukan import dari file ldif bisa menggunakan opsi –f yang ada pada perintah ldapadd.

  • #ldappasswd –x –D cn=admin,cn=adsis –W –S uid=derp,ou=people,dc=adsis

Untuk melakukan perubahaan password dapat dilakukan dengan menggunakan perintah ldappasswd, nanti akan diminta password baru untuk user tersebut.

  • #slapcat

Untuk memastikan apakah user dan grup telah berhasil dibuat, dapat dilakukan perintah slapcat nanti, akan tampil deskripsi mengenai user dan grup baru tersebut.

REFERENSI

Website

[1].    Wiki.debian

[2].    Debian Administrator

[3].    Kokijava

[4].   Arif Rohaman Hakim

[5].    Kelas Jarkom

Artikel

josh.staff.ugm.ac.id/seminar/Modul%20OpenLDAP.pdf

====KA 01====

Raden Agung Yuga Dwitama

Indah Permatasari


Pluggable Authentication Modules (PAM)

1.    Introduction
PAM atau yang lebih dikenal dengan Pluggable Authentication Module adalah suatu library yang terdapat di dalam linux yang membuat seorang administrator mampu menambahakan authentication method baru dengan menginstall modul-modul yang ada di dalam library PAM tersebut. Selain menambahkan, seorang system administrator juga bisa mengedit authentication policies yang sudah ada dengan mengubah konfigurasi filenya.

2.    PAM Essentials
2.1.    Facilities and primitives
API dari PAM menyediakan 6 macam dari authentication primitives yang terbagi ke dalam 4 facilities,
–    auth
Authentication, facilities ini focus terhadap pembuatan otentikasi terhadap applicant dan juga mengestablish account credentials. Di dalam facility authentication, terdapat dua buah primitives diantaranya
o    pam_authenticate(3) : mengotentikasi applicant, biasanya dengan meminta authentication token untuk dibandingkan dengan value ID yang tersimpan dalam database server. Contoh : Login
o    pam_setcred(3) : menetapkan account credentials, seperti ID, group, dan resource limits.
–    Account
Account Management, facility ini akan mengurus mengenai masalah ketersediaan dari suatu account, seperti larangan akses tertentu pada hari dan jam tertentu. Account Management memilikki satu primitive :
o    Pam_acct_mgmt(3) : primitive ini digunakan memastikan bahwa account yang direquest tersedia.
–    Session
Session management, facility ini digunakan untuk menghandle mengenai masalah kapan suatu fitur dapat dijalankan dan kapan fitur tersebut tidak bisa diajalankan. Contoh : mengatur waktu kapan fitur ssh dapat dijalankan atau tidak dapat dijalankan. Session menyediakan dua buah primitives :
o    pam_open_session(3) : digunakan mengset session set-up atau kapan fitur tersebut dapat mulai dijalankan
o    pam_close_session(3) : digunakan untuk menset session tear-down atau kapan fitur tersebut tidak bisa digunakan lagi.
–    Password
Password Management, digunakan untuk mengatur kompleksitas dari password atau mengenai kekadaluarsaan dari password tersebut, Password Management menyediakan satu primitive :

2.2.    Modules
Modul di dalam PAM merupakan konsep yang paling utama dalam pembelajaran PAM, karena memang kepanjangannya adalah (Pluggable Authentication Module). Modul dari PAM berisi sepoton kode program yang isinya mengimplmentasikan suatu primitives di dalam satu atau lebih facilities yanbg membentuk suatu mekanisme untuk authentication facility seperti UNIX password database, NIS, LDAP, dan Radius.  Untuk direktori dari path, tidak ada yang umum untuk menyimpan modul PAM, untuk PAM versi FreeBSD modul – modul tersebut berada di dalam direktori /usr/lib dan untuk versi NetBSD dapat dilihat pada direktori /usr/lib/security
2.3.    Chains and Policies
Ketika server menginisiasi PAM, PAM akan meloading seluruh policy yang terdapat pada pam_start(3). Policy ini akan memproses request yang masuk dari klien dan menentukan bagaimana request ini berjalan sesuai dengan ketentuan policy yang telah didefinisikan.

Policy yang ada di dalam PAM terbagi ke dalam 4 chains, dimana satu facility mendapatkan masing-masing satu chain. Setiap chain berisi pernyataan konfigurasi yang berisi modul yang dijalankan, parameter yang dibutuhkan untuk melewati modul tersebut dan control flag yang menjelaskan seberapa penting suatu modul harus mampu dijalankan secara tepat agar dapat memberikan akses ke dalam suatu service.

Control Flag terbagi ke dalam 4 jenis diantaranya adalah :
–    Required. Control Flag ini menyatakan bahwa suatu modul harus dijalankan dengan sukses agar otentikasi yang direquest dapat dijalankan dan diberikan akses. Jika modul tersebut gagal dijalankan, maka otentikasi akan langsung ditolak dan akan langsung masuk ke dalam modul berikutnya.
–    Requisite. Hampir sama seperti required, apabila terjadi kesalahan otentiksasi juga akan ditolak, tetapi perbedaanya adalah kesalahan ini akan dikontrol oleh aplikasi sehingga ketika terjadi kesalahan tidak akan berlanjut ke modul berikutnya.
–    Sufficient. Control flag ini akan membuat suatu modul hanya akan dijalankan pada saat modul di atasnya yang bersifat required gagal, namun jika modul req    uired tersebut berhasil dijalankan, maka modul yang sufficient ini tidak akan dijalankan lagi.
–    Optional. Control flag merupakan suatu pilihan apakah mau dijalankan atau tidak. Jika modul tersebut gagal dijalankan, maka tidak aka nada pengaruhnya terhadap otenbtikasi user, begitu juga ketika modul ini berhasil dijalankan, maka modul ini tidak memberikan pengaruh terhadap kesuksesan dari suatu modul interface. Modul optional akan menjadi penting hanya saat di dalam suatu interface tersebut tidak modul lain selain modul optional.
Untuk lebih jelansnya dapat dilihat pada table PAM chain execution summary dibawah ini.
PAM_SUCCESS    PAM_IGNORE    Other

required    –    –    fail=true;
requisite    –    –    fail=true;break;
sufficient    if (!fail) break;    –    –
optional    –    –    –

3.    Manfaat PAM
Ada beberapa manfaat ketika menggunakan PAM, diantaranya
•    Meminimalkan kesalahan konfigurasi untuk sebuah applikasi.
•    Memudahkan untuk maintenance suatu aplikasi sehingga salah konfigurasi tidak menggangu aplikasi lain lain.
•    Memungkinan adanya link simbolik antar file konfigurasi yang berbeda menjadi satu file.
•    Memudahkan dan menghemat waktu konfigurasi.
•    Memungkinkan untuk membatasi akses individu menggunakan proteksi file system
•    Manajemen paket lebih sederhana karena setiap aplikasi baru dapat dilekatkan di /etc/pam.d/

4.    Konfigurasi PAM
•    Konfigurasi berbasis File (/etc/pam.conf)
Konfigurasi untuk setiap service PAM yang ada di simpan pada satu file /etc/pam.conf. Namun karena alasan pemeliharaan dan penggunaan, konfigurasi berbasis file ini tidak lagi digunakan. Untuk saat ini, konfigurasi untuk setiap service disimpan pada direktori /etc/pam.d/
Berikut tampilan isi dari file konfigurasi PAM /etc/pam.conf :

•    Konfigurasi berbasis direktori (/etc/pam.d/)
Setiap service atau program yang menggunakan PAM memiliki file konfigurasi sendiri yang disimpan dalam direktori /etc/pam.d/ . Beberapa file konfigurasi yang ada dalam direktori /etc/pam.d/ berbeda untuk semua host.
Berikut tampilan beberapa file konfigurasi yang ada dalam direktori /etc/pam.d/ :


Dalam debian, terdapat 5 konfigurasi default yang ada di dalam PAM, diantaranya adalah :

  •     /etc/pam.d/common-auth

  •     /etc/pam.d/common-account

  •   /etc/pam.d/common-password

  •   /etc/pam.d/common-session

  •   /etc/pam.d/common-session-noninteractive

5.    Implementasi PAM

5.1.    Membatasi Jumlah Kegagalan Login
Salah satu cara untuk menyusup ke dalam sistem adalah dengan mencoba kombinasi username dan password untuk login. Dengan menggunakan PAM kita dapat mengurangi resiko sistem disusupi oleh orang-orang luar. Untuk mengimplementasikannya, kita menggunakan modul pam_tally.so.

Contoh :
Tambahkan baris berikut ini ke file /etc/pam.d/login dengan cara
Vi /etc/pam.d/login

Ket:
Deny = 3, toleransi untuk kegagalan 3 kali
Unlock_time = 120, akun akan di unlock setelah 120 s kemudian.

Skenario :
User budi telah 3 kali melakukan kesalahan, sehingga pada kesempatan keempat akan muncul warning bahwa accountnya telah dikunci, sehingga harus menunggu selama 120 detik agar dapat melakukan login

5.2.    Membatasi waktu login
Dengan menggunakan PAM kita juga dapat membatasi waktu login untuk masing-masing user.
Contoh:
Untuk user budi hanya dapat login pada hari sabtu minggu pada jam 08:00 – 18.00.
Pertama tambahkan baris berikut pada file /etc/security/time.conf

Kemudian tambahkan baris berikut pada file /etc/pam.d/login

Skenario :
Budi tidak diizinkan login karena hari ini adalah hari selasa.

5.3.    Membatasi resource untuk user atau group
Dengan menggunakan PAM kita juga dapat membatasi resource untuk user ataupun group. Dan juga kita bisa membatasi jumlah maksimum seorang user dapat login kedalam sistem.

Contoh :
Untuk user budi dibatasi maksimum login kedalam sistem 2 kali.
Caranya tambahkan baris berikut pada file /etc/security/limits.conf

Kemudian tambahkan baris berikut kedalam file /etc/pam.d/login

Skenario :
Karena telah lebih dari 2 kali login, maka budi tidak dapat login lagi kedalam sistem

5.4.    Keamanan Password menggunakan pam_cracklib
Dengan menggunakan pam_cracklib admin dapat memastikan agar setiap user memiliki password yang sesuai dengan ketentuan. Misalnya dengan mewajibkan setiap user memiliki password dengan panjang minimal 8 karakter, terdiri dari kombinasi angka, huruf atau simbol, dan ketentuan lainnya.

Contoh :
Sebelumnya pastikan anda telah menginstall modul libpam-cracklib. Jika anda belum menginstall, install libpam-cracklib dengan cara :
Aptitude install libpam-cracklib

setelah itu tembahkan baris berikut pada /etc/pam.d/passwd dengan cara :
Vi /etc/pam.d/common-password

Sumber :
http://uw714doc.sco.com/en/SEC_pam/pam-6.html


Virtual Private Network (VPN)

1.       Pengertian Virtual Private Network (VPN)

Virtual Private Network (VPN) merupakan cara aman mengakses LAN dengan menggunakan internet atau jaringan umum lainnya untuk melakukan transmisi data paket secara private.

2.       Konsep VPN

VPN membutuhkan sebuah server untuk menghubungkan PC dengan PC.

Bila digunakan untuk menghubungkan 2 komputer secara private dengan jaringan internet, maka akan menjadi seperti ini:

Misalnya VPN yang menggunakan protocol Point to Point Tunneling Protocol (PPTP), dapat digambarkan sebagai berikut.

·         Seperti yang telah disebutkan sebelumnya, VPN butuh sebuah server untuk penghubung antar PC, server VPN ini bisa berupa komputer dengan aplikasi VPN server atau sebuah router.

·         Untuk memulai sebuah koneksi, computer dengan aplikasi VVPN client mengontak VPN server, yang akan memverifikasi username dan password. Jika verifikasi telah berhasil, VPN server akan memberikan IP address baru pada VPN client dan koneksi / tunnel pun terbentuk.

·         Setelah itu PC client dapat digunakan untuk mengakses baik PC lain maupun LAN yang berada di belakang VPN server.

3.       Manfaat VPN

Manfaat VPN antara lain yaitu:

  •  Remote access, kita dapat mengakses komputer atau jaringan yang kita inginkan selama terhubung dengan internet
  • Security, kita dapat melakukan browsing dengan koneksi internet public seperti hotspot atau warnet (warung internet) secara aman
  • Hemat biaya setup jaringan, VPN dapat menjadi teknologi alternatif penghubung jaringan local yang luas dengan biaya yang cukup rendah, karena transmisi data teknologi VPN menggunakan media jaringan public yang sudah ada tanpa perlu membangun jaringan pribadi

4.      Rancangan koneksi VPN

Untuk lebih memahami teori tentang Virtual Private Network (VPN), dibuat sebuah rancangan yang mengimplentasikan cara kerja koneksi VPN. Berikut rancangan vpn yang akan dibuat sebagai contoh dalam memahami VPN.

                        Dalam mengimplementasikan gambar di atas, maka kita harus mengikuti langkah-langkah sesuai dengan urutan 9 sampai 11 yang akan dijelaskan di bawah. Langkah-langkah tersebut meliputi Installation of OpenVPN, VPN Connection and Symmetric Key Encryption, dan VPN Connection with Public Key Encryption, yang masing-masingnya terdapat pula langkah-langkah yang wajib diikuti.

                        Gambar di atas menjelaskan cara kerja koneksi VPN dari dua komputer/PC yang menggunakan OS Linux Debian. Sambungan VPN dapat dilakukan dengan menggunakan kabel cross-over dan dua mesin bridge/internet. Dua PC tersebut diharuskan dapat melakukan ping satu sama lain dan server VPN memiliki 1194/UDP port terbuka untuk koneksi VPN Client.

Penjelasan lanjut tentang gambar:

·         Ditentukan pada gambar bahwa VPN-Server (IP Address: 10.1.1.3) dan VPN-Client (IP Address: 10.1.1.4).

·         Tunell VPN dibuat sebagai titik temu, yaitu 192.168.0.1 – 192.168.0.2.

·         Terowongan VPN dibuat dengan menggunakan Public Key Encryption (OpenVPN certification mode).

·         Alamat IP tiap pengguna akan berbeda yang berasal dari subnet 192.168.0.0/16.

·         Pengguna akan mendapat alamat IP 192.168.0.6.

5.      Install OpenVPN

a.      Install OpenVPN melalui repositori resmi

Aplikasi OpenVPN hanya terdiri dari satu file biner yang memiliki nama sama dengan nama aplikasinya, yaitu OpenVPN. File biner berfungsi untuk memulai sebuah OpenVPN Server dan OpenVPN Client yang berbeda pada saat konfigurasi bolak-balik antar keduanya. Install OpenVPN dilakukan dengan menggunakan tool apt-get. Apt-get akan secara otomatis menginstall prasyarat yang diperlukan.

Langkah yang dilakukan:

1.      Masuk debian sebagai root.

2.      Ketik command “apt-get install openvpn”.

3.      Tunggu sampai openvpn terinstall di debian.

b.      Mengaktifkan Interface Virtual Network

OpenVPN harus dijalankan bersama dengan Interface Virtual Network TUN/TAP. TUN/TAP adalah driver jaringan kernel virtual yang harus diaktifkan di kernel sebagai terowongan penghubung antara Server dan Client, serta sebagai modul untuk jaringan virtual pribadi. TAP dapat ditemukan pada Interface Network dengan nama “Universal TUN/TAP device driver support”. TAP driver ini berfungsi untuk mengkonfirmasi bahwa modul TUN dapat dijalankan pada sistem selama kompilasi kernel.

Langkah yang dilakukan:

1.      Ketik commandgrep CONFIG_TUN= /boot/config-“.

Langkah di atas akan menunjukan bahwa eth0 interface akan secara lagsung merepresentasikan sebuah hardware, misalnya sebuah PCI network card. Paket data yang dikirim akan berjalan melalui TUN/TAP interface sebelum diterima oleh eth0 network interface. Hal ini memungkinkan OpenVPN mengenkripsi paket sebelum sampai pada tujuan (PC).

6.      VPN Connection and Symmetric Key Encryption

a.       Menyiapkan VPN Server

Hampir semua konfigurasi pengaturan dapat dikirim ke aplikasi OpenVPN melalui command line. Namun, konfigurasi pengaturan dapat dibuat sebagai file konfigurasi yang akan dibaca ketika inisialisasi OpenVPN. File konfigurasi berfungsi untuk menjaga pengaturan koneksi VPN, karena jumlah koneksi bisa bertambah sesuai dengan limit koneksi pada sistem.

Langkah yang dilakukan:

1.      Ketik command/sbin/ifconfig eth0“ untuk cek ketersediaan eth0.
2.      Lakukan generate static symmetric key dengan command “openvpn --genkey --secret staticVPN.key”.
3.      Cek symmetric key dengan commad “cat staticVPN.key”.
4.      Mulai menjalankan OpenVPN Server dengan command “openvpn --dev tun --ifconfig 192.168.0.1 192.168.0.2 --secret staticVPN.key”.
Penjelasan: Parameter “--dev tun” ini akan menginstruksikan aplikasi OpenVPN dengan menggunakan virtual network interface TUN. Parameter “—ifconfig 192.168.0.1 192.168.0.2” menentukan alapat IP untuk kedua sis terowongan virtual. OpenVPN menetapkan virtual network interface tun0 ke alamat IP 192.168.0.1 dan akan menyediakan slot koneksi OpenVPN Client pada alamat IP 192.168.0.2. Parameter “--secret staticVPN.key” menentukan file dengan Static Symmetric Key yang dibuat pada langkah sebelumnya.
5.      Cek kebenaran dari langkah sebelumnya dengan command “ifconfig tun0”.
b.       Menyiapkan VPN Client

            Cara membuat VPN Client sama dengan cara membuat VPN Server di atas. Pada langkah ini, dianggap mendirikan koneksi melalui 10.0.0.0 network, client telah terinstall dan siap untuk menggunakan aplikasi OpenVPN dan symmetric key yang telah dihasilkan sebelumnya. OpenVPN dan symmetric key dicopy ke client dengan USB key atau SCP.

Langkah yang dilakukan:

1.      Ketik commandifconfig eth0“ untuk cek ketersediaan eth0.
2.      Mulai menjalankan OpenVPN Server dengan command “openvpn --remote 10.1.1.3 --dev tun --ifconfig 192.168.0.2 192.168.0.1 \
--secret staticVPN.key”.
Penjelasan: Paramerter “—remote 10.1.1.3” merupakan spesifikasi alamat IP sebenernya dari OpenVPN Server yang menunggu sambungan, client terhubung ke socket 10.1.1.3:1194/UDP. “--dev tun” ini akan menginstruksikan aplikasi OpenVPN dengan menggunakan virtual network interface TUN. Parameter “—ifconfig 192.168.0.2 192.168.0.1” menentukan alapat IP untuk kedua sis terowongan virtual. OpenVPN menetapkan virtual network interface tun0 ke alamat IP 192.168.0.1 dan akan menyediakan slot koneksi OpenVPN Client pada alamat IP 192.168.0.2. Parameter “--secret staticVPN.key” menentukan file dengan Static Symmetric Key yang dibuat pada langkah sebelumnya.
3.      Cek kebenaran dari langkah sebelumnya dengan command “ifconfig tun0”.

c.        Testing A VPN Connection

            OpenVPN Server dan OpenVPN Client menggunakan tun0 virtual network interface untuk menjaga hubungan yang dienkripsi terowongan virtual. Tno interface dari OpenVPN Server diatur ke 192.168.0.1 dan tno interface dari OpenVPN Client diatur ke 192.168.0.2.

Langkah yang dilakukan:

1.      Ketik command “ifconfig” pada masing-masing Server dan Client untuk mengetahui informasi koneksi.

2.      Ketik command “tcpdump –I tun0”.

3.      Ketik command “tcpdump –I eth0”.

7.       Koneksi VPN dengan Public Key Encription

Sebelum membuat sebuah koneksi VPN menggunakan Symmetric Key Encryption, kedua endpoint VPN perlu bertukar symmetric key terlebih dahulu. Symmetric key perlu dipertukarkan menggunakan medium private. Jika ada sebuah kasus di mana sebuah perusahaan memiliki jumlah pegawai yang besar dan setiap pegawai harus bertukas symmetric key dengan siapa saja yang ingin membuat koneksi VPN dengannya, maka pekerjaan ini akan menjadi sangat merepotkan, belum lagi sebuah key dapat bocor ke public di tengah jalan dan seluruh proses harus diulang lagi dari awal. Pada kasus-kasus seperti inilah dibutuhkan Public Key infrastructure (PKI).

a.       Public Key Infrastructure

Untuk menghindari kekacauan pertukaran public key ketika menggunakan model yang saling bertautan, kita dapat mendelegasikan seorang pegawai sebagai Certification Authority (CA) yang bertanggung jawab untuk menyimpan record atas semua public key. Tujuan CA yaitu untuk mengumpulkan semua private key dari semua pegawai dan menandatanganinya dengan private key CA tersebut – untuk mengeluarkan sertifikat. Jika ada seseorang yang ingin mengonfirmasikan sebuah signature dokumen yang dibuat oleh pegawai lain, pertama-tama ia akan menggunakan public key CA untuk mengonfirmasikan public key (sertifikat) pengirim . setelah public key pengirim terkonfirmasi, key tersebut dapat digunakan lebih jauh untuk mengonfirmasikan signature dari dokumen sebenarnya. Karena setiap rekan mengirimkan sertifikat yang ditanda tangani CA-nya sendiri, maka yang perlu dilakukan hanyalah untuk mendistribusikan kembali public key  CA ke setiap pegawai.

b.      Cara membuat Koneksi VPN menggunakan OpenVPN dan Symmetric Key Encription

Langkah pertama adalah membuat Certification Authority. Untuk melakukan ini, akan digunakan VPN-server dengan IP 10.1.1.3. Langkah ini akan menghasilkan self-signed public key CA dan private key yang sesuai. Langkah selanjutnya adalah membuat Cerificate Signing Request (CSR) server dan client yang akan menghasilkan CSR dan private key untuk keduanya. Selanjutnya, CSR client perlu ditransfer ke server di mana request server dan client akan ditanda tangani menggunakan private key CA. hal ini akan menghasilkan dua sertifikat yang sudah ditanda tangani, masing-masing satu untuk client dan server. Kemudian sertifikat client yang sudah ditanda tangani akan ditransfer ke client tersebut beserta public key CA. sebelum mulai mengerjakan, harus dipastikan bahwa sudah ada paket opnssl pada kedua system (vpn-client dan vpn-server):

1.       apt-get install openssl

2.       addgroup openvpn

3.       useradd –shell=/bin/false –g openvpn openvpn

c.       Membuat Certification Authority

1.       openssl req -new -x509 -extensions v3_ca -keyout ca-private-key.pem -out ca-certificate.pem -days 365

2.      openssl req -new -x509 -extensions v3_ca -keyout ca-private-key.pem \ -out ca-certificate.pem -days 365
3.      ca-certificate.pem  ca-private-key.pem

d.      Membuat Certificate Signing Request (CSR)

1.      openssl req -new -nodes -out vpn-server-CSR.pem
2.      scp vpn-client-CSR.pem root@10.1.1.3:~/
e.      Menandatangani CSR
1.       Buat file CA-openssl.config yang berisi seperti berikut
[ ca ] default_ca = ca_default [ ca_default ] dir = . new_certs_dir = . private_key = ca-private-key.pem certificate = ca-certificate.pem database = index.txt default_md = md5 serial = serial default_days = 365 x509_extensions = usr_cert   policy = generic_policy [ generic_policy ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional   [ usr_cert ] authorityKeyIdentifier = keyid basicConstraints = CA:FALSE keyUsage = digitalSignature extendedKeyUsage = serverAuth
2.       touch index.txt; echo 01 > serial;  
3.       openssl ca -config CA-openssl.config -infiles \  vpn-server-CSR.pem 
4.       ubah baris extendedKeyUsage = serverAuth menjadi extendedKeyUsage = clientAuth
5.       openssl ca -config CA-openssl.config -infiles \ vpn-client-CSR.pem
6.       cara melihat sertifikat: openssl x509 -in 01.pem -noout –text dan openssl x509 -in 02.pem -noout –text
7.       scp 02.pem root@10.1.1.4:~/vpn-client-certificate.pem
8.       scp ca-certificate.pem root@10.1.1.4:~/
9.       mv 01.pem vpn-server-certificate.pem
f.        Diffie-Hellman Key Agreement
openssl dhparam -out dh.pem 1024 
g.       Membuat file konfigurasi
1.       Buat file openvpn-server.config dengan isi sebagai berikut:
# OpenVPN server configuration file example local 10.1.1.3 dev tun server 192.168.0.0 255.255.0.0 ca ca-certificate.pem cert vpn-server-certificate.pem key privkey.pem dh dh.pem push "redirect-gateway" comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key user openvpn group openvpn daemon 
2.       Buat file openv[n-client.config dengan isi sebagai berikut:
# OpenVPN client configuration file example client dev tun remote 10.1.1.3 tls-remote 10.1.1.3 ca ca-certificate.pem cert vpn-client-certificate.pem key privkey.pem comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key user openvpn group openvpn daemon
h.      Menjalankan OpenVPN server
1.       openvpn --config openvpn-server.conf
2.       ifconfig tun0
i.         Menjalankan OpenVPN client
1.      openvpn --config openvpn-client.conf
2.      ifconfig tun0
j.        Test VPN Connection
ping 192.168.0.1
 
 
 

  

File Sharing Menggunakan Samba

Samba

Pengertian

Samba adalah software open source dan gratis yang memberikan fasilitas sharing data, file dan printer. Berjalan di Linux/Unix serta variasinya, Samba menyediakan jasa pertukaran file dan print yang cepat, aman dan stabil. Dengan lebih mudah dapat dikatakan Samba memungkinkan adanya jaringan kombinasi antara komputer linux dan windows yang mempunyai protokol berbeda.

Nama Samba berasal dari SMB (Server Message Block). Yaitu merupakan protokol standar yang digunakan oleh file system windows. Dengan menggunakan Samba, komputer dengan sistem operasi berbasis Unix bisa berperan sebagai file dan print server yang menggunakan SMB sebagai protokol dan bisa mengakses file dan printer yang di-share oleh komputer berbasis Windows. Berikut gambaran dari hasil akhir yang diharapkan dari implementasi Samba :


Samba merupakan komponen yang penting dalam  integrasi antara server dan desktop Linux/Unix dengan lingkungan Active Directory yang menggunakan winbind daemon.

Konsep

Samba terdiri dari dua program, yaitu SMBD (Server Message Block Daemon) dan NMBD (NetBIOS Message Block Daemon). Kedua program tadi berjalan di background. SMBD bertugas menjadi file server yang akan membuatkan proses baru untuk setiap client yang aktif. Sementara NMBD akan mengubah NetBIOS komputer-komputer yang terhubung di jaringan menjadi alamat IP. NMBD juga bertugas memantau proses sharing yang ada di jaringan.

Manfaat

Samba bermanfaat sebagai jembatan antar komputer yang memiliki protokol yang berbeda. Biasanya samba dijalankan di komputer berbasis selain windows untuk membuat suatu jaringan kombinasi dengan komputer berbasis windows. Sehingga pertukaran file bisa dilakukan antar komputer berbeda protokol tersebut. Tujuan dari samba ialah untuk menghilangkan barir perbedaan sistem operasi komputer dalam satu jaringan.

Dengan Samba, operasi-operasi berikut ini dapat dilakukan :

  1. Menjadi file server di antara mesin-mesin yang berbeda platformnya, baik Windows ataupun Linux.
  2. Menyediakan layanan sharing printer.
  3. Bertindak sebagai pengatur domain untuk jaringan berbasis Windows.
  4. Bertikndak sebagai klien di domain Windows.

Instalasi

Samba dapat di install dengan mengambilnya dari repositori pilihan anda. Berikut dijelaskan langkah-langkah dalam instalasi Samba.

Pertama, ketikkan

# aptitude install samba

Kemudian, akan ditanyakan workgroup, isi dengan workgroup sesuai jaringan kita :

Samba berhasil di install.

Konfigurasi

Konfigurasi dilakukan dengan mengubah file samb.conf dengan editor yang diiinginkan. Misalnya dengan menggunakan nano perintah yang diketikkan sebagai berikut

# nano /etc/samba/samb.conf.

Kita lihat bagian konfigurasi GLOBAL dan lakukan konfigurasi sebagai berikut :

Di file tersebut, sesuaikan baris

workgroup = <namagroup>

security = share

Skenario File Sharing

Terdapat tiga tahapan untuk melakukan file sharing menggunakan samba. Pertama kita menyiapkan server linux yang sudah terinstall samba. Kedua kita tentukan dan buat file apa yang ingin di sharing dengan komputer windows-nya. Terakhir kita akan coba mengkases nya dari komputer windows. Langkah pertama sudah dilakukan pada tahapan instalasi diatas. Berikutnya akan dilakukan penyiapan file yang akan di sharing.

Mempersiapkan file yang di share

Pertama, kita sediakan folder yang akan digunakan untuk implementasi file sharing. Kita buat folder yang ingin kita share, misal nama foldernya shared. Maka kita lakukan operasi berikut :

# mkdir shared

Apabila ingin membuat user untuk Samba, sebelumnya kita harus membuat user tersebut di sistem. Misal kita ingin membuat user dengan nama penggunasamba1, maka pertama kita lakukan operasi berikut :

# useradd penggunasamba1

Kemudian baru kita add user ke samba, sekaligun mengeset passwordnya. Dilakukan operasi berikut :

# smbpasswd -a penggunasamba1

Untuk tutorial mekanisme file sharing saat ini kita tidak menggunakan otentikasi, diasumsikan semua orang yang terhubung ke jaringan bisa mengaksesnya.

Setelah itu, kita perlu melakukan konfigurasi lagi, karena folder yang tadi dibuat belum didefinisikan dalam file konfigurasi samba. Caranya mirip dengan di atas. Kita lakukan operasi berikut :

# nano etc/samba/samb.conf

Kemudian kita tambahkan di baris terakhir, folder yang ingin di share di jaringan. Folder yang ingin kita share tadi bernama shared sudah dibuat sebelumnya, posisinya ada di /root/shared.

Berikut settingan lengkapnya :

[SHARE]

path = /root/shared

browseable = yes

writeable = yes

read only = no
guest ok = yes

Disini guest diperbolehkan untuk mengakses file ini, jadi tidak ada proses otentifikasi seperti yang sudah dijelaskan di atas. Folder bisa ditulis dan dieksplorasi tidak hanya bisa dibaca.

Kemudian file konfigurasi kita simpan. Sebelum mencoba di komputer klien, kita restart samba dengan perintah sebagai berikut :

# /etc/init.d/samba restart.

Ketika melakukan restart, bisa dilihat di gambar di atas, terlihat bahwa Samba hanya menjalankan dua program yaitu nmbd dan smbd.

Jika ternyata folder belum bisa di baca atau ditulis user lain. Perlu mengubah file fstab dengan perintah sebagai berikut

# nano /etc/fstab.

Perlu dilakukan perubahan pada option default di baris partisi yang di share menjadi “umask=0000”. Bisa juga menggunakan perintah chmod untuk membolehkan semua akses.

Lalu lakukan restart lagi.

Untuk mencoba apakah file sudah bisa di share atau belum kita coba mengetesnya menggunakan aplikasi smbclient. Sebelumnya install dulu aplikasi tersebut dengan perintah

# aptitude install smbclient

Setelah itu cek apakah user yang telah dibuat tadi dapat mengakses folder yang di share tadi. Sebelumnya jangan lupa login dengan user yang telah dibuat tadi.

# smbclient –L locahost

Mengakses file lewat komputer windows

Setelah server yang terinstall samba telah siap. Serta file yang akan di share juga telah siap. Tahap berikutnya ialah mengaksesnya lewat komputer berbasis windows. Perlu dipahami komputer tersebut perlu terhubung dengan server tersebut dalam satu jaringan. Jaringan yang umum dipakai ialah jaringan local area network (LAN).

Terdapat 3 pilihan untuk mengakses folder yang sudah di share. Yaitu melakukan akses secara langsung, melakukannya lewat folder network dan melakukan mapping secara permanen.

Akses secara langsung

Buka start menu -> run . Lalu masukkan ip-address dari server samba tadi. Jika sudah terkoneksi dengan jaringan LAN windows explorer akan langsung terbukan dan memperlihatkan folder yang telah di sharing dari server samba tersebut.

Akses via folder network

Buka start menu -> My Computer. Windows explorer akan muncul lalu klik Network. Segala komputer yang ada dalam satu jaringan LAN akan muncul. Termasuk server samba tadi. Klik server samba yang dimaksud dan koneksikan dengan PC windowsnya. Lalu anda akan bisa melakukan browsing di folder yang telah di share tadi.

Mapping secara permanen

Klik di start menu –> My Computer. Lalu klik Map Network Drive. Sebuah windows akan muncul dimana anda diminta mengisi drive untuk koneksi dan path folder yang akan di share. Untuk drive anda bisa mengisinya sesuai keinginan anda. Untuk path nya masukkan dalam format /<ip-address>/<lokasifolder>. Setelah itu ceklis kotak “Reconnect at logon”.

Jika ingin merubah username yang akan digunakan untuk terkoneksi dengan server samba. Bisa klik di “Connect using a differen User name” lalu masukkan user-name dan passwordnya. Setelah itu klik finish.

Dengan cara ini, kita bisa mengakses folder tersebut langsung saat kita menyalakan komputer. Cukup akses drive tempat anda melakukan mappingnya saja.

Sumber

http://www.samba.org/

http://www.faqs.org/docs/securing/chap29sec280.html

http://itkonsep.wordpress.com/2012/01/20/install-samba-di-ubuntu/

http://cssoss.wordpress.com/2010/05/25/samba-sharing/

http://www.geos.ed.ac.uk/it/FAQ/samba_share.html

http://wiki.linuxquestions.org/wiki/Setting_up_a_Samba_Server


Creating Interactive Website: Web Server and Database Server

Untuk membuat sebuah website kita membutuhkan web server. Dan untuk membuat server yang lebih dasyat lagi kita membutuhkan database server. Apa itu web server? Apa itu database server? Apa kegunaannya? Dan bagaimana cara menggunakannya?

Kita akan membahasnya pada tulisan ini. Read the rest of this entry »


Pemrograman Bash Shell

Apa itu Pemrograman Bash Shell ?

Setelah mendengar kata-kata pemrograman bash shell, pasti terbayangkan pemrograman menggunakan terminal yang biasanya digunakan di Linux. Namun, apa itu sebenarnya pemrograman bash shell? . Di dalam sub judul ini akan dijelaskan pengertian dari bash shell dan pemrograman bash shell itu sendiri.

Bash adalah singkatan dari Bourne Again SHell, versi baru dari Bourne Shell yang dikembangkan oleh Steve Bourne. Bash ini adalah shell yang paling umum digunakan pengguna Linux. Shell adalah program yang menjadi jembatan antara perintah yang dimasukkan user melalui input dari keyboard dengan sistem operasi untuk melakukan perintah yang dimasukkan user tersebut. Sekarang ini, program seperti shell ini sudah tergantikan oleh user interface yang lebih mudah digunakan.

Read the rest of this entry »


Mail Server

Layanan E-mail

Tutorial ini   menjelaskan pengertian,   konsep   dan   manfaat   layanan   e-mail   bagi organisasi. Setelah itu pembaca dipandu untuk melakukan instalasi, konfigurasi dan implementasi mail server.

E-mail

Pengertian

Surat elektronik atau yang lebih dikenal dengan sebutan e-mail(electronic mail) merupakan sebuah protokol pengiriman pesan berbasis teks dan data digital. Protocol ini menggunakan jaringan internet ataupun intranet. Karena memanfaatkan jaringan internet, biaya yang dikeluarkan untuk mengirim email sangatlah murah yakni merupakan biaya pengiriman data melalui internet atau
lebih ringkasnya biaya koneksi internet.

Email memiliki komponen-komponen standar yang digunakan untuk berkirim pesan secara digital. Berikut ini adalah komponen-komponen dari sebuah email

  • Tujuan : merupakan tujuan kepada siap kita mengirim email. Field ini diisi dengan alamat email penerima pesan elektronik.
  • CC: merupakan tembusan kepada siap surat turut dilampirkan. Field ini diisi dengan alamat email penerima tembusan.
  • BCC: merupakan tembusan tetapi si penerima utama tidak mengetahui bahwa surat tersebut tidak  diketahui penerima utama.
  • Subject: merupakan judul dari surat yang kitakirimkan melalui email.
  • Isi email/body email: merupakan isi dari email yang akan kita kirimkan.
  • Attachment: merupakan file yang akan dilmpirkanpada surat.

Konsep

Berikut ini adalah gambaran ringkas mengenai mekanisme dasar pengiriman suatu email.

  1. Sebuah email dikirimkan menuju webserver dengan menggunakan SMTP protocolpada TCP port 25.
  2. Webserver melihat alamat tujuan email dikirimkan lalu kemudian mencari alamat dari webserver penerima email kepada DNS.
  3. ServerDNS kemudian mencari  memberikan alamat IP dari webserver penerima email.
  4. Webserver mengirimkan email kepada webserver dari penerima email
  5. Webserver mengirimkan email kepada client dengan menggunakan SMTP protocol pada TCPport 25.

Apa yang terjadi ketika proses pengiriman email terjadi?

E-mail menggunakan protokol yang bisa disebut SMTP. Setiap email meliki header yang berisikan rangkaian header yang
memberitahukan mailservr apa yang harus dilakukan pada email tersebut dan kemana akan mengirimkanya. Jadi, ketika pengirim mengirimkan email mereka menambahkan penerima pada field to: dan mungkin cc: ataupun bcc:

Email client dari pengguna dikonfigurasikan oleh sebuah server, dan client tersebut kini menghubungi server dengan menggunakan tcp pada port 25 dengan menggunakan keyword tertentu. Pada contoh dibawah ini client mencoba memberitahu server siapa dirinya

220 mail.example.com
ESMTP Server

EHLO
client.example.com

250
mail.example.com Hello client.example.com [192.168.0.100], pleased to meet
you

Pada baris pertama client mencoba memberitahu server siapa mail.example.com dan bahwa ia SMTP server yang support Extended
SMTP (ESMTP). Baris berikutnya client berkata hello dan memberitahukan siapa client.example.com. terakhir, server merespons koneksi dan membalas salam.

Selanjutnya proses pengiriman email dimulai, email dikirim ke server pengirim. Hal ini dimulai dengan mengirim detail dari pengirim dan penerima yang biasanya disebut envelope

MAIL FROM: <bambolz@example.com>

250 bambolz@example.com…
Sender ok

Disini pengirim bambolz@example.com telah menggunakan perintah MAIL FROM. Server melakukan pengecekan dan mengembalikan
250 sebagai response code, yang mengindikasikan bahwa client tersebut dapat mengirimkan e-mail. Persetujuan ini bisa berdasarkan beberapa kriteria seperti alamat email yang valid, dll.

RCPT TO: <ayam.chiken@example.com>

250 ayam.chiken@example.com… Recipient ok (will queue)

Terjadi proses yang sama dengan proses pertama yakni pengecekan mail client dari penerima. Selanjutnya pada contoh ringkas ini
akan ditampilkan isi sesungguhnya dari email. Client mengirimkan command yang disebut DATA kepada server

DATA

354 Enter mail, end with
“.” on a line by itself

Message-ID:

Date: Mon, 17 Aug 2009
12:29:26 +1100

From: Mohamad Andriyanbambolz@example.com

To: Tri rachmadyayam.chiken@example.com

Subject: percobaan email

Halo ini percobaan pengiriman
email
.

.

250 SAA112345 Message
accepted for delivery

Server merespons dengan mencari end of file yang pada contoh ini berikan berupa tanda titik pada sebuah baris secara mandiri.

Sekarang proses pengiriman email dapat dilanjutkan dengan mengirim email lain dengan menggunakan  command MAIL FROM atau bisa menyudahi dengan menggunakan command  QUIT

QUIT

221 Goodbye

Apa yang terjadi setelah pengiriman email?

Setelah server menerima email yang kita kirimkan dan menaruhnya pada mail queue, serangkaian command dan langkah dieksekusi. Pertama-tama server butuh untuk mencari tahu kemana email akan dikirim. Untuk melakukan hal ini server mengambil bagian dari email address setelah simbol  @. Bagian ini biasanya merupakan nama domain yang sah, misalnya example.com. Email server kemudian menggunakan sebuah query DNS untuk menghubungi remote domain dan menanyakan alamat ip server  penerima email.
Tentu saja jika penerima menggunakan domain email yang sama dengan pengirim, tahapan ini bisa di skip.

Email server melakukanhal ini dengan melakukan proses querying pada record DNS jenis tertentu yang disebut MX record. Querying MX Record  mengembalikan satu atau beberapa  entry  yang memberitahukan email server pengirim  ke server mana harus mengirimkan email. Biasanya berupa sebuah IP address spesifik dari server tujuan.

        Email server kemudian mengirimkan email tersebut ke queue lainya dan dari sana dikirimkan ke server email tujuan. Untuk melakukan hal ini, email server pengirim coba melakukan koneksi via tcp pada port 25, untuk setiap alamat ip email server yang direturn oleh MX query, Email server. Email server kemudian mengikuti urutan pengiriman untuk mengetahui apakah email dapat terkirim.

  1.  Jika server tujuan merespons, akan dikirimkan email. 
  2. Jika server tidak memberikan respons, maka akan mecoba mengimkan keserver selanjutnya sesuai dengan urutan MX record.
  3. Jika tidak ada server yang me respons, email server pengirim biasanya akan meletakkan email terebut di queue untuk mencoba dikirimkan lagi.
  4. Jika tetap tidak bisa terkirim maka email server pengirim akan memberikan laporan kegagalan pengiriman via email.

Manfaat

Email telah menjadi sarana komunikasi utama yang sangat bermanfaat bagi suatu organisasi. Selain karena murah dan cepat penggunaannya pun dirasa paling mudah diimplementasikan. Oleh karena itu pemanfaatannya pada organisasi pun sangatlah luas. Dalam beberapa kasus email telah menggantikan layanan post dan fax sebagai suatu perangkata komunikasi. berikut ini adalah
manfaat penggunaan email bagi suatu organisasi:

  • Sarana Komunikasi secara menyeluruh pada seluruh organisasi. Pemanfaatan mailing list dalam hal ini sangatlah mendukung kegiatan organisasi dalam melakukan komunikasi kepada seluruh organisasi
  • Menghemat penggunaan kertas dan tinta: penggunaan surat elektronik di suatu organisasi dapat mengurangi pemakaian kertas dan tinta untuk berkirim surat secara fisk.
  • Dapat digunakan tidak hanya untuk berkomunikasi tetapi dapat berbagi data-data antar sesame rekanan.
  • Dapat dipergunakan untuk berlangganan info-info yang user inginkan

Instalasi Mailserver

Untuk melakukan instalasi mailserver pada debian squeeze diperlukan untuk menginstall beberapa paket antara lain

Install Postfix

1.   Untuk melakukan instalasi webserver maka diperlukan untuk menginstall postfix terlebih dahulu, Maka lakukan perintah

# aptitude install postfix

Setelah proses download selesai akan muncul dialog untuk menghapus paket Exim dari debian,

Ketik y, lalu tekan tombol enter kemudian akan muncul kembali dialog continue ketik y lalu kemudian tekan tombol enter

proses instalasi dimulai.

Klik tab sehingga pilihan <ok> terpilih kemudian tekan enter sehingga proses instalasi  dapat dilakukan.

2.   Selanjutnya pilih internet site pada layar postfix configuration
3.   Masukkan nama postfix dari webserver yang kita kehendaki misal gakky.com, nantinya alamat email pada mail server ini akan menggunakan domain @gakky.com secara default.
4.   Klik pada tombol TAB untuk memindahkan kursor dan klik enter pada pilihan <OK> dan proses instalasi akan berlangsung, tunggu sampai selesai.

Install mysql-server

1.       Lakukan instalasi mysql-server dengan menggunakan perintah

# aptitude install mysql-server

2.       Akan muncul dialog seperti berikut , tekan y lalu enter

3.       Maka proses instalasi pun akan dimulai dengan proses download package-package yang di butuhkan

4.       Setelah proses download selesai maka akan muncul tampilan sebagai berikut

5.       Masukkan password untuk mysql root user, ingat password ini karena akan di butuhkan pada saat setting database.

6.       Klik tab lalu tekan enter pada pilihan <ok>, kemudain re-enter password dan klik enter pada pilihan <ok>

7.       Proses instalasi mysql-server selesai.

Install dovecot-pop3d & dovecot-imapd

1.       Install dovecot-pop3d & dovecot-imapd, agar mail server yang kita buat dapat menggunakan protokol
pop3 dan imap dengan melakukan perintah

# aptitude install dovecot-pop3d

# aptitude install dovecot-imapd

Tunggu sampai instalasi selesai.

Install phpmyadmin

Instalasi phpmyadmin digunakan jika anda tidak biasa menggunakan text based editor sebagai tempat untuk melakukan setting database. phpmyadmin akan memberikan tampilan gui yang akan memepermudah dalam pengaturan database.

1.       Lakukan instalasi phpmyadmin dengan perintah

# aptitude install phpmyadmin

2.       Lakukkan penyettingan database dengan memilih pilihan <ok>

3.Lakukan penyetelan pasword admin untuk mysql dan phpmyadmin,

4.Untuk menggunakan phpmyadmin lakukan akses melalui browser dengan alamat

Localhost/phpmyadmin

Setting Database

        Pada tulisan ini akan di jelaskan cara untuk melakukan setting menggunakan textbased command line.

mysqladmin –p create mailserve


  1. Lakukan pembuatan database mysql dengan perintah Akan diminta untuk memasukkan password, masukkan pasword MySQL yang telah dibuat pada tahapan sebelumnya.
  2. Setelah itu masuk ke database mailserver yang telah kita buat dengan menggunakan perintah

mysqladmin –p mailuser

Akan diminta untuk memasukkan password, masukkan pasword MySQL yang telah dibuat pada tahapan sebelumnya.

Masukkan perintah sebagai berikut.

Perintah ini digunakan untuk memberikan akses SELECT ke database mailserver kepada user ‘mailuser’ pada server localhost dengan password ‘penggunasurat’. Lakukan perubahan pada id maupun password sesuai dengan keinginan anda. Namun pada tulisan ini saya akan menggunakan id dan password seperti pada contoh di atas.

3.Membuat table untuk digunakan sebagai database dari mailserver yang akan di bangun.

  • Membuat table untuk nama domain dari mailserver yang ingin kita bangun.

  • Membuat table untuk user, user akan menyimpan id dan password dari pengguna fasilitas email.

4.Membuat Test data, untuk dapat melakukan test padamailserver yang akan di buat.

Virtual_domains

id

name

1

example.org

2

gakky.co.id

Users

Id

Domain_id

Email

password

1

1

john@example.org

*****

2

2

Mochammad.tri@gakky.co.id

*****

3

2

Mohamad.andriyan@gakky.co.id

*****

Password pada field ini akan
berisi text yang telah terenkripsi.

Virtual_aliases

Id

Domain_id

Source

destination

1

1

jack@example.org

john@example.org

2

2

tri@gakky.co.id

mochammad.tri@gakky.co.id

3

2

andriyan@gakky.co.id

mohamad.andriyan@gakky.co.id

Penginputan data di atas
dapat di lakukan menggunakan phpmyadmin maupun command line pada linux.

Contoh :

Untuk virtual_domains

Insert into mailserver values(2,’gakky.co.id’);

 Untuk Users

Insert into mailserver values(2,2,MD5(‘ayam’),’mochammad.tri@gakky.co.id‘);

MD5 digunakan untuk melakukan
enkripsi pada field password

Untuk Aliases

Insert into mailserver
values(2,2,’tri@gakky.co.id‘,’mochammad.tri@gakky.co.id);

Konfigurasi Database untuk Postfix

Pada bagian ini kita akan mencoba untuk melakukan konfigurasi pada postfix, sehingga dapat menggunakan database yang telah kita
bangun di tahap sebelumnya.

Untuk melakukan setting database, agar postfix dapat berinteraksi dengan database mysql yang telah kita buat maka kita akan membuat file .cf( configuration file) yang akan di daftarkan pada library postfix

1.Setting virtual_mailbox_domain

    Buat file pada /etc/postfix/mysql-virtual-mailbox-domains.cf Dengan isi sebagai berikut :

user = mailuser

password = penggunasurat

hosts = 127.0.0.1

dbname = mailserver

query = SELECT 1 FROM virtual_domains WHERE name=’%s’

   Untuk mendaftarkan file ini ke dalam konfigurasi post fix, gunakan command :

postconf -e
virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

   Lalu untuk melakukan pengecekan koneksi yang telah dibuat tersambung atau tidak ,gunakan command :

postmap -q example.org mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

   Hasil query di atas akan menghasilkan ‘1’, jika setting yang anda lakukan benar.

2.Setting virtual_mailbox_maps

   Buat file pada  /etc/postfix/mysql-virtual-mailbox-maps.cf

   Dengan isi sebagai berikut :

user = mailuser

password = penggunasurat

hosts = 127.0.0.1

dbname = mailserver

query = SELECT 1 FROM users WHERE email=’%s’

   Untuk mendaftarkan file ini ke dalam konfigurasi post fix, gunakan command :

postconf -e
virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

   Lalu untuk melakukan pengecekan koneksi yang telah dibuat tersambung atau tidak ,gunakan command :

postmap -q john@example.org
mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

Hasil query di atas akan menghasilkan ‘1’, jika setting yang anda lakukan benar.

3. Setting virtual_alias_maps

   Buat file dengan pada /etc/postfix/mysql-virtual-alias-maps.cf

   Dengan isi sebagai berikut :

user = mailuser

password = penggunauser

hosts = 127.0.0.1

dbname = mailserver

query = SELECT destination FROM virtual_aliases WHERE source=’%s’

   Untuk mendaftarkan file ini ke dalam konfigurasi post fix, gunakan command :

postconf -e
virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-alias-maps.cf

   Lalu untuk melakukan pengecekan koneksi yang telah dibuat tersambung atau tidak ,gunakan command :

postmap -q jack@example.org
mysql:/etc/postfix/mysql-virtual-alias-maps.cf

   Hasil query di atas akan    menghasilkan ‘john@example.org‘, jika setting yang anda lakukan benar.

 

Konfigurasi Dovecot

Hal-hal yang akan di lakukan pada bab ini adalah :

  • Mendapatkan email dari postfix dan menyimpannyapada disk
  • Mengeksekusi ‘sieve’ untuk pengaturan filter dari mail yang masuk
  • Memungkinkan pengguna untuk menerima email menggunakan POP3 dan IMAP

1. Untuk menigkatkan keamanan dari sistem, kita akan membuat user baru untuk sistem yang akan memiliki semua mailbox yang ada pada server. Command untuk membuat group dan user tersebut adalah sebagai berikut :

groupadd -g 5000 vmail

useradd -g vmail -u 5000 vmail -d /var/vmail –

Untuk melakukan perubahan dari ownership dan permission file lakukan command sebagai berikut :

chown -R vmail:vmail /var/vmail

chmod u+w /var/vmai

2.Untuk melakukan konfigurasi Dovecot, pertama masuk ke file /etc/dovecot menggunakan text editor, lalu ubah beberapa parameter sebagai berikut :Untuk mempermudah pencarian gunakan texteditor nano, dan short cut ‘ctrl+w’ untuk melakukan search field yang ingin di rubah.

Ubah protocol menjadi

protocols = imap imaps pop3 pop3s

Sehingga dovecot dapat mensupport protokol POP3 maupun IMAP.

disable_plaintext_auth=no

Hal ini akan membuat dovecot menerima password dalam bentuk text.

mail_location = maildir:/var/vmail/%d/%n/Maildir

Settingan ini akan membuat default lokasi dari mailbox dari setiap user, dimana %d adalah domain user dan %n adalah email user.

Kemudian cari blok dengan nama ‘auth_default’, lalu rubah mekanisme yang di gunakan untuk authentikasi.

mechanisms = plain login

Karena data password dari user mailserver yang ingin kita buat ada pada database mysql yang telah kita buat maka, lakukan  perubahan pada block passdb sql:

passdb sql {

args = /etc/dovecot/dovecot-sql.conf

}

Untuk setting userdb hampir sama dengan setting file_location dituliskan dimana folder mail akan di tempatkan.

userdb static {

args = uid=5000 gid=5000 home=/var/vmail/%d/%n/Maildir
allow_all_users=yes

}

Lalu Pada blok bernama ‘socket listen’, lakukan perubahan sebagai berikut :

 socket listen {

master {

path = /var/run/dovecot/auth-master

mode = 0600

user = vmail

}

client {

path = /var/spool/postfix/private/auth

mode = 0660

user = postfix

group = postfix

}

}

Lalu terdapat blok ‘protocol lda’ pada blok ini dapat di atur mengenai fitur yang dimiliki postfix sebagai agent delivery virtual. Disini dapat di lakukan penggunaaan kuota bagi email, dan juga filtering surat dengan ‘sieve’. Lakukan perubahan sebagai berikut :

protocol lda {

auth_socket_path = /var/run/dovecot/auth-master

postmaster_address = postmaster@gakky.com

mail_plugins = sieve

log_path =

}

Ubah postmaster pada email di atas dengan email valid yang anda miliki, atau administrator miliki.

Save file dovecot.conf dan tutup, kemudian edit file /etc/dovecot/dovecot-sql.conf,

Dan rubah setting sebagai berikut :

driver = mysql

connect = host=127.0.0.1 dbname=mailserver user=mailuser
password=mailuser2011

default_pass_scheme = PLAIN-MD5

password_query = SELECT email as user, password FROM users WHERE email=’%u’;

Lalu berikan perintah untuk merestart service dari dovecot :

/etc/init.d/dovecot restart

Jika setting yang anda lakukan benar, maka baris terakhir pada log file anda (/etc/dovecot/dovecot.conf)adalah sebagai
berikut :

… dovecot: Dovecot v1.2.15 starting up (core dumps disabled)

… dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mailserver)

Kemudian sebelum melakukan pengiriman email, perlu dilakukan perubahan ownership dan permission dari file yang baru saja kita edit, sehingga group vmail dapat mengakses setting.

chgrp vmail /etc/dovecot/dovecot.conf

chmod g+r /etc/dovecot/dovecot.conf

chown root:root /etc/dovecot/dovecot-sql.conf

chmod go= /etc/dovecot/dovecot-sql.conf

Menghubungkan Postfix dengan Dovecot

Untuk dapat menggunakan Postfix dan Dovecot secara kolaborasi, dimana Postfix sebagai penerima email, dan Dovecot sebagai agent sehingga dapat mendapatkan akses POP3 dan juga IMAP.

1.       Untuk melakukan hal ini kita perlu merubah file /etc/postfix/master.cf, pada file tersebut tambahkan line sebegai berikut :

dovecot unix – n n – –
pipe

flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender}
-d ${recipient}

Perhatikan bahwa baris kedua harus di beri spasi pertama, dan juga di antara -f dan $ juga di beri spasi.

2.       Lakukan restart pada service postfix :

postfix reload

3.
Kemudian lakukan command berikut untuk menambahkan baris kedalam file /etc/postfix/main.cf:

postconf -e virtual_transport=dovecot

postconf -e dovecot_destination_recipient_limit=1

Instalasi Squirrel mail

1.       Lakukan Instalasi Squirell mail dengan perintah

aptitude install squirrelmail

2.       Setelah proses instalasi selesai edit file di /etc/apache2/apache2.conf

3.    Lakukan penambahan

Include /etc/squirrelmail/apache.conf

Pada baris terakhir

4.Save file tersebut kemudian restart service apache dengan menggunakan perintah

/etc/init.d/apache2
restart

5.Buka web browser dan masuk ke halaman

http://localhost/squirrelmail/src/login.php

6.Lakukan proses  login

7.Lakukan testing pengiriman email

8.Klik send setelah itu Sign Out dan kemudian login dengan akun penerima email

9.Setelah login berhasil kemudian akan muncul surat baru pada halaman awal mail

10.   Isi dari email

Installasi dari squirrelmail
pun selesai.

Referensi

http://workaround.org/ispmail/squeeze

http://workaround.org/ispmail/squeeze/installing-packages

http://workaround.org/ispmail/squeeze/database-setup

http://workaround.org/ispmail/squeeze/postfix-database-configuration

http://workaround.org/ispmail/squeeze/setting-up-dovecot

http://workaround.org/ispmail/squeeze/postfix-dovecot

http://workaround.org/ispmail/squeeze/testing-email-delivery