Instalasi Mail Server
Yang perlu diketahui Untuk Membuat Mail dan Webserver :
Freebsd, Operating System
Postfix, SMTP server
Dovecot, POP3(s) and IMAP(s) server
Postfixadmin, PHP tool untuk manage postfix
Squirrelmail, webmail system
Clamav, Antivirus
Membuat Mail Server
1. Install Apache
Locate Apache <-- untuk mengetahui letak Apache
#cd /usr/ports/www/apache22
# make
……………
[X]Mysql
...................
# make install
#ee etc/rc.conf
apache22_enable=”YES”
/usr/local/etc/rc.d/apache22 start <-- Menjalankan apache
2. Install PHP
cd /usr/ports/lang/php5
make
…………...
[X] Apache
[X] Multibyte
make install
cd /usr/ports/lang/php5
more pkg-message.mod
ee /usr/local/etc/apache22/httpd.conf
Tambahkan :
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
save
Untuk mengetahui PHP sudah aktif berada di dalam file index.php
cd /usr/local/www/apache22/data
ee index.php
/usr/local/etc/rc.d/apache22 restart
Test in your browser
it must works!
3. Install MySQL
cd /usr/ports/databases/mysql50-server
make
make install
#ee etc/rc.conf
mysql_enable=”YES”
/usr/local/etc/rc.d/mysql-server start
ps –aux <- melihat sudah jalan atau belum
4. Install Phpmyadmin
cd /usr/ports/databases/phpmyadmin
make
make install
5. Install Dovecot
cd /usr/ports/mail/dovecot
make
…….
[X] MySQL
Make install
6. Install Postfix
cd /usr/ports/mail/postfix
make
and select
[PCRE]
[SASL2]
[DOVECOT]
[TLS]
[MYSQL]
……………………….
[BDB]
[MySQL]
Perintah diatas akan mendownload and compile postfix dan dovecot,
#ee /etc/rc.conf
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
postfix_enable="YES"
6. Install postfixadmin :
# /usr/ports/mail/postfixadmin
# make
[MySQ]
# make install
# ee /usr/local/etc/apache22/httpd.conf
# Search for
Before :
DirectoryIndex index.html
After :
DirectoryIndex index.html index.php
Restart apache go to host/postfixadmin/
Setup
# mysqladmin -u root password xxxxxxx
Warning imap
# locate php5-imap
# cd /usr/ports/mail/php5-imap
# make
# make install
# /usr/local/etc/rc.d/apache22 restart
Warning magic quotes :
# cd /usr/local/etc/
# cp php.ini-dist php.ini
# ee php.ini
Before :
AllowOverride None
Order deny,allow
Deny from all
After :
AllowOverride Limit
Order deny,allow
Allow from all
Create the database. Then edit config.inc.php in the postfixadmin
# cd /usr/local/www/postfixadmin/
# ee config.inc.php
Before :
$CONF(‘configured’) = false;
After :
$CONF(‘configured’) = true;
- database_password to the password you changed in DATABASE_MYSQL.TXT
- replace change-this-to-your.domain.tld with your domain name
- domain_path' = YES
- domain_in_mailbox' = 'NO';
- ‘encrypt' = 'cleartext';
Now try to access your site using your servername (remember we’re using name based virtual hosting). You should see all OKs. If it is as expected, delete setup.php and click to Admin section. You’ll log in using admin/admin: change this using htpasswd against the .htpasswd file in the admin directory.
# mv setup.php setup.php.bak
# cd /usr/local/etc/postfix/
# ee main.cf
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:125
virtual_mailbox_base = /usr/local/virtual
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 125
virtual_transport = virtual
virtual_uid_maps = static:125
Replacing :
- /usr/local/virtual with your mailbox base path
- 125 with the userid of the postfix user
Limit local access to postfixadmin
# mkdir /usr/local/virtual
# chown postfix:postfix /usr/local/virtual/
Create a file named ‘mysql_virtual_alias_maps.cf’ in /usr/local/etc/postfix containing
# ee mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = 1
Here and in the files that follow, replace the password for user postfix with the one you changed in DATABASE_MYSQL.TXT.
Create mysql_virtual_domains_maps.cf with
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s'
Create mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
Now create the directory tree:
cd /usr/local/virtual
mkdir -p /usr/local/virtual/mydomain.com
chmod -R 770 /usr/local/virtual
chown -R postfix:postfix /usr/local/virtual
Now we need to configure dovecot.
cp /usr/local/etc/dovecot-example.conf /usr/local/etc/dovecot.conf, and edit dovecot.conf
changing :
- disable_plaintext_auth = no
- log_path = /var/log/dovecot.log
- ssl_disable = yes
- mail_location = maildir:/usr/local/virtual/%d/%n
- first_valid_uid = 125
- last_valid_uid = 125
Uncomment and complete this:
passdb sql {
args = /usr/local/etc/dovecot-mysql.conf
}
userdb sql {
args = /usr/local/etc/dovecot-mysql.conf
}
Create a file named ‘/usr/local/etc/dovecot-mysql.conf’ containing
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix
user_query = SELECT concat('/usr/local/virtual/', maildir) as home, concat('maildir:/usr/local/virtual/', maildir) as mail, 125 AS uid, 125 AS gid, concat('maildir:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
password_query = SELECT username as user, password, concat('/usr/local/virtual/', maildir) as userdb_home, concat('maildir:/usr/local/virtual/', maildir) as userdb_mail, 125 as userdb_uid, 125 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
default_pass_scheme = PLAIN
# /usr/local/etc/rc.d/postfix start
Minggu, 01 November 2009
Jumat, 02 Oktober 2009
MRTG in windows Server 2003
MRTG singkatan dari The Multi Router Traffic Grapher, merupakan tools yang berfungsi untuk mengamati besar trafik yang melewati suatu interface tertentu dimana yang bekerja ialah protokol SNMP, kemudian dari data yang diperoleh tersebut, akan dibuat suatu grafik sehingga mudah diamati oleh seorang admin jaringan.
Step by step yang perlu dilakukan ialah :
1. aktifkan SNMP pada windows
masuk ke control panel –> add or remove programs –> add/remove windows components –> centang management and monitoring tools, klik details
2. download dan install Perl
3. download paket kemudian install/ekstrak
MRTG
4. rename folder hasil ekstraknya dengan mrtg
5. lalu buat satu folder baru dan beri nama mrtghtml
6. membuat setting konfigurasi dengan cfgmaker
masuk ke cmd, misal mrtg berada pada drive D
Microsoft Windows DOS
Copyright Microsoft Corp 1990-1999
C:\>d:
D:\>cd mrtg\bin
D:\mrtg\bin>perl cfgmaker public@202.158.170.1 --global "WorkDir: d:\mrtghtml" --output server.cfg
akan dihasilkan sebuah file server.cfg
7. sebelum me-run mrtg, sebaiknya dibuat indexmaker agar semua interface yang diamati tersebut bisa dilihat secara bersamaan, ga satu per satu, istilah laen yaitu mengumpulkan… :mrgreen:
D:\mrtg\bin>perl indexmaker --output index.htm server.cfg
diperoleh file index.htm, lalu copy-kan ke direktory D:\mrtghtml
8. masuk ke D:\mrtg\bin kemudian edit file server.cfg pake notepad.
Tambahkan :
RunAsDaemon: Yes
Interval: 5
Agar mrtg selalu merefresh tiap 5 menit sekali
Options[_]: bits
ShortLegend[_]: b/s
Untuk mengubah parameter skala bytes menjadi bits
9. menjalankan mrtg
D:\mrtg\bin>perl mrtg server.cfg
Sekian saja proses instalasi mrtg untuk windows. Untuk melihat grafiknya, masuk ke D:\mrtghtml kemudian klik dua kali pada index.htm. Bila ada kerusakan gambar pada links bagian bawah, maka cara memperbaiki, kita perlu mengkopikan images pada D:\mrtg\images dan paste-kan di D:\mrtghtml
Referensi :
http://oss.oetiker.ch/mrtg/
http://www.netmon.org/24×7x365.htm
http://www.progsoc.uts.ed...l/msg00146.html
Step by step yang perlu dilakukan ialah :
1. aktifkan SNMP pada windows
masuk ke control panel –> add or remove programs –> add/remove windows components –> centang management and monitoring tools, klik details
2. download dan install Perl
3. download paket kemudian install/ekstrak
MRTG
4. rename folder hasil ekstraknya dengan mrtg
5. lalu buat satu folder baru dan beri nama mrtghtml
6. membuat setting konfigurasi dengan cfgmaker
masuk ke cmd, misal mrtg berada pada drive D
Microsoft
C:\>d:
D:\>cd mrtg\bin
D:\mrtg\bin>perl cfgmaker public@202.158.170.1 --global "WorkDir: d:\mrtghtml" --output server.cfg
akan dihasilkan sebuah file server.cfg
7. sebelum me-run mrtg, sebaiknya dibuat indexmaker agar semua interface yang diamati tersebut bisa dilihat secara bersamaan, ga satu per satu, istilah laen yaitu mengumpulkan… :mrgreen:
D:\mrtg\bin>perl indexmaker --output index.htm server.cfg
diperoleh file index.htm, lalu copy-kan ke direktory D:\mrtghtml
8. masuk ke D:\mrtg\bin kemudian edit file server.cfg pake notepad.
Tambahkan :
RunAsDaemon: Yes
Interval: 5
Agar mrtg selalu merefresh tiap 5 menit sekali
Options[_]: bits
ShortLegend[_]: b/s
Untuk mengubah parameter skala bytes menjadi bits
9. menjalankan mrtg
D:\mrtg\bin>perl mrtg server.cfg
Sekian saja proses instalasi mrtg untuk windows. Untuk melihat grafiknya, masuk ke D:\mrtghtml kemudian klik dua kali pada index.htm. Bila ada kerusakan gambar pada links bagian bawah, maka cara memperbaiki, kita perlu mengkopikan images pada D:\mrtg\images dan paste-kan di D:\mrtghtml
Referensi :
http://oss.oetiker.ch/mrtg/
http://www.netmon.org/24×7x365.htm
http://www.progsoc.uts.ed...l/msg00146.html
Jumat, 25 September 2009
Mengatasi Windows Log OFF after Login
Pagi ini di kejutkan dengan salah satu Lenovo ThinkPad (TP) yang saya maintain tidak bisa login. Setiap di nyalakan, Windows selalu log off dan berulang terus menerus. Seperti biasa, pergi ke google untuk mencari solusinya. Beberapa blogger menyarankan agar me-replace c:\windows\system32\userinit.exe dengan yang original.
Saya coba dan solusi ini tidak berhasil. Dari hasil membandingkan dengan Lenovo TP yang lain dan dalam keadaan sehat, saya berkesimpulan bahwa file userinit.exe yang asli itu harusnya berada di folder c:\windows\system32\ bukan berada di c:\windows\ dan ukurannya yang seharusnya sekitar 25 Kb.
Beberapa TP yang lain, yang saya curigai mengandung virus yang sama menempatkan file userinit.exe di c:\windows dan registry mengarah ke c:\windows
Apa yang terjadi bila file c:\windows\userinit.exe di hapus?
Yang akan terjadi adalah seperti kejadian yang saya alami ini
Karena tidak menemukan file yang di cari, maka di tendang terus oleh windows….. dan nggak akan pernah bisa berhasil login….
me-replace userinit.exe ke c:\windows\system32 juga nggak akan menolong…. karena registry sebagai acuan mencari userinit.exe di c:\windows
jadi alteratif solusinya, meng-copy juga original userinit.exe ke c:\windows ….
detil langkahnya?
1. Masuk ke windows recovery console ketika startup komputer,atau gunakan cd windows xp bootable
2. Pilih windows installation directory-nya. Pada umumnya cuma ada 1 satu installer windows. pilih nomer 1
3. Extract file userinit.ex_ yang ada di cdrom ke drive c: dengan mengketik “expand d:\i386\userinit.ex_”
4. Copy kan file userinit.exe yan folder c:\windows\system32
5. Dalam kasus saya ini, virus telah merubah referensi dari folder yang seharusnya c:\windows\system32 ke c:\windows, maka yang saya lakukan adalah juga meng- copy ke c:\windows
6. Berdoa… mudah2an sukses
Saya coba dan solusi ini tidak berhasil. Dari hasil membandingkan dengan Lenovo TP yang lain dan dalam keadaan sehat, saya berkesimpulan bahwa file userinit.exe yang asli itu harusnya berada di folder c:\windows\system32\ bukan berada di c:\windows\ dan ukurannya yang seharusnya sekitar 25 Kb.
Beberapa TP yang lain, yang saya curigai mengandung virus yang sama menempatkan file userinit.exe di c:\windows dan registry mengarah ke c:\windows
Apa yang terjadi bila file c:\windows\userinit.exe di hapus?
Yang akan terjadi adalah seperti kejadian yang saya alami ini
Karena tidak menemukan file yang di cari, maka di tendang terus oleh windows….. dan nggak akan pernah bisa berhasil login….
me-replace userinit.exe ke c:\windows\system32 juga nggak akan menolong…. karena registry sebagai acuan mencari userinit.exe di c:\windows
jadi alteratif solusinya, meng-copy juga original userinit.exe ke c:\windows ….
detil langkahnya?
1. Masuk ke windows recovery console ketika startup komputer,atau gunakan cd windows xp bootable
2. Pilih windows installation directory-nya. Pada umumnya cuma ada 1 satu installer windows. pilih nomer 1
3. Extract file userinit.ex_ yang ada di cdrom ke drive c: dengan mengketik “expand d:\i386\userinit.ex_”
4. Copy kan file userinit.exe yan folder c:\windows\system32
5. Dalam kasus saya ini, virus telah merubah referensi dari folder yang seharusnya c:\windows\system32 ke c:\windows, maka yang saya lakukan adalah juga meng- copy ke c:\windows
6. Berdoa… mudah2an sukses
Kamis, 24 September 2009
Membuat Webserver dengan FreeBSD
1. Download
Aplikasi yang dipergunakan dalam artikel ini adalah Apache versi 2.2.3, MySQL versi 5.0.22, OpenSSL versi 0.9.8d, dan PHP versi 5.2.0.
Dari semua aplikasi di atas, hanya Apache dan PHP yang akan diinstall secara manual, sedang MySQL dan OpenSSL diinstall via ports. Jadi yang akan didownload secara manual hanya Apache dan PHP.
Apache versi terakhir dapat didownload di http://apache.the.net.id/httpd/httpd-2.2.3.tar.bz2. Versi terakhir Apache saat artikel ini ditulis adalah versi 2.2.3. Dan versi PHP terakhir saat ini adalah versi 5.2.0. PHP dapat didownload di http://id2.php.net/get/php-5.2.0.tar.bz2/from/a/mirror.
2. Instalasi
2.1. Install MySQL
Sebelum menginstall Apache dan PHP, yang harus diinstall terlebih dahulu adalah MySQL dan OpenSSL. Untuk menginstalasi kedua aplikasi ini di FreeBSD cukup mudah melalui ports.
$ cd /usr/ports/database/mysql51-server$ sudo make install$ sudo portupgrade -rR mysql51-server
Command terakhir adalah untuk mengupgrade versi MySQL ke versi terbaru.
Untuk mengaktifkan MySQL saat booting, buka file /etc/rc.conf dan tambahkan baris:
mysql_enable = “YES”
Copykan file konfigurasi MySQL:
$ sudo cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf$ sudo chgrp mysql /var/db/mysql/my.cnf
Kemudian jalankan command berikut untuk mengaktifkan daemon MySQL.
$ sudo /usr/local/etc/rc.d/mysql-server start
Bila berhasil, seharusnya Anda akan melihat baris berikut saat menjalankan command ps ax grep mysql:
678 p0- I 0:00.01 /bin/sh /usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysql/my.cnf –user=mysql –datadir=/var/db/mysql701 p0- S 383:04.45 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf –basedir=/usr/local –datadir=/var/db/mysql
Selanjutnya buat password untuk MySQL root user:
$ sudo mysqladmin -u root password ‘password-root-mysql’
Coba masuk ke MySQL console dengan password root tersebut.
$ mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 603704 to server version: 5.0.22
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> \qBye
2.2. Install OpenSSL
Langkah selanjutnya adalah menginstalasi OpenSSL, cara menginstalasi OpenSSL dalam hal ini menggunakan ports juga.
$ cd /usr/ports/security/openssl$ sudo make install clean
Buat direktori untuk menempatkan certificate SSL:
$ sudo mkdir -p /usr/local/openssl/{certs,private}
Kemudian generate private key 1024-bit:
$ cd /usr/local/openssl$ sudo /usr/local/bin/openssl genrsa -out private/namadomain.com.key 1024
Ubah permission untuk direktori private menjadi:
$ sudo chown -R root:wheel private$ sudo chmod -R 600 private$ sudo chmod u+X private
Generate Certificate Signing Request (CSR) File:
$ /usr/local/bin/openssl req -new -key private/namadomain.com.key -out certs/namadomain.com.csr
Country Name (2 letter code) [GB]: IDState or Province Name (full name) [Some-State]: PropinsiLocality Name (eg, city) []: KotaOrganization Name (eg, company) [Internet Widgits Pty Ltd]: PT. Nama UsahaOrganizational Unit Name (eg, section) []: Bidang Usaha PerusahaanCommon Name (eg, your name or your server’s hostname) []: namadomain.comEmail Address []: postmaster@namadomain.com
Please enter the following ‘extra’ attributesto be sent with your certificate requestA challenge password []: masukkanpasswordAn optional company name []:
Kemudian buat Certificate Signed (CRT) file:
$ sudo /usr/local/bin/openssl x509 -req -days 365 -in certs/namadomain.com.csr -out certs/namadomain.com.crt -signkey private/namadomain.com.key
Certificate yang dibuat itu nantinya akan digunakan bila webserver support SSL.
2.3. Install Apache
Saya asumsikan, source Apache hasil download Anda disimpan di /home/users.
$ cd /home/users$ tar -jxvf httpd-2.2.3.tar.bz2$ cd httpd-2.2.3$ ./configure \–prefix=/usr/local/apache2 \–enable-rewrite \–enable-dav \–enable-ssl \–with-ssl=/usr/local \–enable-vhost-alias \–with-included-apr$ make$ sudo make install
Keterangan dari masing-masing opsi di atas adalah:
–prefix=[DIR]: Menginstall aplikasi ke target direktori yang ditentukan.–enable-rewrite: Mengaktifkan rule based URL manipulation melalui module mod_rewrite.–enable-dav: Mengaktifkan protocol WebDAV melalui module mod_dav. Dengan protocol WebDAV ini memungkinkan membuat, memindah, menyalin, dan menghapus resource pada sebuah web server.–enable-ssl: Mengaktifkan module SSL/TLS.–with-ssl=[DIR]: Di mana library SSL/TLS diinstall.–enable-vhost-alias: Support dengan banyak virtual host.–with-included-apr: Install apr. APR atau Apache Portable Runtime pada Apache 2.2.x versi merupakan source yang sudah menyatu dengan Apache Source.
2.4. Install PHP
Sebelum Anda menginstalasi PHP, saya sarankan untuk menginstall aplikasi-aplikasi via ports yang diperlukan (recommended) PHP saat instalasinya. Aplikasi-aplikasi tersebut adalah:
- mcrypt (/usr/ports/security/mcrypt) dan libmcrypt (/usr/ports/security/libmcrypt)- db4 (/usr/ports/databases/db4) dan gdbm (/usr/ports/databases/gdbm)- gd (/usr/ports/graphics/gd)- libxml2 (/usr/ports/textproc/libxml2)
Saya asumsikan pula, source PHP yang Anda download disimpan di /home/users.
$ cd /home/users$ tar -jxvf php-5.2.0.tar.bz2$ cd php-5.2.0$ ./configure \–with-apxs2=/usr/local/apache2/bin/apxs \–with-mysql=/usr/local \–with-openssl=/usr/local \–with-config-file-path=/usr/local/apache2/conf \–with-png-dir=/usr/local/lib \–with-gettext=/usr/local/lib \–with-gd \–with-zlib \–with-xml \–with-mcrypt=/usr/local/lib \–enable-mbstring=all \–disable-short-tags$ make$ make install
Keterangan dari masing-masing opsi di atas adalah:
–with-apxs2[=FILE]: Menyertakan shared Apache 2.0 Handler module.–with-mysql[=DIR]: Menyertakan dukungan MySQL. DIR adalah di mana binary MySQL diinstall.–with-openssl[=DIR]: Menyertakan dukungan OpenSSL.–with-config-file-path=PATH: Di mana file php.ini akan diletakkan.–with-png-dir[=DIR]: Menyertakan dukungan format file PNG.–with-gettext[=DIR]: Menyertakan dukungan GNU gettext.–with-gd[=DIR]: Menyertakan dukungan GD.–with-zlib[=DIR]: Menyertakan dukungan zlib.–with-libxml-dir[=DIR]: Menyertakan dukungan XML.–with-mcrypt[=DIR]: Menyertakan dukungan mcrypt atau Multi-cipher cryptographic library.–enable-mbstring: Mengaktifkan dukungan multibyte string.–disable-short-tags: Nonaktifkan penggunaan tag pendek Edit file /usr/local/apache2/conf/php.ini dan sesuaikan dengan kebutuhan Anda. Pada dasarnya default file konfigurasi ini sudah cukup baik.
Karena PHP diinstall sebagai module pada Apache, kita perlu mengubah kepemilikan direktori PHP yang hanya akan mengijinkan akses kepada user root dan www saja.
$ sudo chown -R root:www /usr/local/lib/php$ sudo chmod -R g-w,o-rwx /usr/local/lib/php
Edit file /usr/local/apache2/conf/httpd.conf dan ubah baris-baris berikut menjadi:
User wwwGroup www
ServerAdmin hostmaster@namadomain.comServerName www.namadomain.com:80DirectoryIndex index.html index.php
TypesConfig conf/mime.typesAddType application/x-compress .ZAddType application/x-gzip .gz .tgzAddType application/x-httpd-php .phpAddHandler cgi-script .cgi
Aktifkan juga baris-baris berikut dengan menghilangkan tanda # di awal barisnya:
Include conf/extra/httpd-autoindex.confInclude conf/extra/httpd-userdir.confInclude conf/extra/httpd-vhosts.confInclude conf/extra/httpd-dav.confInclude conf/extra/httpd-default.confInclude conf/extra/httpd-ssl.conf
Selanjutnya ubah permission direktori Apache:
$ cd /usr/local
Ubah kepemilikan direktori apache2 ke user root:wheel
$ sudo chown -R root:wheel apache2
Ubah permission pada direktori apache2. Karena direktori ini kepemilikannya oleh root:wheel dan supaya bisa diakses oleh group www, kita ijinkan group www ini membaca dan mengeksekusi file-file di bawahnya.
$ sudo chmod 755 apache2
Selanjutnya pada direktori apache2 ini hanya akan mengijinkan user root saja untuk dapat membaca dan menulisinya dengan mengubah permission menjadi:
$ sudo chmod -R 600 apache2/*
Hanya user root saja yang dapat mengakses seluruh direktori yang berada di bawah direktori apache2:
$ sudo chmod -R u+X apache2$ cd apache2
Ubah kepemilikan direktori binary Apache ke user root:
$ sudo chmod -R u+x bin
Direktori cgi-bin juga berisi file-file binari. Hanya mengijinkan user root dan group www saja yang bisa mengaksesnya.
$ sudo chgrp -R www cgi-bin$ sudo chmod -R u+x,g+x cgi-bin
Web server akan membaca direktori icons, maka ubah pula kepemilikannya agar bisa dibaca oleh group www.
$ sudo chgrp -R www icons$ sudo chmod -R g+rX icons
Ubah juga permission direktori logs:
$ sudo chgrp -R www logs$ sudo chmod g+wX logs
Terakhir ubah kepemilikan direktori htdocs agar bisa dibaca oleh publik. Direktori ini nanti merupakan tempat menyimpan file-file web yang akan ditampilkan pada browser. Akses penulisan ke direktori ini hanya dibatasi kepada user root saja.
$ sudo chgrp -R www htdocs$ sudo chmod -R g+rX htdocs
Karena menginstall Apache dari source file. Kita harus membuat sendiri startup script-nya agar dapat dieksekusi oleh server pada saat booting. Start up script diletakkan di direktori /usr/local/etc/rc.d. Startup script dapat didownload di sini: Apache-2 FreeBSD Startup Script
Kemudian tambahkan dua baris berikut pada file /etc/rc.conf:
apache2_enable=”YES”apache2_flags=”-DSSL”
Ubah permission file start up script menjadi:
$ sudo chmod 555 /usr/local/etc/rc.d/apache.sh
Jalankan file tersebut untuk mengaktifkan daemon httpd:
$ sudo /usr/local/etc/rc.d/apache.sh start
Periksa apakah daemon httpd sudah aktif dengan command ps ax:
$ ps ax grep httpd
33549 ?? Ss 0:12.88 /usr/local/apache2/bin/httpd -DSSL33550 ?? I 0:00.43 /usr/local/apache2/bin/httpd -DSSL33551 ?? I 0:00.40 /usr/local/apache2/bin/httpd -DSSL33552 ?? I 0:00.32 /usr/local/apache2/bin/httpd -DSSL
Bila output di console Anda sudah seperti di atas, selamat! Anda sudah berhasil menginstall web server pada server Anda.
Thanks To Ari Wahyu
Aplikasi yang dipergunakan dalam artikel ini adalah Apache versi 2.2.3, MySQL versi 5.0.22, OpenSSL versi 0.9.8d, dan PHP versi 5.2.0.
Dari semua aplikasi di atas, hanya Apache dan PHP yang akan diinstall secara manual, sedang MySQL dan OpenSSL diinstall via ports. Jadi yang akan didownload secara manual hanya Apache dan PHP.
Apache versi terakhir dapat didownload di http://apache.the.net.id/httpd/httpd-2.2.3.tar.bz2. Versi terakhir Apache saat artikel ini ditulis adalah versi 2.2.3. Dan versi PHP terakhir saat ini adalah versi 5.2.0. PHP dapat didownload di http://id2.php.net/get/php-5.2.0.tar.bz2/from/a/mirror.
2. Instalasi
2.1. Install MySQL
Sebelum menginstall Apache dan PHP, yang harus diinstall terlebih dahulu adalah MySQL dan OpenSSL. Untuk menginstalasi kedua aplikasi ini di FreeBSD cukup mudah melalui ports.
$ cd /usr/ports/database/mysql51-server$ sudo make install$ sudo portupgrade -rR mysql51-server
Command terakhir adalah untuk mengupgrade versi MySQL ke versi terbaru.
Untuk mengaktifkan MySQL saat booting, buka file /etc/rc.conf dan tambahkan baris:
mysql_enable = “YES”
Copykan file konfigurasi MySQL:
$ sudo cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf$ sudo chgrp mysql /var/db/mysql/my.cnf
Kemudian jalankan command berikut untuk mengaktifkan daemon MySQL.
$ sudo /usr/local/etc/rc.d/mysql-server start
Bila berhasil, seharusnya Anda akan melihat baris berikut saat menjalankan command ps ax grep mysql:
678 p0- I 0:00.01 /bin/sh /usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysql/my.cnf –user=mysql –datadir=/var/db/mysql701 p0- S 383:04.45 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf –basedir=/usr/local –datadir=/var/db/mysql
Selanjutnya buat password untuk MySQL root user:
$ sudo mysqladmin -u root password ‘password-root-mysql’
Coba masuk ke MySQL console dengan password root tersebut.
$ mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 603704 to server version: 5.0.22
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> \qBye
2.2. Install OpenSSL
Langkah selanjutnya adalah menginstalasi OpenSSL, cara menginstalasi OpenSSL dalam hal ini menggunakan ports juga.
$ cd /usr/ports/security/openssl$ sudo make install clean
Buat direktori untuk menempatkan certificate SSL:
$ sudo mkdir -p /usr/local/openssl/{certs,private}
Kemudian generate private key 1024-bit:
$ cd /usr/local/openssl$ sudo /usr/local/bin/openssl genrsa -out private/namadomain.com.key 1024
Ubah permission untuk direktori private menjadi:
$ sudo chown -R root:wheel private$ sudo chmod -R 600 private$ sudo chmod u+X private
Generate Certificate Signing Request (CSR) File:
$ /usr/local/bin/openssl req -new -key private/namadomain.com.key -out certs/namadomain.com.csr
Country Name (2 letter code) [GB]: IDState or Province Name (full name) [Some-State]: PropinsiLocality Name (eg, city) []: KotaOrganization Name (eg, company) [Internet Widgits Pty Ltd]: PT. Nama UsahaOrganizational Unit Name (eg, section) []: Bidang Usaha PerusahaanCommon Name (eg, your name or your server’s hostname) []: namadomain.comEmail Address []: postmaster@namadomain.com
Please enter the following ‘extra’ attributesto be sent with your certificate requestA challenge password []: masukkanpasswordAn optional company name []:
Kemudian buat Certificate Signed (CRT) file:
$ sudo /usr/local/bin/openssl x509 -req -days 365 -in certs/namadomain.com.csr -out certs/namadomain.com.crt -signkey private/namadomain.com.key
Certificate yang dibuat itu nantinya akan digunakan bila webserver support SSL.
2.3. Install Apache
Saya asumsikan, source Apache hasil download Anda disimpan di /home/users.
$ cd /home/users$ tar -jxvf httpd-2.2.3.tar.bz2$ cd httpd-2.2.3$ ./configure \–prefix=/usr/local/apache2 \–enable-rewrite \–enable-dav \–enable-ssl \–with-ssl=/usr/local \–enable-vhost-alias \–with-included-apr$ make$ sudo make install
Keterangan dari masing-masing opsi di atas adalah:
–prefix=[DIR]: Menginstall aplikasi ke target direktori yang ditentukan.–enable-rewrite: Mengaktifkan rule based URL manipulation melalui module mod_rewrite.–enable-dav: Mengaktifkan protocol WebDAV melalui module mod_dav. Dengan protocol WebDAV ini memungkinkan membuat, memindah, menyalin, dan menghapus resource pada sebuah web server.–enable-ssl: Mengaktifkan module SSL/TLS.–with-ssl=[DIR]: Di mana library SSL/TLS diinstall.–enable-vhost-alias: Support dengan banyak virtual host.–with-included-apr: Install apr. APR atau Apache Portable Runtime pada Apache 2.2.x versi merupakan source yang sudah menyatu dengan Apache Source.
2.4. Install PHP
Sebelum Anda menginstalasi PHP, saya sarankan untuk menginstall aplikasi-aplikasi via ports yang diperlukan (recommended) PHP saat instalasinya. Aplikasi-aplikasi tersebut adalah:
- mcrypt (/usr/ports/security/mcrypt) dan libmcrypt (/usr/ports/security/libmcrypt)- db4 (/usr/ports/databases/db4) dan gdbm (/usr/ports/databases/gdbm)- gd (/usr/ports/graphics/gd)- libxml2 (/usr/ports/textproc/libxml2)
Saya asumsikan pula, source PHP yang Anda download disimpan di /home/users.
$ cd /home/users$ tar -jxvf php-5.2.0.tar.bz2$ cd php-5.2.0$ ./configure \–with-apxs2=/usr/local/apache2/bin/apxs \–with-mysql=/usr/local \–with-openssl=/usr/local \–with-config-file-path=/usr/local/apache2/conf \–with-png-dir=/usr/local/lib \–with-gettext=/usr/local/lib \–with-gd \–with-zlib \–with-xml \–with-mcrypt=/usr/local/lib \–enable-mbstring=all \–disable-short-tags$ make$ make install
Keterangan dari masing-masing opsi di atas adalah:
–with-apxs2[=FILE]: Menyertakan shared Apache 2.0 Handler module.–with-mysql[=DIR]: Menyertakan dukungan MySQL. DIR adalah di mana binary MySQL diinstall.–with-openssl[=DIR]: Menyertakan dukungan OpenSSL.–with-config-file-path=PATH: Di mana file php.ini akan diletakkan.–with-png-dir[=DIR]: Menyertakan dukungan format file PNG.–with-gettext[=DIR]: Menyertakan dukungan GNU gettext.–with-gd[=DIR]: Menyertakan dukungan GD.–with-zlib[=DIR]: Menyertakan dukungan zlib.–with-libxml-dir[=DIR]: Menyertakan dukungan XML.–with-mcrypt[=DIR]: Menyertakan dukungan mcrypt atau Multi-cipher cryptographic library.–enable-mbstring: Mengaktifkan dukungan multibyte string.–disable-short-tags: Nonaktifkan penggunaan tag pendek Edit file /usr/local/apache2/conf/php.ini dan sesuaikan dengan kebutuhan Anda. Pada dasarnya default file konfigurasi ini sudah cukup baik.
Karena PHP diinstall sebagai module pada Apache, kita perlu mengubah kepemilikan direktori PHP yang hanya akan mengijinkan akses kepada user root dan www saja.
$ sudo chown -R root:www /usr/local/lib/php$ sudo chmod -R g-w,o-rwx /usr/local/lib/php
Edit file /usr/local/apache2/conf/httpd.conf dan ubah baris-baris berikut menjadi:
User wwwGroup www
ServerAdmin hostmaster@namadomain.comServerName www.namadomain.com:80DirectoryIndex index.html index.php
TypesConfig conf/mime.typesAddType application/x-compress .ZAddType application/x-gzip .gz .tgzAddType application/x-httpd-php .phpAddHandler cgi-script .cgi
Aktifkan juga baris-baris berikut dengan menghilangkan tanda # di awal barisnya:
Include conf/extra/httpd-autoindex.confInclude conf/extra/httpd-userdir.confInclude conf/extra/httpd-vhosts.confInclude conf/extra/httpd-dav.confInclude conf/extra/httpd-default.confInclude conf/extra/httpd-ssl.conf
Selanjutnya ubah permission direktori Apache:
$ cd /usr/local
Ubah kepemilikan direktori apache2 ke user root:wheel
$ sudo chown -R root:wheel apache2
Ubah permission pada direktori apache2. Karena direktori ini kepemilikannya oleh root:wheel dan supaya bisa diakses oleh group www, kita ijinkan group www ini membaca dan mengeksekusi file-file di bawahnya.
$ sudo chmod 755 apache2
Selanjutnya pada direktori apache2 ini hanya akan mengijinkan user root saja untuk dapat membaca dan menulisinya dengan mengubah permission menjadi:
$ sudo chmod -R 600 apache2/*
Hanya user root saja yang dapat mengakses seluruh direktori yang berada di bawah direktori apache2:
$ sudo chmod -R u+X apache2$ cd apache2
Ubah kepemilikan direktori binary Apache ke user root:
$ sudo chmod -R u+x bin
Direktori cgi-bin juga berisi file-file binari. Hanya mengijinkan user root dan group www saja yang bisa mengaksesnya.
$ sudo chgrp -R www cgi-bin$ sudo chmod -R u+x,g+x cgi-bin
Web server akan membaca direktori icons, maka ubah pula kepemilikannya agar bisa dibaca oleh group www.
$ sudo chgrp -R www icons$ sudo chmod -R g+rX icons
Ubah juga permission direktori logs:
$ sudo chgrp -R www logs$ sudo chmod g+wX logs
Terakhir ubah kepemilikan direktori htdocs agar bisa dibaca oleh publik. Direktori ini nanti merupakan tempat menyimpan file-file web yang akan ditampilkan pada browser. Akses penulisan ke direktori ini hanya dibatasi kepada user root saja.
$ sudo chgrp -R www htdocs$ sudo chmod -R g+rX htdocs
Karena menginstall Apache dari source file. Kita harus membuat sendiri startup script-nya agar dapat dieksekusi oleh server pada saat booting. Start up script diletakkan di direktori /usr/local/etc/rc.d. Startup script dapat didownload di sini: Apache-2 FreeBSD Startup Script
Kemudian tambahkan dua baris berikut pada file /etc/rc.conf:
apache2_enable=”YES”apache2_flags=”-DSSL”
Ubah permission file start up script menjadi:
$ sudo chmod 555 /usr/local/etc/rc.d/apache.sh
Jalankan file tersebut untuk mengaktifkan daemon httpd:
$ sudo /usr/local/etc/rc.d/apache.sh start
Periksa apakah daemon httpd sudah aktif dengan command ps ax:
$ ps ax grep httpd
33549 ?? Ss 0:12.88 /usr/local/apache2/bin/httpd -DSSL33550 ?? I 0:00.43 /usr/local/apache2/bin/httpd -DSSL33551 ?? I 0:00.40 /usr/local/apache2/bin/httpd -DSSL33552 ?? I 0:00.32 /usr/local/apache2/bin/httpd -DSSL
Bila output di console Anda sudah seperti di atas, selamat! Anda sudah berhasil menginstall web server pada server Anda.
Thanks To Ari Wahyu
Senin, 07 September 2009
Konsep TCP/IP
Dalam konsep komunikasi data suatu jaringan komputer, ada mekanisme pengiriman data dari komputer sumber ke komputer tujuan dimana proses pengiriman paket data tersebut sampai dengan benar ke komputer yang dituju. Tentunya dalam proses pengiriman yang terjadi tidak semudah yang dipikirkan. Alasan pertama, komputer tujuan berada jauh dari komputer sumber sehingga paket data yang dikirimkan bisa saja hilang atau rusak di tengah jalan. Alasan lainnya, mungkin komputer tujuan sedang menunggu/mengirimkan paket data dari/ke komputer yang lain. Tentunya paket data yang akan dikirimkan diharapkan sampai dengan tepat tanpa terjadi kerusakan. Untuk mengatur mekanisme komunikasi data tersebut dibutuhkan pengaturan proses pengiriman data yang dikenal sebagai protocol. Protokol di sini adalah sebuah perangkat lunak yang melekat pada setiap sistem operasi tertentu.
TCP/IP (singkatan dari “Transmission Control Protocol”) adalah sekumpulan protokol yang didesain untuk melakukan fungsi-fungsi komunikasi data pada jaringan komputer. TCP/IP terdiri atas sekumpulan protokol yang masing-masing bertanggung jawab atas bagian-bagian tertentu dari komunikasi data. Kesimpulannya, TCP/IP inilah yang memungkinkan kumpulan komputer untuk berkomunikasi dan bertukar data didalam suatu jaringan.
TCP/IP dapat diterapkan dengan mudah di setiap jenis komputer dan inteface jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik terhadap satu komputer atau peralatan jaringan tertentu. Sekumpulan protokol TCP/IP ini dimodelkan dengan empat layer TCP/IP, sebagaimana terlihat pada gambar dibawah ini.
pengenalantcp-1
Gambar di atas mengambar model TCP/IP terdiri atas empat lapis kumpulan protokol yang bertingkat. Keempat lapisan layer tersebut adalah :
* Lapisan Network
Lapisan Network bertanggung jawab mengirim dan menerima data ke dan dari media fisik. Media fisiknya dapat berupa kabel, serat optik atau gelombang radio. Karena tugasnya ini, protokol pada layer ini harus mampu menterjemahkan sinyal listrik menjadi data digital yang di mengerti oleh komputer, yang berasal dari peralatan lain yang sejenis.
* Lapisan Internet
Lapisan Internet bertanggung jawab dalam proses pengiriman paket ke alamat yang tepat. Pada layer ini terdapat tiga macam protokol, yaitu IP, ARP, dan ICMP. IP (Internet Protocol) berfungsi untuk menyampaikan paket data ke alamat yang tepat. ARP (Address Resulotion Protocol) ialah protokol yang digunakan untuk menemukan alamat hardaware dari host/komputer yang terletak pada network yang sama. Sedangkan ICMP (Internet Control Massage Protocol) ialah protokol yang digunakan untuk mengirimkan pesan dan melaporkan kegagalan pengiriman data.
* Lapisan Transport
Layer Transport, berisi protokol yang bertanggung jawab untuk mengadakan komunikasi antara dua host/komputer. Pada lapisan Transport menggunakan Acknowledgement positif dan Acknowledgement negative pada aliran datanya. Acknowlegment positif akan memberitahukan pesan apabila data yang di transferkan telah sampai sedangkan Acknowledgement negative jika paket yang ditransfer tidak sampai ke tujuan maka akan terjadi pengiriman ulang. Kedua protokol tersebut ialah TCP (Transmission Control Protokol) dan UDP (User Datagram Protocol).
* Lapisan Aplikasi
Layer teratas adalah Aplication Layer. Pada layer inilah terletak semua aplikasi yang menggunakan protokol TCP/IP misalnya http, ftp, telnet, smpt dan lain sebagainya.
Pengalamatan IP
IP address digunakan untuk mengidentifikasi interface jaringan pada host dari suatu komputer. Dengan adanya IP address masing-masing host dapat terhubung dan saling bertukar informasi melalaui media transmisi kabel seperti UTP, koaksil atau fiber optic. Sebagai contoh sederhana, jika sebuah surat akan dikirimkan/ ditujukan ke orang lain maka surat tersebut harus dilengkapi dengan alamat lengkap si penerima. Tentu juga alamat si pengirim perlu dicantumkan untuk memudahkan penerima dari mana datangnya surat tersebut. Jika alamat si penerima tidak lengkap misalnya tidak ada nomor rumah, tidak di cantumkan nama penerima maka surat tersebut dipastikan tidak akan sampai.
IP address adalah sekelompok bilangan biner 32 bit yang dibagi menjadi 4 bagian yang masing-masing bagian itu terdiri dari 8 bit, angka pada masing-masing bit tersebut adalah angka 1 dan 0. misalnya : 11000111. Nilai paling besar dari biner 8 bit adalah 255, angka 255 ini dihitung dari bilangan biner 2 berpangkat.
Misalnya :
11111111 = 27 + 26 + 25 + 24 + 23 + 22 + 21 + 20
= 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= 255
Dengan demikian IP address yang terdiri dari 4 bagian bilangan 8 bit maka nilai terbesar IP address tersebut adalah
11111111.11111111.11111111.11111111 atau 255.255.255.255.255
Untuk memudahkan kita dalam membaca dan mengingat suatu alamat IP maka umumnya penamaan yang digunakan adalah berdasarkan bilangan desimal. IP address dibagi menjadi kelas-kelas yang masing-masing mempunyai kapasitas jumlah IP yang berbeda-beda. IP address terdiri dari dua bagian yaitu bagian network ID dan host ID. Network ID menunjukkan ID alamat jaringan tempat host-host berada sedangkan host ID adalah bagian yang menunjukkan host itu berada. Sederhananya, Network ID seperti nama jalan sedangkan Host ID adalah nomor rumah di jalan tersebut.
Kelas-kelas IP address adalah sebagai berikut :
Kelas A
IP address kelas A terdiri dari 8 bit untuk network ID dan sisanya 24 bit digunakan untuk host ID, sehingga IP address kelas A digunakan untuk jaringan dengan jumlah host sangat besar. Pada bit pertama berikan angka 0 sampai dengan 127.
Karakteristik IP Kelas A
Format : 0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH
Bit Pertama : 0
NetworkID : 8 bit
HostID : 24 bit
Bit Pertama : 0 -127
Jumlah : 126 (untuk 0 dan 127 dicadangkan)
Range IP : 1.x.x.x – 126.x.x.x
Jumlah IP : 16.777.214
Misalnya IP address 120.31.45.18 maka
Network ID = 120
HostID = 31.45.18
Jadi IP di atas mempunyai host dengan nomor 31.45.18 pada jaringan 120
Kelas B
IP address kelas B terdiri dari 16 bit untuk network ID dan sisanya 16 bit digunakan untuk host ID, sehingga IP address kelas B digunakan untuk jaringan dengan jumlah host tidak terlalu besar. Pada 2 bit pertama berikan angka 10 sehingga bit awal IP tersebut mulai dari 128 – 191.
Karakteristik IP Kelas B
Format : 10NNNNNN..NNNNNNNN.HHHHHHHH.HHHHHHHH
Bit Pertama : 10
NetworkID : 16 bit
HostID : 16 bit
Bit Pertama : 128 -191
Jumlah : 16.384
Range IP : 128.1.x.x – 191.155.x.x
Jumlah IP : 65.532
Misalnya IP address 150.70.45.18 maka
Network ID = 150.70
HostID = 60.56
Jadi IP di atas mempunyai host dengan nomor 60.56 pada jaringan 150.70
Kelas C
IP address kelas C terdiri dari 24 bit untuk network ID dan sisanya 8 bit digunakan untuk host ID, sehingga IP address kelas C digunakan untuk jaringan untuk ukuran kecil. Kelas C biasanya digunakan untuk jaringan Local Area Network atau LAN. Pada 3 bit pertama berikan angka 110 sehingga bit awal IP tersebut mulai dari 192 – 223.
Karakteristik IP Kelas C
Format : 110NNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH
Bit Pertama : 110
NetworkID : 24 bit
HostID : 8 bit
Bit Pertama : 192 - 223
Jumlah : 16.384
Range IP : 192.0.0.x.x – 223.255.255.x.x
Jumlah IP : 254 IP
Misalnya IP address 192.168.1.1 maka
Network ID = 192.168.1
HostID = 1
Jadi IP di atas mempunyai host dengan nomor 1 pada jaringan 192.168.1
Kelas IP address lainnya adalah D dan E, namum kelas IP D dan E tersebut tidak digunakan untuk alokasi IP secara normal namum digunakan untuk IP multicasting dan untuk experimental.
Prinsip Kerja TCP
TCP mempunyai prinsip kerja seperti “virtual circuit” pada jaringan telepon. TCP lebih mementingkan tata-cara dan keandalan dalam pengiriman data antara dua komputer dalam jaringan. TCP tidak peduli dengan apa-apa yang dikerjakan oleh IP, yang penting adalah hubungan komunikasi antara dua komputer berjalan dengan baik. Dalam hal ini, TCP mengatur bagaimana cara membuka hubungan komunikasi, jenis aplikasi apa yang akan dilakukan dalam komunikasi tersebut (misalnya mengirim e-mail, transfer file, dsb.) Di samping itu, juga mendeteksi dan mengoreksi jika ada kesalahan data. TCP mengatur seluruh proses koneksi antara satu komputer dengan komputer yang lain dalam sebuah jaringan komputer.
Berbeda dengan IP yang mengandalkan mekanisme connectionless pada TCP mekanisme hubungan adalah connection oriented. Dalam hal ini, hubungan secara logik akan dibangun oleh TCP antara satu komputer dengan komputer yang lain. Dalam waktu yang ditentukan komputer yang sedang berhubungan harus mengirimkan data atau acknowledge agar hubungan tetap berlangsung. Jika hal ini tidak sanggup dilakukan maka dapat diasumsikan bahwa komputer yang sedang berhubungan dengan kita mengalami gangguan dan hubungan secara logik dapat diputus.
Hal yang cukup penting untuk dipahami pada TCP adalah port number. Port number menentukan servis yang dilakukan oleh program aplikasi diatas TCP. Nomor-nomor ini telah ditentukan oleh Network Information Center dalam Request For Comment (RFC) 1010 [10]. Sebagai contoh untuk aplikasi File Transfer Protokol (FTP) diatas transport layer TCP digunakan port number 20 dan masih banyak lagi.
Prinsip kerja dari TCP berdasarkan prinsip client-server. Dimana server adalah program pada komputer yang secara pasif akan mendengarkan (listen) port number yang telah ditentukan pada TCP. Sedang client adalah program yang secara aktif akan membuka hubungan TCP ke komputer server untuk meminta servis yang dibutuhkan.
Awalnya suatu paket dengan SYN-flag dikirim ke IP tujuan, tujuan akan memberikan respon dengan suatu ACK(SYN) flag atau suatu paket dengan RST-flag. SYN singkatan dari SYN-(synchronisation), yang digunakan untuk ‘memberitahukan’ komputer tujuan suatu permintaan melakukan koneksi, kalau diterima, maka permintaan tersebut akan dijawab dengan suatu paket ACK(SYN) flag. ACK singkatan dari ACK-(Acknowledgement). Setelah menerima paket dengan ACK(SYN) flag, komputer mengirim kembali suatu ACK memberitahukan host lain bahwa koneksi telah dibuat. Hal ini kita sebut sebagai “Three-Way-Handshake”. Jika koneksi telah dibuat dan salah satu host ingin melakukan disconnect, akan dikirim suatu paket dengan FIN-flag diaktifkan. (FIN singkatan dari FINish). Tabel ini akan membuat hal ini lebih jelas:
pengenalantcp-2
TCP/IP (singkatan dari “Transmission Control Protocol”) adalah sekumpulan protokol yang didesain untuk melakukan fungsi-fungsi komunikasi data pada jaringan komputer. TCP/IP terdiri atas sekumpulan protokol yang masing-masing bertanggung jawab atas bagian-bagian tertentu dari komunikasi data. Kesimpulannya, TCP/IP inilah yang memungkinkan kumpulan komputer untuk berkomunikasi dan bertukar data didalam suatu jaringan.
TCP/IP dapat diterapkan dengan mudah di setiap jenis komputer dan inteface jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik terhadap satu komputer atau peralatan jaringan tertentu. Sekumpulan protokol TCP/IP ini dimodelkan dengan empat layer TCP/IP, sebagaimana terlihat pada gambar dibawah ini.
pengenalantcp-1
Gambar di atas mengambar model TCP/IP terdiri atas empat lapis kumpulan protokol yang bertingkat. Keempat lapisan layer tersebut adalah :
* Lapisan Network
Lapisan Network bertanggung jawab mengirim dan menerima data ke dan dari media fisik. Media fisiknya dapat berupa kabel, serat optik atau gelombang radio. Karena tugasnya ini, protokol pada layer ini harus mampu menterjemahkan sinyal listrik menjadi data digital yang di mengerti oleh komputer, yang berasal dari peralatan lain yang sejenis.
* Lapisan Internet
Lapisan Internet bertanggung jawab dalam proses pengiriman paket ke alamat yang tepat. Pada layer ini terdapat tiga macam protokol, yaitu IP, ARP, dan ICMP. IP (Internet Protocol) berfungsi untuk menyampaikan paket data ke alamat yang tepat. ARP (Address Resulotion Protocol) ialah protokol yang digunakan untuk menemukan alamat hardaware dari host/komputer yang terletak pada network yang sama. Sedangkan ICMP (Internet Control Massage Protocol) ialah protokol yang digunakan untuk mengirimkan pesan dan melaporkan kegagalan pengiriman data.
* Lapisan Transport
Layer Transport, berisi protokol yang bertanggung jawab untuk mengadakan komunikasi antara dua host/komputer. Pada lapisan Transport menggunakan Acknowledgement positif dan Acknowledgement negative pada aliran datanya. Acknowlegment positif akan memberitahukan pesan apabila data yang di transferkan telah sampai sedangkan Acknowledgement negative jika paket yang ditransfer tidak sampai ke tujuan maka akan terjadi pengiriman ulang. Kedua protokol tersebut ialah TCP (Transmission Control Protokol) dan UDP (User Datagram Protocol).
* Lapisan Aplikasi
Layer teratas adalah Aplication Layer. Pada layer inilah terletak semua aplikasi yang menggunakan protokol TCP/IP misalnya http, ftp, telnet, smpt dan lain sebagainya.
Pengalamatan IP
IP address digunakan untuk mengidentifikasi interface jaringan pada host dari suatu komputer. Dengan adanya IP address masing-masing host dapat terhubung dan saling bertukar informasi melalaui media transmisi kabel seperti UTP, koaksil atau fiber optic. Sebagai contoh sederhana, jika sebuah surat akan dikirimkan/ ditujukan ke orang lain maka surat tersebut harus dilengkapi dengan alamat lengkap si penerima. Tentu juga alamat si pengirim perlu dicantumkan untuk memudahkan penerima dari mana datangnya surat tersebut. Jika alamat si penerima tidak lengkap misalnya tidak ada nomor rumah, tidak di cantumkan nama penerima maka surat tersebut dipastikan tidak akan sampai.
IP address adalah sekelompok bilangan biner 32 bit yang dibagi menjadi 4 bagian yang masing-masing bagian itu terdiri dari 8 bit, angka pada masing-masing bit tersebut adalah angka 1 dan 0. misalnya : 11000111. Nilai paling besar dari biner 8 bit adalah 255, angka 255 ini dihitung dari bilangan biner 2 berpangkat.
Misalnya :
11111111 = 27 + 26 + 25 + 24 + 23 + 22 + 21 + 20
= 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= 255
Dengan demikian IP address yang terdiri dari 4 bagian bilangan 8 bit maka nilai terbesar IP address tersebut adalah
11111111.11111111.11111111.11111111 atau 255.255.255.255.255
Untuk memudahkan kita dalam membaca dan mengingat suatu alamat IP maka umumnya penamaan yang digunakan adalah berdasarkan bilangan desimal. IP address dibagi menjadi kelas-kelas yang masing-masing mempunyai kapasitas jumlah IP yang berbeda-beda. IP address terdiri dari dua bagian yaitu bagian network ID dan host ID. Network ID menunjukkan ID alamat jaringan tempat host-host berada sedangkan host ID adalah bagian yang menunjukkan host itu berada. Sederhananya, Network ID seperti nama jalan sedangkan Host ID adalah nomor rumah di jalan tersebut.
Kelas-kelas IP address adalah sebagai berikut :
Kelas A
IP address kelas A terdiri dari 8 bit untuk network ID dan sisanya 24 bit digunakan untuk host ID, sehingga IP address kelas A digunakan untuk jaringan dengan jumlah host sangat besar. Pada bit pertama berikan angka 0 sampai dengan 127.
Karakteristik IP Kelas A
Format : 0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH
Bit Pertama : 0
NetworkID : 8 bit
HostID : 24 bit
Bit Pertama : 0 -127
Jumlah : 126 (untuk 0 dan 127 dicadangkan)
Range IP : 1.x.x.x – 126.x.x.x
Jumlah IP : 16.777.214
Misalnya IP address 120.31.45.18 maka
Network ID = 120
HostID = 31.45.18
Jadi IP di atas mempunyai host dengan nomor 31.45.18 pada jaringan 120
Kelas B
IP address kelas B terdiri dari 16 bit untuk network ID dan sisanya 16 bit digunakan untuk host ID, sehingga IP address kelas B digunakan untuk jaringan dengan jumlah host tidak terlalu besar. Pada 2 bit pertama berikan angka 10 sehingga bit awal IP tersebut mulai dari 128 – 191.
Karakteristik IP Kelas B
Format : 10NNNNNN..NNNNNNNN.HHHHHHHH.HHHHHHHH
Bit Pertama : 10
NetworkID : 16 bit
HostID : 16 bit
Bit Pertama : 128 -191
Jumlah : 16.384
Range IP : 128.1.x.x – 191.155.x.x
Jumlah IP : 65.532
Misalnya IP address 150.70.45.18 maka
Network ID = 150.70
HostID = 60.56
Jadi IP di atas mempunyai host dengan nomor 60.56 pada jaringan 150.70
Kelas C
IP address kelas C terdiri dari 24 bit untuk network ID dan sisanya 8 bit digunakan untuk host ID, sehingga IP address kelas C digunakan untuk jaringan untuk ukuran kecil. Kelas C biasanya digunakan untuk jaringan Local Area Network atau LAN. Pada 3 bit pertama berikan angka 110 sehingga bit awal IP tersebut mulai dari 192 – 223.
Karakteristik IP Kelas C
Format : 110NNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH
Bit Pertama : 110
NetworkID : 24 bit
HostID : 8 bit
Bit Pertama : 192 - 223
Jumlah : 16.384
Range IP : 192.0.0.x.x – 223.255.255.x.x
Jumlah IP : 254 IP
Misalnya IP address 192.168.1.1 maka
Network ID = 192.168.1
HostID = 1
Jadi IP di atas mempunyai host dengan nomor 1 pada jaringan 192.168.1
Kelas IP address lainnya adalah D dan E, namum kelas IP D dan E tersebut tidak digunakan untuk alokasi IP secara normal namum digunakan untuk IP multicasting dan untuk experimental.
Prinsip Kerja TCP
TCP mempunyai prinsip kerja seperti “virtual circuit” pada jaringan telepon. TCP lebih mementingkan tata-cara dan keandalan dalam pengiriman data antara dua komputer dalam jaringan. TCP tidak peduli dengan apa-apa yang dikerjakan oleh IP, yang penting adalah hubungan komunikasi antara dua komputer berjalan dengan baik. Dalam hal ini, TCP mengatur bagaimana cara membuka hubungan komunikasi, jenis aplikasi apa yang akan dilakukan dalam komunikasi tersebut (misalnya mengirim e-mail, transfer file, dsb.) Di samping itu, juga mendeteksi dan mengoreksi jika ada kesalahan data. TCP mengatur seluruh proses koneksi antara satu komputer dengan komputer yang lain dalam sebuah jaringan komputer.
Berbeda dengan IP yang mengandalkan mekanisme connectionless pada TCP mekanisme hubungan adalah connection oriented. Dalam hal ini, hubungan secara logik akan dibangun oleh TCP antara satu komputer dengan komputer yang lain. Dalam waktu yang ditentukan komputer yang sedang berhubungan harus mengirimkan data atau acknowledge agar hubungan tetap berlangsung. Jika hal ini tidak sanggup dilakukan maka dapat diasumsikan bahwa komputer yang sedang berhubungan dengan kita mengalami gangguan dan hubungan secara logik dapat diputus.
Hal yang cukup penting untuk dipahami pada TCP adalah port number. Port number menentukan servis yang dilakukan oleh program aplikasi diatas TCP. Nomor-nomor ini telah ditentukan oleh Network Information Center dalam Request For Comment (RFC) 1010 [10]. Sebagai contoh untuk aplikasi File Transfer Protokol (FTP) diatas transport layer TCP digunakan port number 20 dan masih banyak lagi.
Prinsip kerja dari TCP berdasarkan prinsip client-server. Dimana server adalah program pada komputer yang secara pasif akan mendengarkan (listen) port number yang telah ditentukan pada TCP. Sedang client adalah program yang secara aktif akan membuka hubungan TCP ke komputer server untuk meminta servis yang dibutuhkan.
Awalnya suatu paket dengan SYN-flag dikirim ke IP tujuan, tujuan akan memberikan respon dengan suatu ACK(SYN) flag atau suatu paket dengan RST-flag. SYN singkatan dari SYN-(synchronisation), yang digunakan untuk ‘memberitahukan’ komputer tujuan suatu permintaan melakukan koneksi, kalau diterima, maka permintaan tersebut akan dijawab dengan suatu paket ACK(SYN) flag. ACK singkatan dari ACK-(Acknowledgement). Setelah menerima paket dengan ACK(SYN) flag, komputer mengirim kembali suatu ACK memberitahukan host lain bahwa koneksi telah dibuat. Hal ini kita sebut sebagai “Three-Way-Handshake”. Jika koneksi telah dibuat dan salah satu host ingin melakukan disconnect, akan dikirim suatu paket dengan FIN-flag diaktifkan. (FIN singkatan dari FINish). Tabel ini akan membuat hal ini lebih jelas:
pengenalantcp-2
sumber Suwito
Ono. W. Purbo
Konsep Subnetting
Subnetting merupakan suatu hal yang wajib dikuasai oleh seorang Network Administrator. Administrator-administrator yang mengelola jaringan besar sering kali merasa perlu membagi-bagi jaringan menjadi bagian yang lebih kecil lagi yang disebut sub networks. Saya akan menjelaskan mengenai konsep subnetting ini dengan menggunakan ilustrasi dan analogi yang ada disekitar kita.
Apa sebenarnya yang disebut dengan subnetting dan kenapa harus dilakukan? Pertanyaan ini bisa dijawab dengan analogi sebuah jalan. Jalan bernama RE Martadinata terdiri dari beberapa rumah bernomor 01-08, dengan rumah nomor 08 adalah rumah Ketua RT yang memiliki tugas mengumumkan informasi apapun kepada seluruh rumah di wilayah Jl. RE Martadinata.
konsepsubnetting-01
Dikarenakan oleh suatu keadaan dimana rumah di wilayah itu makin banyak, tentu kemungkinan menimbulkan keruwetan dan kemacetan. Karena itulah kemudian diadakan pengaturan lagi, dibuat gang-gang, rumah yang masuk ke gang diberi nomor rumah baru, masing-masing gang ada Ketua RTnya sendiri-sendiri. Sehingga ini akan memecahkan kemacetan, efiesiensi dan optimalisasi transportasi, serta setiap gang memiliki previledge sendiri-sendiri dalam mengelola wilayahnya. Jadilah gambar wilayah baru seperti di bawah:
konsepsubnetting-02
Inilah sebenarnya yang dimaksud dengan konsep subnetting. Dimana tujuannya ingin mempermudah pengelolaan, misalnya suatu kantor ingin membagi kerja menjadi 4 divisi dengan masing-masing divisi memiliki 10 komputer (host). Tujuan lainnya juga untuk optimalisasi dan efisiensi kerja jaringan, karena jalur lalu lintas tidak terpusat di satu network besar, tapi terbagi ke beberapa ruas-ruas gang. Yang pertama analogi Jl. RE Martadinata dengan rumah disekitarnya dapat diterapkan untuk jaringan adalah seperti NETWORK ADDRESS (nama jalan) dan HOST ADDRESS (nomer rumah). Sedangkan Ketua RT diperankan oleh BROADCAST ADDRESS (192.168.1.255), yang bertugas mengirimkan message ke semua host yang ada di network tersebut. Broadcast-broadcast ini secara berkesinambungan dikirim ke semua host dalam sebuah network. Saat traffic broadcast mulai mengonsumsi begitu banyak bandwith tersedia, maka administrator perlu mengambil langkah subnetting untuk mereduksi ukuran broadcast domain tersebut, sehingga diperoleh performansi jaringan yang lebih baik.
konsepsubnetting-03
Masih mengikuti analogi jalan diatas, kita terapkan ke subnetting jaringan adalah seperti gambar di bawah. Gang adalah SUBNET, masing-masing subnet memiliki HOST ADDRESS dan BROADCAST ADDRESS. Sebuah network tunggal dan besar yang dibatasi oleh area geografis dapat menimbulkan berbagai masalah terutama di sisi kecepatan. Dengan mengkoneksikan multi jaringan yang lebih kecil maka diharapkan dapat membuat sistem lebih efisien.
konsepsubnetting-04
Terus apa itu SUBNET MASK? Subnetmask digunakan untuk membaca bagaimana kita membagi jalan dan gang, atau membagi network dan hostnya. Address mana saja yang berfungsi sebagai SUBNET, mana yang HOST dan mana yang BROADCAST. Semua itu bisa kita ketahui dari SUBNET MASKnya. Jl RE Martadinata tanpa gang yang saya tampilkan di awal bisa dipahami sebagai menggunakan SUBNET MASK DEFAULT, atau dengan kata lain bisa disebut juga bahwa Network tersebut tidak memiliki subnet (Jalan tanpa Gang). SUBNET MASK DEFAULT ini untuk masing-masing Class IP Address adalah sbb:
konsepsubnetting-05
Apa sebenarnya yang disebut dengan subnetting dan kenapa harus dilakukan? Pertanyaan ini bisa dijawab dengan analogi sebuah jalan. Jalan bernama RE Martadinata terdiri dari beberapa rumah bernomor 01-08, dengan rumah nomor 08 adalah rumah Ketua RT yang memiliki tugas mengumumkan informasi apapun kepada seluruh rumah di wilayah Jl. RE Martadinata.
konsepsubnetting-01
Dikarenakan oleh suatu keadaan dimana rumah di wilayah itu makin banyak, tentu kemungkinan menimbulkan keruwetan dan kemacetan. Karena itulah kemudian diadakan pengaturan lagi, dibuat gang-gang, rumah yang masuk ke gang diberi nomor rumah baru, masing-masing gang ada Ketua RTnya sendiri-sendiri. Sehingga ini akan memecahkan kemacetan, efiesiensi dan optimalisasi transportasi, serta setiap gang memiliki previledge sendiri-sendiri dalam mengelola wilayahnya. Jadilah gambar wilayah baru seperti di bawah:
konsepsubnetting-02
Inilah sebenarnya yang dimaksud dengan konsep subnetting. Dimana tujuannya ingin mempermudah pengelolaan, misalnya suatu kantor ingin membagi kerja menjadi 4 divisi dengan masing-masing divisi memiliki 10 komputer (host). Tujuan lainnya juga untuk optimalisasi dan efisiensi kerja jaringan, karena jalur lalu lintas tidak terpusat di satu network besar, tapi terbagi ke beberapa ruas-ruas gang. Yang pertama analogi Jl. RE Martadinata dengan rumah disekitarnya dapat diterapkan untuk jaringan adalah seperti NETWORK ADDRESS (nama jalan) dan HOST ADDRESS (nomer rumah). Sedangkan Ketua RT diperankan oleh BROADCAST ADDRESS (192.168.1.255), yang bertugas mengirimkan message ke semua host yang ada di network tersebut. Broadcast-broadcast ini secara berkesinambungan dikirim ke semua host dalam sebuah network. Saat traffic broadcast mulai mengonsumsi begitu banyak bandwith tersedia, maka administrator perlu mengambil langkah subnetting untuk mereduksi ukuran broadcast domain tersebut, sehingga diperoleh performansi jaringan yang lebih baik.
konsepsubnetting-03
Masih mengikuti analogi jalan diatas, kita terapkan ke subnetting jaringan adalah seperti gambar di bawah. Gang adalah SUBNET, masing-masing subnet memiliki HOST ADDRESS dan BROADCAST ADDRESS. Sebuah network tunggal dan besar yang dibatasi oleh area geografis dapat menimbulkan berbagai masalah terutama di sisi kecepatan. Dengan mengkoneksikan multi jaringan yang lebih kecil maka diharapkan dapat membuat sistem lebih efisien.
konsepsubnetting-04
Terus apa itu SUBNET MASK? Subnetmask digunakan untuk membaca bagaimana kita membagi jalan dan gang, atau membagi network dan hostnya. Address mana saja yang berfungsi sebagai SUBNET, mana yang HOST dan mana yang BROADCAST. Semua itu bisa kita ketahui dari SUBNET MASKnya. Jl RE Martadinata tanpa gang yang saya tampilkan di awal bisa dipahami sebagai menggunakan SUBNET MASK DEFAULT, atau dengan kata lain bisa disebut juga bahwa Network tersebut tidak memiliki subnet (Jalan tanpa Gang). SUBNET MASK DEFAULT ini untuk masing-masing Class IP Address adalah sbb:
konsepsubnetting-05
Thanks To SUwito
Audit System Anda Dengan Lynis
Lynis merupakan tool pada System Unix yang digunakan untuk meng-audit system. Lynis dapat memindai (scan) dan software untuk mendeteksi apakah terdapat masalah security. Disamping keamanan informasi juga akan mencari informasi sistem umum, dan paket terinstal serta kesalahan konfigurasi. Tools ini sangat membantu dalam mengaudit otomatis, software patch management, vulnerability dan malware scanning. Dapat dijalankan tanpa instalasi.
Yang perlu diingat, Lynis bukanlah tools yang akan memperbaiki kesalahan yang terdapat pada system secara otomatis, namun hanya berupa report (laporan-dan memberikan solusi). Tools ini diperuntukkan bagi para security profesional khususnya Network Security Specialist, Penetration Tester, System Auditor dan Network Manager. Dan bagi Anda pemula dan ingin memperdalam ilmu tentang Information System Security, patut mencoba tools ini.
Adapun berbagai contoh pemeriksaan yang dilakukan (sebagian) antara lain:
* Metode authentication yang ada
* Masa expired sertifikasi SSL
* Software yang telah out of date.
* Account user tanpa password
* Kesalahan moderasi file
* Memeriksa firewall yang ada
* dan lain sebagainya.
Untuk lebih lanjut, silahkan mengunjungi situs resminya.
Berikut screenshot Lynis yang dijalankan pada Ubuntu 8.10
lynis
Yang perlu diingat, Lynis bukanlah tools yang akan memperbaiki kesalahan yang terdapat pada system secara otomatis, namun hanya berupa report (laporan-dan memberikan solusi). Tools ini diperuntukkan bagi para security profesional khususnya Network Security Specialist, Penetration Tester, System Auditor dan Network Manager. Dan bagi Anda pemula dan ingin memperdalam ilmu tentang Information System Security, patut mencoba tools ini.
Adapun berbagai contoh pemeriksaan yang dilakukan (sebagian) antara lain:
* Metode authentication yang ada
* Masa expired sertifikasi SSL
* Software yang telah out of date.
* Account user tanpa password
* Kesalahan moderasi file
* Memeriksa firewall yang ada
* dan lain sebagainya.
Untuk lebih lanjut, silahkan mengunjungi situs resminya.
Berikut screenshot Lynis yang dijalankan pada Ubuntu 8.10
lynis
Langganan:
Postingan (Atom)