Project Internet Sharing, DNS, Webserver : Linux Based dengan Proxy Squid, DHCP, Apache, dan Bind

| Posted in Apache, DNS, Linux Server, Project, Squid

Hari libur Imlek ini kusempatkan menulis tutorial yang pernah saya implementasikan akhir bulan lalu.  Project ini di sebuah perusahaan Publishing dan Media Marketing Group di daerah Jakarta Selatan yang dimiliki orang bule.  Project ini bertahap, dari pergantian sistem internet sharing sampai pergantian sistem mailserver di kantor mereka.

Kali ini saya tulis mengenai Project Internet Sharing mengunakan Linux Based dengan Proxy SquidDHCP, Bandwidth Management. Sistem baru ini saya tawarkan untuk menggantikan sistem lama yang mengunakan router hardware yang menurut IT Staffnya  sering hang dan feature didalamnya sangat terbatas. Dengan sistem baru diharapkan lebih powerful untuk menjembatani IT Staff dengan user. Setelah aku memahami topology jaringan disana lalu aku membuat penawaran. Mereka menerima model penawaran dari internet sharing dan mailserver, setelah cocok dalam harga akhirnya saya mulai pekerjaan ini, perusahaan ini telah membeli server baru untuk menambah kekuatan sistem ini.  Pekerjaan untuk instalasi dan konfigurasi dilakukan secara remote. Sistem operasi menggunakan Linux Centos sudah diinstall default oleh IT nya dan saya tinggal mengkonfigurasi secara remote menggunakan Putty untuk kebutuhan internet sharing ini. IT stafnya juga meminta tambahan agar server ini diisi DNS untuk domain kantor dan Apache sebagai webserver untuk hosting website kantor. Berikut Instalasi dan konfigurasinya :

Internet Sharing :

-Sistem operasi Linux Centos 5.2
-DHCP Server :

[root@indomulti gtoms]#yum install dhcp
Setting up Install Process
Parsing package install arguments
Resolving Dependencies—> Running transaction check—-> Package dhcp.i386 12:3.0.5-13.el5 set to be updated—> Finished Dependency Resolution Dependencies Resolved
=========================================================================
Package Arch Version Repository Size
=========================================================================
Installing:
dhcp i386 12:3.0.5-13.el5 base 874 k
Transaction Summary
=========================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 874 k
Is this ok [y/N]:

.....................skip…......................

[root@indomulti gtoms]#nano /etc/dhcpd.conf

ddns-update-style interim;
ignore client-updates;

  1. network 192.168.0.9/24
    subnet 192.168.0.254 netmask 255.255.255.0 {
  1. gateway
    option routers 192.168.0.9;
  1. netmask
    option subnet-mask 255.255.255.0;
  1. domain
    option domain-name “indoxxxxxxxx.co.id”;
  1. dns server
    option domain-name-servers 202.xx.xx.x, 202.xx.xx.8, 192.168.0.9;
  1. wins server

#option netbios-name-servers 192.168.0.15;

  1. alokasi ip dinamik
    range dynamic-bootp 192.168.0.10 192.168.0.250;
    default-lease-time 43200;
    max-lease-time 604800;

}

[root@indomulti gtoms]#/etc/init.d/dhcpd start
[root@indomulti gtoms]#/sbin/chkconfig—level 345 dhcpd on

Contoh log dhcp :

[root@indomulti gtoms]# tail -f /var/log/messages

Dec 17 19:04:42 indomulti dhcpd: DHCPREQUEST for 192.168.0.16 (192.168.0.2) from 00:17:31:4a:80:ac (server1) via eth0
Dec 17 19:04:42 indomulti dhcpd: DHCPACK on 192.168.0.16 to 00:17:31:4a:80:ac (server1) via eth0
Dec 17 19:05:28 indomulti dhcpd: DHCPREQUEST for 192.168.0.14 from 00:0a:e6:db:ce:5b (eddy-com) via eth0
Dec 17 19:05:28 indomulti dhcpd: DHCPACK on 192.168.0.14 to 00:0a:e6:db:ce:5b (eddy-com) via eth0

Proxy Server Squid :

[root@indomulti etc]# yum install squid
Setting up Install Process
Parsing package install arguments
Resolving Dependencies—> Running transaction check—-> Package squid.i386 7:2.6.STABLE6-5.el5_1.3 set to be updated—> Processing Dependency: perl(URI::URL) for package: squid—> Running transaction check—-> Package perl-URI.noarch 0:1.35-3 set to be updated—> Finished Dependency Resolution

Dependencies Resolved

=========================================================================
Package Arch Version Repository Size
=========================================================================
Installing:
squid i386 7:2.6.STABLE6-5.el5_1.3 base 1.2 M
Installing for dependencies:
perl-URI noarch 1.35-3 base 116 k

Transaction Summary
=========================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 1.3 M
Is this ok [y/N]: y
...................skip…..............................

[root@indomulti etc]#nano /etc/squid/squid.conf
disini squid.conf dikonfigurasikan sebagai transparant proxy, dan settingan advanced lainnya agar squid dapat menjadi server proxy ke client yang tangguh.

[root@indomulti etc]#/usr/sbin/squid -z

[root@indomulti etc]#/etc/init.d/squid start

Settingan Iptables dan forwarding ip :

[root@indomulti etc]#echo 1 > /proc/sys/net/ipv4/ip_forward
[root@indomulti etc]#/sbin/iptables A PREROUTING -t nat -j REDIRECT -p tcp -s 192.168.0.0/24 -d 0/0—dport 80—toports 3128
[root@indomulti etc]#/sbin/iptables -A POSTROUTING -j MASQUERADE -t nat -s 192.168.0.0/24 -o eth1
Hasil log squid yang sudah berjalan :

[root@indomulti etc]#tail -f /var/log/squid/access.log

1229516070.255 549 192.168.0.44 TCP_MISS/200 56100 GET http://img.ads.kompas.com/banner/bca_media_tp1_expand.swf – DIRECT/202.146.4.86 application/x-shockwave-flash
1229516070.700 1774 192.168.0.31 TCP_MISS/200 27734 POST http://mail.google.com/mail/? – DIRECT/209.85.143.18 text/javascript
1229516070.914 837 192.168.0.75 TCP_MISS/200 493 POST http://shttp.msg.yahoo.com/notify/ – DIRECT/66.163.181.12 text/plain

Selanjutnya mensetting content filtering dan lalu lintas hak akses internet di client menggunakan file squid.conf. Dan mensetting bandwitdh management menggunakan HTB.

Konfigurasi Bind DNS server yang menjadi primary nameserver(ns1) domain .co.id perusahaan ini :

[root@indomulti etc]#yum install bind-chroot
konfigurasi Bind yang berjalan secara chroot.

[root@indomulti etc]#nano /var/named/chroot/etc/named.conf
disini membuat zone domain perusahaan ini yang berisi NS, MX, dan syarat-syarat lainnya jika mesin ini dijadikan Primary DNS.

[root@indomulti]# /etc/init.d/named start
Starting named: [ OK ]
[root@indomulti]# tail -f /var/log/messages
Dec 11 03:01:17 indomulti named[6043]: loading configuration from ‘/etc/named.conf’
Dec 11 03:01:17 indomulti named[6043]: listening on IPv4 interface lo, 127.0.0.1#53
Dec 11 03:01:17 indomulti named[6043]: listening on IPv4 interface eth1, 202.xx.xx.83#53
Dec 11 03:01:17 indomulti named[6043]: command channel listening on 127.0.0.1#953
Dec 11 03:01:17 indomulti named[6043]: zone indoxxxxx.co.id/IN: loaded serial 2008121001
Dec 11 03:01:17 indomulti named[6043]: running
Dec 11 03:01:17 indomulti named[6043]: zone indoxxxxxx.co.id/IN: sending notifies (serial 2008121001)
Dec 11 03:01:17 indomulti named[6043]: client 202.xx.xx.83#32801: received notify for zone ‘indoxxxxxx.co.id’

Konfigurasi Apache Webserver yang menghosting file-file website perusahaan ini :

[root@indomulti etc]#yum instll httpd httpd-devel
Direktori tempat konfigurasi Apache : /etc/httpd/conf/httpd.conf
Untuk menjalakan service httpd : /etc/init.d/httpd start

Disini saya tidak melampirkan proses pembuatan webserver yang dijadikan tempat file-file website perusahaan ini.

Untuk melengkapi fungsi webserver ditambahkan juga php dan mysql.

Langkah terakhir adalah menginstall webmin untuk memudahkan IT staff mengadministrasi semua program diatas via web based :

Install webmin :
[root@indomulti etc]##yum y install perlNet-SSLeay
[root@indomulti etc]#wget http://superb-east.dl.sourceforge.net/sourceforge/webadmin/webmin-1.380-1.noarch.rpm
[root@indomulti etc]#rpm i webmin1.380-1.noarch.rpm
[root@indomulti gtoms]# rpm i webmin1.441-1.noarch.rpm
Operating system is CentOS Linux
warning: /etc/pam.d/webmin saved as /etc/pam.d/webmin.rpmorig
warning: /etc/sysconfig/daemons/webmin saved as /etc/sysconfig/daemons/webmin.rpmorig
Webmin install complete. You can now login to https://indomulti:10000/
as root with your root password.

Sete lah selesai saya memberikan training ke IT staffnya, dan artikel ini akan berlanjut dengan Project Mailserver menggunakan Zimbra untuk menggantikan sistem mailserver mereka yang sebelumnya menggunakan qmail.

Comments (3)

mas, sekalian install mrtg nya aja, biar lebih mudah monitor trafiknya

bener, itu dipasangin mrtg jg di server squidnya, dan client ini jg dapet mrtg(cacti) dari sisi ISP nya…

Mas, bisa setting DMZ g di debian?? klo bisa, mhon di tuliskan tutorialnya dunk…

thank’s…

Write a comment