Jumat, 21 Desember 2012

Perintah-perintah IPTables

Perintah-Perintah Iptables

Untuk melihat apakah di dalam sistem kita sudah terinstal paket-paket iptables, ketikkan perintah berikut:
# rpm -qa | grep iptables

Jika memang belum terinstal, ketikkan perintah berikut:
# yum -y install iptables*

Agar iptables dapat berjalan otomatis setelah restart, gunakan perintah:
# chkconfig iptables on

Untuk melihat status iptables, gunakan perintah:
# service iptables status

Untuk menyalakan iptables, gunakan perintah:
# /etc/init.d/iptables start

Untuk mematikan iptables, gunakan perintah:
# /etc/init.d/iptables stop

Untuk merestart iptables, gunakan perintah:
# /etc/init.d/iptables restart

Sebelum melangkah lebih lanjut, pastikan firewall di sistem kita di enable yaitu dengan cara ketik setup lalu pilih Firewall configuration. Setelah itu, pada bagian Security Level beri tanda bintang pada item Enabled lalu pilih tombol OK.

Definisi IPTables dan Aur Paket Data

Pengertian IPTables

IpTables adalah salah satu aplikasi linux, yang berfungsi untuk firewall. Kegunaanya untuk memfiltering semua data yang melewatinya. Dengan aplikasi ini, kita bisa memblokir data yang masuk, atau mengijinkan data yang keluar. Selain IpTables, juga bisa menggunakan shorewall.
Seperti namanya, firewall atau tembok api yang melindungi jaringan lokal dari jaringan luar atau Internet. Untuk mencegah ulah para cracker yang ingin meretas ke suatu sistem jaringan.
Firewall ada yang berbentuk piranti lunak (software). Dan ada juga yang berbentuk piranti keras, yang sudah di implementasikan kedalam sistemnya. Router juga termasuk dalam firewall.
    
Alur Paket Data

membahas prinsip dasar firewall iptables, mengelola akses internet berdasarkan alamat IP,port aplikasi dan MAC address. Firewall IPTables packet filtering memiliki tiga aturan (policy), yaitu:
•  INPUT
 Mengatur paket data yang memasuki firewall dari arah intranet maupun internet. kita bisa         mengelolakomputer mana saja yang bisa mengakses firewall. misal: hanya komputer IP 192.168.1.100 yang bisa SSHke firewall dan yang lain tidak boleh.
•  OUTPUT
Mengatur paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya output tidak diset,karena bisa membatasi kemampuan firewall itu sendiri.
•  FORWARD
Mengatur paket data yang melintasi firewall dari arah internet ke intranet maupun sebaliknya. Policy forward paling banyak dipakai saat ini untuk mengatur koneksi internet berdasarkan port, mac address dan alamat IP Selain aturan (policy) firewall iptables juga mempunyai parameter yang disebut dengan TARGET, yaitu status yang menentukkan koneksi di iptables diizinkan lewat atau tidak. TARGET ada tiga macam yaitu:
a. ACCEPT
Akses diterima dan diizinkan melewati firewall
b.REJECT
Akses ditolak, koneksi dari komputer klien yang melewati firewall langsung terputus, biasanya terdapatpesan “Connection Refused”. Target Reject tidak menghabiskan bandwidth internet karena akses langsung ditolak, hal ini berbeda dengan DROP.
c.DROP
Akses diterima tetapi paket data langsung dibuang oleh kernel, sehingga pengguna tidak mengetahui kalau koneksinya dibatasi oleh firewall, pengguna melihat seakan – akan server yang dihubungi mengalami permasalahan teknis. Pada koneksi internet yang sibuk dengan trafik tinggi Target Drop sebaiknya jangan digunakan.

1. a. Memblok paket yang datang dari sebuah IP
# iptables -I INPUT -s 192.168.0.149 -j REJECT
Peritah di atas digunakan untuk memblok paket dari IP 192.168.0.149. Ada 2 opsi yang digunakan sebenarnya yaitu DROP dan REJECT. Perbedaan dari keduanya adalah kalau REJECT, perintah ini akan memblok paket namun akan memberitahukan bahwa paket tersebut ditolak. Sedangkan kalau DROP, perintah ini akan memblok paket namun tidak diberitahu apakah paket tersebut

b. Memblok paket yang keluar dari sebuah IP
iptables -A OUTPUT -p tcp -d 192.168.10.2 -j DROP

2.Menutup Port
# iptables -A INPUT -p tcp  --dport 22 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk ssh
# iptables -A INPUT -p tcp -i eth0 --dport 23 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk telnet
# iptables -I INPUT -s 192.168.0.250 -p tcp --dport 23 -j REJECT
Perintah di atas untuk memblok service telnet dari IP 192.168.0.250

3. Membuat Dropped Log file.
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "PORT 80 DROP: " --log-level 7
iptables -A INPUT -p tcp --destination-port 80 -j DROP

4. Menghapus iptables
#  iptables -D INPUT 3
Menghapus iptables pada tabel input di baris ke 3
# iptables -F
Menghapus seluruh iptables
# iptables -F FORWARD

Firewall dan Letak pada Jaringan LAN & WAN

Pengertian Firewall
Firewall digunakan untuk melindungi atau membatasi akses komputer
atau jaringan ke dunia luar, seperti internet. Salah satu firewall yang sering digunakan adalah iptables yang ada didalam sistem operasi linux.

Fungsi Firewall
1. Mengontrol dan mengawasi paket data yang mengalir di jaringan Firewall harus dapat mengatur, memfilter dan mengontrol lalu lintas data yang diizin untuk mengakses jaringan privat yang dilindungi firewall. Firewall harus dapat melakukan pemeriksaan terhadap paket data yang akan melawati jaringan privat. Beberapa kriteria yang dilakukan firewall apakah memperbolehkan paket data lewati atau tidak, antara lain Alamat IP dari komputer sumber
2. Port TCP/UDP sumber dari sumber.
3. Alamat IP dari komputer tujuan.
4. Port TCP/UDP tujuan data pada komputer tujuan
5. Informasi dari header yang disimpan dalam paket data.
2. Melakukan autentifikasi terhadap akses.
3. Applikasi proxy Firewall mampu memeriksa lebih dari sekedar header dari paket data, kemampuan ini menuntut firewall untuk mampu mendeteksi protokol aplikasi tertentu yang spesifikasi.
4. Mencatat setiap transaksi kejadian yang terjadi di firewall. Ini Memungkinkan membantu sebagai pendeteksian dini akan penjebolan jaringan.

Letaknya pada jaringan LAN dan WAN
Bila ditinjau dari peran server di kedua tipe jaringan tersebut, maka server di jaringan tipe peer to peer diistilahkan non-dedicated server, karena server tidak berperan sebagai server murni melainkan sekaligus dapat berperan sebagai workstation.
Keunggulan ;
1. Antar komputer dalam jaringan dapat saling berbagi-pakai fasilitas yang dimilikinya seperti:
    harddisk, drive, fax/modem, printer.
2. Biaya operasional relatif lebih murah dibandingkan dengan tipe jaringan client-server, salah
    satunya karena tidak memerlukan adanya server yang memiliki kemampuan khusus untuk
    mengorganisasikan dan menyediakan fasilitas jaringan.
3. Kelangsungan kerja jaringan tidak tergantung pada satu server. Sehingga bila salah satu
    komputer/peer mati atau rusak, jaringan secara keseluruhan tidak akan mengalami gangguan.

Kelemahan :
1. Troubleshooting jaringan relatif lebih sulit, karena pada jaringan tipe peer to peer setiap komputer
    dimungkinkan untuk terlibat dalam komunikasi yang ada. Di jaringan client-server, komunikasi
    adalah antara server dengan workstation.
2. Sistem keamanan jaringan ditentukan oleh masing-masing user dengan mengatur keamanan    
    masing-masing fasilitas yang dimiliki.
3. Karena data jaringan tersebar di masing-masing komputer dalam jaringan, maka backup harus
    dilakukan oleh masing-masing komputer tersebut.

Install & Konfigurasi Squid3 di Ubuntu Server 12.04


1.Instal terlebih dahulu squid 3 pada ubuntu server agan2 sekalian, dengan menggunakan perintah :

Sudo apt-get install squid3


2.Setelah proses instalasi selesai masuk ke dalam direktori squid3 dengan menggunakan perintah :

cd /etc/squid3

kemudian lanjutkan dengan perintah mengcopy squid.conf.origin dan ganti namanya dengan squid.conf, adapun perintah yang digunakan yaitu :

cp squid.conf.origin squid.conf

3.Setelah proses pengcopyan file selesai selanjutnya lakukan konfigurasi di dalam squid.conf tersebut, dengan menggunakan perintah :

sudo nano /etc/squid3/squid.conf

kemudian cari http port 3128, http_access allow localhost, dan acl localnet src 192.168.0.0/16 hilangkan tanda # didepannya, jika semuanya telah dihilangkan save dan keluar dari jendela konfigurasi.

4.Jika konfigurasi squid3 telah selesai restart squid3 dengan perintah :

sudo /etc/init.d/squid3 restart

5.Selanjutnya hubungkan komputer clien dengan komputer server dengan menggunakan kartu jaringan 1 buah lagi setting ip pada kedua komputer tersebut dalam 1 kelas ip yang sama.

6.Jika telah selesai tes dengan perintah ping. Pastikan kedua komputer telah terhubung dengan mendapatkan balasan reply. jika telah terhubung ketikkan perintah berikut di komputer server

sudo tail -f /var/log/squid3/access.log

Jika selesai setting proxy pada komputer clien dengan ip yang terdapat pada komputer server dan dengan port 3128 yang di konfigurasi pada squid3 tadi. Jika selesai, lakukan browser pada alamat tertentu pada komputer clien jika konfigurasi benar maka akan alamat tersebut akan tampil pada komputer server.

Jumat, 14 Desember 2012

Multidomain Dan virtual Host di Ubuntu Server 12.04

Kali ini saya akan membahas mengenai cara membuat MULTI DOMAIN DAN VIRTUAL HOST di Linux Server 12.04


Oke, langsung saja ya. Langkah-langkahnya sebenarnya tidak terlalu sulit hampir sama dengan cara membuat DNS Server, yaitu
 
1.Pastikan terlebih dahulu bahwa BIND9 telah terinstal di Ubuntu server anda.
Kemudian lakukan setting pada BIND9 tersebut dengan perintah

$ sudo nano /etc/bind/named.conf.local

Kemudian tambahkan zona baru untuk domain baru. Dalam percobaan kali ini saya menambahkan domain baru dengan nama jarkom1.com dan jarkom.net.

#zona jarkom1.com
Zone “jarkom1.com” {
Type master;
File “/etc/bind/zones/jarkom1.com.db”;
};

#zona jarkom.net
Zone “jarkom.net” {
Type master;
File “/etc/bind/zones/jarkom.net”;
};

#DNS reverse
Zone “9.17.10.in-addr.arpa” {
Type master;
File “/etc/bind/zones/jarkom-rev.db”;
};
 
2.Jika kita tadi telah menambahkan domain baru pada Ubuntu kita sekarang waktunya kita mendefinisikan kembali zona domain yang baru dibuat tadi, pertama kita akan mendefinisikan domain jarkom1.com, adapun perintah yang digunakan yaitu :

$sudo nano /etc/bind/zones/jarkom1.com.db

Kemudian isikan didalamnya seperti berikut :

$TTL 3D
@ IN SOA      ns.jarkom1.com.          admin.jarkom1.com. (
2007062001
28800
3600
604800
38400
);

jarkom1.com.              IN        NS       ns.jarkom1.com.
@                                IN        A         10.17.0.195
www                           IN        A         10.17.0.195
TXT                             “Network Gateway”

Lakukan hal yang sama pada jarkom.net

3.Setelah selesai mendefinisikan nama2 domain yang telah dibuat tadi waktunya sekarang kita membuat DNS Forwarding, adapun perintah yang digunakan

$sudo nano /etc/bind/named.conf.options

Kemudian isikan ipdan ISP atau server yang sudah ada seperti berikut

Forwarders {
10.10.1.1;
};

4.Sekarang waktunya kita mengedit file resolv, dengan cara mengisikan ip komputer yang sudah diinstall di DNS. Perintah yang digunakan yaitu

$sudo nano /etc/resolv.conf

Kemudian isikan

Search jarkom1.com
Nameserver 10.17.0.195

5.Selanjutnya kita akan membuat file jarkom-rev yang akan digunakan untuk reverse lookup. Adapun perintah yang digunakan yaitu

$sudo nano/etc/bind/zones/jarkom-rev.db

Kemudian isikan

$TTL 3D
@        IN        SOA                ns.jarkom1.com.          admin.jarkom1.com. (
2007062001
28800
604800
604800
86400
)
IN        NS                   ns,jarkom1.com.
195      IN        PTR                 5CA.jarkom1.com.

6.Setelah selesai melakukan konfigurasi pada bind9 sekarang waktunya kita untuk merestart bind9 tersebut, adapun perintah yang digunakan yaitu :

$sudo /etc/init.d/bind9 restart

Jika semuanya oke, coba lakukan ping pada nama domain tersebut jika berhasil maka kita akan mendapatkan balasan reply jika tidak maka periksa lagi pengaturan pada bind9 yang telah dibuat tadi.
 
7.Jika kita tadi telah selesai membuat multidomain sekarang waktunya kita membuat direktori untuk masing-masing domain yang tadi telah dibuat. Adapun perintah yang digunakan yaitu

$cd /var/www
$sudo mkdir jarkom1.com       jarkom.net
$sudo chmod 755 jarkom1.com           jarkom.net

8.Sekarang waktunya kita melakukan konfigurasi untuk virtual hostnya. Sebelum melakukan konfigurasi pada apache2.conf pastikan terlebih dahulu anda telah menginstall apache2. Setelah itu lakukan konfigurasi pada apache2 tersebut dengan menggunakan perintah

$sudo nano /etc/apache2/apache2.conf

Kemudian isikan pada baris terakhir

ServerName 127.0.0.1
NameVirtualHost *:80

9.Setelah selesai melakukan settingan pada apache2nya sekarang waktunya kita membuat direktori sites-available. Adapun perintah yang digunakan yaitu

$cd /etc/apache2/sites-available
$sudo nano jarkom1.com

Selanjutnya isikan perintah berikut

<VirtualHost *:80>
ServerName                jarkom1.com
ServerAlias                  www.jarkom1.com
DocumentRoot           /var/www/jarkom1.com          #disesuaikan dengan direktori yang telah dibuat sebelumnya
ErrorLog                     /var/log/apache2/jarkom1-error.log
CustomLog                 /var/log/apache2/jarkom1-access.log combined
</VirtualHost>

Kemudian simpan dan keluar dari teks editor. Kemudian lakukan hal yang sama untuk jarkom.net

10.Selanjutnya kita akan mendisable VirtualHost default dan enable domain yang baru. Adapun perintah yang digunakan

$sudo a2dissite default
$sudo a2ensite jarkom1.com
$sudo a2ensite jarkom.net

11.Setelah mendisble semua VirtualHost dan Domain, sekarang waktunya melakukan reload pada apache dengan perintah

$sudo /etc/init.d/apache2 reload

Setelah selesai melakukan reload, lakukan browsing menggunakan lynx kemasing-masing domain dengan menggunakan perintah

Lynx http://jarkom1.com
 
Mungkin cukup sampai disini dulu ya, semoga apa yang saya tuliskan ini bermanfaat dan berguna untuk kita semua.

Kamis, 08 November 2012

VSFTPD DAN TCPDUMP di Ubuntu 12.04

Halo agan2 semua akhirnya kita jumpa lagi ya Setelah beberapa waktu terakhir ini ane sibuk di dunia nyata. Langsung saja ya, kali ini agan2 ane akan membahas mengenai VSFTPD dan TCPDUMP.
Sebelum kita membahasnya lebih dalam ane akan menjelaskan sedikit nih agan2 mengenai TCPDUMP dan VSFTPD-nya. 
TCPdump adalah tools yang berfungsi mengcapture, membaca atau mendumping paket yang sedang ditransmisikan melalui jalur TCP. TCPdump diciptakan untuk menolong programer ataupun administrator dalam menganalisa dan troubleshooting  aplikasi networking. Seperti pisau yang bermata dua (hal ini sering kali disebut-sebut), TCPdump bisa digunakan untuk bertahan dan juga bisa digunakan untuk menyerang. 
Utility ini juga seringkali digunakan oleh para cracker untuk melaksanakan perkerjaannya, karena TCPdump bisa mengcapture atau mensniff semua paket yang diterima oleh network interface. 
Sebagai contoh, digunakan network yang terdiri dari tiga komputer yang dihubungkan menggunakan hub. Komputer pertama, menggunakan Windows™ 98  dengan IP address 192.0.0.1, sedang melakukan koneksi melalui telnet ke komputer  kedua yang menggunakan Slackware 8.0 dengan IP address 192.168.0.2 dan host ketiga komputer Redhat 7.1 dengan IP address 192.168.0.3 yang menggunakan utility TCPdump. Alasan untuk membedakan Operating System yang digunakan adalah untuk menunjukkan bahwa TCP/IP dapat berkomunikasi dengan baik pada dua platform yang berbeda. 
Untuk menjalankan TCPdump, ketik perintah tcpdump di console anda pada host 192.168.0.3 sebagai root. Output yang diperlihatkan di bawah ini adalah output yang bergulir non-stop, terus berganti baris tanpa henti hingga anda menekan Ctrl+C .
# tcpdump
tcpdump: listening on eth0
05:22:27.216338 burner.ssh > prime.1035:
P3797249897:3797249949(52) ack 2183278948 win 8576 (DF) [tos 0x10]
Contoh output yang berulang diatas menyatakan bahwa salah satu computer sedang menjalankan ssh client untuk koneksi ke server ssh di Redhat 7.1 (192.168.0.3) yang mengakibatkan trafik pada network (untuk menghasilkan output seperti diatas anda harus menjalankan ssh server pada Redhat 7.1 dan menggunakan ssh client untuk melakukankoneksi ke server dengan Slackware 8.0 (ini hanya contoh sementara). 
Memang banyak sekali output yang dikeluarkan oleh TCPdump. Lalu apakah maksud dari output-output tersebut? Output pada TCPdump menampilkan informasi-informasi tentang PDU yang diambil dari frame yang dibaca/dicapture. Keterangan berikut dapat menjelaskan arti output pada contoh diatas (tcpdump -nn host 192.168.0.2 and port 23): 
Field Contents Keterangan
19:20:00.804501  : Deskripsi waktu
192.168.2.10.1221  :  Alamat IP asal dengan nomor port 1221
192.168.2.165.23  : Alamat IP tujuan dengan nomor port 23
S flag/Bendera
2565655403 Nomor urutan data /data sequence number
win 16384 Window size

Sebenarnya masih banyak data field yang ditampilkan pada output, yang tidak disebutkan pada keterangan diatas. Manual pages dari TCPdump mempunyai penjelasan yang cukup tentang output yang ditampilkan. Pemahaman yang baik tentang operasi dan konstruksi dari sebuah protokol sangat dibutuhkan untuk melakukan analisa data. Utility ini juga mempunyai kemampuan untuk menganalisa PDU yang memulai dan mengakhiri suatu koneksi TCP/IP. TCP mempunyai mekanisme khusus untuk membuka dan menutup suatu koneksi. Untuk menjamin bahwa startup dan shutdown koneksi benar-benar terjadi, TCP menggunakan metode dimana ada tiga pesan yang ditukar, metode ini sering juga disebut three-way-handshake.
nah agan2 sekarang sudah mulai tahukan apa TCPDUMP dan fungsinya. selanjutnya ane akan menjelaskan mengenai FTP Server. Oke Lanjut !!!!!
FTP
FTP (File Transfer Protocol) adalah mekanisme yang digunakan untuk men-transfer data (baca: file) antar komputer lewat Internet, atau network. Dalam konteks website (blog misalnya), FTP digunakan untuk men-transfer file dari komputer kita ke server hosting, sehingga file ini kemudian bisa diakses di website kita secara online menggunakan web browser. 
Setidaknya dua komputer terlibat dalam proses transfer ini: FTP server dan FTP client. FTP server menjalankan software di server (hosting) dan siap menerima permintaan transfer dari FTP client (berupa software FTP client di komputer kita, misalnya CuteFTP, SmartFTP, NCFTP, WSFTP). Untuk bisa melakukan aktifitas FTP, kita memerlukan FTP account (username dan password). Setelah FTP client terhubung dengan FTP server, kita bisa melakukan upload file ke server, download file dari server, mengganti nama file di server, menghapus file, dan banyak operasi lainnya. 
Salah satu kelemahan utama dari FTP adalah kurang (atau bahkan tidak ada)-nya metode enkripsi, baik dalam pengiriman data account (password) dan pengiriman data. Karena faktor ini, direkomendasikan untuk menggunakan cara lain untuk men-transfer file lewat internet, misalnya SCP dan SSH Tunnel. SCP client yang cukup populer adalah WinSCP untuk Windows.
Selesai sudah penjelasan singkat mengenai TCPDUMP dan VSFTPD-nya agan2 sekarang kita akan coba mempraktekannya.
Oke agan kita langsung menuju langkah kerjanya ya Hehe
Siapkan 2 buah komputer, dimana 1 komputer menggunakan Sistem Operasi Windows dan 1-nya lagi menggunakan Sistem Operasi Ubuntu 12.04
Pada komputer yang menggunakan Sistem Operasi Ubuntu lakukan penginstalan VSFTPD dengan cara sebagai berikut :
sudo apt-get instal vsftpd
Setelah proses instalasi selesai selanjutnya lakukan konfigurasi, dengan menggunakan perintah sebagai berikut :
sudo nano /etc/vsftpd.conf

Kemudian hilangkan tanda # pada local_enable=YES dan write_enable=YES dan
dan beritanda # pada chroot_local_user=YES
Selanjutnya restart vsftpd dengan perintah
Sudo /etc/init.d/vsftpd restart
Kemudian masuklah ke ftp yang telah anda buat dengan menggunakan perintah sebagai beriku :
ftp 10.17.0.195 (alamat ip komputer anda)
Kemudian masuklah username dan password jika berhasil artinya vsftpd agan2 sudah berjalan.
Selanjutnya hubungkan komputer yang menggunakan Sistem Operasi Ubuntu 12.04 dan Windows dengan menggunakan kabel cross
Lalu pada komputer yang menggunakan sistem operasi Windows masuklah ke ftp yang telah dibuat tadi, dengan cara
Buka command prompt
Lalu ketikkan : ftp 10.17.0.193
Selanjutnya login dengan username dan password yang sama jika berhasil ambil data yang ada dikomputer server dengan menggunakan perintah berikut:
get index.html
catatan :
(index.html adalah data yang ada pada komputer server untuk mengetahui data apa saja yang ada dikomputer server agan2 sekalian bisa menggunakan perintah ls)
Kemudian jalan perintah tcpdump pada komputer server dengan menggunakan perintah berikut:
tcpdump –i eth1 | grep ftp
           
            catatan :
eth1 adalah port Ethernet yang agan2 sekalian gunakan untuk mengetahui port yang agan2 gunakan bisa menggunakan perintah ifconfig
Maka akan muncul hasil tcpdump sebagai berikut pada komputer server
08:07:20:257384 IP 10.17.0.19.1107 > 10.17.0.195.ftp: Flags [.], ack 624, win 64658, length 0 08:07:20.270310 IP 10.17.0.19.1114 > 10.17.0.195.ftp-data: Flags [F.], seq 1, ack 132, win 64905, options [nop,nop,TS val 41123 ecr 924669], length 0
08:07:20.270327 IP 10.17.0.195.ftp-data > 10.17.0.1114: Flags [.], ack 2,  win 1825, option [nop,nop, TS val 924673 ecr 41123], length 0
Nah agan sekalian sampai disini agan2 telah berhasil melakuakn setting vsftpd-nya. Oke agan2 sekalian sampai disini dulu ya perjumpaan kita semoga bermanfaat buat agan2 sekalian ^_^ akhir kata wassalammuallaikum wr.wb.

Web Server (APACHE & PHP) di Ubuntu 12.04

Baik lah agan sekalian akhirnya kita jumpai lagi ya …. ^_^
Kali ini saya akan membahas mengenai WEB SERVER pada Linux Ubuntu 12.04 dengan menggunakan Apache.
Oke langsung saja ya
Web server adalah software server yang menjadi tulang belakang dari World Wide Web (www). Web server menunggu permintaan dari client yang menggunakan browser seperti netscape navigator, internet explorer, Mozilla, dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu dan kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format standar yang disebut dengan format SGML (Standard General Markup Language). Dimana data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser itu. Contohnya ialah bila data yang dikirim berupa data gambar maka browser yang hanya mampu menampilkan text (misalnya lynx) tidak akan mampu menampilkannya dan jika ada akan menampilkan alternatifnya saja.
Tapi untuk saat ini umumnya para pengguna internet lebih banyak menggunakan format HTML (Hyper Text Markup Language) karena penggunaanya yang sederhana dan mudah untuk dipelajari. Kata Hyper Text disana mempunyai arti bahwa seorang pengguna internet dengan web browsernya dapat membuka dan membaca dokumen-dokumen yang ada dalam komputernya atau bahkan komputer yang jauh tempatnya sekalipun.
Nah agan2 sekalian itu tadi merupakan sedikit penjelasan mengenai web server. Oke selanjutnya saya akan menjelaskan mengenai APACHE WEB SERVER. Lanjut . . . . .
Apache merupakan salah satu software gratis yang mempunyai dukungan teknis dan dokumentasi yang lengkap untuk pembuatan web server. Web server apache ini mempunyai kelebihan yaitu :

  • Apache termasuk dalam kategori freeware (software gratisan)  
  •  Apache mudah sekali proses instalasinya jika disbandingkan dengan web server lainnya seperti NCSA, IIS, dan lain-lain.
Selain kelebihan tersebut apache juga mendukung penambahan modul-modul, diantaranya modul yang sering digunakan yaitu PHP. PHP (Personal Home Page Tool) adalah salah satu jenis alat yang digunakan untuk membuat halaman web anda menjadi lebih menarik, lebih aman, dan lebih dinamik. Pada dasarnya PHP hamper mirip dengan script yang lainnya seperti asp, Javascript, Visual Basil atau yang lainnya. Keuntungan dari PHP ini yaitu tidak diperlukan tambahan pada sisi webclient seperti halnya Javascript dan Visual Basil Script, sehingga lebih mudah penggunaanya.
Adapun beberapa keunggulan dari PHP yaitu :

  •  Autentikasi http menggunakan PHP menggunakan fungsi header() yang ada dalam modul apache PHP.
  • Pembuatan file GIF menggunakan library GD yang dikompilasi saat menginstal PHP.
  • PHP dapat menerima metoda upload file.
  •  Mendukung penggunaan cookie.
  • Mendukung integrasi dengan database. 
  •  Mendukung ekspresi regular seperti ereg(), ereg_replace() dan lainnya.
  • Penangan kesalah berdasarkan tingkat kesalahan.
Oke agan2 sekalia kalu tadi kan penjelasannya sudah, baiklah sekarang saya akan menjelaskan langkah-langkah pratikumnya. Oke langsung aja ya kita mulai . . . . .
Pastikan bahwa agan2 sekalian sudah mempunyai komputer dengan sistem operasi linux ubuntu 12.04
Selanjutnya, Periksa terlebih dahulu koneksi ke gateway, ked ns server dan ke server repository dengan cara melakukan ping
Install apache2 yang akan digunakan sebagai web server dengan menggunakan perintah
Sudo apt-get install apache2
Setelah proses instalasi selesai maka jalankan apache2 tersebut dengan perintah
Sudo /etc/init.d/apache2 restart
Kemudian jalankan nmap-nya dengan perintah
nmap –p80 localhost
nmap –p80 10.17.0,195 (merupakan alamat ip komputer agan2)
jika benar maka akan muncul output sebagai berikut
output proses nmap localhost
Starting nmap 5.21 (http://nmap.org) at 2002-01-01 07:12 WIT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000068s latency).
Port state service
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
Output proses nmap ipaddress
Starting nmap 5.21 (http://nmap.org) at 2002-01-01 07:17 WIT
Nmap scan report for 10.17.0.195
Host is up (0.000068s latency).
Port state service
80/tcp open http
Selanjutnya install lynx dengan cara
Sudo apt-get install lynx
Setelah proses intalasi selesai browser ke alamat ip komputer agan2 dengan cara
Lynx 10.17.0.195
Sampai disini jika proses benar maka kita akan membuat file html. Langkah pertama yaitu
Masuk ke direktori www dengan cara
Cd/var/www
Kemudian
Sudo nano index.html
Isikan
<html>
<head>
<tittle>coba-coba</tittle>
</head>
<body>
POLITEKNIK NEGERI SRIWIJAYA
</body>
</html>
Jika selesai save dan keluar dari nano
Selanjutnya browsing ke alamat IP agan2, jika proses benar maka nantinya akan tampil tulisan POLITEKNIK NEGERI SRIWIJAYA
Oke kita lanjut dengan php
Langkah pertama install php pada web server agan2, dengan cara
Sudo apt-get install php5 libapache2-mod-php5
Jika proses instalasi selesai restart apache dengan perintah
Sudo /etc/init.d/apache2 restart
Selanjutnya buat halaman php dan letakkan pada direktori www, yaitu dengan cara masuk terlebih dahulu ke direktori www
cd/var/www
kemudian
sudo nano test.php
kemudian isikan
<?php
phpinfo()
?>
Jika selesai save dan keluar dari nano
Selanjutnya browsing ke website agan2 sambil menjalankan tcpdump, jika proses benar maka akan tampil output seperti berikut :
Pada saat proses mengambil (get)
08:07:20:257384 IP 10.17.0.19.1107 > 10.17.0.195.ftp: Flags [.], ack 624, win 64658, length 0 08:07:20.270310 IP 10.17.0.19.1114 > 10.17.0.195.ftp-data: Flags [F.], seq 1, ack 132, win 64905, options [nop,nop,TS val 41123 ecr 924669], length 0
08:07:20.270327 IP 10.17.0.195.ftp-data > 10.17.0.1114: Flags [.], ack 2,  win 1825, option [nop,nop, TS val 924673 ecr 41123], length 0
Pada saat proses meletakkan (put)
08:13:28.971080 IP 10.17.0.195.1107 > 10.17.0.19.1107: Flags [P.], seq 249:271, ack 862, win 64540, length 22
08:13:28.971127 IP 10.17.0.195.ftp > 10.17.0.19.1107: Flags [R], seq 923375208, win 0, length 0

Jumat, 12 Oktober 2012

Membuat DNS Server di Ubuntu 11.04 Server

Halo agan2 semua akhirnya kita jumpai lagi ya ... ^_^ setelah beberapa hari ini saya sibuk di dunia nyata .. .. .. Hehee
Kali ini saya akan coba mengshared tentang bagaimana cara membuat DNS Server di Ubuntu 11.04.



Oke langsung saja ya ...
Pada pembahasan kali ini saya akan memberi ip komputer kita dengan 10.17.9.33 dimana domain yang akan kita buat adalah jarkom.com
Langkah Pertama, Yaitu 
  • Install BIND9 dengan menggunakan perintah berikut ini : 
$sudo apt-get install bind9
     Catatan : pastikan terlebih dahulu komputer kita telah terkoneksi internet
  • Selanjutnya kita akan melakukan konfigurasi file bind, disini kita akan membuat zona domain    dengan nama jarkom.com. Adapun perintah yang digunakan yaitu :
$sudo nano /etc/bind/named.conf.local
  • Kemudian didalamnya edit isinya menjadi seperti berikut :
# zona jarkom.com
zone "jarkom.com" {
   type master;
   file "/etc/bind/zones/jarkom.com.db";
};
# DNS reverse
zone "9.17.10.in-addr.arpa" {
   type master;
   file "/etc/bind/zones/jarkom-rev.db";
};
  • Setelah selesai, tahap selanjutnya kita akan membuat DNS Forwarding, dengan menggunakan perintah :
$sudo nano /etc/bind/named.conf.options

Kemudian isikan IP DNS ISP atau Server yang sudah ada
 
forwarders {
   10.10.1.1;
};
  • Tahap berikutnya kita akan mengedit file resolv.conf yang ada di etc dimana nanti di dalamnya akan kita isikan ip komputer yang sudah diinstall di DNS. Disini saya menggunakan IP 10.17.9.33. Selanjutnya gunakan perintah berikut untuk melakukan konfigurasi :
$ sudo nano /etc/resolv.conf

Kemudian ganti isinya menjadi seperti berikut :

search jarkom.com
nameserver 10.17.9.33
  • selanjutnya kita akan memdefinisikan zona, langkah pertama yang kita lakukan adalah kita akan membuat terlebih dahulu direktori zones.
  • adapun perintah yang akan kita gunakan yaitu
$sudo mkdir /etc/bind/zones

setelah selesai membuat direktori zones, selanjutnya kita akan mengedit isi dari direktori tersebut dengan menggunakan perintah berikut :
$sudo nano /etc/bind/zones/jarkom.com.db
  • Kemudian ganti isinya menjadi seperti ini :
$TTL 3D
@ IN SOA ns.jarkom.com. admin.jarkom.com. (
   20121010
   28800
   3600
   604800
   38400
);
jarkom.com                IN        NS                   ns.jarkom.com.
@                                 IN        NS                   jarkom.com.
@                                 IN        A                     jarkom.com.
5CA                             IN        A                     10.17.9.33
                                    TXT                            "Network Gateway"
  • Adapun penjelasan dari isi diatas yaitu TTL3D(Time To Live) disetting untuk 3 hari. ns.jarkom.com sebagai nameserver mendefinisikan ubuntudesktop and gateway sebagai A record. Dan www sebagai alias dari ubuntudesktop menggunakan CNAME
  • Kemudian kita akan membuat file “jarkom-rev.db” yang nantinya akan kita gunakan untuk reverse lookup. Adapun perintah yang akan kita gunakan yaitu :
$sudo nano /etc/bind/zones/jarkom-rev.db 

Kemudian edit isinya menjadi seperti ini
$TTL 3D
@       IN      SOA     ns.jarkom.com. admin.jarkom.com. (
                2007062001
                28800
                604800
                604800
                86400
)
            IN      NS      ns.jarkom.com.
33        IN      PTR     gw.jarkom.com.
  • Akhirnya agan2 konfigurasi kita telah selesai, selanjutnya kita akan aktifkan BINDnya dengan menggunakan perintah restart seperti berikut ini :
$sudo /etc/init.d/bind9 restart 

Jika selesai dan mendapatkan balasan OK berarti konfigurasi agan2 berhasil tetapi jika agan2 mendapatkan tulisan failed berarti konfigurasi agan2 sekalian ada yang salah dan silahkan cek lagi konfigurasinya dari awal ^_^.
  • Selanjutnya agan2 bisa periksa dan test hasil instalasi dan konfigurasinya, dengan menggunakan perintah berikut.
$netstat --listening | more
$nmap 5CA.jarkom.com
$ dig 5CA.jarkom.


Nah jika agan2 sekalian selamat mencoba ya .... ^_^ semoga bermanfaat ni
hehehe

Senin, 08 Oktober 2012

Mail Server dengan Postfix

Oke agan2 sekalian jumpa lagi kita hari ini ^_^.
Kali ini kita akan membahas cara membuat mailserver berbasiskan posfix dan courier dengan memanfaatkan mysql sebagai penyimpan data username & password bagi tiap-tiap user.

Tetapi terlebih dahulu seperti biasa saya akan menjelaskan sedikit kepada agan2 sekalian mengenai posfix. Posfix adalah mail transfer agent bebas dan terbuka. Posfix merupakan mail transfer agent default untuk sejumlah sistem operasi bertipe unix. 
Posfix pada awalnya dibuat oleh Wietse Venema sewaktu ia bekerja di IBM Thomas J. Watson Research Center, dan sampai sekarang masih aktif dikembangkan. Posfix pertama kali dirilis pada pertengahan 1999. 
Posfix dibuat dengan sistem jaringan daemon dimana setiap daemon hanya mengerjakan satu tugas dengan menggunakan akses minimum ke sistem. Dengan begitu, jika ada satu daemon yang bermasalah maka hanya akan memengaruhi daemon tersebut.
Beberapa Fitur yang dimiliki oleh Posfix, yaitu :
  • Performance. Posfix mampu melayani sejuta email dalam sehari.
  • Kompatibilitas. Posfix sangat kompatibel dengan sendmail (yang banyak digunakan orang sebagai MTA di UNIX).
  • Terdiri dari beberapa program kecil yang saling tidak percaya. Jika sendmail hanya mempunyai satu program besar dan satu file konfigurasi besar, maka Posfix memiliki program-program kecil yang menjalankan tugasnya secara spesifik.
  • Keamanan. Posfix dijalankan dengan proteksi bertingkat, oleh program-program kecil yang saling tidak percaya. Masing-masing program dijalankan oleh user khusus (bukan setuid).
  • Multiple Transport. Posfix dapat mengirim surat dengan modus SMTP (Simple Mail Transfer Protocol) dan UUCP (Unix to Unix Copy Protocol) sekaligus.
  • Mendukung format maildir. Maildir adalah format boks penyimpanan surat dalam bentuk folder dari pada berbentuk satu fila (mbox).
  • Kemudahan konfigurasi. Meskipun posfix terdiri dari banyak program kecil, namun hanya memiliki satu file konfigurasi yang mudah untuk diseting yakni /etc/postfix/main.cfg
Oke agan2 sekalian langsung aja ya kita mulai, berikut yang harus dilakukan agan2 sekalian :
Install paket-paket yang diperlukan

Paket yang diperlukan dalam tutorial ini antara lain :
Untuk Mengirim email (SMTP) : postfix (Pilih: “Local only”), postfix-tls, postfix-mysql, postfix-doc
Untuk Database user : mysql-client-5.0, mysql-server-5.0
Untuk menerima email (POP3 & IMAP) : courier-base (Pilih: “No”), courier-authdaemon, courier-authlib-mysql, courier-pop, courier-pop-ssl, courier-imap, courier-imap-ssl
Untuk Keamanan Pengiriman dan Penerimaan email : libsasl2, libsasl2-modules, libsasl2-modules-sql, openssl
Untuk Mencegah Virus dan Spam : amavisd-new, spamassassin, clamav, clamav-daemon, zoo, unzip, lha
Untuk tampilan WebMail : squirrelmail, phpmyadmin
Untuk testing tools : telnet
root@bajoel:~#apt-get install postfix postfix-tls postfix-mysql postfix-doc mysql-client-5.0 mysql-server-5.0 courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2 libsasl2-modules libsasl2-modules-sql openssl amavisd-new spamassassin clamav clamav-daemon zoo unzip lha squirrelmail phpmyadmin telnet
Membuat user, database, dan tabel yang diperlukan pada mysql

Tambahkan database dan tabel-tabel baru pada mysql anda sebagai berikut
root@bajoel:~#mysql -u root -p
password:
mysql>CREATE DATABASE mail;
mysql>CREATE USER 'mailadmin'@'localhost' identified by 'passwordanda';
mysql>USE mail;
mysql>CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain) )
TYPE=MyISAM;
mysql>CREATE TABLE forwardings (
source varchar(80) NOT NULL,
destination TEXT NOT NULL,
PRIMARY KEY (source) )
TYPE=MyISAM;
mysql>CREATE TABLE users (
email varchar(80) NOT NULL,
password varchar(20) NOT NULL,
PRIMARY KEY (email) )
TYPE=MyISAM;
mysql>GRANT all ON mail.* TO 'mailadmin'@'localhost';
Membuat file2 baru sebagai penunjuk ke database mysql

Buat file baru dg nama mysql-virtual_domains.cf yg berisi :
root@bajoel:~#mcedit /etc/postfix/mysql-virtual_domains.cf
user = mailadmin
password = passwordanda
dbname = mail
table = domains
select_field = 'virtual'
where_field = domain
hosts = 127.0.0.1
Buat file baru dg nama mysql-virtual_forwardings.cf yg berisi :
root@bajoel:~#mcedit /etc/postfix/mysql-virtual_forwardings.cf
user = mailadmin
password = passwordanda
dbname = mail
table = forwardings
select_field = destination
where_field = source
hosts = 127.0.0.1
Buat file baru dg nama user mysql-virtual_mailboxes.cf yg berisi :
root@bajoel:~#mcedit /etc/postfix/mysql-virtual_mailboxes.cf
user = mailadmin
password = passwordanda
dbname = mail
table = users
select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
where_field = email
hosts = 127.0.0.1
Buat file baru mysql-virtual_email2email.cf yang berisi :
root@bajoel:~#mcedit /etc/postfix/mysql-virtual_email2email.cf
user = mailadmin
password = passwordanda
dbname = mail
table = users
select_field = email
where_field = email
hosts = 127.0.0.1
[Penting] Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat.
root@bajoel:~#chown root:postfix /etc/postfix/mysql-virtual_*.cf
root@bajoel:~#chmod u=rw,g=r,o= /etc/postfix/mysql-virtual_*.cf
Membuat user baru pada system kita sebagai administrator-email

User ini bertugas untuk membuat maildir baru setiap ada user baru yang mendaftar pada mailserver anda
root@bajoel:~#groupadd -g 5000 mail-admin
root@bajoel:~#useradd -g mail-admin -u 5000 mail-admin -d /home/mail -m
root@bajoel:~#mkdir /home/mail
root@bajoel:~#chown -R mail-admin:mail-admin /home/mail
root@bajoel:~#chmod -R u=rwx,g=,o= /home/mail
Mengkonfigurasi postfix sbg server SMTP

Edit file main.cf (ini adalah file konfigurasi utama dari postfix) menjadi :
root@bajoel:~#mcedit /etc/postfix/main.cf
inet_interfaces = all
myhostname = mail.domain-anda.org (fqdn)
mydestination = (jangan menuliskan virtual domain disini -> lebih baik dikosongi saja)
mynetworks = lqman.org (nama domain anda)
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_forwardings.cf mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/mail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
Testing…
Restart service postfix
root@bajoel:~#/etc/init.d/postfix restart
root@bajoel:~#postfix check
Jika tidak muncul suatu pesan kesalahan, berarti anda sukses…….
Coba mengakses port 25 (SMTP) dengan telnet
root@bajoel:~#telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 mail.lqman.org ESMTP Postfix (Debian/GNU)
Jika muncul sebagaimana tulisan diatas, berarti postfix anda sudah berjalan lancar…….
Tekanlah tombol Ctrl+] lalu ketik quit untuk keluar dari sesi telnet,
Ambilah napas dalam-dalam, dan lanjutkan perjuangan ;)
Mengaktifkan fasilitas authentikasi pada postfix (Auth-SMTP)

Menyuruh Postfix untuk menggunakan SASL/MySQL, dg cara buat file konfigurasi baru dg nama /etc/postfix/sasl/smtpd.conf yang berisi :
root@bajoel:~#mcedit /etc/postfix/sasl/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: plain login cram-md5 digest-md5
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: mailadmin
sql_passwd: passwordanda
sql_database: mail
sql_select: select password from users where email='%u@%r'
log_level: 7
[Penting] Demi keamanan, pastikan hanya user root dan postfix saja yang bisa mengakses file-file yang telah anda buat.
root@bajoel:~#chown root:postfix /etc/postfix/sasl/smtpd.conf
root@bajoel:~#chmod u=rw,g=r,o= /etc/postfix/sasl/smtpd.conf
Mengaktifkan TLS untuk meng-encrypt SMTP traffik, dg cara membuat sertifikat (certificate)
root@bajoel:~#openssl req -new -outform PEM -out /etc/postfix/smtpd.cert -newkey rsa:2048 -nodes -keyout /etc/postfix/smtpd.key -keyform PEM -days 365 -x509
[Penting] Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat.
root@bajoel:~#chown root:postfix /etc/postfix/smtpd.*
root@bajoel:~#chmod u=rw,g=r,o= /etc/postfix/smtpd.*
Mengkonfigurasi courier sebagai server POP3 / IMAP

Edit file /etc/courier/authdaemonrc, ubah parameter authmodulelist menjadi
root@bajoel:~#mcedit /etc/courier/authdaemonrc
authmodulelist="authmysql"
Lalu edit file /etc/courier/authmysqlrc, ubah beberapa parameter menjadi seperti di bawah ini :
root@bajoel:~#mcedit /etc/courier/authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME mailadmin
MYSQL_PASSWORD passwordanda
MYSQL_PORT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
#MYSQL_CRYPT_PWFIELD (jadikan baris ini sebagai komentar)
MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/home/mail"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
#MYSQL_NAME_FIELD (jadikan baris ini sebagai komentar)
[Penting] Mengedit file authmysqlrc agak sedikit susah, pastikan anda berhati-hati dan tidak membuat kesalahan (jangan memakai tanda SPASI, tetapi gunakan tombol TAB)
Testing…
Restart service courier-authdaemon
root@bajoel:~#/etc/init.d/courier-authdaemon restart
Jika tidak muncul suatu pesan kesalahan, berarti anda sukses…….
Coba mengakses port 110 (POP3) dengan telnet
root@bajoel:~#telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
Jika muncul pesan seperti diatas, maka berbahagialah.
Tarik napas dalam-dalam dan ucapkan Alhamdulillah atas keberhasilan anda :)
[Penting] Anda tidak dapat membuka mailbox / maildir anda sebelum ada email yang terkirim pada mailbox anda.Pesan kesalahan akan dimunculkan. Karena itulah anda harus mengirim welcome email pada setiap user baru.
Test hasil konfigurasi anda

Selamat, anda telah menyelesaikan poin konfigurasi. Pada bagian ini anda anda hanya akan men-testing server yang telah anda konfig sebelumnya.
Sekarang kita akan membuat database pada domain yang akan kita coba, domain inilah yang kita jadikan sebagai domain percobaan untuk mengirim dan menerima email.
Buatlah domain baru dg nama lqman.org pada tabel domains, dan buatlah juga alamat email dan password baru pada tabel users.
Untuk lebih jelasnya ikutilah syntax mysql dibawah ini.
root@bajoel:~#mysql -u mailadmin -p mail
password:
mysql>INSERT INTO domains(domain) VALUES ('lqman.org');
mysql>INSERT INTO users(email,password) VALUES ('admin@lqman.org','admin');
mysql>INSERT INTO users(email,password) VALUES ('user@lqman.org','user');
Sekarang kita sudah punya sebuah virtual domain baru dg nama “lqman.org” dan 2 orang user, yaitu “admin@lqman.org” dan “user@lqman.org” yang masing-masing user ini mempunyai password “admin” dan “user”.
Jika anda tidak mempunyai MX (Mail eXchange) record pada DNS server anda, maka kami menyarankan utk menambahkan MX record spt dibawah ini:
root@bajoel:~#mcedit /etc/bind/db.lqman.org
@ IN MX 5 mail.lqman.org.
mail IN A 10.122.1.22
IP-Address 10.122.1.22 hanya sebagai contoh saja, ubahlah sesuai dg IP-Address yg anda inginkan.
Kemudian untuk mencoba pengiriman email dari SMTP server anda, lakukan telnet pada localhost port 25 (SMTP) sebagai berikut :
root@bajoel:~#telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 mail.lqman.org ESMTP Postfix (Debian/GNU)
kemudian secara interaktif (pada mode telnet) berikan perintah spt dibawah ini:
Anda : ehlo virtual.test
Server : 250-mailtest
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 8BITMIME
Anda : mail from:admin@lqman.org
Server : 250 Ok
Anda : rcpt to:user@lqman.org
Server : 250 Ok
Anda : data
Server : 354 End data with .
Anda : Subject:Just for test
This is a test email
. (tanda titik)

Server : 250 Ok: queued as ABC1D1C123
Anda : quit
Server : 221 BYE
Jika respon server seperti tulisan yg di bold diatas, berarti email dari admin@lqman.org kepada user@lqman.org sudah masuk ke dalam antrian untuk segera dikirimkan oleh postfix (SMTP server).
Lihatlah pada log file yang berada pada /var/log/mail.info
root@bajoel:~#tail -f /var/log/mail/info | ccze
pasti akan kita lihat bagin seperti dibawah ini :
Jul 24 21:48:28 myserver postfix/smtpd[9119]: connect from myserver[127.0.0.1]
Jul 24 21:48:48 myserver postfix/smtpd[9119]: F2C1B47BD: client=myserver[127.0.0.1]
Jul 24 21:48:52 myserver postfix/cleanup[9144]: F2C1B47BD: message-id=
Jul 24 21:48:52 myserver postfix/qmgr[9117]: F2C1B47BD: from=, size=313, nrcpt=1 (queue active)
Jul 24 21:48:52 myserver postfix/virtual[9148]: F2C1B47BD: to=, relay=virtual, delay=10, status=sent (delivered to maildir)
Jika anda melihat “status=sent (delivered to maildir)” maka email yang anda kirimkan sudah berhasil dikirimkan ke dalam Maildir user yang bersangkutan (user@lqman.org). Jalankan perintah find untuk melihat seluruh file dan direktori yang ada dibawah direktori “/home/mail”.
root@bajoel:~#find /home/mail
/home/mail/
/home/mail/lqman.org
/home/mail/lqman.org/user
/home/mail/lqman.org/user/cur
/home/mail/lqman.org/user/new
/home/mail/lqman.org/user/new/1170803794.V805I1c1fbM98807.bajoel
/home/mail/lqman.org/user/new/1170803833.V805I1c1feM87660.bajoel
/home/mail/lqman.org/user/tmp
Semuanya berjalan Lancar? Bagus.. :)Sebagai langkah terakhir, anda harus mencoba login pada email baru nada melalui tampilan web yg telah disediakan oleh squirrelmail. Pada percobaan ini, username yang bisa digunakan adalah “user@lqman.org” dengan password “user”
Menambahkan User Baru pada Mail-Server

Pada step yang terakhir ini anda tinggal memasukkan / menambahkan pada database setiap username dan password user baru pada mailserver anda.
Untuk setiap virtual-domain baru, Tambahkan nama virtual-domain tsb pada tabel ‘domains’
Untuk setiap user baru, Tambahkan username (email address) dan password (plain text) pada tabel ‘users’
Untuk setiap forwarding, Tambahkan source dan destination mail address pada tabel ‘forwardings’, jika anda punya banyak destination, pisahkan dengan koma. Tabel ini digunakan untuk me-redirect setiap email pada system anda, termasuk juga anda bisa me-redirect local mail-address.
Contoh :
source  destination  effect
test@my.domain  philip@my.domain  me-redirect emails untuk postmaster kepada philip.
@my.domain  @another.domain  Ini adalah re-direction thd seluruh domain. Setiap email yang dialamatkan kpd suatu user pada domain ‘my.domain’ akan di-forward kepada user yang sama pada domain ‘another.domain’. Jadi mail kpd lqman@my.domain akan di-redirect kepada lqman@another.domain.
jesper@my.domain  dilbert@my.domain,dilbert@gmail.com  mem-forward email yg dialamatkan untuk jesper@my.domain kepada dilbert@my.domain dan dilbert@gmail.com
Interface WebMail dg squirrelmail

Untuk mempermudah user anda dalam menggunakan mailserver yg sdh anda buat, maka tampilan web merupakan interface yang paling mudah. Oleh karena itu paket squirrelmail yang sudah kita install pada step pertama harus dikonfigurasi sesuai dg mailserver yg sdh kita buat.
Untuk menyesuaikan dg konfigurasi mailserver ini, cukup lakukan perintah squirrelmail-configure
root@bajoel:~#squirrelmail-configure
lalu lakukan sesuai dg langkah-langkah yang sudah tersedia. Langkah yang paling penting disini adalah saat menentukan “Server Settings” saja, selain itu tidak ada yang terlalu penting.
Pada saat menentukan “Server Settings”, lakukan perubahan spt dibawah ini
Secure IMAP (TLS) : false
Server software : courier
kemudian save opsi tersebut dg cara menekan tombol “s”, lalu keluar dari configurasi dg menekan tombol “q”.
Menjadikan webmail kita sebagai VirtualHost baru

Buatlah file baru pada konfigurasi webserver anda (pada tutorial ini dipakai webserver apache2)
root@bajoel:~#touch /etc/apache2/sites/available/squirrelmail
kemudian tambahkan baris-baris dibawah ini :
NameVirtualHost 10.122.1.22:80
ServerAdmin admin@lqman.org
ServerName mail.lqman.org
DocumentRoot /usr/share/squirrelmail
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
setelah itu, buatlah symbolic link ke direktori /etc/apache2/sites-enable/ dengan cara
root@bajoel:~#ln -s /etc/apache2/sites-available/squirrelmail.conf /etc/apache/sites-enable/001squirrelmail.conf
lalu cek konfigurasi apache2 dg syntax :
root@bajoel:~#apache2ctl configtest
dan jika muncul tulisan Syntax OK, maka restart-lah apache2 dg :
root@bajoel:~#apache2ctl restart
Dan silakan menikmati mail server anda melalui squirrelmail (wab based mail client).