Selasa, 21 Oktober 2008

The Perfect Server - Ubuntu Hardy Heron (Ubuntu 8.04 LTS Server)

1 Requirements

To install such a system you will need the following:

* the Ubuntu 8.04 LTS server CD, available here: ftp://releases.ubuntu.com/releases/hardy/ubuntu-8.04-server-i386.iso
* a fast internet connection.


2 Preliminary Note

In this tutorial I use the hostname server1.example.com with the IP address 192.168.0.100 and the gateway 192.168.0.1. These settings might differ for you, so you have to replace them where appropriate.


3 The Base System

Insert your Ubuntu install CD into your system and boot from it. Select your language:


Then select Install Ubuntu Server:


Choose your language again (?):



Then select your location:



Choose a keyboard layout (you will be asked to press a few keys, and the installer will try to detect your keyboard layout based on the keys you pressed):



The installer checks the installation CD, your hardware, and configures the network with DHCP if there is a DHCP server in the network:


Click to enlarge




Now you have to partition your hard disk. For simplicity's sake I will create one big partition (with the mount point /) and a little swap partition so I select Guided - use entire disk (of course, the partitioning is totally up to you - if you like, you can create more than just one big partition, and you can also use LVM):



Select the disk that you want to partition:



When you're finished, hit Yes when you're asked Write the changes to disks?:



Afterwards, your new partitions are being created and formatted.

Now the base system is being installed:



Create a user, for example the user Administrator with the user name administrator (don't use the user name admin as it is a reserved name on Ubuntu 8.04):

Click to enlarge



Next the package manager apt gets configured. Leave the HTTP proxy line empty unless you're using a proxy server to connect to the Internet:





We need a DNS, mail, and LAMP server, but nevertheless I don't select any of them now because I like to have full control over what gets installed on my system. We will install the needed packages manually later on. The only item I select here is OpenSSH server so that I can immediately connect to the system with an SSH client such as PuTTY after the installation has finished:



The installation continues:



The GRUB boot loader gets installed:



The base system installation is now finished. Remove the installation CD from the CD drive and hit Continue to reboot the system:
5 Install The SSH Server (Optional)

If you did not install the OpenSSH server during the system installation, you can do it now:

apt-get install ssh openssh-server

From now on you can use an SSH client such as PuTTY and connect from your workstation to your Ubuntu 8.04 LTS server and follow the remaining steps from this tutorial.


6 Install vim-full (Optional)

I'll use vi as my text editor in this tutorial. The default vi program has some strange behaviour on Ubuntu and Debian; to fix this, we install vim-full:

apt-get install vim-full

(You don't have to do this if you use a different text editor such as joe or nano.)


7 Configure The Network

Because the Ubuntu installer has configured our system to get its network settings via DHCP, we have to change that now because a server should have a static IP address. Edit /etc/network/interfaces and adjust it to your needs (in this example setup I will use the IP address 192.168.0.100):

vi /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Then restart your network:

/etc/init.d/networking restart

Then edit /etc/hosts. Make it look like this:

vi /etc/hosts

127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Now run

echo server1.example.com > /etc/hostname
/etc/init.d/hostname.sh start

Afterwards, run

hostname
hostname -f

Both should show server1.example.com now.


8 Edit /etc/apt/sources.list And Update Your Linux Installation

Edit /etc/apt/sources.list. Comment out or remove the installation CD from the file and make sure that the universe and multiverse repositories are enabled. It should look like this:

vi /etc/apt/sources.list

#
# deb cdrom:[Ubuntu-Server 8.04 _Hardy Heron_ - Release i386 (20080423.2)]/ hardy main restricted
#deb cdrom:[Ubuntu-Server 8.04 _Hardy Heron_ - Release i386 (20080423.2)]/ hardy main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://de.archive.ubuntu.com/ubuntu/ hardy universe
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy universe
deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu/ hardy multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy multiverse
deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-updates multiverse
## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://de.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository. This software is not part of Ubuntu, but is
## offered by Canonical and the respective vendors as a service to Ubuntu
## users.
# deb http://archive.canonical.com/ubuntu hardy partner
# deb-src http://archive.canonical.com/ubuntu hardy partner
deb http://security.ubuntu.com/ubuntu hardy-security main restricted
deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted
deb http://security.ubuntu.com/ubuntu hardy-security universe
deb-src http://security.ubuntu.com/ubuntu hardy-security universe
deb http://security.ubuntu.com/ubuntu hardy-security multiverse
deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse

Then run

apt-get update

to update the apt package database and

apt-get upgrade

to install the latest updates (if there are any).


9 Change The Default Shell

/bin/sh is a symlink to /bin/dash, however we need /bin/bash, not /bin/dash. Therefore we do this:

ln -sf /bin/bash /bin/sh

If you don't do this, the ISPConfig installation will fail.


10 Disable AppArmor

AppArmor is a security extension (similar to SELinux) that should provide extended security. In my opinion you don't need it to configure a secure system, and it usually causes more problems than advantages (think of it after you have done a week of trouble-shooting because some service wasn't working as expected, and then you find out that everything was ok, only AppArmor was causing the problem). Therefore I disable it (this is a must if you want to install ISPConfig later on).

We can disable it like this:

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove

Till told me that he also had to do this step (which was not necessary on my installation), so if you want to go sure, do this on your system as well:

apt-get remove apparmor apparmor-utils

11 Install Some Software

Now we install a few packages that are needed later on. Run

apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

(This command must go into one line!)


12 Quota

(If you have chosen a different partitioning scheme than I did, you must adjust this chapter so that quota applies to the partitions where you need it.)

To install quota, run

apt-get install quota

Edit /etc/fstab. Mine looks like this (I added ,usrquota,grpquota to the partition with the mount point /):

vi /etc/fstab

# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
# /dev/sda1
UUID=6af53069-0d51-49be-b275-aeaea8d780c5 / ext3 relatime,errors=remount-ro,usrquota,grpquota 0 1
# /dev/sda5
UUID=d8e1f66c-1442-423e-b442-8ae66eded9d7 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

To enable quota, run these commands:

touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /

quotacheck -avugm
quotaon -avug


13 DNS Server

Run

apt-get install bind9

For security reasons we want to run BIND chrooted so we have to do the following steps:

/etc/init.d/bind9 stop

Edit the file /etc/default/bind9 so that the daemon will run as the unprivileged user bind, chrooted to /var/lib/named. Modify the line: OPTIONS="-u bind" so that it reads OPTIONS="-u bind -t /var/lib/named":

vi /etc/default/bind9

OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

Create the necessary directories under /var/lib:

mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

Then move the config directory from /etc to /var/lib/named/etc:

mv /etc/bind /var/lib/named/etc

Create a symlink to the new config directory from the old location (to avoid problems when bind gets updated in the future):

ln -s /var/lib/named/etc/bind /etc/bind

Make null and random devices, and fix permissions of the directories:

mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind

We need to modify /etc/default/syslogd so that we can still get important messages logged to the system logs. Modify the line: SYSLOGD="" so that it reads: SYSLOGD="-a /var/lib/named/dev/log":

vi /etc/default/syslogd

#
# Top configuration file for syslogd
#

#
# Full documentation of possible arguments are found in the manpage
# syslogd(8).
#

#
# For remote UDP logging use SYSLOGD="-r"
#
SYSLOGD="-a /var/lib/named/dev/log"

Restart the logging daemon:

/etc/init.d/sysklogd restart

Start up BIND, and check /var/log/syslog for errors:

/etc/init.d/bind9 start


14 MySQL

In order to install MySQL, we run

apt-get install mysql-server mysql-client libmysqlclient15-dev

You will be asked to provide a password for the MySQL root user - this password is valid for the user root@localhost as well as root@server1.example.com, so we don't have to specify a MySQL root password manually later on (as was the case with previous Ubuntu versions):

New password for the MySQL "root" user: <-- yourrootsqlpassword Repeat password for the MySQL "root" user: <-- yourrootsqlpassword We want MySQL to listen on all interfaces, not just localhost, therefore we edit /etc/mysql/my.cnf and comment out the line bind-address = 127.0.0.1: vi /etc/mysql/my.cnf [...] # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...] Then we restart MySQL: /etc/init.d/mysql restart Now check that networking is enabled. Run netstat -tap | grep mysql The output should look like this: root@server1:~# netstat -tap | grep mysql tcp 0 0 *:mysql *:* LISTEN 5869/mysqld root@server1:~# 15 Postfix With SMTP-AUTH And TLS In order to install Postfix with SMTP-AUTH and TLS do the following steps: apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail You will be asked two questions. Answer as follows: General type of mail configuration: <-- Internet Site System mail name: <-- server1.example.com Then run dpkg-reconfigure postfix Again, you'll be asked some questions: General type of mail configuration: <-- Internet Site System mail name: <-- server1.example.com Root and postmaster mail recipient: <-- [blank] Other destinations to accept mail for (blank for none): <-- server1.example.com, localhost.example.com, localhost.localdomain, localhost Force synchronous updates on mail queue? <-- No Local networks: <-- 127.0.0.0/8 Use procmail for local delivery? <-- Yes Mailbox size limit (bytes): <-- 0 Local address extension character: <-- + Internet protocols to use: <-- all Next, do this: postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_sasl_authenticated_header = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' postconf -e 'inet_interfaces = all' echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

Afterwards we create the certificates for TLS:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Next we configure Postfix for TLS (make sure that you use the correct hostname for myhostname):

postconf -e 'myhostname = server1.example.com'

postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'

The file /etc/postfix/main.cf should now look like this:

cat /etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Authentication will be done by saslauthd. We have to change a few things to make it work properly. Because Postfix runs chrooted in /var/spool/postfix we have to do the following:

mkdir -p /var/spool/postfix/var/run/saslauthd

Now we have to edit /etc/default/saslauthd in order to activate saslauthd. Set START to yes and change the line OPTIONS="-c -m /var/run/saslauthd" to OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":

vi /etc/default/saslauthd

#
# Settings for saslauthd daemon
# Please read /usr/share/doc/sasl2-bin/README.Debian for details.
#

# Should saslauthd run automatically on startup? (default: no)
START=yes

# Description of this saslauthd instance. Recommended.
# (suggestion: SASL Authentication Daemon)
DESC="SASL Authentication Daemon"

# Short name of this saslauthd instance. Strongly recommended.
# (suggestion: saslauthd)
NAME="saslauthd"

# Which authentication mechanisms should saslauthd use? (default: pam)
#
# Available options in this Debian package:
# getpwent -- use the getpwent() library function
# kerberos5 -- use Kerberos 5
# pam -- use PAM
# rimap -- use a remote IMAP server
# shadow -- use the local shadow password file
# sasldb -- use the local sasldb database file
# ldap -- use LDAP (configuration is in /etc/saslauthd.conf)
#
# Only one option may be used at a time. See the saslauthd man page
# for more information.
#
# Example: MECHANISMS="pam"
MECHANISMS="pam"

# Additional options for this mechanism. (default: none)
# See the saslauthd man page for information about mech-specific options.
MECH_OPTIONS=""

# How many saslauthd processes should we run? (default: 5)
# A value of 0 will fork a new process for each connection.
THREADS=5

# Other options (default: -c -m /var/run/saslauthd)
# Note: You MUST specify the -m option or saslauthd won't run!
#
# See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information.
# See the saslauthd man page for general information about these options.
#
# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
#OPTIONS="-c -m /var/run/saslauthd"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Next add the postfix user to the sasl group (this makes sure that Postfix has the permission to access saslauthd):

adduser postfix sasl

Now restart Postfix and start saslauthd:

/etc/init.d/postfix restart
/etc/init.d/saslauthd start

To see if SMTP-AUTH and TLS work properly now run the following command:

telnet localhost 25

After you have established the connection to your Postfix mail server type

ehlo localhost

If you see the lines

250-STARTTLS

and

250-AUTH LOGIN PLAIN

everything is fine.

The output on my system looks like this:

root@server1:/etc/postfix/ssl# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix (Ubuntu)
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
root@server1:/etc/postfix/ssl#

Type

quit

to return to the system's shell.


16 Courier-IMAP/Courier-POP3

Run this to install Courier-IMAP/Courier-IMAP-SSL (for IMAPs on port 993) and Courier-POP3/Courier-POP3-SSL (for POP3s on port 995):

apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0

You will be asked two questions:

Create directories for web-based administration? <-- No SSL certificate required <-- Ok If you do not want to use ISPConfig, configure Postfix to deliver emails to a user's Maildir*: postconf -e 'home_mailbox = Maildir/' postconf -e 'mailbox_command =' /etc/init.d/postfix restart *Please note: You do not have to do this if you intend to use ISPConfig on your system as ISPConfig does the necessary configuration using procmail recipes. But please go sure to enable Maildir under Management -> Server -> Settings -> EMail in the ISPConfig web interface.

17 Apache/PHP5/Ruby

Now we install Apache:

apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Next we install PHP5 and Ruby (both as Apache modules):

apt-get install libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Next we edit /etc/apache2/mods-available/dir.conf:

vi /etc/apache2/mods-available/dir.conf

and change the DirectoryIndex line:



#DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml



Now we have to enable some Apache modules (SSL, rewrite, suexec, and include):

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Reload the Apache configuration:

/etc/init.d/apache2 force-reload

In the next chapter (17.1) we are going to disable PHP (this is necessary only if you want to install ISPConfig on this server). Unlike PHP, Ruby is disabled by default, therefore we don't have to do it.


17.1 Disable PHP Globally

(If you do not plan to install ISPConfig on this server, please skip this section!)

In ISPConfig you will configure PHP on a per-website basis, i.e. you can specify which website can run PHP scripts and which one cannot. This can only work if PHP is disabled globally because otherwise all websites would be able to run PHP scripts, no matter what you specify in ISPConfig.

To disable PHP globally, we edit /etc/mime.types and comment out the application/x-httpd-php lines:

vi /etc/mime.types

[...]
#application/x-httpd-php phtml pht php
#application/x-httpd-php-source phps
#application/x-httpd-php3 php3
#application/x-httpd-php3-preprocessed php3p
#application/x-httpd-php4 php4
[...]

Edit /etc/apache2/mods-enabled/php5.conf and comment out the following lines:

vi /etc/apache2/mods-enabled/php5.conf


#AddType application/x-httpd-php .php .phtml .php3
#AddType application/x-httpd-php-source .phps


Then restart Apache:

/etc/init.d/apache2 restart


18 Proftpd

In order to install Proftpd, run

apt-get install proftpd ucf

You will be asked a question:

Run proftpd: <-- standalone

For security reasons add the following lines to /etc/proftpd/proftpd.conf (thanks to Reinaldo Carvalho; more information can be found here: http://proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd/proftpd.conf

[...]
DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."
[...]

ISPConfig expects the configuration to be in /etc/proftpd.conf instead of /etc/proftpd/proftpd.conf, therefore we create a symlink (you can skip this command if you don't want to install ISPConfig):

ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf

Then restart Proftpd:

/etc/init.d/proftpd restart

19 Webalizer

To install webalizer, just run

apt-get install webalizer


20 Synchronize the System Clock

It is a good idea to synchronize the system clock with an NTP (network time protocol) server over the internet. Simply run

apt-get install ntp ntpdate

and your system time will always be in sync.


21 Install Some Perl Modules Needed By SpamAssassin (Comes With ISPConfig)

Run

apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl


22 ISPConfig

The configuration of the server is now finished, and if you wish you can now install ISPConfig on it. Please check out the ISPConfig installation manual: http://www.ispconfig.org/manual_installation.htm


22.1 A Note On SuExec

If you want to run CGI scripts under suExec, you should specify /var/www as the home directory for websites created by ISPConfig as Ubuntu's suExec is compiled with /var/www as Doc_Root. Run

/usr/lib/apache2/suexec -V

and the output should look like this:

root@server1:~# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
root@server1:~#

So if you want to use suExec with ISPconfig, don't change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can't change the web root anyway so you'll be able to use suExec in any case).

Senin, 20 Oktober 2008

Installasi Router (Ubuntu) Server

1. Cabut kabel LAN
2. Restart Comp. & masukkan Cd
3. Klik > Install to the Hardisk....

4. - Pemilihan Bahasa > enter ( english )
- Pemilihan Coumtry > enter
- Pemilihan keyboard > enter ( english )
- Pemilihan jenis keyboard >enter ( english )
5. Enter yang paling bawah
6. Prosses scaning...
7. configurasi network > enter ( Eth 0 :.....)
8. Prosses mencari DHCP -> Kosongi (tidak ada) > countinue
9. Pilih Configurasi manualy > enter
- Masukkan IP : 192.168.20. .... > countinue
- Network : 255.255.255.0 > cuontinue
- geteway : 192.168.20.1 > countinue
- name server : 192.168.20.1 > countinue
- host name :(misalny router_smk)> countinue
10. partition mathod :
- Pilih yang Resize jika belum diinstall ubuntu > enter
- pilih manual > enter (jika sudah diinstsll Ubuntu)
#Pilih Primery -> ext3 > enter
#Pilih delet partition > enter
#Pilih freespace > enter > create a new partition > enter
- new partition size : ( terserah/misalnya : 9,6 GB ) > countinue
- type a new partition : primery > enter
11. Partition Setting :
- enter > use as > ext3 > enter
- format the partition : yes
- Mount options > enter ( pilih yang / )
- boutable flog : on
- done setting up > enter
12. finish partition and...... > enter
13. Pilih yes (untuk write change .......)
14. Select your the zone : Eastrn > enter
15. full name for the user : ....(terserah) > countinue
16. user name ror your account :..... (terserah) > countinue
17. choose a password for the new user : ...... (terserah) > countinue
Re-enter password : (sama dengan passwor yang diatas) > countinue
18. HTTP proxy Information > ( dikosongi ) Countinue
19. choose Software to insstall :
~ space > DNS server
~ space > LAMP Server
~ space > OpenSSH Server
~ space > samba file server > countinue/enter
20. New password for the MySQL "root" : (diisi password) > countinue
21. Intall the grub boot > yes
22. finish > countinue ( dan keluarkan Cdnya )

Sabtu, 26 Januari 2008

CMS

Pengertian CMS:

Pertanyaan pertama yang mungkin muncul di benak seorang pengunjung situs ini adalah, apakah itu sebenarnya sebuah software Content Management System? Apakah sama dengan software HTML editor lainnya seperti Microsoft FrontPage, Dreamweaver, atau bahkan sebuah Notepad? Nah, dalam kesempatan ini saya akan berusaha menerangkan pengertian CMS ditinjau dari berbagai segi.

Seperti yang kita ketahui, ‘contents’ merupakan salah satu urat nadi dari kehidupan sebuah website. Tanpa ‘contents’ dapat dipastikan tidak ada website. Sebuah website yang dikelola dengan baik pasti akan selalu berusaha menampilkan ‘contents’ terbaru bagi para pengunjungnya.
Lalu apa yang dimaksud dengan ‘content’ sebenarnya? Pada dasarnya ‘content’ adalah sebuah unit informasi yang digunakan untuk membentuk sebuah halaman di website. Dapat terdiri dari apa saja; teks, gambar, video, suara, dan lain sebagainya. Harap dibedakan juga antara sebuah ‘content’ dengan sebuah dokumen. Dua hal yang serupa tapi tidak sama.

Dari ‘contents’ yang sudah ada tadi, kemudian diatur sedemikian rupa sehingga membentuk sebuah website. Untuk memudahkan pekerjaan, sering kali aturan-aturan dan proses kerja pun dibuat antara seorang webmaster yang lebih memperhatikan sisi teknis dan penampilan dari website dengan seorang penulis/editor yang menyumbangkan ‘contents’ untuk website. Dalam arti kata lain, manajemen terhadap ‘contents’ yang akan ditampilkan. Baik webmaster maupun penulis/editor dapat membuat, mengedit, mengatur dan mempublikasikan sebuah ‘content’ dalam framework/sistem yang telah dipersiapkan sebelumnya.

Framework atau sistem, tempat di mana ‘contents’ itu diletakkan menfasilitasi ‘perkakas-perkakas’ yang dibutuhkan untuk menjaga konsistensi proses pembuatan halaman-halaman di website secara efisien dan efektif.

Bila semua informasi diatas kita gabung menjadi satu, dapatlah disimpulkan, CMS adalah sebuah sistem yang memudahkan proses penciptaan sebuah website dinamis yang kaya akan ‘contents’, dengan memberikan kemudahan kepada penulis/editor untuk menambah, memperbaharui dan menghapus ‘content’ yang ada tanpa campur tangan langsung dari webmaster. Sebuah CMS akan membedakan ‘contents’ dari desain, memelihara konsistensi tampilan dan memudahkan pemanfaatan ‘contents’ untuk berbagai keperluan. Dengan menyimpan data di satu tempat, mengontrol hak akses dan alur kerja memperbesar kesempatan pemakai berpartisipasi dalam pengembangan website anda. Terlebih lagi bila website tersebut terus berkembang dan memiliki kompleksitas tinggi. Tentunya, semua bantuan akan sangat diharapkan.

Kenapa sebuah CMS dibutuhkan?

Beberapa waktu lalu, atau lebih tepatnya sekitar satu dekade yang lalu, hanya para teknisi IT (’nerds’) yang memiliki kemampuan untuk membuat sebuah website. Bukan suatu hal yang aneh apabila pada saat itu jasa seorang webmaster sangat diperlukan dan mereka pun dibayar mahal untuk melakukan tugasnya. Membuat website ketika itu bukanlah suatu hal yang dapat dilakukan oleh semua orang, apalagi orang awam. Website yang dihasilkan pun masihlah sangat sederhana dengan hanya mengandalkan bahasa HTML dan beberapa gambar/video/suara sebagai pemanisnya. Statis, monoton dan mahal, demikianlah kira-kira gambaran website pada masa itu.

Tapi hal ini kemudian perlahan-lahan mengalami perubahan. Seiring dengan pergantian zaman dan kemajuan teknologi menyebabkan kebutuhan untuk memiliki sebuah website dengan ‘contents’ yang dinamis di internet semakin meningkat. Bagi sebuah masyarakat modern, idiom seperti ‘content is the king’ bukanlah hal yang berlebihan. Sebegitu banyaknya informasi yang beredar di sekeliling kita mengakibatkan orang membutuhkan sebuah alat/sistem untuk mengelola semua itu dan menyampaikannya kepada para pemakai secara efektif dan efisien. Website sederhana yang dibuat dengan HMTL tentu saja tidak dapat memenuhi kebutuhan ini. Selain menyita waktu yang lama untuk memperbaharui informasi yang ada dengan yang baru, hal ini juga memakan biaya yang besar. Kecepatan dalam memproses informasi menjadi suatu hal yang sangat penting, terutama bagi dunia bisnis dan dagang. Sudah berapa banyak perusahaan yang merugi karena tidak dapat memberikan informasi yang dibutuhkan oleh pelanggan dan rekan bisnis mereka.

Nah, untuk mengatasi problematika ini sebuah CMS dibutuhkan. Dengan kemampuan yang dimiliki, informasi yang diperoleh dapat dengan segera diproses, dikirim dan dipublikasikan oleh siapa saja tanpa sebelumnya harus bermusyawarah terlebih dahulu dengan webmaster/developer. Bukan berarti fungsi mereka akan tergantikan dengan adanya CMS, karena walau bagaimana pun sebuah CMS tetap membutuhkan orang yang kompeten untuk mengimplementasikannya. Tanpa jasa seorang webmaster/developer, tentu tidak ada CMS.

Perlu juga diketahui, CMS tidak hanya ditujukan kepada dunia bisnis dan dagang. Setiap orang atau organisasi dapat mengimplementasikan CMS untuk berbagai keperluan dan kondisi. Mulai dari mengelola website pribadi/organisasi, galeri foto, forum sampai kepada aplikasi E-Commerce. Dapat dibayangkan betapa besar dan luasnya dunia CMS dan kemampuan yang dimilikinya untuk kehidupan sehari-hari manusia. Masih belum percaya? Silakan mencoba saja sendiri dan alami perbedaannya.. (”,)

Manfaat CMS

Beberapa manfaat dari penggunaan CMS dapat dijabarkan sebagai berikut:

Manajemen data
Ini merupakan fungsi utama dari CMS. Semua data/informasi baik yang telah ditampilkan ataupun belum dapat diorganisasi dan disimpan secara baik. Suatu waktu data/informasi tadi dapat dipergunakan kembali sesuai dengan kebutuhan. Selain itu, CMS juga mendukung berbagai macam format data, seperti XML, HMTL, PDF, dll., indexing, fungsi pencarian, dan kontrol terhadap revisi yang dilakukan terhadap data/informasi. Untuk menggunakan CMS biasanya pengetahuan tentang bahasa pemrograman tidaklah terlalu dibutuhkan, karena semua proses berjalan dengan otomatis (WYSIWYG). Begitupula dengan proses ‘update’, dapat dilakukan dengan cepat sehingga menjamin kemutakhiran informasi yang ditampilkan.

Mengatur siklus hidup website
Banyak CMS memberikan fasilitas kepada para penggunanya untuk mengelola bagian atau isi mana saja yang akan ditampilkan, masa/waktu penampilan dan lokasi penampilan di website. Tak jarang sebelum ditampilkan, bagian atau isi yang dimaksud terlebih dahulu di-review oleh editor sehingga dijamin kevaliditasannya.

Mendukung web templating dan standarisasi
Setiap halaman website yang dihasilkan berasal dari template yang telah terlebih dahulu disediakan oleh CMS. Selain dapat menjaga konsistensi dari tampilan secara keseluruhan, para penulis dan editor dapat berkonsentrasi secara penuh dalam melaksanakan tugasnya menyediakan isi website. Bila isi telah tersedia, maka proses publikasi dapat berjalan dengan mudah karena sudah ada template sebelumnya. Beberapa bagian dari website biasanya telah ditetapkan sedemikian rupa sehingga tidak dapat diubah begitu saja. Hal ini dilakukan untuk memberikan standarisasi kepada seluruh bagian dari website.

Personalisasi website
Sekali sebuah isi ditempatkan ke dalam CMS, isi tersebut dapat ditampilkan sesuai dengan keinginan dan kebutuhan dari penggunanya. Terlebih lagi dengan kelebihan CMS yang dapat memisahkan antara desain dan isi, menyebabkan proses personalisasi dapat berjalan dengan mudah.

Sindikasi
Sindikasi memberikan kemungkinan kepada sebuah website untuk membagi isinya kepada website-website yang lain. Format data yang didukung juga cukup variatif mulai dari rss, rdf, xml hingga ‘backend scripting’. Sama halnya dengan personalisasi, sindikasi juga dapat dilakukan dengan mudah karena isi dan desain telah dibuat terpisah.

Akuntabilitas
Oleh karena CMS mendukung alur kerja dan hak akses yang jelas kepada para penggunanya, data/informasi yang disampaikan dapat dipertanggungjawabkan dengan baik. Setiap penulis ataupun editor memiliki tugas masing-masing dengan hak akses yang berbeda-beda pula. Dengan demikian setiap perubahan yang terjadi di website dapat ditelusuri dan diperbaiki seperlunya dengan segera.

CMS pada prinsipnya dapat dipergunakan untuk berbagai macam keperluan dan dalam berbagai kondisi, seperti untuk:
a. Mengelola website pribadi.
b. Mengelola website perusahaan/bisnis.
c. Portal atau website komunitas.
d. Galeri foto, dan lain sebagainya.
e. Forum.
f. Aplikasi E-Commerce.
g. Dan lain-lain.

Jenis CMS

Dari sekian banyak produk CMS yang beredar di pasaran, kita dapat membaginya dalam dua golongan besar.

Golongan pertama adalah produk CMS yang bersifat komersial.

Dibuat dan dikembangkan oleh perusahaan-perusahaan software yang menjalankan usahanya dengan motif mencari keuntungan. CMS jenis ini memiliki dan menyediakan hampir semua feature yang diharapkan dari sebuah CMS dan tentu saja tidak tersedia secara gratis. Setiap pengguna yang ingin memanfaatkan CMS komersial untuk mengelola websitenya haruslah membeli lisensi dari perusahaan pembuatnya. Lisensi yang tersedia sangatlah bervariasi, mulai dari lisensi yang berdasarkan kepada jumlah pengguna sampai kepada lisensi yang sifatnya multiserver dan dari yang berharga ribuan dollar AS sampai kepada jutaan dollar AS. Semua dapat disesuaikan dengan kebutuhan dan implementasi yang diharapkan pengguna.
Sebagai layanan purna jual, biasanya perusahaan CMS akan memberikan pelatihan dan dukungan teknis berkelanjutan kepada para penggunanya. Tidak hanya itu, versi terbaru dari produk yang dipakai, juga dapat diperoleh dengan leluasa di area anggota dari website perusahaan CMS yang dimaksud. Di bagian ini nantinya kita akan menampilkan daftar dari perusahaan-perusahaan yang mengembangkan CMS secara komersial.

Golongan kedua adalah produk CMS Open Source.

Dibuat dan dikembangkan oleh sekelompok orang atau perusahaan yang intinya memberikan sebuahalternatif murah dan terjangkau kepada para pengguna. Tersedia secara gratis dan dapat dipergunakan sesuai dengan kebutuhan tanpa ada batasan. CMS jenis ini juga memberikan akses kepada penggunanya akan kode-kode pemograman, sehingga memudahkan pengguna memodifikasi CMS di masa-masa yang akan datang. Karena kode pemrograman terbuka untuk umum, secara tidak langsung para pengguna bahu-membahu dalam hal melacak dan memperbaiki bugs yang ada, menambah dan meningkatkan fungsi dan kemampuan CMS dan memberikan dukungan teknis dan non-teknis kepada yang membutuhkan. Sehingga prinsip dari komunitas, oleh komunitas dan untuk komunitas tidaklah terlalu berlebihan untuk menggambarkan situasi pengembangan CMS Open Source. Walaupun gratis, bukan berarti CMS Open Source tidak memerlukan lisensi dalam pemakaiannya. Bedanya, lisensi di sini berbentuk sebuah pernyataan yang biasanya menerangkan bahwasanya software CMS tersebut dapat dimodifikasi dan dikembangkan lebih lanjut dengan syarat semua kredit dihormati dan kode tetap terbuka untuk umum. Lalu, apakah seseorang bisa memanfaatkan teknologi ini untuk keperluan komersial? Tentu saja bisa. Asalkan tidak mengenakan biaya atas CMS yang dipakai kepada klien, tapi lebih kepada biaya pembuatan dan perawatan website. Saat ini banyak sudah pihak yang beralih ke CMS Open Source, setelah mengingat dan menimbang kemampuan yang ditawarkan CMS Open Source tidak jauh berbeda dengan CMS komersial dan biaya yang terjangkau.
Di bagian ini nantinya kita juga akan menampilkan daftar dari sejumlah CMS Open Source yang ada di pasaran saat ini dan bila memungkinkan dengan sedikit keterangan tentang fungsionalitas dari CMS tersebut.

Dapat dikatakan dua golongan yang telah disebutkan di atas dimaksudkan untuk berjalan/dioperasikan di server sendiri. Sementara itu, bagi anda yang ingin menggunakan CMS tapi tidak memiliki server sendiri, jangan lekas putus asa. Saat ini sudah tersedia berbagai CMS yang dapat disewa langsung dari penyedianya dengan memanfaatkan server yang mereka miliki. Dengan demikian anda tidak perlu lagi memikirkan bagaimana cara menginstalasi dan memodifikasi sebuah CMS, karena hampir semua yang dibutuhkan telah dipenuhi oleh pihak penyedia. Sebuah solusi yang bagus untuk anda yang ingin segera menikmati berbagai keuntungan CMS.

Di bawah ini anda dapat memperoleh informasi lebih lanjut tentang CMS. Tulisan ini sendiri merupakan rangkuman dari sumber-sumber yang dapat diperoleh melalui tautan web berikut.

·


CMS

Pengertian CMS:

Pertanyaan pertama yang mungkin muncul di benak seorang pengunjung situs ini adalah, apakah itu sebenarnya sebuah software Content Management System? Apakah sama dengan software HTML editor lainnya seperti Microsoft FrontPage, Dreamweaver, atau bahkan sebuah Notepad? Nah, dalam kesempatan ini saya akan berusaha menerangkan pengertian CMS ditinjau dari berbagai segi.

Seperti yang kita ketahui, ‘contents’ merupakan salah satu urat nadi dari kehidupan sebuah website. Tanpa ‘contents’ dapat dipastikan tidak ada website. Sebuah website yang dikelola dengan baik pasti akan selalu berusaha menampilkan ‘contents’ terbaru bagi para pengunjungnya. Lalu apa yang dimaksud dengan ‘content’ sebenarnya? Pada dasarnya ‘content’ adalah sebuah unit informasi yang digunakan untuk membentuk sebuah halaman di website. Dapat terdiri dari apa saja; teks, gambar, video, suara, dan lain sebagainya. Harap dibedakan juga antara sebuah ‘content’ dengan sebuah dokumen. Dua hal yang serupa tapi tidak sama.

Dari ‘contents’ yang sudah ada tadi, kemudian diatur sedemikian rupa sehingga membentuk sebuah website. Untuk memudahkan pekerjaan, sering kali aturan-aturan dan proses kerja pun dibuat antara seorang webmaster yang lebih memperhatikan sisi teknis dan penampilan dari website dengan seorang penulis/editor yang menyumbangkan ‘contents’ untuk website. Dalam arti kata lain, manajemen terhadap ‘contents’ yang akan ditampilkan. Baik webmaster maupun penulis/editor dapat membuat, mengedit, mengatur dan mempublikasikan sebuah ‘content’ dalam framework/sistem yang telah dipersiapkan sebelumnya.

Framework atau sistem, tempat di mana ‘contents’ itu diletakkan menfasilitasi ‘perkakas-perkakas’ yang dibutuhkan untuk menjaga konsistensi proses pembuatan halaman-halaman di website secara efisien dan efektif.

Bila semua informasi diatas kita gabung menjadi satu, dapatlah disimpulkan, CMS adalah sebuah sistem yang memudahkan proses penciptaan sebuah website dinamis yang kaya akan ‘contents’, dengan memberikan kemudahan kepada penulis/editor untuk menambah, memperbaharui dan menghapus ‘content’ yang ada tanpa campur tangan langsung dari webmaster. Sebuah CMS akan membedakan ‘contents’ dari desain, memelihara konsistensi tampilan dan memudahkan pemanfaatan ‘contents’ untuk berbagai keperluan. Dengan menyimpan data di satu tempat, mengontrol hak akses dan alur kerja memperbesar kesempatan pemakai berpartisipasi dalam pengembangan website anda. Terlebih lagi bila website tersebut terus berkembang dan memiliki kompleksitas tinggi. Tentunya, semua bantuan akan sangat diharapkan.

Kenapa sebuah CMS dibutuhkan?

Beberapa waktu lalu, atau lebih tepatnya sekitar satu dekade yang lalu, hanya para teknisi IT (’nerds’) yang memiliki kemampuan untuk membuat sebuah website. Bukan suatu hal yang aneh apabila pada saat itu jasa seorang webmaster sangat diperlukan dan mereka pun dibayar mahal untuk melakukan tugasnya. Membuat website ketika itu bukanlah suatu hal yang dapat dilakukan oleh semua orang, apalagi orang awam. Website yang dihasilkan pun masihlah sangat sederhana dengan hanya mengandalkan bahasa HTML dan beberapa gambar/video/suara sebagai pemanisnya. Statis, monoton dan mahal, demikianlah kira-kira gambaran website pada masa itu.

Tapi hal ini kemudian perlahan-lahan mengalami perubahan. Seiring dengan pergantian zaman dan kemajuan teknologi menyebabkan kebutuhan untuk memiliki sebuah website dengan ‘contents’ yang dinamis di internet semakin meningkat. Bagi sebuah masyarakat modern, idiom seperti ‘content is the king’ bukanlah hal yang berlebihan. Sebegitu banyaknya informasi yang beredar di sekeliling kita mengakibatkan orang membutuhkan sebuah alat/sistem untuk mengelola semua itu dan menyampaikannya kepada para pemakai secara efektif dan efisien. Website sederhana yang dibuat dengan HMTL tentu saja tidak dapat memenuhi kebutuhan ini. Selain menyita waktu yang lama untuk memperbaharui informasi yang ada dengan yang baru, hal ini juga memakan biaya yang besar. Kecepatan dalam memproses informasi menjadi suatu hal yang sangat penting, terutama bagi dunia bisnis dan dagang. Sudah berapa banyak perusahaan yang merugi karena tidak dapat memberikan informasi yang dibutuhkan oleh pelanggan dan rekan bisnis mereka.

Nah, untuk mengatasi problematika ini sebuah CMS dibutuhkan. Dengan kemampuan yang dimiliki, informasi yang diperoleh dapat dengan segera diproses, dikirim dan dipublikasikan oleh siapa saja tanpa sebelumnya harus bermusyawarah terlebih dahulu dengan webmaster/developer. Bukan berarti fungsi mereka akan tergantikan dengan adanya CMS, karena walau bagaimana pun sebuah CMS tetap membutuhkan orang yang kompeten untuk mengimplementasikannya. Tanpa jasa seorang webmaster/developer, tentu tidak ada CMS.

Perlu juga diketahui, CMS tidak hanya ditujukan kepada dunia bisnis dan dagang. Setiap orang atau organisasi dapat mengimplementasikan CMS untuk berbagai keperluan dan kondisi. Mulai dari mengelola website pribadi/organisasi, galeri foto, forum sampai kepada aplikasi E-Commerce. Dapat dibayangkan betapa besar dan luasnya dunia CMS dan kemampuan yang dimilikinya untuk kehidupan sehari-hari manusia. Masih belum percaya? Silakan mencoba saja sendiri dan alami perbedaannya.. (”,)

Manfaat CMS

Beberapa manfaat dari penggunaan CMS dapat dijabarkan sebagai berikut:

Manajemen data
Ini merupakan fungsi utama dari CMS. Semua data/informasi baik yang telah ditampilkan ataupun belum dapat diorganisasi dan disimpan secara baik. Suatu waktu data/informasi tadi dapat dipergunakan kembali sesuai dengan kebutuhan. Selain itu, CMS juga mendukung berbagai macam format data, seperti XML, HMTL, PDF, dll., indexing, fungsi pencarian, dan kontrol terhadap revisi yang dilakukan terhadap data/informasi. Untuk menggunakan CMS biasanya pengetahuan tentang bahasa pemrograman tidaklah terlalu dibutuhkan, karena semua proses berjalan dengan otomatis (WYSIWYG). Begitupula dengan proses ‘update’, dapat dilakukan dengan cepat sehingga menjamin kemutakhiran informasi yang ditampilkan.

Mengatur siklus hidup website
Banyak CMS memberikan fasilitas kepada para penggunanya untuk mengelola bagian atau isi mana saja yang akan ditampilkan, masa/waktu penampilan dan lokasi penampilan di website. Tak jarang sebelum ditampilkan, bagian atau isi yang dimaksud terlebih dahulu di-review oleh editor sehingga dijamin kevaliditasannya.

Mendukung web templating dan standarisasi
Setiap halaman website yang dihasilkan berasal dari template yang telah terlebih dahulu disediakan oleh CMS. Selain dapat menjaga konsistensi dari tampilan secara keseluruhan, para penulis dan editor dapat berkonsentrasi secara penuh dalam melaksanakan tugasnya menyediakan isi website. Bila isi telah tersedia, maka proses publikasi dapat berjalan dengan mudah karena sudah ada template sebelumnya. Beberapa bagian dari website biasanya telah ditetapkan sedemikian rupa sehingga tidak dapat diubah begitu saja. Hal ini dilakukan untuk memberikan standarisasi kepada seluruh bagian dari website.

Personalisasi website
Sekali sebuah isi ditempatkan ke dalam CMS, isi tersebut dapat ditampilkan sesuai dengan keinginan dan kebutuhan dari penggunanya. Terlebih lagi dengan kelebihan CMS yang dapat memisahkan antara desain dan isi, menyebabkan proses personalisasi dapat berjalan dengan mudah.

Sindikasi
Sindikasi memberikan kemungkinan kepada sebuah website untuk membagi isinya kepada website-website yang lain. Format data yang didukung juga cukup variatif mulai dari rss, rdf, xml hingga ‘backend scripting’. Sama halnya dengan personalisasi, sindikasi juga dapat dilakukan dengan mudah karena isi dan desain telah dibuat terpisah.

Akuntabilitas
Oleh karena CMS mendukung alur kerja dan hak akses yang jelas kepada para penggunanya, data/informasi yang disampaikan dapat dipertanggungjawabkan dengan baik. Setiap penulis ataupun editor memiliki tugas masing-masing dengan hak akses yang berbeda-beda pula. Dengan demikian setiap perubahan yang terjadi di website dapat ditelusuri dan diperbaiki seperlunya dengan segera.

CMS pada prinsipnya dapat dipergunakan untuk berbagai macam keperluan dan dalam berbagai kondisi, seperti untuk:
a. Mengelola website pribadi.
b. Mengelola website perusahaan/bisnis.
c. Portal atau website komunitas.
d. Galeri foto, dan lain sebagainya.
e. Forum.
f. Aplikasi E-Commerce.
g. Dan lain-lain.

Jenis CMS

Dari sekian banyak produk CMS yang beredar di pasaran, kita dapat membaginya dalam dua golongan besar.

Golongan pertama adalah produk CMS yang bersifat komersial.

Dibuat dan dikembangkan oleh perusahaan-perusahaan software yang menjalankan usahanya dengan motif mencari keuntungan. CMS jenis ini memiliki dan menyediakan hampir semua feature yang diharapkan dari sebuah CMS dan tentu saja tidak tersedia secara gratis. Setiap pengguna yang ingin memanfaatkan CMS komersial untuk mengelola websitenya haruslah membeli lisensi dari perusahaan pembuatnya. Lisensi yang tersedia sangatlah bervariasi, mulai dari lisensi yang berdasarkan kepada jumlah pengguna sampai kepada lisensi yang sifatnya multiserver dan dari yang berharga ribuan dollar AS sampai kepada jutaan dollar AS. Semua dapat disesuaikan dengan kebutuhan dan implementasi yang diharapkan pengguna.
Sebagai layanan purna jual, biasanya perusahaan CMS akan memberikan pelatihan dan dukungan teknis berkelanjutan kepada para penggunanya. Tidak hanya itu, versi terbaru dari produk yang dipakai, juga dapat diperoleh dengan leluasa di area anggota dari website perusahaan CMS yang dimaksud. Di bagian ini nantinya kita akan menampilkan daftar dari perusahaan-perusahaan yang mengembangkan CMS secara komersial.

Golongan kedua adalah produk CMS Open Source.

Dibuat dan dikembangkan oleh sekelompok orang atau perusahaan yang intinya memberikan sebuahalternatif murah dan terjangkau kepada para pengguna. Tersedia secara gratis dan dapat dipergunakan sesuai dengan kebutuhan tanpa ada batasan. CMS jenis ini juga memberikan akses kepada penggunanya akan kode-kode pemograman, sehingga memudahkan pengguna memodifikasi CMS di masa-masa yang akan datang. Karena kode pemrograman terbuka untuk umum, secara tidak langsung para pengguna bahu-membahu dalam hal melacak dan memperbaiki bugs yang ada, menambah dan meningkatkan fungsi dan kemampuan CMS dan memberikan dukungan teknis dan non-teknis kepada yang membutuhkan. Sehingga prinsip dari komunitas, oleh komunitas dan untuk komunitas tidaklah terlalu berlebihan untuk menggambarkan situasi pengembangan CMS Open Source. Walaupun gratis, bukan berarti CMS Open Source tidak memerlukan lisensi dalam pemakaiannya. Bedanya, lisensi di sini berbentuk sebuah pernyataan yang biasanya menerangkan bahwasanya software CMS tersebut dapat dimodifikasi dan dikembangkan lebih lanjut dengan syarat semua kredit dihormati dan kode tetap terbuka untuk umum. Lalu, apakah seseorang bisa memanfaatkan teknologi ini untuk keperluan komersial? Tentu saja bisa. Asalkan tidak mengenakan biaya atas CMS yang dipakai kepada klien, tapi lebih kepada biaya pembuatan dan perawatan website. Saat ini banyak sudah pihak yang beralih ke CMS Open Source, setelah mengingat dan menimbang kemampuan yang ditawarkan CMS Open Source tidak jauh berbeda dengan CMS komersial dan biaya yang terjangkau.
Di bagian ini nantinya kita juga akan menampilkan daftar dari sejumlah CMS Open Source yang ada di pasaran saat ini dan bila memungkinkan dengan sedikit keterangan tentang fungsionalitas dari CMS tersebut.

Dapat dikatakan dua golongan yang telah disebutkan di atas dimaksudkan untuk berjalan/dioperasikan di server sendiri. Sementara itu, bagi anda yang ingin menggunakan CMS tapi tidak memiliki server sendiri, jangan lekas putus asa. Saat ini sudah tersedia berbagai CMS yang dapat disewa langsung dari penyedianya dengan memanfaatkan server yang mereka miliki. Dengan demikian anda tidak perlu lagi memikirkan bagaimana cara menginstalasi dan memodifikasi sebuah CMS, karena hampir semua yang dibutuhkan telah dipenuhi oleh pihak penyedia. Sebuah solusi yang bagus untuk anda yang ingin segera menikmati berbagai keuntungan CMS.

Di bawah ini anda dapat memperoleh informasi lebih lanjut tentang CMS. Tulisan ini sendiri merupakan rangkuman dari sumber-sumber yang dapat diperoleh melalui tautan web berikut.

·


Jumat, 31 Agustus 2007

pengkabelan

Pengkabelan
Jaringan komputer pada dasarnya adalah jaringan kabel,
menghubungkan satu sisi dengan sisi yang lain, namun bukan berarti
kurva tertutup, bisa jadi merupakan kurva terbuka dengan terminator
diujungnya). Seiring dengan perkembangan teknologi, penghubung
antar komputer pun mengalami perubahan serupa, mulai dari teknologi
telegraf yang memanfaatkan gelombang radio hingga teknologi serat
optik dan laser menjadi tumpuan perkembangan jaringan komputer.


jenis topology Ring umumnya
menggunakan kabel Fiber Optik (walaupun ada juga yang
menggunakan twisted pair). Topologi Bus banyak menggunakan kabel
Coaxial. Kesulitan utama dari penggunaan kabel coaxial adalah sulit
untuk mengukur apakah kabel coaxial yang dipergunakan benar-benar
matching atau tidak. Karena kalau tidak sungguh-sungguh diukur secara
benar akan merusak NIC (Network Interface Card) yang dipergunakan
dan kinerja jaringan menjadi terhambat, tidak mencapai kemampuan
maksimalnya. Topologi jaringan Star banyak menggunakan jenis kabel
UTP. Topologi jaringan dan jenis kabel yang umum digunakan dapat
dilihat pada tabel berikut:

Tabel 4.Topologi Jaringan dan Jenis Kabel yang Sering Digunakan

Topologi Jaringan Jenis kabel yang umum digunakan
Topologi Bus : Coaxial, twisted pair, fiber
Topologi Ring : Twisted pair, fiber
Topologi Star : Twisted pair, fiber
Setiap jenis kabel mempunyai kemampuan dan spesifikasi yang
berbeda, oleh karena itu dibuatlah pengenalan tipe kabel. Ada tiga jenis
kabel yang dikenal secara umum, yaitu:
. Coaxial cable
. Fiber Optik

. Twisted pair (UTPunshielded twisted pair dan STP shielded twisted
pair)
a) Kabel Coaxial
Dikenal dua jenis kabel coaxial, yaitu thick coaxial cable (mempunyai
diameter lumayan besar) dan thin coaxial cable (mempunyai diameter
lebih kecil).
Thick coaxial cable (Kabel Coaxial “gemuk”)
Kabel coaxial jenis ini dispesifikasikan berdasarkan standar IEEE 802.3
10BASE5, dimana kabel ini mempunyai diameter rata-rata 12mm, dan
biasanya diberi warna kuning. Kabel jenis ini biasa disebut sebagai
standard ethernet atau thick Ethernet, atau hanya disingkat ThickNet,
atau bahkan hanya disebut sebagai yellow cable.
Kabel Coaxial ini (RG-6) jika digunakan dalam jaringan mempunyai
spesifikasi dan aturan sebagai berikut :
. Setiap ujung harus diterminasi dengan terminator 50-ohm
(dianjurkan menggunakan terminator yang sudah dirakit, bukan
menggunakan satu buah resistor 50-ohm 1 watt, sebab resistor
mempunyai disipasi tegangan yang cukup lebar).
. Maksimum 3 segment dengan peralatan terhubung (attached
devices) atau berupa populated segments.
. Setiap kartu jaringan mempunyai pemancar tambahan (external
transceiver).
. Setiap segment maksimum berisi 100 perangkat jaringan, termasuk
dalam hal ini repeaters.
33
. Maksimum panjang kabel per segment adalah 1.640 feet (atau
sekitar 500 meter).
. Maksimum jarak antar segment adalah 4.920 feet (atau sekitar 1500
meter).
. Setiap segment harus diberi ground.
. Jarak maksimum antara tap atau pencabang dari kabel utama ke
perangkat (device) adalah 16 feet (sekitar 5 meter).
. Jarak minimum antar tap adalah 8 feet (sekitar 2,5 meter.

Thin coaxial cable (Kabel Coaxial “Kurus”)
Kabel coaxial jenis ini banyak dipergunakan di kalangan radio amatir,
terutama untuk transceiver yang tidak memerlukan output daya yang
besar. Untuk digunakan sebagai perangkat jaringan, kabel coaxial jenis
ini harus memenuhi standar IEEE 802.3 10BASE2, dimana diameter
rata-rata berkisar 5mm dan biasanya berwarna hitam atau warna gelap
lainnya. Setiap perangkat (device) dihubungkan dengan BNC Tconnector.
Kabel jenis ini juga dikenal sebagai thin Ethernet atau
ThinNet.
Kabel coaxial jenis ini, misalnya jenis RG-58 A/U atau C/U, jika
diimplementasikan dengan Tconnector dan terminator dalam sebuah
jaringan, harus mengikuti aturan sebagai berikut :
. Setiap ujung kabel diberi terminator 50-ohm.
. Panjang maksimal kabel adalah 1,000 feet (185 meter) per segment.
. Setiap segment maksimum terkoneksi sebanyak 30 perangkat
jaringan (devices).
. Kartu jaringan cukup menggunakan transceiver yang onboard, tidak
perlu tambahan transceiver, kecuali untuk repeater.
. Maksimum ada 3 segment terhubung satu sama lain (populated
segment).
. Setiap segment sebaiknya dilengkapi dengan satu ground.
. Panjang minimum antar TConnector adalah 1,5 feet (0.5 meter).
. Maksimum panjang kabel dalam satu segment adalah 1,818 feet
(555 meter).

b) Fiber Optic
Jaringan yang menggunakan Fiber Optic (FO) biasanya perusahaan
besar, dikarenakan harga dan proses pemasangannya lebih sulit.
Namun demikian, jaringan yang menggunakan FO dari segi kehandalan
dan kecepatan tidak diragukan. Kecepatan pengiriman data dengan
media FO lebih dari 100Mbps dan bebas pengaruh lingkungan.

c) Twisted Pair Ethernet
Kabel Twisted Pair ini terbagi menjadi dua jenis yaitu shielded twisted
pair (STP) dan unshielded twisted pair (UTP). STP adalah jenis kabel
yang memiliki selubung pembungkus sedangkan UTP tidak mempunyai
selubung pembungkus. Untuk koneksinya kabel jenis ini menggunakan
konektor RJ-11 atau RJ-45.
Tabel 5. Kategori Twisted Pair Cable
Kategori
kabel
Type Feature
Type CAT 1 UTP Analog (biasanya digunakan di
perangkat telephone pada umumnya
dan pada jalur ISDN –integrated service
digital networks. Juga untuk
menghubungkan modem dengan line
telepon)
Type CAT 2 UTP Up to 1 Mbits (sering digunakan pada
topologi token ring)
Type CAT 3 UTP, STP 16 Mbits data transfer (sering digunakan
pada topologi token ring atau 10BaseT)
Type CAT 4 UTP, STP 20 Mbits data transfer (biasanya
digunakan pada topologi token ring)
Type CAT 5 100 Mbits data transfer / 22 db
Type CAT
5enhanced
UTP, STP 1 Gigabit Ethernet up to 100 meters - 4
copper pairs (kedua jenis CAT5 sering
digunakan pada topologi token ring
16Mbps, Ethernet 10Mbps atau pada
Fast Ethernet 100Mbps)
Type CAT 6 Up to 155 MHz or
250 MHz
2,5 Gigabit Ethernet up to 100 meters or
10
Gbit/s up to 25 meters . 20,2 db
(Gigabit Ethernet)
Type CAT 7 Up to 200 MHz or
700 Mhz
Giga-Ethernet / 20.8 db
(Gigabit Ethernet)
Pada twisted pair (10 BaseT) network, komputer disusun membentuk
suatu pola Star. Setiap PC memiliki satu kabel twisted pair yang
tersentral pada HUB. Twisted pair umumnya lebih handal (reliable)
dibandingkan dengan thin coax, karena HUB mempunyai kemampuan
data error correction dan meningkatkan kecepatan transmisi. Saat ini
ada beberapa grade atau kategori dari kabel twisted pair. Kategory
tersebut dapat dilihat pada tabel dibawah :
Pemberian kategori 1/2/3/4/5/6 merupakan kategori spesifikasi untuk
masing-masing kabel tembaga dan juga untuk jack. Masing-masing
merupakan seri revisi atas kualitas kabel, kualitas pembungkusan kabel
(isolator) dan juga untuk kualitas “belitan” (twist) masing-masing pasang
kabel. Selain itu juga untuk menentukan besaran frekuensi yang bisa
lewat pada sarana kabel tersebut, dan juga kualitas isolator sehingga
bisa mengurangi efek induksi antar kabel (noise bisa ditekan sedemikian
rupa). Perlu diperhatikan juga, spesifikasi antara CAT5 dan CAT5
enchanced mempunyai standar industri yang sama, namun pada CAT5e
sudah dilengkapi dengan insulator untuk mengurangi efek induksi atau
electromagnetic interference. Kabel CAT5e bisa digunakan untuk
menghubungkan network hingga kecepatan 1Gbps.

UTP Cable (khususnya CAT5 / CAT5e)
Kategori 5 atau 5e adalah yang paling reliable dan memiliki kompabilitas
yang tinggi, dan yang paling disarankan, baik pada 10 Mbps dan Fast
Ethernet (100Mbps). Konector yang bisa digunakan untuk UTP Cable
CAT5 adalah RJ-45. Untuk penggunaan koneksi komputer, dikenal 2
buah tipe penyambungan kabel UTP ini, yaitu straight cable dan
crossover cable. Fungsi masing-masing jenis koneksi ini berbeda,
straight cable digunakan untuk menghubungkan client ke HUB/Router,
sedangkan crossover cable digunakan untuk menghubungkan client ke
client atau dalam kasus tertentu digunakan untuk menghubungkan HUB
ke HUB.

Straigt Cable
Menghubungkan ujung satu dengan ujung lain dengan satu warna.
Sebenarnya urutan warna dari masing-masing kabel tidak menjadi
masalah, namun ada standard secara internasional yang digunakan
untuk straight cable ini, seperti tabel 6 :
Tabel 6. Standar Pemasangan Kabel UTP pada Konektor RJ-45
Pin 1 wire color: White/orange
Pin 2 wire color: Orange
Pin 3 wire color: White/green
Pin 6 wire color: Blue
Pin 4 wire color: White/blue
Pin 5 wire color: Green
Pin 7 wire color: White/brown
Pin 8 wire color: Brown

Jumat, 24 Agustus 2007

IP ADDRES

  • Cek IP Address via ip-adress.com
    IP Address merupakan identitas unik untuk setiap komputer yang terhubung dalam jaringan, baik lokal maupun internet.
    Saat Anda melakukan koneksi ke internet maka ISP (Internet Service Provider) yang Anda pakai akan memberi anda IP Address (ip publik) secara otomatis (IP address tersebut berbeda dengan ip address untuk jaringn lokal Anda).
    Untuk mengecek IP Address yang diberikan oleh ISP saat Anda melakukan koneksi ke internet, Anda bisa mengunjungi situs:
    http://ip-adress.com/
    Saat Anda membuka situs tersebut maka secara otomatis akan ditampilkan ip address, negara, kota ISP dan nama ISP yang Anda gunakan, contohnya seperti gambar di bawah ini:




    Network Address Translation (NAT): Cara lain menghemat IP Address

    Tito Sugiharta
    Laboratorium Sistem Informasi & Keputusan (LSIK)
    Teknik Industri ITB
    Tito@TI.ITB.ac.id

    Misi awal Internet adalah sebagai jaringan komunikasi non-profit. Pada awalnya, Internet didesain tanpa memperhatikan dunia bisnis. Kemudian hal ini menjadi masalah sekarang dan di masa depan. Dengan semakin banyaknya penghuni Internet, baik pencari informasi maupun penyedia informasi, maka kebutuhan akan pengalamatan di Internet makin membengkak. Kebutuhan besar akan IP address biasanya terjadi di jaringan komputer perusahaan dan LAN-LAN di lembaga pendidikan.
    IP address sebagai sarana pengalamatan di Internet semakin menjadi barang mewah dan ekslusif. Tidak sembarang orang sekarang ini bisa mendapatkan IP address yang valid dengan mudah. Oleh karena itulah dibutuhkan suatu mekanisme yang dapat menghemat IP address. Logika sederhana untuk penghematan IP address ialah dengan meng-share suatu nomor IP address valid ke beberapa client IP lainnya. Atau dengan kata lain beberapa komputer bisa mengakses Internet walau kita hanya memiliki satu IP address yang valid. Salah satu Mekanisme itu disediakan oleh Network Address Translation (NAT)

    Beberapa Konsep Dasar
    Sebelum kita membahas lebih lanjut ada baiknya kita urai kembali konsep-konsep dasar yang harus dipahami sebelum masuk ke NAT. Diantaranya adalah TCP/IP, Gateway/Router, dan Firewall.

    TCP/IP
    Protokol yang menjadi standar dan dipakai hampir oleh seluruh komunitas Internet adalah TCP/IP (Transmission Control Protocol/Internet Protocol). Agar komputer bisa berkomunikasi dengan komputer lainnya, maka menurut aturan TCP/IP, komputer tersebut harus memiliki suatu address yang unik. Alamat tersebut dinamakan IP address. IP Address memiliki format sbb: aaa.bbb.ccc.ddd. Contohnya: 167.205.19.33
    Yang penting adalah bahwa untuk berkomunikasi di Internet, komputer harus memiliki IP address yang legal. Legal dalam hal ini artinya adalah bahwa alamat tersebut dikenali oleh semua router di dunia dan diketahui bahwa alamat tersebut tidak ada duplikatnya di tempat lain. IP address legal biasanya diperoleh dengan menghubungi InterNIC.
    Suatu jaringan internal bisa saja menggunakan IP address sembarang. Namun untuk tersambung ke Internet, jaringan itu tetap harus menggunakan IP address legal. Jika masalah routing tidak dibereskan (tidak menggunakan IP address legal), maka saat sistem kita mengirim paket data ke sistem lain, sistem tujuan itu tidak akan bisa mengembalikan paket data tersebut, sehingga komunikasi tidak akan terjadi.
    Dalam berkomunikasi di Internet/antar jaringan komputer dibutuhkan gateway/router sebagai jembatan yang menghubungkan simpul-simpul antar jaringan sehingga paket data bisa diantar sampai ke tujuan.

    Gateway/Router
    Gateway adalah komputer yang memiliki minimal 2 buah network interface untuk menghubungkan 2 buah jaringan atau lebih. Di Internet suatu alamat bisa ditempuh lewat gateway-gateway yang memberikan jalan/rute ke arah mana yang harus dilalui supaya paket data sampai ke tujuan. Kebanyakan gateway menjalankan routing daemon (program yang meng-update secara dinamis tabel routing). Karena itu gateway juga biasanya berfungsi sebagai router. Gateway/router bisa berbentuk Router box seperti yang di produksi Cisco, 3COM, dll atau bisa juga berupa komputer yang menjalankan Network Operating System plus routing daemon. Misalkan PC yang dipasang Unix FreeBSD dan menjalankan program Routed atau Gated. Namun dalam pemakaian Natd, routing daemon tidak perlu dijalankan, jadi cukup dipasang gateway saja.
    Karena gateway/router mengatur lalu lintas paket data antar jaringan, maka di dalamnya bisa dipasangi mekanisme pembatasan atau pengamanan (filtering) paket-paket data. Mekanisme ini disebut Firewall.

    Firewall
    Sebenarnya Firewall adalah suatu program yang dijalankan di gateway/router yang bertugas memeriksa setiap paket data yang lewat kemudian membandingkannya dengan rule yang diterapkan dan akhirnya memutuskan apakah paket data tersebut boleh diteruskan atau ditolak. Tujuan dasarnya adalah sebagai security yang melindungi jaringan internal dari ancaman dari luar. Namun dalam tulisan ini Firewall digunakan sebagai basis untuk menjalankan Network Address Translation (NAT).
    Dalam FreeBSD, program yang dijalankan sebagai Firewall adalah ipfw. Sebelum dapat menjalankan ipfw, kernel GENERIC harus dimodifikasi supaya mendukung fungsi firewall. Ipfw mengatur lalu lintas paket data berdasarkan IP asal, IP tujuan, nomor port, dan jenis protocol. Untuk menjalankan NAT, option IPDIVERT harus diaktifkan dalam kernel.

    DIVERT (mekanisme diversi paket kernel)
    Socket divert sebenarnya sama saja dengan socket IP biasa, kecuali bahwa socket divert bisa di bind ke port divert khusus lewat bind system call. IP address dalam bind tidak diperhatikan, hanya nomor port-nya yang diperhatikan. Sebuah socket divert yang dibind ke port divert akan menerima semua paket yang didiversikan pada port tersebut oleh mekanisme di kernel yang dijalankan oleh implementasi filtering dan program ipfw. Mekanisme ini yang dimanfaatkan nantinya oleh Network Address Translator.
    Itulah beberapa bahasan awal yang akan mengantar kita ke pembahasan inti selanjutnya.

    Network Address Translation (NAT)
    Dalam FreeBSD, mekanisme Network Address Translation (NAT) dijalankan oleh program Natd yang bekerja sebagai daemon. Network Address Translation Daemon (Natd) menyediakan solusi untuk permasalahan penghematan ini dengan cara menyembunyikan IP address jaringan internal, dengan membuat paket yang di-generate di dalam terlihat seolah-olah dihasilkan dari mesin yang memiliki IP address legal. Natd memberikan konektivitas ke dunia luar tanpa harus menggunakan IP address legal dalam jaringan internal.
    Natd menyediakan fasilitas Network Address Translation untuk digunakan dengan socket divert. Natd mengubah semua paket yang ditujukan ke host lain sedemikian sehingga source IP addressnya berasal dari mesin Natd. Untuk setiap paket yang diubah berdasarkan aturan ini, dibuat tabel translasi untuk mencatat transaksi ini.
    Dengan NAT, aturan bahwa untuk berkomunikasi harus menggunakan IP address legal, dilanggar.NAT bekerja dengan jalan mengkonversikan IP-IP address ke satu atau lebih IP address lain. IP address yang dikonversi adalah IP address yang diberikan untuk tiap mesin dalam jaringan internal (bisa sembarang IP). IP address yang menjadi hasil konversi terletak di luar jaringan internal tersebut dan merupakan IP address legal yang valid/routable.


    Mekanisme NAT
    Sebuah paket TCP terdiri dari header dan data. Header memiliki sejumlah field di dalamnya, salah satu field yang penting di sini adalah MAC (Media Access Control) address asal dan tujuan, IP address asal dan tujuan, dan nomor port asal dan tujuan.
    Saat mesin A menghubungi mesin B, header paket berisi IP A sebagai IP address asal dan IP B sebagai IP address tujuan. Header ini juga berisi nomor port asal (biasanya dipilih oleh mesin pengirim dari sekumpulan nomor port) dan nomor port tujuan yang spesifik, misalnya port 80 (untuk web).
    Kemudian B menerima paket pada port 80 dan memilih nomor port balasan untuk digunakan sebagai nomor port asal menggantikan port 80 tadi. Mesin B lalu membalik IP address asal & tujuan dan nomor port asal & tujuan dalam header paket. Sehingga keadaan sekarang IP B adalah IP address asal dan IP A adalah IP address tujuan. Kemudian B mengirim paket itu kembali ke A. Selama session terbuka, paket data hilir mudik menggunakan nomor port yang dipilih.
    Router (yang biasa – tanpa Natd) memodifikasi field MAC address asal & tujuan dalam header ketika me-route paket yang melewatinya. IP address, nomor port, dan nomor sequence asal & tujuan tidak disentuh sama sekali.
    NAT juga bekerja atas dasar ini. Dimulai dengan membuat tabel translasi internal untuk semua IP address jaringan internal yang mengirim paket melewatinya. Lalu men-set tabel nomor port yang akan digunakan oleh IP address yang valid. Ketika paket dari jaringan internal dikirim ke Natd untuk disampaikan keluar, Natd melakukan hal-hal sebagai berikut:
    1. Mencatat IP address dan port asal dalam tabel translasi
    2. Menggantikan nomor IP asal paket dengan nomor IP dirinya yang valid
    3. Menetapkan nomor port khusus untuk paket yang dikirim keluar, memasukkannya dalam tabel translasi dan menggantikan nomor port asal tersebut dengan nomor port khusus ini.
    Ketika paket balasan datang kembali, Natd mengecek nomor port tujuannya. Jika ini cocok dengan nomor port yang khusus telah ditetapkan sebelumnya, maka dia akan melihat tabel translasi dan mencari mesin mana di jaringan internal yang sesuai. Setelah ditemukan, ia akan menulis kembali nomor port dan IP address tujuan dengan IP address dan nomor port asal yang asli yang digunakan dulu untuk memulai koneksi. Lalu mengirim paket ini ke mesin di jaringan internal yang dituju. Natd memelihara isi tabel translasi selama koneksi masih terbuka.


    Perbedaan dengan sistem Proxy
    Hampir mirip dengan NAT, suatu jaringan kecil dengan proxy bisa menempatkan beberapa mesin untuk mengakses web dibelakang sebuah mesin yang memiliki IP address valid. Ini juga merupakan langkah penghematan biaya dibanding harus menyewa beberapa account dari ISP dan memasang modem & sambungan telepon pada tiap mesin.
    Namun demikian, proxy server ini tidak sesuai untuk jaringan yang lebih besar. Bagaimanapun, menambah hard disk dan RAM pada server proxy supaya proxy berjalan efisien tidak selalu dapat dilakukan (karena constraint biaya). Lagi pula, persentase web page yang bisa dilayani oleh cache proxy akan makin menurun sejalan dengan semakin menipisnya ruang kosong di hard disk, sehingga penggunaan cache proxy menjadi tidak lebih baik dari pada sambungan langsung. Tambahan lagi, tiap koneksi bersamaan akan meng-generate proses tambahan dalam proxy. Tiap proses ini harus menggunakan disk I/O channel yang sama, dan saat disk I/O channel jenuh, maka terjadilah bottle neck.
    NAT menawarkan solusi yang lebih fleksibel dan scalable. NAT menghilangkan keharusan mengkonfigurasi proxy/sock dalam tiap client. NAT lebih cepat dan mampu menangani trafik network untuk beribu-ribu user secara simultan.
    Selain itu, translasi alamat yang diterapkan dalam NAT, membuat para cracker di Internet tidak mungkin menyerang langsung sistem-sistem di dalam jaringan internal. Intruder harus menyerang dan memperoleh akses ke mesin NAT dulu sebelum menyiapkan serangan ke mesin-mesin di jaringan internal. Penting di ketahui bahwa, sementara dengan NAT jaringan internal terproteksi, namun untuk masalah security, tetap saja diperlukan paket filtering dan metoda pengamanan lainnya dalam mesin NAT.





    Contoh Kasus Installasi Natd

    Sebuah perusahaan kecil memiliki sejumlah komputer dan sambungan ke Internet. Komputer-komputer itu saat ini telah membentuk suatu LAN. Sambungan Internet-nya diasumskan berupa dedicated T1 link

    Langkah-langkah yang harus dilakukan
    1. Installasi FreeBSD
    Sediakan satu komputer untuk dijadikan Gateway. Penulis menyarankan penggunaan FreeBSD RELEASE 2.2.6 (Natd hanya jalan di FreeBSD 2.2.1 ke atas), karena selain gratis juga requirement hardware-nya tidak terlalu boros. PC 486 dengan 16 MB memory dan HD 850 MB juga sudah cukup mewah.
    Untuk mengetahui proses installasi FreeBSD, silahkan baca kembali tulisan-tulisan di Infokomputer sebelumnya dan manual FreeBSD sendiri.
    2. Installasi Gateway
    Pasang 2 network interface agar mesin ini menjadi gateway. Network Card (misal NE2000 atau 3COM) satu dihubungkan ke jaringan internal dan satu lagi untuk koneksi ke ISP. Misalnya dua-duanya NE2000 Compatible. maka nick untuk card yang menghadap ke dalam adalah ed0 dan untuk card yang menghadap keluar adalah ed1.
    Pastikan juga option gateway = ”YES” tertulis dengan benar dalam file rc.conf. Atau bisa juga dengan mengetik perintah: sysctl -w net.inet.ip.forwarding=1

    3. Installasi Firewall
    Pasang IP firewall di mesin FreeBSD ini. Caranya adalah :
    a. Edit kernel source di /usr/src/sys/i386/conf
    Tambahkan option-option berikut ini pada file kernel.

    options IPFIREWALL
    options IPFIREWALL_VERBOSE
    options “IPFIREWALL_VERBOSE_LIMIT=100”
    options IPDIVERT

    b. Compile kernel tersebut
    c. Aktifkan firewall di rc.conf dengan menambahkan

    firewall="YES"
    firewall_type="OPEN"

    3. Installasi Natd

  • Langkah-langkahnya adalah sbb:
    a. Download source nya di ftp://ftp.suutari.iki.fi/pub/natd
    b. Unzip dan untar archive tersebut dengan perintah
    gzip -dc natd_1.12.tar.gz tar -xvf -
    c. Lakukan make dan make install di direktori yang dihasilkan. Ketikkan perintah berikut:
    c natd_1.12
    make install
    d. Edit startup file supaya Natd berjalan secara otomatis
    Buat file natd.sh di /usr/local/etc/rc.d. Isi file tersebut adalah

    #!/bin/sh
    /sbin/ipfw -f flush
    /sbin/ipfw add divert 13494 ip from any to any via ed0
    /sbin/ipfw add pass all from 127.0.0.1 to 127.0.0.1
    /sbin/ipfw add pass ip from any to any
    /usr/local/sbin/natd -port 13494 -interface ed0

    Arti dari file ini adalah:
    v Hapuskan semua rule firewall
    v Tambahkan feature divert di port 13494 (Anda bisa mengganti ini dengan port yang Anda
  • inginkan) untuk mendiversi paket dari dan ke gateway lewat interface ed0
    v Bolehkan semua paket lewat di atas local host
    v Bolehkan semua paket IP lewat semua interface
    v Jalankan Natd dengan menjadi daemon yang menunggu di port 13494 via interface ed0.
    e. Reboot mesin FreeBSD-nya supaya setting bisa diaktifkan.

    4. Konfigurasikan TCP/IP Client.
    Jadikan nomor IP card ed0 di FreeBSD sebagai gateway dari tiap workstation, IP tiap-tiap work station harus berada dalam network yang sama dengan card ed0 yang ada di mesin gateway. Misal ed0 di-beri nomor IP 192.168.1.1 dan ed1 167.205.19.5, maka workstation diberi nomor IP 192.168.1.2 s/d 192.168.1.14 jika digunakan mask 16 atau 255.255.255.240. ed1 adalah interface yang memiliki IP address valid

    Setelah semuanya langkah-langkah di atas dijalankan dengan baik maka, applikasi Internet di client siap dijalankan via NAT.
    Untuk kasus lain misalnya sambungan ke Internet-nya menggunakan modem, maka mekanismenya sama saja, tinggal diganti interface di gateway yang menghadap keluar dengan interface modem (tun0) dan jalankan program ppp untuk men-dial ISP-nya. Khusus untuk dial-out, ppp sebenarnya memiliki mekanisme sendiri untuk kasus ini yaitu dengan option -alias. Jadi jika kita menjalankan ppp dengan option -alias maka kita tidak perlu menjalankan Natd, karena option ini menyediakan fasilitas yang sama dengan Natd khusus untuk dial-out.
    Natd hanyalah salah satu cara untuk menghemat persediaan IP address yang semakin menipis. Dengan adanya fakta bahwa untuk bergabung ke Internet, host pencari informasi (Client) sebenarnya tidak perlu memiliki IP address legal, maka IP address legal tersebut bisa dicadangkan untuk host-host penyedia informasi (Server). Penelitian untuk terus memperbaiki performansi Internet ini masih terus dikembangkan. Sekarang ini juga sedang dikembangkan model IP versi baru yaitu IP versi 6 (IPv6), yang bisa menampung lebih banyak lagi komputer-komputer di Internet. Namun demikian untuk kondisi sekarang, Natd masih merupakan solusi ampuh sebelum IPv6 diterapkan.

    Referensi

    Douba, Salim. Networking UNIX, The Complete Reference for UNIX networks. SAMS Publishing. 1995
    Unix Integration to WAN: Applied Computer Internetworking. CNRG ITB
    FreeBSD Handbook. FreeBSD Inc.


Senin, 06 Agustus 2007

Tugas TKJ

Jaringan komputer adalah sebuah sistem yang terdiri atas komputer dan perangkat jaringan lainnya yang bekerja bersama-sama untuk mencapai suatu tujuan yang sama. Tujuan dari jaringan komputer adalah:

Agar dapat mencapai tujuan yang sama, setiap bagian dari jaringan komputer meminta dan memberikan layanan (service). Pihak yang meminta layanan disebut klien (client) dan yang memberikan layanan disebut pelayan (server). Arsitektur ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer.

2. A. Jaringan Berdasarkan skala

Local Area Network biasa disingkat LAN adalah jaringan komputer yang jaringannya hanya mencakup wilayah kecil; seperti jaringan komputer kampus, gedung, kantor, dalam rumah, sekolah atau yang lebih kecil. Saat ini, kebanyakan LAN berbasis pada teknologi IEEE 802.3 Ethernet menggunakan perangkat switch, yang mempunyai kecepatan transfer data 10, 100, atau 1000 Mbit/s. Selain teknologi Ethernet, saat ini teknologi 802.11b (atau biasa disebut Wi-fi) juga sering digunakan untuk membentuk LAN. Tempat-tempat yang menyediakan koneksi LAN dengan teknologi Wi-fi biasa disebut hotspot.

Pada sebuah LAN, setiap node atau komputer mempunyai daya komputasi sendiri, berbeda dengan konsep dump terminal. Setiap komputer juga dapat mengakses sumber daya yang ada di LAN sesuai dengan hak akses yang telah diatur. Sumber daya tersebut dapat berupa data atau perangkat seperti printer. Pada LAN, seorang pengguna juga dapat berkomunikasi dengan pengguna yang lain dengan menggunakan aplikasi yang sesuai.

Berbeda dengan Jaringan Area Luas atau Wide Area Network (WAN), maka LAN mempunyai karakteristik sebagai berikut :

  1. Mempunyai pesat data yang lebih tinggi

  2. Meliputi wilayah geografi yang lebih sempit

  3. Tidak membutuhkan jalur telekomunikasi yang disewa dari operator telekomunikasi

Biasanya salah satu komputer di antara jaringan komputer itu akan digunakan menjadi server yang mengatur semua sistem di dalam jaringan tersebut.

ya salah satu komputer di antara jaringan komputer itu akan digunakan menjadi server yang mengatur semua sistem di dalam jaringan tersebut.

WAN adalah singkatan dari istilah teknologi informasi dalam bahasa Inggris: Wide Area Network merupakan jaringan komputer yang mencakup area yang besar sebagai contoh yaitu jaringan komputer antar wilayah, kota atau bahkan negara, atau dapat didefinisikan juga sebagai jaringan komputer yang membutuhkan router dan saluran komunikasi publik.

WAN digunakan untuk menghubungkan jaringan lokal yang satu dengan jaringan lokal yang lain, sehingga pengguna atau komputer di lokasi yang satu dapat berkomunikasi dengan pengguna dan komputer di lokasi yang lain.



B. Jaringan Berdasarkan fungsi

Pada dasarnya setiap jaringan komputer ada yang berfungsi sebagai client dan juga server. Tetapi ada jaringan yang memiliki komputer yang khusus didedikasikan sebagai server sedangkan yang lain sebagai client. Ada juga yang tidak memiliki komputer yang khusus berfungsi sebagai server saja. Karena itu berdasarkan fungsinya maka ada dua jenis jaringan komputer:

Yaitu jaringan komputer dengan komputer yang didedikasikan khusus sebagai server. Sebuah service/layanan bisa diberikan oleh sebuah komputer atau lebih. Contohnya adalah sebuah domain seperti www.detik.com yang dilayani oleh banyak komputer web server. Atau bisa juga banyak service/layanan yang diberikan oleh satu komputer. Contohnya adalah server jtk.polban.ac.id yang merupakan satu komputer dengan multi service yaitu mail server, web server, file server, database server dan lainnya.

Yaitu jaringan komputer dimana setiap host dapat menjadi server dan juga menjadi client secara bersamaan. Contohnya dalam file sharing antar komputer di Jaringan Windows Network Neighbourhood ada 5 komputer (kita beri nama A,B,C,D dan E) yang memberi hak akses terhadap file yang dimilikinya. Pada satu saat A mengakses file share dari B bernama data_nilai.xls dan juga memberi akses file soal_uas.doc kepada C. Saat A mengakses file dari B maka A berfungsi sebagai client dan saat A memberi akses file kepada C maka A berfungsi sebagai server. Kedua fungsi itu dilakukan oleh A secara bersamaan maka jaringan seperti ini dinamakan peer to peer.



C. Berdasarkan topologi jaringan

Topologi jaringan adalah, hal yang menjelaskan hubungan geometris antara unsur-unsur dasar penyusun jaringan, yaitu node, link, dan station. Topologi jaringan dapat dibagi menjadi 5 kategori utama seperti di bawah ini.

Topologi bintang merupakan bentuk topologi jaringan yang berupa konvergensi dari node tengah ke setiap node atau pengguna. Topologi jaringan bintang termasuk topologi jaringan dengan biaya menengah.

Kelebihan

  • Kerusakan pada satu saluran hanya akan mempengaruhi jaringan pada saluran tersebut dan station yang terpaut.

  • Tingkat keamanan termasuk tinggi.

  • Tahan terhadap lalu lintas jaringan yang sibuk.

  • Penambahan dan pengurangan station dapat dilakukan dengan mudah.

Kekurangan

  • Jika node tengah mengalami kerusakan, maka seluruh jaringan akan terhenti.

Penanganan

  • Perlunya disiapkan node tengah cadangan.

Topologi cincin adalah topologi jaringan dimana setiap titik terkoneksi ke dua titik lainnya, membentuk jalur melingkar membentuk cincin. Pada topologi cincin, komunikasi data dapat terganggu jika satu titik mengalami gangguan. Jaringan FDDI mengantisipasi kelemahan ini dengan mengirim data searah jarum jam dan berlawanan dengan arah jarum jam secara bersamaan.

Topologi Bus menyediakan 1 saluran untuk komunikasi semua perangkat sehinga setiap perangkat harus bergantian menggunakan seluran tersebut. Oleh karenanya hanya ada 2 perangkat yang saling berkomunikasi dalam suatu saat.
Untuk mengefisiensikan penggunaan jaringan, digunakan metode CSMA/CD (Carrier Sense Multiple Access / Collision Detected) yang dapat mengurangi terjadinya masa tenggang (saluran kosong) dengan mendeteksi tabrakan informasi.





Karakteristik jaringan dengan topologi Bus :
- biaya instalasi sangat murah
- kecepatan rata-rata transfer informasi untuk setiap perangkat sangat lambat karena harus bergantian menggunakan saluran
- sulit untuk manajemen jaringan
- sulit untuk expand (menambah) jaringan

Topologi mesh (berantakan) diimplementasikan untuk menyedia-kan sebanyak mungkin perlindungan dari interupsi pengiriman data. sebagai contoh, pembangkit tenaga nuklir mungkin mengguna-kan topologi mesh ini. Topologi yang benar-benar dalam suatu sistem kendali (controling). Sebagaiamana dapat dilihat dari gambar dibawah ini, setiap host mempunyai koneksi sendiri ke semua host. Meskipun Internet mempunyai beberapa jalur ke semua lokasi, tetapi tidak mengadopsi topologi ini secara penuh.



Setiap jenis topologi di atas masing-masing memiliki kelebihan dan kekurangan. Pemilihan topologi jaringan didasarkan pada skala jaringan, biaya, tujuan, dan pengguna.