Archive for the 'Linux' Category

Seting-Router-Linux-Standart

Thursday, August 16th, 2007

Pertama yang harus di lakukan adalah mensetting mgw(main gateway) supaya bisa connect ke internet. Sebelum Mensetting :

1. Minta IP public ke ISP lengkap dengan netmask,broadcast dan dns-nya misalnya :

RANGE : 202.159.121.0/29

IP : 202.159.121.2

GATEWAY : 202.159.121.1

Nemast : 255.255.255.248

Broadcast : 202.159.121.7

DNS1 : 202.159.0.10

DNS2 : 202.159.0.20

berarti kita mendapatkan ip 5 buah dari 202.159.121.2 - 202.159.121.6

2. Menentukan IP local yang akan kita gunakan buat client

Setting IP MGW : [root@mgw kiki]$ vi /etc/sysconfig/network

lalu isi dengan :

NETWORKING=yes

HOSTNAME=mgw.domain.com

GATEWAY=202.159.121.1

lalu simpen dengan menekan :wq

3. Menconfigurasi IP eth0(default)

[root@mgw root]$ vi /etc/sysconfig/network-scripts/ifcfg-eth0

lalu isi dengan :

DEVICE=eth0

BOOTPROTO=static

IPADDR=202.159.121.2

BROADCAST=202.159.121.7

NETMASK=255.255.255.249

onfiltered=yes

USERCTL=no

lalu simpen dengan menekan :wq

4. Setting dns resolve

[root@mgw root]$ vi /etc/resolve.conf

lalu isi dengan nameserver dari isp kita tadi :

nameserver 202.159.0.10

nameserver 202.159.0.20

lalu simpen dengan menekan :wq

5. Setting ip_forwarding

[root@mgw kiki]$ vi /etc/sysctl.conf

rubah net.ipv4.ip_forward = 0 menjadi net.ipv4.ip_forward = 1

atau kalau gak ada net.ipv4.ip_forward = 0 tambahin net.ipv4.ip_forward = 1

simpen dengan menekan :wq

6. Restart network

[root@mgw kiki]$ /etc/init.d/network restart

Shutting down interface eth0: [ OK ]

Shutting down loopback interface: [ OK ]

Disabling IPv4 packet forwarding: [ OK ]

Setting network parameters: [ OK ]

Bringing up loopback interface: [ OK ]

Bringing up interface eth0: [ OK ]

[root@www root]#chkconfig –level 2345 network on

[root@www root]#

7. Testing dengan ngeping ke default gateway 202.159.121.1

[root@mgw kiki]$ ping 202.159.121.1

PING 202.159.121.1 (202.159.121.1) 56(84) bytes of data.

64 bytes from 202.159.121.1: icmp_seq=1 ttl=63 time=0.356 ms

64 bytes from 202.159.121.1: icmp_seq=2 ttl=63 time=0.269 ms

64 bytes from 202.159.121.1: icmp_seq=3 ttl=63 time=0.267 ms

64 bytes from 202.159.121.1: icmp_seq=4 ttl=63 time=0.268 ms

— 202.159.121.1 ping statistics —

4 packets transmitted, 4 received, 0% packet loss, time 2997ms

rtt min/avg/max/mdev = 0.267/0.290/0.356/0.038 ms

8. Testing untuk ngeping google.com untuk ngecek dns-nya, kalau muncul :

PING google.com (216.239.39.99) 56(84) bytes of data, berarti dns kita untuk mgw dah bekerja, tapi kalau muncul = ping: unknown host google.com

berarti dns yang kita isikan di /etc/resolve.conf masih salah,silahkan cek lagi ke ISP nya. Nah bereskan sudah setting IP untuk mgw-nya, supaya mgw ini bisa sekaligus digunakan sebagai dns server oleh client maka harus di install daemon bind atau daemon nameserver yang lain atau kalau sudah ada tinggal hidupkan bind-nya.

[root@www root]# /etc/init.d/named restart

Stopping named: [ OK ]

Starting named: [ OK ]

[root@www root]#chkconfig –level 2345 named on

[root@www root]#

Misalnya ip ke client adalah :

192.168.0.1/24

IP : 192.168.0.1

Netmask : 255.255.255.0

Broadcast : 192.168.0.255

RANGE IP CLIENT : 192.168.0.2-192.168.0.254

1. Setting ip untuk eth1 (yang ke client)

[root@mgw kiki]$ vi /etc/sysconfig/network-scripts/ifcfg-eth1

lalu isi dengan :

DEVICE=eth1

BOOTPROTO=static

IPADDR=192.168.0.1

NETMASK=255.255.255.0

BROADCAST=192.168.0.255

onfiltered=yes

USERCTL=no

lalu simpen dengan menekan :wq

2. Restart networknya

[root@mgw root]$ /etc/init.d/network restart

Shutting down interface eth0: [ OK ]

Shutting down interface eth1: [ OK ]

Shutting down loopback interface: [ OK ]

Disabling IPv4 packet forwarding: [ OK ]

Setting network parameters: [ OK ]

Bringing up loopback interface: [ OK ]

Bringing up interface eth0: [ OK ]

Bringing up interface eth1: [ OK ]

3. Testing dengan cara ping ip eth1

[root@mgw kiki]$ ping 192.168.0.1

PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

64 bytes from 192.168.0.1: icmp_seq=1 ttl=63 time=0.356 ms

64 bytes from 192.168.0.1: icmp_seq=2 ttl=63 time=0.269 ms

64 bytes from 192.168.0.1: icmp_seq=3 ttl=63 time=0.267 ms

64 bytes from 192.168.0.1: icmp_seq=4 ttl=63 time=0.268 ms

— 192.168.0.1 ping statistics —

4 packets transmitted, 4 received, 0% packet loss, time 2997ms

rtt min/avg/max/mdev = 0.267/0.290/0.356/0.038 ms

Tinggal Setting IP computer client dengan ketentuan di bawah ini :

IP : 192.168.0.2 - 192.168.0.254

GATEWAY : 192.168.0.1

NETMASK : 255.255.255.0

BROADCAST : 192.168.0.255

NAMESERVER : 192.168.0.1

Misal :

Client01

===============================

IP : 192.168.0.2

GATEWAY : 192.168.0.1

NETMASK : 255.255.255.0

BROADCAST : 192.168.0.255

NAMESERVER : 192.168.0.1

Client02

===============================

IP : 192.168.0.3

GATEWAY : 192.168.0.1

NETMASK : 255.255.255.0

BROADCAST : 192.168.0.255

NAMESERVER : 192.168.0.1

Dan seterusnya sesuai banyaknya client,yang berubah hanya IP untuk client windows maka setting IP di bagian Start Menu/Setting/Control Panel/Network.

Setelah di setting ip client, maka coba ping ke 192.168.0.1 dari client,kalau berhasil berarti client dan MGW nya sudah tersambung.

Setting MGW supaya client bisa internet dengan menggunakan NAT

1. Matikan iptablesnya

[root@mgw root]# /etc/init.d/iptables stop

Flushing all chains: [ OK ]

Removing user defined chains: [ OK ]

Resetting built-in chains to the default ACCEPT policy: [ OK ]

[root@mgw root]#

2. Tambahkan iptables untuk Source NAt sesuai dengan ip di eth0

[root@mgw root]# /sbin/iptables -t nat -A POSTROUTING -o eth0 -s

192.168.0.0/24 -j SNAT –to-source 202.159.121.2

[root@mgw root]# /sbin/iptables-save > /etc/sysconfig/iptables

[root@mgw root]# /etc/init.d/iptables restart

Flushing all current rules and user defined chains: [ OK ]

Clearing all current rules and user defined chains: [ OK ]

Applying iptables firewall rules: [ OK ]

[root@mgw root]# iptables-save

SNAT sudah,SNAT disini standar sekali dan gak ada proteksi untuk mengetestnya kita browser di client lalu buka google.com, kalau jalan berati kita sudah berhasil :) .

Wassallam

Konfigurasi Squid

Saturday, January 13th, 2007

Catatan:
- Penginstalan dengan metode ini telah berhasil dilakukan pada sistem RH6.2, RH7.0, RH7.1, dan RH7.2
- Squid yang telah digunakan adalah squid-2.4.STABLE1-src.tar.gz dan squid-2.4.STABLE4-src.tar.gz, squid-2.4.STABLE6-src.tar.gz
o>Persiapan:
Downloadlah file-file yang dibutuhkan untuk instalasi dan optimasi squid pada direktori yg anda suka (misal /var/tmp):
- squid-2.4.STABLE6-src.tar.gz (bisa didapat di www.squid-cache.org)
- malloc.tar.gz (bisa didapat di http://debian.web.id/download/lib/malloc.tar.gz)
- floppy.tgz (bisa didapat di http://debian.web.id/download/systool/floppy.tgz)
o> Langkah-langkah instalasi:
Konfigurasi dan Optimasi Squid
——————————-
- ekstraklah file squid hasil d/l an
# tar zxvf squid-2.4.STABLE6-src.tar.gz
- squid proxy server tidak dapat berjalan sebagai super user root, oleh karena itu, buatlah user yang akan menjalankan squid:
# useradd -d /cache/ -r -s /dev/null squid >/dev/null 2>&1
# mkdir /cache/ —- anda tidak perlu mengetikkan perintah ini jika anda telah membuat partisi /cache pada saat penginstalan linux pertama kali.
# chown -R squid.squid /cache/
- editlah file icons/Makefile.in dengan text editor yang anda suka dan gantilah baris:
DEFAULT_ICON_DIR = $(sysconfdir)/icons
menjadi:
DEFAULT_ICON_DIR= $(libexecdir)/icons
- editlah file src/Makefile.in dengan text editor yang anda suka dan gantilah baris:
DEFAULT_CACHE_LOG = $(localstatedir)/logs/cache.log
menjadi:
DEFAULT_CACHE_LOG = $(localstatedir)/log/squid/cache.log
DEFAULT_ACCESS_LOG = $(localstatedir)/logs/access.log
menjadi:
DEFAULT_ACCESS_LOG = $(localstatedir)/log/squid/access.log
DEFAULT_STORE_LOG = $(localstatedir)/logs/store.log
menjadi:
DEFAULT_STORE_LOG = $(localstatedir)/log/squid/store.log
DEFAULT_PID_FILE = $(localstatedir)/logs/squid.pid
menjadi:
DEFAULT_PID_FILE = $(localstatedir)/run/squid.pid
DEFAULT_SWAP_DIR = $(localstatedir)/cache
menjadi:
DEFAULT_SWAP_DIR = /cache
DEFAULT_ICON_DIR = $(sysconfdir)/icons
menjadi:
DEFAULT_ICON_DIR = $(libexecdir)/icons
Maksud dari pengeditan file di atas adalah untk mengubah lokasi default dari file cache.log, access.log, dan store.log agar ditempatkan di dalam direktori
/var/log/squid, dan meletakkan pid (process identification) squid di direktori /var/run, serta menyimpan direktori icons di /usr/lib/squid/icons.
Menggunakan GNU malloc library untuk meningkatkan cache performance squid
————————————————————————-
- kopikan malloc.tar.gz ke direktori /var/tmp
# cp malloc.tar.gz /var/tmp
- ekstrak dan compile malloc
# cd /var/tmp
# tar zxvf malloc.tar.gz
# cd malloc
# export CC=egcs
# make
- kopikan library hasil kompilasi malloc (libmalloc.a) ke lib direktori linux anda
# cp libmalloc.a /usr/lib/libgnumalloc.a
- kopikan file malloc.h hasil kompilasi malloc ke direktori system include linux anda
# cp malloc.h /usr/include/gnumalloc.h
Kompilasi dan Optimasi Squid
—————————-
- Masuklah kembali ke direktori di mana terdapat source squid
# cd /var/tmp/squid-2.4.STABLE6
- Ketikkan command berikut di komputer anda:
CC=”egcs”
./configure
–prefix=/usr
–exec-prefix=/usr
–bindir=/usr/sbin
–libexecdir=/usr/lib/squid
–localstatedir=/var
–sysconfdir=/etc/squid
–enable-delay-pools
–enable-cache-digests
–enable-poll
–disable-ident-lookups
–enable-truncate
Command-command tersebut di atas akan sangat berarti sekali jika anda membaca help file yang disediakan :) (just type ./configure –help)
- Sekarang kita lakukan kompilasi dan instalasi squid, cukup ketikkan command-command berikut pada linux anda:
# make -f makefile
# make install
# mkdir -p /var/log/squid
# rm -rf /var/logs/
# chown squid.squid /var/log/squid/
# chmod 750 /var/log/squid/
# chmod 750 /cache/
# rm -f /usr/sbin/RunCache
# rm -f /usr/sbin/RunAccel
# strip /usr/sbin/squid
# strip /usr/sbin/client
# strip /usr/lib/squid/unlinkd
# strip /usr/lib/squid/cachemgr.cgi
Menggunakan script-script yang ada pada file floppy.tgz
——————————————————-
- ekstrak file floppy.tgz (misal ke /var/tmp)
# tar zxvf floppy.tgz
- kopikan script2 yg dibutuhkan oleh squid ke direktori yang sesuai
# cd /var/tmp/floppy
# cp /var/tmp/floppy/Squid/init.d/squid /etc/rc.d/init.d/
# cp /var/tmp/floppy/Squid/logrotate.d/squid /etc/logrotate.d/
Mengedit file konfigurasi squid
——————————-
- editlah file squid.conf yg terletak pada direktori /etc/squid/ dengan text editor yg anda suka (misal vi, pico, joe, atau mcedit)
# vi /etc/squid/squid.conf
Pada artikel ini saya tidak akan membahas semua option yang ada pada squid.conf, saya hanya akan membahas option-option yang dirasa penting untuk menjalankan squid dan berpengaruh besar dalam optimasi squid.
http_port 3128
Option ini akan menentukan di port berapa squid akan berjalan (biasanya di port 3128 dan 8080)
icp_port 0
Option ini akan menentukan melalui port berapa squid akan mengirimkan dan menerima request ICP dari proxy cache tetangga.
cache_mem 32 MB
Option ini menentukan berapa besar memory yang akan digunakan oleh squid, defaultnya adalah 8 MB yaitu default yang cocok untuk digunakan pada
banyak sistem. Namun jika anda memiliki memory yang berlebih, maka disarankan untuk menaikkannya. Ada yang berpendapat bahwa nilai ini
didapat dari sepertiga memory bebas bagi squid.
cache_dir ufs /cache 1600 4 256
Option pada cache_dir menentukan sistem penyimpanan seperti apa yang akan digunakan (ufs), nama direktori tempat penyimpanan cache (/cache), ukuran
disk dalam megabytes yang digunakan oleh direktori tempat penyimpanan cache (1600 Mbytes), jumlah subdirektori pertama yang akan dibuat di bawah /cache (4),
dan jumlah subdirektori kedua yang akan diciptakan di bawah subdirektori pertama tadi (256).
Nilai2 pada option cache_dir tadi harus disesuaikan dengan sistem yang anda miliki, biasanya yang harus disesuaikan hanyalah tempat penyimpanan cache, ukuran disk,
dan jumlah subdirektori yang akan dibuat. Mengenai angka2 tersebut, dapat kita peroleh dari rumus yang telah disediakan oleh Mas Devshed untuk optimasi sbb:
1. Gunakan 80% atau kurang dari setiap kapasitas cache direktori yang telah kita siapkan. Jika kita mengeset ukuran cache_dir kita melebihi nilai ini,
maka kita akan dapat melihat penurunan performansi squid.
2. Untuk menentukan jumlah subdirektori pertama yang akan dibuat, dapat menggunakan rumus ini:
x=Ukuran cache dir dalam KB (misal 6GB=~6,000,000KB) y=Average object size (gunakan saja 13KB)
z= Jumlah subdirektori pertama = (((x / y) / 256) / 256) * 2 = # direktori
Sebagai contoh, misal saya menggunakan 6 GB dari untuk /cache (setelah disisihkan 80% nya), maka:
6,000,000 / 13 = 461538.5 / 256 = 1802.9 / 256 = 7 * 2 = 14
maka baris cache_dir akan menjadi seperti ini: cache_dir ufs 6000 14 256
cache_store_log none
Option ini akan melog setiap aktivitas dari storage manager. Log ini akan memperlihatkan objek-objek mana saja yang dikeluarkan dari cache, dan objek-objek mana saja yang disimpan dan untuk brp lama objek tersebut disimpan. Karena biasanya tidak ada gunanya untuk menganalisis data ini, maka disarankan untuk didisable.
negative_ttl 2 minutes
Default dari option ini adalah 5 menit, tetapi Mas Moh. J. Kabir menyarankan agar direndahkan menjadi 2 dan jika mungkin menjadi 1 menit. Kenapa settingannya seperti itu? Mas Moh. J. Kabir menjelaskan bahwa kita menginginkan proxy yang kita miliki setransparan mungkin. Jika seorang user mencari halaman web yang dia yakin itu ada, maka kita pasti tidak ingin adanya waktu lag antara URL menuju dunia dan kemampuan user untuk mengaksesnya.
cache_effective_user squid
cache_effective_group squid
Jika squid cache dijalankan oleh root, maka user yang akan menjalankannya akan diubah sesuai UID/GID user yang disebutkan pada option di atas. Pada contoh option di atas jika squid dijalankan oleh root, maka squid cache akan dijalankan dengan UID/GID squid.
maximum_object_size 1024 KB
Dengan option ini, ukuran file maksimum yang disimpan oleh squid cache bisa dibatasi. Dengan kata lain objek yang lebih besar dari bilangan ini tidak akan disaved ke dalam disk yang sudah disisihkan buat cache (misal /cache).
minimum_object_size 4 KB
Dengan option ini maka objek yang lebih kecil dari bilangan yang disebutkan tidak akan disaved ke dalam disk yang sudah disisihkan buat cache. Ada tambahan dari artikel yang ditulis Mas Jay bahwa ukuran file minimum yang dicache bertujuan mengefektifkan filesystem di mana biasanya ext2 diformat dengan 4 KB inode.
ftp_user hakiki@ciputnet.com This email address is being protected from spam bots, you need Javascript enabled to view it
Dengan option ini, maka ketika klien mengakses situs ftp anonymous, email address di atas akan dikirim sebagai password bagi ftp server anonymous.
reference_age 1 month
Dengan option ini, maka file cache yang tidak pernah diakses lagi selama nilai parameter di atas, akan dihapus secara otomatis oleh squid.
acl PazzNET src 192.168.1.0/255.255.255.0
http_access allow PazzNET
http_access deny all
Option-option tersebut menentukan subnet mana yang boleh mengakses proxy squid. Jika ada beberapa subnet, kita bisa menambahkan definisi acl nya.
cache_mgr hakiki@ciputnet.com This email address is being protected from spam bots, you need Javascript enabled to view it
Email-address dari local cache manager yang akan menerima email jika cache mati.Email ini pulalah yang akan muncul pada browser klien jika terjadi suatu kesalahan ketika mengakses suatu web via proxy squid.
visible_hostname hakiki.ciputnet.com
Informasi ini dikirim sebagai footer pada saat pesan error tampil di layar browser klien.
half_closed_clients off
Beberapa klien dapat membatalkan koneksi TCP nya, dengan membiarkan bagian penerimaaannya terbuka. Kadang-kadang squid tidak dapat membedakan antara koneksi TCP yang half-closed dan full-closed. Defaultnya, koneksi half-closed tetap terbuka sampai pembacaan dan penulisan pada soket memunculkan pesan error. Ubahlah nilai ini ke off, maka squid dengan serta merta akan menutup koneksi client jika tidak ada data yang dibaca lagi.
Saran Mas Devshed yang lain untuk meningkatkan performance:
cache_swap_high 100%
cache_swap_low 80%
Setelah semua selesai dilakukan, cobalah start squid anda dan rasakanlah perbedaannya :)
# /etc/rc.d/init.d/squid start
Jika ada error, jangan panik, carilah letak kesalahan dengan selalu memonitor log
# tail -f /var/log/messages
Jika masih ada error, berdo’alah, dan tanyakan pada forum2 linux di kota2 anda atau di #indolinux tentunya :)~
Pengembangan lebih lanjut untuk optimasi squid :
- Gunakan filesystem ReiserFS pada partisi cache direktori
- Gunakan 7200 RPM UDMA 66 drives atau fast (7200 atau 10k RPM) SCSI drives.Tweak dengan patch Andre Hedrick’s Unified IDE patch.
- Besarkan RAM
Wassalaamu’alaikum Wr Wb
Reference:
———-
1. Mourani, Gerhard, Securing and Optimizing Redhat Linux
2. Devshed, www.devshed.com
3. Squid.conf
4. FAQ
5. Kabir, MJ. Redhat Linux 6 Server