tag:blogger.com,1999:blog-50310671773318607752024-02-07T06:18:49.350-08:00click howtoJust click howto, enjoy itHenry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-5031067177331860775.post-31899999770379061152009-01-18T18:12:00.000-08:002009-01-18T18:30:18.886-08:00Bagaimana agar Internal(LAN) server dapat diakses dari Internet ?<span style="font-weight:bold;">Henry Saptono </span><br /><br />Hampir sebagian besar perusahaan memiliki jaringan komputer didalamnya untuk menunjang pekerjaan dan usahanya. Didalam jaringan komputer tersebut umumnya tersedia berbagai service atau layanan seperti web, email, database, file server dan lain-lain. Bahkan sebagian besar perusahaan saat ini memiliki web site sebagai suatu media informasi dan bahkan juga sebagai media transasksi usaha mereka, yang sudah tentu dapat menunjang bisnis mereka. Beberapa perusahaan juga membangun berbagai aplikasi sistem informasi yang dibutuhkan dalam bentuk web (web based). Email juga menjadi layanan yang sangat dibutuhkan oleh perusahaan untuk berkomunikasi dengan pihak lain dengan cepat dan murah. Jadi bisa kita bayangkan bahwa kebutuhan akan layanan-layanan jaringan seperti web dan email server menjadi sangat penting saat ini disamping layanan lainnya. Dan layanan-layanan itu mungkin juga harus dapat diakses dari internet tidak hanya dari internal network (LAN).<br /><br />Ketika suatu perusahaan berencana ingin membuat dan mengelola sendiri web server dan email server serta beberapa server lainnya yang dapat diakses dari internet tidak hanya dari internal network (LAN) maka dibutuhkan akses internet yang memadai. Maksud memadai disini adalah tersedia bandwidth yang cukup besar untuk memungkinkan proses transfer data yang lebih baik, dan tersedia beberapa IP public untuk beberapa komputer server (server web, email, dan lain-lain). Permasalahan timbul ketika kita hanya memperoleh sebuah IP public atau IP public yang tersedia tidak mencukupi untuk sejumlah komputer server yang akan kita buat. Untungnya dengan teknik NAT/DNAT kita dapat menyelesaikan permasalahan tersebut.<br /><br />Dalam artikel kali ini penulis akan menjelaskan bagaimana agar internal (private) server dapat diakses dari internet dengan teknik NAT/DNAT menggunakan shorewall firewall. Dalam artikel ini penulis menggunakan sebuah komputer yang akan dijadikan sebagai gateway/firewall yang nantinya bertindak sebagai pendistribusi traffic dari internet ke beberapa server yang menyediakan layanan-layanan seperti web dan email server yang terdapat dalam internal network (LAN). Dan komputer yang akan dijadikan gateway/firewall tersebut menggunakan sistem operasi Linux CentOS 5.<br /><br /><span style="font-weight:bold;">Skenario</span><br />Sebelumnya penulis mengasumsikan pembaca telah mengerti bagaimana melakukan instalasi sistem linux CentOS 5 dan instalasi shorewall paket binary rpm ( http://www.invoca.ch/pub/packages/shorewall/4.0/) atau pembaca dapat membaca artikel atau tutorial lainnya yang berkaitan dengan instalasi linux CentOS 5 serta manajemen software di linux khususnya manajemen paket rpm. Untuk memudahkan penjelasan, penulis membuat sebuah skenario sebagaimana yang tampak pada gambar 1. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn71q8kRtuymb4AmUqLL_98ReBpHBL8Kx9t2aW14fs3wK0QveyKajqULTpLd4kaz0NNGkgv_6JvZQn_J6sTpOfSHzZUrnELi0L1TX0KIfmK-dRdLgWK8Q6A8hRUHrr7uioVsxlDRyM-bvz/s1600-h/Gambar-1.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 157px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn71q8kRtuymb4AmUqLL_98ReBpHBL8Kx9t2aW14fs3wK0QveyKajqULTpLd4kaz0NNGkgv_6JvZQn_J6sTpOfSHzZUrnELi0L1TX0KIfmK-dRdLgWK8Q6A8hRUHrr7uioVsxlDRyM-bvz/s320/Gambar-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5292824616156099330" /></a><br /><br /> Gambar 1. Skema jaringan<br /><br /><span style="font-weight:bold;">Skenario berdasarkan gambar 1 adalah sebagai berikut:</span><br />-Jalur koneksi internet menggunakan modem ADSL yang memiliki IP address yang terhubung ke LAN yaitu 202.202.202.153/30<br />-Komputer gateway/firewall memiliki 2 buah interface network yaitu eth0 dan eth1 masing-masing sebagai berikut:<br /> * eth0 adalah interface network yang terhubung langsung dengan modem ADSL. IP eth0 adalah 202.202.202.154 dengan netmask 255.255.255.252<br /> * eth1 adalah interface network yang terhubung dengan Internal network dengan IP 192.168.1.1/24<br />-Pada internal network terdapat dua buah server yaitu sebagai berikut:<br /> * Web server memiliki IP address 192.168.1.2<br /> * Email server (SMTP dan POP3) memiliki IP address 192.168.1.3<br />-Semua traffic http (port 80) dari internet menuju interface eth0 (202.202.202.154) komputer gateway/firewall akan diarahkan ulang menuju komputer web server (192.168.1.2)<br />-Semua traffic smtp dan pop3 (port 25 dan 110) dari internet menuju interface eth0 (202.202.202.154) komputer gateway/firewall akan diarahkan ulang menuju komputer Email server (192.168.1.3)<br />-Default kebijakan firewall pada komputer gateway adalah menolak semua traffic dari internet menuju LAN, dan menolak semua traffic dari internet ke komputer gateway/firewall. <br /><br /><span style="font-weight:bold;">Langkah Konfigurasi</span><br /><span style="font-weight:bold;">Enbale IP Forwarding</span><br />Langkah konfigurasi pertama adalah mengkonfigurasi komputer agar berfungsi sebagai gateway, yaitu dengan menjalankan perintah berikut:<br /><span style="font-style:italic;"># echo 1 > /proc/sys/net/ipv4/ip_forward<br /></span><br />Atau Edit file <span style="font-style:italic;">/etc/sysctl.conf</span> dan set parameter <span style="font-style:italic;">net.ipv4.ip_forward = 1</span><br /><br /><span style="font-weight:bold;">Konfigurasi Shorewall Firewall</span><br />Konfigurasi selanjutnya adalah mengkonfigurasi shorewall sebagai firewall agar sesuai skenario yang telah dipaparkan sebelumnya. Untuk itu ikuti langkah-langkahnya berikut:<br /><br />- Pastikan agar shorewall dapat diaktifkan, dengan cara mendefinisikan parameter <span style="font-weight:bold;">STARTUP_ENABLED=Yes</span> pada file /etc/shorewall/shorewall.conf<br />Mendefinisikan zone network dengan cara mengedit file /etc/shorewall/zones, sehingga isi file tersebut seperti berikut ini:<br /><span style="font-style:italic;">###############################################################################<br />#ZONE TYPE OPTIONS IN OUT<br /># OPTIONS OPTIONS<br />fw firewall<br />lan ipv4<br />net ipv4<br />#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE</span><br /><br />-Mendefinisikan interface untuk tiap zone yang telah didefinisikan dengan cara mengedit file /etc/shorewall/interfaces, sehingga isi file tersebut seperti berikut ini:<br /><span style="font-style:italic;">###############################################################################<br />#ZONE INTERFACE BROADCAST OPTIONS<br />net eth0<br />lan eth1<br />#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE</span><br /><br />-Mendefinisikan default policy, dengan cara mengedit file /etc/shorewall/policy, sehingga isi file tersebut seperti berikut ini:<br /><span style="font-style:italic;">###############################################################################<br />#SOURCE DEST POLICY LOG LIMIT:BURST<br /># LEVEL<br />fw lan ACCEPT<br />fw net ACCEPT<br />lan fw ACCEPT<br />lan net ACCEPT<br />net fw DROP info<br />net lan DROP info<br />all all DROP<br />#LAST LINE -- DO NOT REMOVE<span style="font-style:italic;"></span></span><br /><br /><br />-Mendefinisikan rule masquerade agar dapat meneruskan traffic dari LAN ke Internet, dengan cara mengedit file /etc/shorewall/masq sebagai berikut:<br /><span style="font-style:italic;">#INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARK<br />eth0 eth1<br />#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE<br /></span><br /><br />-Langkah berikutnya mendefinisikan rule firewall sesuai dengan skenario, dengan mengedit file /etc/shorewall/rules sebagai berikut: <br /><br /><span style="font-style:italic;">#SECTION ESTABLISHED<br />#SECTION RELATED<br />SECTION NEW<br />DNAT net lan:192.168.1.3 tcp 25 - 202.202.202.154<br />DNAT net lan:192.168.1.3 tcp 110 - 202.202.202.154<br />DNAT net lan:192.168.1.2 tcp 80 - 202.202.202.154<br />#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE</span><br /><br />-Selanjutnya aktifkan shorewall, atau jika sebelumnya sudah aktif maka restart shorewall agar membaca konfigurasi yang telah dibuat, seperti berikut ini:<br /><span style="font-style:italic;">[root@gw ~]# shorewall start<span style="font-style:italic;"><span style="font-style:italic;"></span></span></span><br />atau<br />[<span style="font-style:italic;">root@gw ~]# shorewall restart</span><br /><br />Selamat mencoba.Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-54298623113203505672008-12-22T19:51:00.000-08:002008-12-22T20:21:10.856-08:00Menampilkan pesan syslog secara real time tanpa tailBy Henry Saptono<br /><br />Kebanyakan distro linux dikonfigurasi secara default untuk mendukung 6 virtual console(VC). VC dapat diakses dengan menggunakan kombinasi tombol CTRL-ALT F1 - F12. Dimana F1 sampai F12 merepresentasikan jumlah VC. <br /><br />Pada prakteknya sejumlah VC tidak pernah digunakan untuk mengakses sistem linux, melainkan mungkin melalui sebuah VC saja. VC direpresentasikan pada sistem linux sebagai file device /dev/tty (/dev/tty0 ... /dev/tttN, dimana N adalah bilangan integer).<br /><br />Virtual Console (VC) dapat kita manfaatkan bukan sekedar sebagai channel user untuk mengakses sistem linux. Namun dapat juga kita manfaatkan untuk menampilkan pesan-pesan log dari berbagai service yang ditangani oleh syslog. Sehingga harapannya kita menampilkan pesan-pesan log tersebut secara real time dan tidak perlu menggunakan tool tail untuk menampilkannya secara real time. Berikut ini bebarapa langkah agar pesan-pesan log ditampilkan ke suatu virtual console(VC):<br /><br /> <br />1. Tambahkan suatu entri berikut ini kedalam file /etc/syslog.conf, untuk mengarahkan syslogd mengirimkan pesan-pesan log dari berbagai service ke suatu virtual console dari pada ke file log.<br /> <span style="font-weight:bold;"># vi /etc/syslog.conf<span style="font-style:italic;"></span></span><br /> <span style="font-style:italic;">###*.* /var/log/messages<br /> *.* /dev/tty6<span style="font-weight:bold;"></span></span><br /><br />2. Kemudian syslogd di restart. sbb:<br /> <span style="font-weight:bold;"> # service syslog restart<span style="font-style:italic;"></span></span><br /><br />Dan terakhir cobalah Anda akses beberapa aplikasi server (yang mensupport syslog), kemudian coba Anda akses Virtual Consoole (CTRL-ALT-F6), Anda akan melihat pesan-pesan log yang tampil real time.Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-36307803175189689082008-12-10T04:05:00.000-08:002008-12-10T04:20:30.139-08:00Penerapan Otorisasi user pada squid via ldap groupBy Henry Saptono <boypyt[at]gmail.com><br /><br />Jika Anda ingin menggunakan squid sebagai proxy server pada jaringan Anda, maka tidaklah sulit untuk menerapkan otorisasi user yakni pembatasan akses internet berdasarkan group. Squid banyak mendukung beberapa schema otentikasi dan otorisasi dengan backend database yang beragam diantaranya menggunakan ncsa, pam, ldap, samba dan lain-lain. Umumnya squid yang disertakan oleh berbagai distro sudah dilengkapi dengan berbagai modul otentikasi (authentication helper program) seperti ncsa_auth, pam_auth, smb_auth, squid_ldap_auth dan modul-modul otorisasi (authorization helper program) seperti squid_unix_group, dan squid_ldap_group.<br /><br />Pada tulisan kali ini penulis akan menjelaskan bagaimana menerapkan otorisasi user pada squid melalui ldap group. Helper program yang digunakan adalah squid_ldap_auth dan squid_ldap_group. Pada tulisan ini penulis tidak akan menjelaskan secara detil tentang ldap. Penulis menggunakan openldap dan squid bawaan distro linux CentOS 5 yang diasumsikan sudah terinstal.<br /><br /><span style="font-weight:bold;">I. Skenario</span><br />Untuk mempermudah penjelasan maka penulis membuat skenario sebagai berikut:<br />- Komputer yang berperan sebagai proxy server dan ldap server adalah komputer gateway<br />- Komputer proxy/gateway memiliki dua interface network yaitu eth0 dan eth1, eth0 terhubung langsung dengan modem ADSL, dan eth1 terhubung ke jaringan lokal dengan ip 192.168.1.1 (gambar 1)<br />- Agar tidak ada user yang dapat mengakses internet(http) secara langsung maka pada gateway diterapkan kebijkan firewall yang memblok semua akses http (port 80) secara langsung dari LAN ke internet. Hal ini dimaksudkan agar user harus mengatur “connection setting” pada web client dengan setingan “manually use proxy”. Pada web client proxy diset ke IP 192.168.1.1 dan port 3128 (gambar 2).<br />- Skenario otentikasi, proxy hanya mengijinkan akses internet, dengan ketentuan harus login terlebih dahulu menggunakan user account yang terdaftar di ldap (openldap)<br />- Skenario group, group pada ldap terdiri dari group vip dan internet<br />- Skenario otorisasi, proxy memblok koneksi atau akses ke website dengan nama domain “youtube.com” dan “keepvid.com” jika yang mengakses adalah user yang tergabung dalam group internet tetapi untuk user yang tergabung dalam group vip bebas mengakses.<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghT0bdLMfsVB3LKkcNaaJp2i_QYwgjOlt2hCfb7CMB_OQzJ93lQu1QJoUr4rF4dydKHmhjmsPaeD2JgQvVIckIEPaBhUyZkARg48QgGcji1E0sfIe2RJxvaJVyALT9ay-cdluN6AWsUZO3/s1600-h/Diagram-jaringan.jpeg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 246px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghT0bdLMfsVB3LKkcNaaJp2i_QYwgjOlt2hCfb7CMB_OQzJ93lQu1QJoUr4rF4dydKHmhjmsPaeD2JgQvVIckIEPaBhUyZkARg48QgGcji1E0sfIe2RJxvaJVyALT9ay-cdluN6AWsUZO3/s320/Diagram-jaringan.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5278133054124310194" /></a><br /><br /> Gambar 1. Skema jaringan<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpfKLYjlATjC6Jtt4uFPWScT9NuGQUgPDO6GjhsNpC9LFAM0Nd1clbTrkfZtoMLe8eWs7Hz0TFg5rvdOeOlnhENFgu-4Q-rcL3Ha8vVOxg6vAJVc_q6wFrjiCMwj0QD_WXE1Rl8oByQ5nj/s1600-h/connection-setting-pada-web-client.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 249px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpfKLYjlATjC6Jtt4uFPWScT9NuGQUgPDO6GjhsNpC9LFAM0Nd1clbTrkfZtoMLe8eWs7Hz0TFg5rvdOeOlnhENFgu-4Q-rcL3Ha8vVOxg6vAJVc_q6wFrjiCMwj0QD_WXE1Rl8oByQ5nj/s320/connection-setting-pada-web-client.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5278133269387330338" /></a><br /><br /> Gambar 2. Connection setting pada web client<br /><br /><span style="font-weight:bold;">II. Konfigurasi Gateway</span><br />Langkah pertama adalah setup komputer sebagai gateway, sebagai berikut:<br /><span style="font-weight:bold;">Enbale IP Forwarding</span><br /><span style="font-style:italic;"># echo 1 > /proc/sys/net/ipv4/ip_forward</span><br /><span style="font-weight:bold;">Enable IP Masquerade</span><br /> Diasumsikan default policy firewall pada komputer gateway adalah ACCEPT, dan tidak ada rule spesifik apapun sebelumnya.<br /><span style="font-style:italic;"># service iptables stop<br /># iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE<span style="font-style:italic;"></span></span><br />Rule iptables untuk memblok akses http dari LAN <br /><span style="font-style:italic;"># iptables -A INPUT -p tcp -s 192.168.1.0/24 –dport 80 -j REJECT<br /># iptables -A FORWARD -p tcp -s 192.168.1.0/24 –dport 80 -j REJECT</span><br />Simpan rule firewall dan pastikan agar firewall diaktifkan saat boot dengan perintah berikut ini:<br /><span style="font-style:italic;"># service iptables save<br /># chkconfig iptables on</span><br /><br /><span style="font-weight:bold;">III. Konfigurasi ldap server</span> <br />Langkah selanjutnya mengkonfigurasi ldap service.<br />Langkah pertama mengedit file konfigurasi ldap server yaitu file /etc/openldap/slapd.conf. Ada beberapa parameter yang perlu ditentukan nilainya agar sesuai dengan skenario kita diantaranya sebagai berikut:<br /><span style="font-style:italic;">database bdb<br />suffix "dc=myldap,dc=com"<br />rootdn "cn=admin,dc=myldap,dc=com"<br />rootpw rahasia<span style="font-weight:bold;"></span></span><br />Langkah berikutnya mengaktifkan service ldap dan memastikan agar ldap diaktifkan saat boot.<br /><span style="font-style:italic;"># service ldap start<br /># chkconfig ldap on </span><br />Berikutnya menambahkan entri data ke ldap. Untuk itu Anda buat dahulu file ldif (nama file: data.ldif) yang berisi entri seperti berikut:<br /><span style="font-style:italic;">dn: dc=myldap,dc=com<br />objectClass: top<br />objectClass: dcObject<br />objectClass: organization<br />dc: myldap<br />o: PT Myldap Perkasa Utama<br /><br />dn: ou=groups,dc=myldap,dc=com<br />ou: groups<br />objectClass: organizationalUnit<br />objectClass: top<br /><br />dn: cn=vip,ou=groups,dc=myldap,dc=com<br />cn: vip<br />gidNumber: 1000<br />memberUid: henry<br />objectClass: posixGroup<br />objectClass: top<br /><br />dn: cn=internet,ou=groups,dc=myldap,dc=com<br />cn: internet<br />gidNumber: 1001<br />memberUid: akhtar<br />objectClass: posixGroup<br />objectClass: top<br /><br />dn: ou=users,dc=myldap,dc=com<br />ou: users<br />objectClass: organizationalUnit<br />objectClass: top<br /><br />dn: cn=henry,ou=users,dc=myldap,dc=com<br />objectClass: inetOrgPerson<br />cn: henry<br />sn: Henry Saptono<br />homePhone: 62-21-68253395<br />mail: henry@myldap.com<br />uid: henry<br />userPassword:: e01ENX1BbjVCZ0w3dHNwZEVRVHArcHJoS1FnPT0=<br /><br />dn: cn=akhtar,ou=users,dc=myldap,dc=com<br />objectClass: inetOrgPerson<br />cn: akhtar<br />sn: Akhtar Naufal Shagufta<br />homePhone: 62-21-8953124<br />mail: akhtar@myldap.com<br />uid: akhtar<br />userPassword:: e01ENX1XVStBT3pnS1FUbHUxajNLT1ZBMVFnPT0=</span><br /><br />Selanjutnya file data.ldif yang sudah dibuat Anda tambahkan(entri) kedalam database direktori ldap dengan cara berikut: <br /><span style="font-style:italic;">#ldapadd -x -D "cn=admin,dc=myldap,dc=com" -f data.ldif -W</span><br /><br /><span style="font-weight:bold;">IV. Konfigurasi squid</span><br />Langkah selanjutnya adalah konfigurasi squid, secara default konfigurasi squid akan memblok semua koneksi dari jaringan LAN ke internet. Untuk itu kita harus melakukan konfigurasi ulang dengan mengedit file /etc/squid/squid.conf. Beberapa direktif yang perlu Anda setup diantaranya adalah:<br /><span style="font-weight:bold;">visible_hostname</span> : direktif ini mendefinisikan nama komputer proxy server Anda , nilai default parameter ini tidak diset. Parameter ini dapat diisi dengan nama komputer yang dilengkapi dengan nama domain. Misalnya:<br /> <span style="font-style:italic;">visible_hostname proxy.mydomain.com</span><br /><span style="font-weight:bold;">http_port</span>: direktif ini menunjukkan nomor port service squid. Nilai defaultnya adalah 3128. <br /> <span style="font-style:italic;">http_port 3128</span><br /><span style="font-weight:bold;">auth_param</span>: direktif ini digunakan untuk mendefinisikan parameter-parameter untuk berbagai schema otentikasi yang didukung oleh squid, beberapa schema otentikasi yang secara default didukung oleh squid diantaranya dapat Anda ketahui dengan melihat isi direktori /usr/lib/squid. Dalam skenario ini penulis menggunakan schema otentikasi menggunakan ldap, untuk itu modul yang digunakan adalah squid_ldap_auth , dan konfigurasi parameter-parameter squid_ldap_auth yang harus Anda tulis adalah sebagai berikut:<br /><span style="font-style:italic;">auth_param basic program /usr/lib/squid/squid_ldap_auth -b dc=myldap,dc=com -f "cn=%s" -s sub -h localhost<br /># auth_param diatas harus ditulis dalam single line<br />auth_param basic credentialsttl 2 hours<br />auth_param digest children 5<br />auth_param basic realm Squid proxy-caching web server<br />auth_param basic casesensitive off</span><br /><span style="font-weight:bold;">external_acl_type</span>: direktif ini menentukan helper program apa yang digunakan oleh external acl. Sesuai skenario, kita menggunakan helper program squid_ldap_group, sehingga konfigurasinya seperti berikut ini (ditulis dalam single line):<br /> <span style="font-style:italic;">external_acl_type ldap_group %LOGIN /usr/lib/squid/squid_ldap_group -b dc=myldap,dc=com -f "(&(cn=%a)(memberUid=%v)(objectClass=posixGroup))" -s sub -h localhost</span><br /><span style="font-weight:bold;">acl</span>: direktif ini digunakan untuk mendefinisikan access control list format penulisannya sebagai berikut:<br /> <span style="font-style:italic;">acl nama-acl tipe-acl string-pattern ....<br /> acl nama-acl tipe-acl "file" ....</span><br />Agar sesuai dengan skenario maka, Anda harus mendefinisikan beberapa acl , sebaiknya pendefinisian acl ini Anda tulis pada file konfigurasi squid yaitu dibawah baris yang bertuliskan “#INSERT YOUR OWN RULE ...”, seperti berikut ini:<br /><span style="font-style:italic;">acl haruslogin proxy_auth REQUIRED<br />acl groupVip external ldap_group vip<br />acl groupInternet external ldap_group internet<br />acl vipweb dstdomain .youtube.com .keepvid.com</span><br /><span style="font-weight:bold;">http_access</span>: direktif ini menunjukkan rule yang akan diterapkan pada suatu access control list. Sesuai skenario, kita harus mendefinisikan rule, tulislah rule tersebut dibagian bawah atau setelah seluruh pendefinisian acl seperti berikut ini:<br /><span style="font-style:italic;">http_access allow groupVip haruslogin<br />http_access deny vipweb<br />http_access allow groupInternet haruslogin</span><br />Setelah konfigurasi squid Anda lakukan cobalah Anda aktifkan service squid dan pastikan service squid diaktifkan saat boot dengan cara berikut ini:<br /><span style="font-style:italic;"># service squid start<br /># chkconfig squid on</span><br />Selamat mencoba.Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-85432950446320556042008-12-04T18:25:00.000-08:002008-12-04T18:30:32.687-08:00MEMBUAT SENDIRI LOCAL REPOSITORY untuk BASE paket FedoraBy Henry Saptono <boypyt[at]gmail.com><br /><br /><br />Apakah itu YUM ?<br />------------------<br />Tools untuk manajemen software (Add, Remove dan Update software) di linux tergantung dari jenis paket<br />yang akan diinstall, umumnya pengguna linux menggunakan jenis paket binary RPM , maklumlah kebanyakan<br />distribusi linux menganut paket manajemen RPM (Redhat Package Manager) apalagi memang pengguna linux<br />lebih banyak mengenal distribusi RedHat dan Turunannya. Tool rpm digunakan untuk melakukan aktifitas<br />Add, Remove dan Update software RPM. Contoh jika Anda akan menginstal software maka perintah yang Anda<br />gunakan adalah sbb:<br /> # rpm -ivh nama-software-versi.arch.rpm<br /><br />Untuk menguninstal :<br /> # rpm -e nama-software<br /><br />Untuk mengupgrade:<br /> # rpm -Uvh nama-software-versi.arch.rpm<br /><br />catatan:<br /> arch artinya arsitektur processor misal i386, i586, x86_64 dan lain-lain<br /><br />Ada satu yang merepotkan dalam melakukan instalasi software binary rpm ketika menggunakan tool rpm,<br />yaitu ketika suatu software yang akan kita install ternyata membutuhkan beberapa atau banyak software<br />lainnya yang terlebih dulu harus diinstall , dalam bahasa kerennya ini adalah masalah "Dependency program".<br />nah jika Anda memaksakan tetap menggunakan tool rpm saja maka akan memakan waktu dan repot.<br />Untuk masalah dan kondisi seperti ini maka disediakanlah tool manajemen paket yang lebih advance yang <br />disebut dengan "yum".<br /><br /># man yum<br />yum(8) yum(8)<br /><br />NAME<br /> yum - Yellowdog Updater Modified<br /><br />SYNOPSIS<br /> yum [options] [command] [package ...]<br /><br />DESCRIPTION<br /> yum is an interactive, automated update program which can be used<br />for maintaining systems<br /> using rpm<br /><br /> command is one of:<br /> * install package1 [package2] [...]<br /> * update [package1] [package2] [...]<br /> * check-update<br /> * upgrade [package1] [package2] [...]<br /> * remove | erase package1 [package2] [...]<br /> * list [...]<br /> * info [...]<br /> * provides | whatprovides feature1 [feature2] [...]<br /> * clean [ packages | headers | metadata | cache | dbcache | all ]<br /> * makecache<br /> * groupinstall group1 [group2] [...]<br /> * groupupdate group1 [group2] [...]<br /> * grouplist [hidden]<br /> * groupremove group1 [group2] [...]<br /> * groupinfo group1 [...]<br /> * search string1 [string2] [...]<br /> * shell [filename]<br /> * resolvedep dep1 [dep2] [...]<br /> * localinstall rpmfile1 [rpmfile2] [...]<br /> * localupdate rpmfile1 [rpmfile2] [...]<br /> * deplist package1 [package2] [...]<br /><br />...........................................................................................<br /><br />Bagaimana cara menginstall program/software menggunakan YUM ?<br />-------------------------------------------------------------------------<br /><br />Sebagaimana terlihat dalam "man yum" , jika Anda akan menginstall suatu<br />software/program maka Anda dapat menjalankan perintah sbb:<br /><br /> # yum install heartbeat<br /><br />Perintah tersebut akan menginstall paket software dengan nama software<br />heartbeat. Dan proses yang terjadi adalah yum akan melookup kedalam file<br />konfigurasi daftar server-server repositori paket-paket binary RPM. yang<br />umumnya file tersebut berlokasi di direktori /etc/yum.repos.d/, bisa jadi<br />didalam direktori tersebut terdapat banyak file yang mencerminkan daftar <br />repositori. Dan selanjutnya tool yum akan mengecek satu-perstau daftar paket<br />yang tersedia pada masing-masing repository yang aktif (enable=1). Tool yum<br />akan mengupdate database rpm pd local mesin dengan membaca database daftar paket pada<br />repository (dalam direktori "repodata"). Selanjutnya jika paket yang akan<br />diinstall terdapat pada repository maka software akan didownloade kemudian<br />diinstall.<br /><br /><br />Bagaimana cara menghapus/menguninstal program/software menggunakan YUM ?<br />-----------------------------------------------------------------------------------<br />Sebagaimana terlihat dalam "man yum" , jika Anda akan menguninstall suatu<br />software/program maka Anda dapat menjalankan perintah sbb:<br /><br /> # yum remove heartbeat<br /><br /><br />Lalu bagiamanakah membuat Yum Repositori sendiri ?<br />-------------------------------------------------------------------<br /><br />Tentunya tool yum ini memang didesain untuk manajemen software<br />yang fleksibel karena lokasi (repository) sumber software bisa<br />disebuah komputer dalam jaringan (bahakan di Internet). Dan tentunya<br />akan lebih cepat proses instal software jika repositorynya adalah<br />komputer kita sendiri atau komputer dalam jaringan lokal kita sendiri.<br />Berikut ini langkah-langkah membuat repository paket BASE rpm linux Fedora<br />Core 4. <br /><br />Skenario 1: Local repository pada PC sendiri<br />------------------------------------------------------------<br /> - Buatlah direktori khusus untuk meletakkan paket-paket rpm base fedora<br /> core 4 Anda, sbb:<br /> <br /> # mkdir /opt/repo<br /> <br /> - Masukkan CD ke-1 Fedora core 4 kedalam CDROM Drive pada PC Anda kemudian Copy seluruh <br /> isi CD ke-1 Fedora Core 4 Anda kedalam direktori /opt/repo/<br /><br /> # cp -rf /media/cdrom/* /opt/repo/<br /><br /> - Lanjutkan seterusnya untuk CD ke-2, ke-3, dan ke-4.<br /><br /> - Jika pada sistem linux Anda belum terinstal tool "createrepo" maka<br /> sebaiknya segera Anda install.<br /><br /> - Selanjutnya membuat "repodata" yang berisi file database paket rpm berupa<br /> file xml,untuk itu lakukan perintah berikut ini:<br /> <br /> # createrpo /opt/repo/<br /> <br /> -Hasil dari perintah "createrepo akan membuatkan direktori "repodata"<br /> didalam direktori /opt/repo/ , coba Anda buktikan dengan melihat kedalam <br /> direktori /opt/repo/<br /><br /> -Nah sampai disini berarti kita sudah berhasil membuat repository paket RPM<br />fedora core 4 sendiri.<br /><br /><br />Lalu agar setiap kali ketika menginstal atau mengupgrade BASE paket/software<br />Fedora core 4 dengan menggunakan tool yum selalu mengakses/lookup ke repositori lokal <br />yang telah kita buat sendiri maka, Anda harus mengedit atau membuat file konfigurasi repository<br />sendiri ke dalam direktori /etc/yum.repos.d, Sebaiknya Anda cukup mengedit<br />file /etc/yum.repos.d/fedora.repo ,lalu rubahlah menjadi sbb:<br /><br />-----------------------------------------------------------------------------------------------<br />[base]<br />name=Fedora Core $releasever - $basearch - Base<br />baseurl=file:///opt/repo/<br />#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/<br />#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever<br />enabled=1<br />gpgcheck=1<br />gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora<br />------------------------------------------------------------------------------------------------<br /><br />Trik:<br />-----<br />Secara default konfigurasi repository yum menyertakan banyak daftar server repository<br />untuk berbagai section/kategori paket software seperti paket base, extra,<br />extra-development, update dan-lain-lain.<br />nah meskipun untuk paket Base nya Anda sudah menggunakan local repository<br />namun untuk paket-paket kategori extra, dan lain-lain masih mengakses/lookup<br />ke server-server repository fedora di internet. Nah jika Anda tidak terhubung<br />dengan jaringan internet maka ketika Anda menginstall software yang ada dalam<br />BASE paket di lokal repository maka yum tetap mencoba berulang-ulang untuk<br />melookup juga ke server-server repository di internet , ini akan menggangu<br />proses instalasi karena menjadi lama, untuk itu Anda dapat mengedit seluruh<br />file (kecuali file "fedora.repo") yang terdapat dalam direktori /etc/yum.repos.d/<br />dan mengedit parameter "enable=1" menjadi "enable=0" , yang tujuan agar yum<br />tidak menggunakan atau melookup repository lain kecuali ke local repository.<br /><br /><br />Skenario 2: Local repository pada PC Anda dapat diakses dari jaringan<br />----------------------------------------------------------------------------------<br /><br />Jika Anda juga ingin menjadikan local repository Anda dapat diakses/lookup<br />oleh komputer Linux Fedora 4 lainnya dalam jaringan maka Komputer Anda perlu<br />diinstall/diaktifkan service http, ataupu FTP. Jika menggunakan HTTP service<br />maka Anda harus install Apache web server lalu arahkan default DocumentRoot<br />ke Lokasi direktori repository fedora Anda yaitu ke /opt/repo. Kemudian pada<br />setiap komputer linux fedora lainnya dalam jaringan harus diedit file<br />konfigurasi repository nya, sebaiknya edit saja file /etc/yum.repos.d/fedora.repo ,<br />lalu rubahlah menjadi sbb:<br /><br />-----------------------------------------------------------------------------------------------<br />[base]<br />name=Fedora Core $releasever - $basearch - Base<br />baseurl=http://192.168.1.1/<br />#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/<br />#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever<br />enabled=1<br />gpgcheck=1<br />gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora<br />------------------------------------------------------------------------------------------------<br /><br />catatan:<br /> IP server repository local diasumsikan 192.168.1.1<br /> Jika Anda mau Anda dapat mendisable repository lainnya, (enable=0) seperti pd<br />bagaian "Trik" diatas.<br /><br /><br />selamat mencoba.Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-37365282678913549812008-12-04T04:26:00.000-08:002008-12-10T04:03:58.708-08:00Otentikasi squid dengan openldap backendBy Henry Saptono <boypyt[at]gmail.com><br /><br />Anda dapat menerapkan pembatasan akses internet (akses http) pada jaringan Anda dengan berdasarkan user account. Jika Anda menggunakan squid sebagai proxy server pada jaringan Anda, maka tidaklah sulit untuk menerapkan otentikasi tersebut. Squid banyak mendukung beberapa schema otentikasi (authentication) dengan backend database yang beragam diantaranya menggunakan ncsa, pam, ldap, mysql, postgresql, samba dan lain-lain. Umumnya squid yang disertakan oleh berbagai distro dalam distribusinya sudah dilengkapi dengan berbagai modul otentikasi (authentication helper program) <br />seperti ncsa_auth, pam_auth, smb_auth, squid_ldap_auth, ntlm_auth dan lain-lain.<br /><br />Kali ini penulis akan mencoba menjelaskan bagaimana menerapkan proses otentikasi pada squid dengan menggunakan salah satu modul otentikasi yang ada yaitu menggunakan modul squid_ldap_auth menggunakan backend database ldap. Pada tulisan ini penulis tidak akan menjelaskan secara detail tentang ldap. Penulis menggunakan openldap dan squid bawaan distro linux Fedora Core 6 yang diasumsikan sudah terinstal saat instalasi linux.<br /><br /><span style="font-weight:bold;">I. Skenario</span><br />Untuk mempermudah penjelasan maka penulis membuat skenario sebagai berikut:<br />Jaringan komputer Anda memiliki alamat 192.168.1.0/24 lihat gambar 1.<br />Komputer yang berperan sebagai proxy server dan ldap server adalah komputer gateway<br />Komputer proxy/gateway memiliki dua interface network yaitu eth0 dan eth1, eth0 terhubung langsung dengan modem ADSL, dan eth1 terhubung ke jaringan lokal dengan ip 192.168.1.1<br />Proxy server tidak menerapkan transparent proxy (otentikasi tidak dapat diterapkan dalam mode ini)<br />Agar tidak ada user yang dapat mengakses internet(http) secara langsung melalui proxy atau gateway maka pada komputer gateway diterapkan kebijkan firewall yang memblok semua akses http (port 80) secara langsung dari LAN ke internet. Hal ini dimaksudkan agar user mau tidak mau harus menyetel “connection setting” pada web client dengan setingan “manually use proxy”. Pada web client proxy harus disetel ke IP 192.168.1.1 dengan nomor port 3128, seperti tampak pada gambar 2.<br />Skenario filtering proxy hanya mengijinkan koneksi dari LAN (192.168.1.0/24) ke Internet, dengan ketentuan harus login terlebih dahulu menggunakan user account yang terdaftar di ldap .<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfwiZcHW-He_JbSwkyKRvmB9uwI9ptuJQ4r8wIAdPOP6CH5a0qTppB165Nl0x883v_WefMdg0N7X5D9qNuSmhYvVTrejOSfU7s_PhFVKfMKSJXbTffyawEtSArORx8rWT_Q1NQ-5umJF7e/s1600-h/Diagram-jaringan.jpeg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 246px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfwiZcHW-He_JbSwkyKRvmB9uwI9ptuJQ4r8wIAdPOP6CH5a0qTppB165Nl0x883v_WefMdg0N7X5D9qNuSmhYvVTrejOSfU7s_PhFVKfMKSJXbTffyawEtSArORx8rWT_Q1NQ-5umJF7e/s320/Diagram-jaringan.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5275914644302389986" /></a><br /><br /> Gambar 1. Skema jaringan<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj62umgU4UHSBkgWYVBS4613fCm-ssrp13oveQdXnw9Lesmttj3zis8e1TSTdZp6V-AEeXUcaqnZ0CqnBxFznIkZ2P9De1_WzXDe9wwtm4mGRrnbPyssfABbr0cueNBDMUckL6CygfyFb2A/s1600-h/connection-setting-pada-web-client.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 249px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj62umgU4UHSBkgWYVBS4613fCm-ssrp13oveQdXnw9Lesmttj3zis8e1TSTdZp6V-AEeXUcaqnZ0CqnBxFznIkZ2P9De1_WzXDe9wwtm4mGRrnbPyssfABbr0cueNBDMUckL6CygfyFb2A/s320/connection-setting-pada-web-client.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5275914940074665922" /></a><br /><br /> Gambar 2. Connection setting pada web client<br /><br /><span style="font-weight:bold;">II. Konfigurasi Gateway</span><br />Langkah konfigurasi pertama adalah setup komputer sebagai gateway, sebagai berikut:<br /><span style="font-weight:bold;">Enbale IP Forwarding</span><br /><span style="font-style:italic;"># echo 1 > /proc/sys/net/ipv4/ip_forward<span style="font-style:italic;"></span></span><br /><br /><span style="font-weight:bold;">Enable IP Masquerade</span><br /> <span style="font-weight:bold;">Diasumsikan</span> default policy firewall pada komputer gateway adalah ACCEPT, dan tidak ada rule spesifik apapun sebelumnya.<br /><span style="font-style:italic;"># service iptables stop<br /># iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE</span><br /><br /><span style="font-weight:bold;">Rule iptables untuk memblok akses http dari LAN</span> <br /><span style="font-style:italic;"># iptables -A INPUT -p tcp -s 192.168.1.0/24 –dport 80 -j REJECT<br /># iptables -A FORWARD -p tcp -s 192.168.1.0/24 –dport 80 -j REJECT</span><br /><br />Simpan rule firewall dan pastikan agar firewall diaktifkan saat boot dengan perintah berikut ini:<br /><span style="font-style:italic;"># service iptables save<br /># chkconfig iptables on</span><br /><br /><span style="font-weight:bold;">III. Konfigurasi ldap service</span><br />Langkah selanjutnya adalah mengkonfigurasi ldap service sebagai backend database user account.<br />Langkah pertama adalah mengedit file konfigurasi ldap server yaitu file /etc/openldap/slapd.conf. Ada beberapa parameter yang perlu ditentukan nilai-nilainya agar sesuai dengan keinginan kita diantaranya berikut ini:<br /><br /><span style="font-style:italic;"># database menyatakan backend database yang digunakan<br />database bdb<br /># suffix menyatakan base distinguished name direktori ldap<br />suffix "dc=myldap,dc=com"<br />#rootdn menyatakan distinguished name user admin ldap server<br />rootdn "cn=admin,dc=myldap,dc=com"<br />#rootpw menyatakan password rootdn<br />rootpw rahasia</span><br />Langkah berikutnya mengaktifkan service ldap dan memastikan agar ldap diaktifkan saat boot.<br /><span style="font-style:italic;"># service ldap start<br /># chkconfig ldap on </span><br />Berikutnya menambahkan entri data ke ldap. Untuk itu Anda buat dahulu file ldif (nama file: data.ldif) yang berisi entri data seperti berikut ini:<br /><br /><span style="font-style:italic;">#Entri Base dn<br />dn: dc=myldap, dc=com<br />objectclass: top<br />objectclass: dcObject<br />objectclass: organization<br />dc: myldap<br />o: PT Myldap Perkasa Utama<br />street: Jl LDAP, Depok-jawa Barat<br /><br />#Entri sub/unit<br />dn: ou=People,dc=myldap,dc=com<br />objectclass: organizationalUnit<br />ou: People<br />description: Semua user ada di grup ini</span><br /><br /><span style="font-style:italic;">#Entri user 1<br />dn: cn=akhtar,ou=People,dc=myldap,dc=com<br />objectclass: inetorgPerson<br />cn: akhtar<br />sn: Akhtar Naufal Shagufta<br />homePhone: 62-21-8953124<br />mobile: 08158984709<br />mail: akhtar@myldap.com<br />userPassword: {SSHA}I8YlQv2gvNJhWZXTLwQIfo/imQ8i+r+h<br /><br />#Entri user 2<br />dn: cn=utari,ou=People,dc=myldap,dc=com<br />objectclass: inetorgPerson<br />cn: utari<br />sn: Pipiet Utari<br />homePhone: 62-21-68253395<br />mobile: 08161453263<br />mail: utari@myldap.com<br />userPassword: {SSHA}XYOxaUa/J7Jg01Tyrl66qACtFPk7P05B</span><br /><br />Untuk nilai atribut userPassword, dapat Anda hasilkan/buat dengan bantuan tool slappasswd, seperti<br />contoh berikut ini:<br /><span style="font-style:italic;"># slappasswd<br />New password: ...isi dgn password yang ingin Anda buat...<br />Re-enter new password: ...isi dgn password yang ingin Anda buat...<br />{SSHA}XYOxaUa/J7Jg01Tyrl66qACtFPk7P05B<br /></span><br /><br />Selanjutnya file data.ldif yang sudah dibuat Anda tambahkan(entri) kedalam database direktori ldap dengan cara berikut: <br /><span style="font-style:italic;">#ldapadd -x -D "cn=admin,dc=myldap,dc=com" -f data.ldif -W</span><br /><br />Sampai disini Anda telah berhasil menpopulasikan data kedalam database direktori ldap, dan untuk membuktikan bahwa saat ini ldap service telah berisi entri data sebagaimana yang terdapat dalam file data.ldif, coba Anda list seluruh entri tersebut dengan perintah berikut ini:<br /> #ldapsearch -x -b "dc=myldap,dc=com"<br /><br /><span style="font-weight:bold;">IV. Konfigurasi squid HTTP Proxy</span> <br />Langkah selanjutnya adalah konfigurasi squid, secara default konfigurasi squid akan memblok semua koneksi dari jaringan LAN ke internet. Untuk itu kita harus melakukan konfigurasi ulang dengan mengedit file /etc/squid/squid.conf. Beberapa parameter konfigurasi squid yang perlu Anda setup diantaranya sebagai berikut:<br /><span style="font-weight:bold;">visible_hostname :</span> direktif ini mendefinisikan nama komputer proxy server Anda , nilai default parameter ini tidak diset. Parameter ini dapat diisi dengan nama komputer yang dilengkapi dengan nama domain. Misalnya sebagai berikut:<br /> <span style="font-style:italic;">visible_hostname proxy.mydomain.com</span><br /><span style="font-weight:bold;">http_port:</span> direktif ini menunjukkan nomor port service squid. Nilai defaultnya dalah 3128. <br /> <span style="font-style:italic;"> http_port 3128</span><br /><span style="font-weight:bold;">auth_param:</span> direktif ini digunakan untuk mendefinisikan parameter-parameter untuk berbagai schema otentikasi yang didukung oleh squid, beberapa schema otentikasi yang secara default didukung oleh squid diantaranya dapat Anda ketahui dengan melihat daftar modul otentikasi yang ada dalam direktori /usr/lib/squid. Dalam artikel ini penulis akan menggunakan schema otentikasi menggunakan ldap, untuk itu modul yang digunakan adalah squid_ldap_auth , dan konfigurasi parameter-parameter squid_ldap_auth yang harus Anda tulis kedalam file konfigurasi squid adalah sebagai berikut:<br /> <br /><span style="font-style:italic;">auth_param basic program /usr/lib/squid/squid_ldap_auth \<br />-b "ou=People,dc=myldap,dc=com" -s sub -u "cn" -h localhost<br /># tanda \ diatas menyatakan dua baris diatas seharusnya ditulis satu baris<br /># untuk mengetahui parameter-parameter dari squid_ldap_auth lihat man </span><br /><span style="font-style:italic;">auth_param basic credentialsttl 2 hours<br />auth_param digest children 5<br />auth_param basic realm Squid proxy-caching web server<br />auth_param basic casesensitive off</span><br /><span style="font-weight:bold;">acl:</span> direktif ini digunakan untuk mendefinisikan access control list atau untuk filtering format penulisannya sebagai berikut:<br /> <span style="font-style:italic;">acl nama-acl tipe-acl string-pattern ... <br /> acl nama-acl tipe-acl "file" ...</span><br /><br />Agar sesuai dengan skenario maka, Anda harus mendefinisikan beberapa acl , sebaiknya pendefinisian acl ini Anda tulis pada file konfigurasi squid yaitu dibawah baris yang bertuliskan “#INSERT YOUR OWN RULE HERE(S) ...”, seperti berikut ini:<br /><span style="font-style:italic;">acl lan src 192.168.1.0/24<br />acl haruslogin proxy_auth REQUIRED</span><br /><span style="font-weight:bold;">http_access:</span> direktif ini menunjukkan rule yang akan diterapkan pada suatu access control list. Agar sesuai dengan skenario kita maka Anda harus mendefinisikan rule, tulislah rule tersebut dibagian bawah atau setelah seluruh pendefinisian acl sehingga konfigurasi rule tampak sebagai berikut:<br /><span style="font-style:italic;"># baris berikut ini adalah daftar rule akses http yang menyatakan<br /># semua akses dari lan diijinkan jika user telah berhasil login<br />http_access allow lan haruslogin</span><br /><br /> <br />Setelah konfigurasi squid Anda lakukan cobalah Anda aktifkan service squid dan pastikan service squid diaktifkan saat boot dengan cara berikut ini:<br /><span style="font-style:italic;"># service squid start<br /># chkconfig squid on</span><br />Silahkan Anda uji pengaksesan web.Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-37161410462020836842008-12-04T04:14:00.000-08:002008-12-04T04:51:16.793-08:00Mengatur bandwidth download dengan squid (delay pool)Mau memberikan jaminan download file dari internet yang “fair” ? coba gunakan fitur delay pool yang disediakan oleh squid (proxy server). Delay pool dapat Anda jadikan sebagai cara termudah bagi Anda dalam mengelola bandwidth internet pada kantor atau warnet Anda, meskipun hanya sebatas mengatur bandwidth download file via http atau ftp, ternyata delay pool dapat memberikan layanan jaringan yang lebih berkualitas bagi jaringan dikantor atau warnet Anda.<br /><br />Layanan akses internet yang cukup populer adalah layanan akses web (http), bisa dikatakan saat ini hampir sebagian aplikasi berjalan dalam environment web, sehingga perlu perlakukan yang khusus untuk layanan web(http) ini. Penggunan internet di warnet umumnya mereka mengakses berbagai aplikasi dan layanan di internet melalui layanan http ini, mereka mendownload file melalui layanan http , sehingga bagi sebuah warnet pengaturan traffic download file lewat http ini sangat penting agar seluruh penggunan memperoleh kualitas jaringan yang baik dan terjamin. Tidak boleh ada seorang atau beberapa pengguna internet didalam jaringan Anda yang memakan bandwidth dengan 'rakus' dikarenakan dia mendownload suatu file atau menonton video di youtube dan lain-lain. Tentunya hal tersebut dapat Anda atur, salah satunya menerapkan web caching dengan proxy server seperti squid (http://www.squid-cache.org), dan jaminan kualitas download file yang adil dapat didukung dengan memanfaatkan fitur delay pool yang ada di squid.<br /><br />Dalam tulisan kali ini penulis akan menjelaskan bagaimana membangun sebuah proxy server dengan squid untuk memberikan atau menyediakan web caching dan pengaturan bandwidth download file via http. Harapannya adalah terciptanya jaringan akses internet yang berkualitas dan terjamin bagi kantor atau warnet Anda. Dalam tulisan ini penulis menggunakan sistem operasi Linux distro CentOS 5, dan software squid yang digunakan adalah bawaan distro CentOS yaitu squid-2.6.STABLE6-3.el5. Diasumsikan sistem operasi linux CentOS sudah Anda install dan software squid sudah Anda install juga saat instalasi linux, namun jika squid belum terinstall maka Anda dapat lakukan instalasi dengan yum atau manual seperti berikut ini:<br /><br /> <span style="font-style:italic;"># ym install squid</span><br />atau<br /> <span style="font-style:italic;"># rpm -ivh /media/cdrom/CentOS/squid-2.6.STABLE6-3.el5.i386.rpm<br /></span><br /><br /><span style="font-weight:bold;">I. Skenario</span><br />Agar memudahkan penjelasan maka penulis membuat skenario jaringan LAN sebagai berikut:<br />Koneksi internet jaringan menggunakan ADSL dengan downlink 512kbps (512 kilo bit per second) <br />Komputer yang bertindak sebagai proxy server adalah komputer yang juga berperan sebagai gateway (internet sharing) pada jaringan LAN. Komputer ini memiliki dua buah network interface, yaitu eth0 dan eth1. Network interface eth0 terhubung dengan modem ADSL, sedangkan eth1 terhubung dengan hub atau switch LAN. Network Address LAN adalah 192.168.1.0/24.<br />Konfigurasi proxy yang akan diterapkan adalah transparent proxy, dengan skenario pengaturan bandwidth download file adalah setiap komputer dalam jaringan diatur agar bandwidth download via http sebesar sekitar 16KBps(16 kilo byte per second), dengan maximum bucket 64KBps.<br /><br /><br /><span style="font-weight:bold;">II. Konfigurasi Internet sharing (gateway)</span><br />Langkah konfigurasi pertama adalah mengkonfigurasi komputer bakal proxy server sebagai internet sharing (gateway), yaitu sebagai berikut:<br />Enbale IP Forwarding<br /><span style="font-style:italic;"># echo 1 > /proc/sys/net/ipv4/ip_forward</span><br /> atau edit file /etc/sysctl.conf, dan set parameter “net.ipv4.ip_forward=1”<br />Enable IP Masquerade<br /> Diasumsikan default policy firewall Anda adalah ACCEPT, dan tidak ada rule spesifik apapun pada konfigurasi firewall di komputer proxy server sebelumnya.<br /><span style="font-style:italic;"># service iptables stop<br /># iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE</span><br /><br /><span style="font-weight:bold;">Rule iptables untuk mendukung Transparent proxy</span><br /><span style="font-style:italic;"># iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 –dport 80 -j REDIRECT –to-ports 3128<br /># service iptables save<br /># chkconfig iptables on</span><br /> Rule firewall tersebut akan menyebabkan setiap koneksi dari LAN dengan port tujuan 80 kemanapun akan di arahkan ulang sehingga menuju local process pada komputer gateway(proxy server) yaitu proses yang berjalan pada port 3128 (squid). <br /><br /><br /><span style="font-weight:bold;">III. Konfigurasi squid standar</span><br /><br />Langkah selanjutnya adalah konfigurasi squid, secara default konfigurasi squid akan memblok semua koneksi dari jaringan LAN ke internet. Untuk itu kita harus melakukan konfigurasi ulang dengan mengedit file /etc/squid/squid.conf. Beberapa parameter konfigurasi squid yang sebelumnya perlu Anda setup diantaranya adalah parameter berikut ini:<br /><span style="font-weight:bold;">visible_hostname :</span> parameter ini mendefinisikan nama komputer proxy server Anda , nilai default parameter ini tidak diset. Terkadang pengguna awam sering menjumpai squid errror dikarenakan parameter ini tidak diset dan squid mencoba menggunkan nama hostname komputer Anda yang ternyata hostname nya tidak ditulis lengkap dengan nama domain. parameter ini dapat diisi dengan nama komputer yang dilengkapi dengan nama domain. Misalnya sebagai berikut:<br /> <span style="font-weight:bold;">visible_hostname proxy.coba.co.id<span style="font-style:italic;"></span></span><br /><span style="font-weight:bold;">http_port:</span> parameter ini menunjukkan nomor port service squid. Nilai defaultnya dalah 3128. Jika Anda ingin menerapkan transparent proxy maka nilai parameter ini harus diset sebagai berikut:<br /> <span style="font-weight:bold;"> http_port 3128 transparent<span style="font-style:italic;"></span></span><br /><span style="font-weight:bold;">acl:</span> parameter ini digunakan untuk mendefinisikan access control list format penulisannya sebagai berikut:<br /> <span style="font-style:italic;">acl nama-acl tipe-acl string-pattern ... <br /> acl nama-acl tipe-acl "file" ...</span><br /><br /> Dalam konfigurasi squid yang kita skenariokan , Anda harus membuat sebuah acl yang menunjukkan jaringan local Anda, Sebaiknya definisi acl ini Anda tulis pada file konfigurasi squid yaitu dibawah baris yang bertuliskan #INSERT YOUR OWN RULE HERE(S) ......., seperti berikut ini:<br /> <span style="font-style:italic;"># INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS<br /> acl lan src 192.168.1.0/24</span><br /><span style="font-weight:bold;">http_access:</span> parameter ini menunjukkan rule yang akan diterapkan pada suatu access control list. Untuk skenario kita maka Anda harus mendefinisikan rule yang akan mengijinkan LAN Anda untuk dapat mengakses internet (tulis rule tersebut dibagian bawah dari pendefinisian acl ), seperti berikut ini:<br /> <span style="font-style:italic;"># INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS<br /> acl lan src 192.168.1.0/24<br /> http_access allow lan</span><br /><br /><br /><br /><br /><span style="font-weight:bold;">IV. Konfigurasi squid delay pool</span><br />Untuk mengatur bandwidth download sesuai skenario yaitu menyediakan bandwidth download untuk setiap host dalam LAN sebesar 16KBps dan maksimal bucket 64KBps, maka beberapa parameter konfigurasi squid yang berkaitan dengan delay pool yang harus Anda set adalah sebagai berikut (edit file /etc/squid/squid.conf):<br /><br /><span style="font-weight:bold;">delay_pool:</span> parameter ini menentukan ada berapakah pool yang akan Anda terapkan. Misalnya dalam skenario kita ini hanya akan dibuat sebuah pool, maka konfigurasinya sebagai berikut:<br /> <span style="font-weight:bold;">delay_pool 1<span style="font-style:italic;"></span></span><br /><br /><span style="font-weight:bold;">delay_class:</span> parameter ini mendefinisikan class untuk setiap pool yang ada. Setiap pool harus memiliki sebuah class (delay_class) tidak lebih dan tidak kurang. Jadi kalau Ada 2 delay pool maka harus ada 2 delay_class. Class delay pool terdiri dari 3 class, yaitu :<br /><span style="font-weight:bold;">class 1 :</span> untuk delay pool dengan class ini maka semuanya dibatasi dengan single bucket agregate. Setiap class harus berasosiasi dengan single bucket agregate. Single bucket agregtae ini adalah bandwidth yang diasosiasikan dengan setiap class.<br /><span style="font-weight:bold;">Class 2:</span> untuk delay pool dengan class ini maka semuanya dibatasi dengan single bucket agregate, dan suatu “individual” bucket untuk stiap host atau komputer dalm jaringan class C.<br /><span style="font-weight:bold;">Class 3:</span> untuk delay pool dengan class ini maka semuanya dibatasi dengan single bucket agregate, dan “networke” bucket untuk setiap network class C, serta suatu individual bucket untuk stiap host atau komputer dalm jaringan class C. Untuk class 3 ini biasanya digunakan jika LAN Anda terdiri dari beberapa segment jaringan class C.<br /><br /> Untuk konfigurasi delay_class yang sesuai dengan skenario kita adalah seperti berikut ini:<br /> <span style="font-weight:bold;">delay_class 1 2<span style="font-style:italic;"></span></span><br /><br /><span style="font-weight:bold;">delay_access:</span> parameter ini menentukan suatu request ke proxy server harus diletakkan pada delay pool yang mana. Konfigurasi delay_access yang sesuai dengan skenario kita adalah seperti berikut ini:<br /> <span style="font-weight:bold;">delay_access 1 allow lan<br /> delay_access 1 deny all<span style="font-style:italic;"></span></span><br /><br /><span style="font-weight:bold;">delay_parameters:</span> parameter ini mendefinisikan parameter -parameter untuk suatu delay pool. Format penulisan parameter delay_parameters adalah sebagai berikut:<br /><br /><span style="font-weight:bold;">delay_parameter pool aggregate bucket network individual<span style="font-style:italic;"></span></span><br /><br />Untuk skenario kita maka nilai delay_parameters nya sebagai berikut:<br /><br /><span style="font-weight:bold;">delay_parameters 1 -1/-1 16000/64000<span style="font-style:italic;"></span></span><br /><br /><span style="font-weight:bold;">catatan:</span> -1/-1 berarti bandwidth untuk aggregate nya diset unlimited (sesuai dengan bandwidth internet yang tersedia dari ISP). 16000(16KBps) adalah total bandwidth rata-rata yang bakal diperloleh setiap host dalam LAN, dan 64000(64KBps) adalah nilai bandwidth maksimum yang dapat tersedia dalam bucket disetiap saat.<br /><br />Setelah konfigurasi squid Anda lakukan cobalah Anda restart atau start service squid seperti berikut ini:<br /><br /><span style="font-weight:bold;"># service squid start<br /># chkconfig squid on<span style="font-style:italic;"></span></span> <br /><br />Kemudian coba Anda gunakan web browser di beberapa client dan cobalah Anda download suatu file diinternet kemudian perhatikan kecepatan download pada window download. Berikut ini gambar -1, yang menunjukkan proses download pada suatu komputer ketika mendownload sebuah file (perhatikan kecepatan perdetiknya sekitar 16KBps), dan juga perhatikan gambar-2 yang menggambarkan kecepatan saat mendownload 2 buah file bersamaan (perhatikan jika di total kecepatan perdetiknya sekitar 16KBps ) pada suatu host. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsgGGMZvaYg_zssi8dtzgNRzQMXcbmn7ULwnGExkn5HyszOXkSEQjZPHBijPY7vXH3DTNz-xv0MgIxtkKzhoUwxrPFBa1rb8BJqezGnQBUjpHzB0iWC5V_3g-BfX-gdVwtkpAkyNUoGdQx/s1600-h/Gambar-2.+Mendownload+dua+buah+file.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsgGGMZvaYg_zssi8dtzgNRzQMXcbmn7ULwnGExkn5HyszOXkSEQjZPHBijPY7vXH3DTNz-xv0MgIxtkKzhoUwxrPFBa1rb8BJqezGnQBUjpHzB0iWC5V_3g-BfX-gdVwtkpAkyNUoGdQx/s320/Gambar-2.+Mendownload+dua+buah+file.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5275908775653909442" /></a><br /><br /> Gambar-1. Mendownload sebuah file<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgslA-MpB6oS3XWjGs6Eo_3_0QUhKJwOQhHym6bIioH5BwiaU0OHM9FLETn1ZPKYAMmmIHAMjmhOFJ8RJWMEZ9WjbvMW0-55pSCHfs4aB-Sx-QHSQvDS3hkyMSSwpvNMyax0lSJ0uYqaReg/s1600-h/Gambar-1.+Mendownload+sebuah+file.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgslA-MpB6oS3XWjGs6Eo_3_0QUhKJwOQhHym6bIioH5BwiaU0OHM9FLETn1ZPKYAMmmIHAMjmhOFJ8RJWMEZ9WjbvMW0-55pSCHfs4aB-Sx-QHSQvDS3hkyMSSwpvNMyax0lSJ0uYqaReg/s320/Gambar-1.+Mendownload+sebuah+file.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5275908778912868178" /></a><br /><br /><br /> Gambar-2. Mendownload dua buah fileHenry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com2tag:blogger.com,1999:blog-5031067177331860775.post-16033851486098888102008-12-04T02:42:00.000-08:002008-12-04T02:59:20.657-08:00Filtering Web Traffic dengan SquidMencegah terjadinya akses web ke situs-situs yang tidak diinginkan (seperti situs porno) bukan hal yang sulit jika Anda melengkapi jaringan komputer Anda dengan HTTP proxy server. Umumnya aplikasi HTTP proxy server digunakan untuk memfilter koneksi HTTP dari LAN ke internet. Salah satu aplikasi HTTP proxy server yang cukup populer saat ini adalah squid. Squid tidak hanya berfungsi sebagai firewall aplikasi HTTP, tetapi squid juga memiliki kemampuan menyediakan web caching. Web cahcing akan meningkatkan response time koneksi HTTP, dan meningkatkan efisiensi bandwidth HTTP. Pada tulisan kali ini penulis akan menjelaskan bagaimana langkah-langkah penerapan squid sebagai filtering akses HTTP. Penulis akan membahas beberapa jenis filtering pada squid yang umumnya digunakan. Dalam tulisan ini penulis menggunakan Linux CentOS 5, squid versi 2.6.STABLE6 yang sudah terinstall saat instalasi linux.<br /><span style="font-weight:bold;">I. Skenario</span><br />Agar memudahkan penjelasan maka penulis membuat skenario jaringan LAN seperti tampak pada gambar-1. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTEIS8TU43SovOnp8kYo4oTqfATqwNILgttqmKIj762rd6xxaN4B-IBoBOKpWFUytMr_pAjU5UhcqwzxU_2bhALqgJqmUv6cqooiTZ7dpUsIRQRLCPZ54KtaowE97vFH5cLAye0cYs93iH/s1600-h/Diagram-Proxy.jpeg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 201px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTEIS8TU43SovOnp8kYo4oTqfATqwNILgttqmKIj762rd6xxaN4B-IBoBOKpWFUytMr_pAjU5UhcqwzxU_2bhALqgJqmUv6cqooiTZ7dpUsIRQRLCPZ54KtaowE97vFH5cLAye0cYs93iH/s320/Diagram-Proxy.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5275883737637561954" /></a><br /> Gambar-1. Diagram LAN<br /><br />Penjelasan sesuai dengan gambar-1, adalah sebagai berikut:<br />LAN memiliki nomor jaringan 192.168.1.0/24<br />Komputer yang akan menghubungkan LAN dengan Internet adalah komputer PC-Gateway yang berperan juga sebagai HTTP Proxy <br />PC-Gateway memiliki dua buah network interface yaitu eth0 dan eth1, eth0 terhubung dengan Modem/Router ADSL, sedangkan eth1 terhubung dengan LAN. eth0 memiliki nomor IP address 192.168.10.2/30 dan eth1 192.168.1.1/24<br /><br /><span style="font-weight:bold;">Skenario Filtering sebagai berikut:</span><br />Komputer PC-Gateway-HTTP-Proxy mengijinkan koneksi dari LAN ke Internet, dengan ketentuan hanya pada hari Senin s.d Sabtu pada jam 07.00 s.d 21.00 <br />Akses ke situs dengan nama domain berikut tidak diijinkan : playboy.com, 17tahun2.com, dan sex.com<br />Akses ke situs dengan URL mengandung kata berikut ini tidak diijinkan: cabul, bugil, sextoy, dan erotica<br />Download file-file dengan extensi berikut ini tidak diijinkan: .mpg, .mpeg, .wmv, .avi , dan .iso, kecuali jika yang mendownload dari komputer dengan nomor IP 192.168.1.10 s.d 192.168.1.20<br />Akses ke situs dengan nomor IP berikut ini tidak dijinkan: 216.163.137.3, 69.16.137.252, 82.98.86.176<br />Squid dikonfigurasi dalam mode Transparent proxy<br /><span style="font-weight:bold;">II. Konfigurasi PC Gateway</span><br />Langkah konfigurasi pertama adalah setup komputer bakal proxy server sebagai gateway, yaitu sebagai berikut:<br />Enbale IP Forwarding<br /><span style="font-style:italic;"># echo 1 > /proc/sys/net/ipv4/ip_forward</span><br />Enable IP Masquerade<br /> Diasumsikan default policy firewall pada komputer PC Gateway adalah ACCEPT, dan tidak ada rule spesifik apapun sebelumnya.<br /><span style="font-style:italic;"># service iptables stop<br /># iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE</span><br />Rule iptables untuk mendukung Transparent proxy<br /><span style="font-style:italic;"># iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 –dport 80 -j REDIRECT –to-ports 3128</span><br />Rule firewall tersebut akan menyebabkan setiap koneksi dari LAN dengan port tujuan 80 akan diarahkan ke local process pada komputer gateway yaitu ke process squid (port 3128).<br /><br />Simpan rule firewall dan pastikan agar firewall diaktifkan saat boot dengan perintah berikut ini:<br /><span style="font-style:italic;"># service iptables save<br /># chkconfig iptables on</span><br /><span style="font-weight:bold;">III. Konfigurasi squid HTTP Proxy </span><br />Langkah selanjutnya adalah konfigurasi squid, secara default konfigurasi squid akan memblok semua koneksi dari jaringan LAN ke internet. Untuk itu kita harus melakukan konfigurasi ulang dengan mengedit file /etc/squid/squid.conf. Beberapa parameter konfigurasi squid yang perlu Anda setup diantaranya sebagai berikut:<br />visible_hostname : parameter ini mendefinisikan nama komputer proxy server Anda , nilai default parameter ini tidak diset. Parameter ini dapat diisi dengan nama komputer yang dilengkapi dengan nama domain. Misalnya sebagai berikut:<br /> visible_hostname proxy.mydomain.com<br />http_port: parameter ini menunjukkan nomor port service squid. Nilai defaultnya dalah 3128. Untuk menerapkan transparent proxy maka nilai parameter ini harus diset sebagai berikut:<br /> http_port 3128 transparent<br />acl: parameter ini digunakan untuk mendefinisikan access control list atau untuk filtering format penulisannya sebagai berikut:<br /> <span style="font-style:italic;">acl nama-acl tipe-acl string-pattern .... <br /> acl nama-acl tipe-acl "file" ....<span style="font-weight:bold;"></span></span><br /><br />Agar sesuai dengan skenario maka, Anda harus mendefinisikan beberapa acl , sebaiknya pendefinisian acl ini Anda tulis pada file konfigurasi squid yaitu dibawah baris yang bertuliskan “#INSERT YOUR OWN RULE HERE(S) ...”, seperti berikut ini:<br /><span style="font-style:italic;">acl lan src 192.168.1.0/24<br />acl waktu_boleh time MTWHFA 07:00-21:00<br />acl domain_dilarang dstdomain “/etc/squid/daftar-domain_dilarang”<br />acl url_dilarang url_regex -i “/etc/squid/daftar-url_dilarang”<br />acl file_dilarang url_regex -i “/etc/squid/daftar-file_dilarang”<br />acl ip_vip src 192.168.1.10-192.168.1.20/32<br />acl ip_dilarang dst “/etc/squid/daftar-ip_dilarang”</span><br /><br />Pada konfigurasi acl waktu_boleh time MTWHFA 07:00-21:00, pola MTWHFA merupakan singkatan dari M=Monday, T=Tuesday, W=Wednesday, H=Thursday, F=Friday, A=Saturday. Sedangkan untuk Sunday adalah S. Penggunaan opsi “-i” pada jenis acl “url_regex” menyatakan opsi “case insensitive”. Dalam konfigurasi acl domain_dilarang, url_dilarang, file_dilarang dan ip_dilarang, pola dari masing-masing acl terdaftar atau ditulis pada sebuah file ASCII teks, yang terletak dalam direktori /etc/squid. Isi dari masing-masing file tersebut adalah sebagai berikut:<br />Isi file /etc/squid/daftar-domain_dilarang :<br /> playboy.com<br /> 17tahun2.com<br /> sex.com<br />Isi file /etc/squid/daftar-url_dilarang :<br /> cabul<br /> bugil<br /> sextoy<br /> erotica<br />Isi file /etc/squid/daftar-file_dilarang :<br /> \.mpg$<br /> \.mpeg$<br /> \.wmv$<br /> \.avi$<br /> \.iso$<br />Isi file /etc/squid/daftar-ip_dilarang :<br /> 216.163.137.3<br /> 69.16.137.252<br /> 82.98.86.176<br />http_access: parameter ini menunjukkan rule yang akan diterapkan pada suatu access control list. Agar sesuai dengan skenario kita maka Anda harus mendefinisikan rule, tulislah rule tersebut dibagian bawah atau setelah seluruh pendefinisian acl sehingga konfigurasi rule tampak sebagai berikut:<br /># baris berikut ini adalah daftar rule akses http<br /><span style="font-style:italic;">http_access deny !waktu_boleh<br />http_access deny domain_dilarang<br />http_access deny url_dilarang<br />http_access deny ip_dilarang<br />http_access allow ip_vip<br />http_access deny file_dilarang<br />http_access allow lan</span><br /> Pada konfigurasi rule tersebut tampak sebuah rule dengan acl yang diikuti dengan tanda ! , tanda “ ! “ memiliki makna yaitu selain atau bukan, jadi maksud dari rule tersebut adalah jika traffic web ke proxy server terjadi pada waktu selain yang ditentukan dalam ACL waktu_boleh maka traffic tersebut ditolak. Berbeda dengan acl, urutan pendefinisian rule http pada konfigurasi squid sangat menentukan, kesalahan meletakkan urutan pendefinisian rule tersebut berakibat tidak berjalannya skenario filtering yang diharapkan karena squid akan mengevaluasi rule dari baris atas kemudian ke bawah, jika suatu traffic sesuai atau matching dengan suatu acl dan acl tersebut diijinkan maka traffic tersebut akan diterima squid, dan squid tidak akan mengevaluasi lagi rule dibawahnya. Setelah konfigurasi squid Anda lakukan cobalah Anda aktifkan service squid dan pastikan service squid diaktifkan saat boot dengan cara berikut ini:<br /><span style="font-style:italic;"># service squid start<br /># chkconfig squid on </span><br /> Kemudian cobalah Anda uji pengaksesan web untuk menguji filtering.Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-49311201744517414732008-12-03T02:54:00.000-08:002008-12-03T03:13:43.704-08:00Konfigurasi Ethernet Bridge di Linux <style type="text/css"> <!-- @page { size: 21.59cm 27.94cm; margin: 2cm } P { margin-bottom: 0.21cm } H3 { margin-bottom: 0.21cm } H3.western { font-family: "Nimbus Sans L", sans-serif } --> </style> <p><span style="font-size:100%;">Dukungan kemampuan sistem linux terhadap berbagai fitur begitu luasnya tidak terkecuali hal - hal yang berkaitan dengan networking atau jaringan komputer. Dengan sistem linux kita dapat membangun sebuah komputer yang berfungsi sebagai gateway atau router, firewall, traffic control, bridge, virtual server dan lain - lain<i>. </i><span style="font-style: normal;">Pada suatu saat mungkin saja Anda membutuhkan sebuah </span><i>network bridge (ethernet bridge)</i><span style="font-style: normal;">, dan bisa jad</span></span><span style="font-size:100%;"><span style="font-style: normal;">i Anda tidak membutuhkan perangkat bridge khusus (</span><i>dedicated) </i><span style="font-style: normal;"> karena Anda ingin memanfaatkan komputer yang ada sebagai bridge. Kemudian pertanyaannya bagaimanakah langkah - langkah menjadikan komputer linux Anda sebagai </span><i>network bridge(ethernet bridge)</i><span style="font-style: normal;">. Untuk itu Dalam tulisan ini penulis ak</span></span><span style="font-size:100%;"><span style="font-style: normal;">an mengetengahkan pembahasan tentang implementasi komputer dengan sistem linux sebagai </span><i>network bridge.</i></span></p> <h3 class="western"><span style="font-size:100%;">Network Bridge</span></h3> <p style=""><span style="font-size:100%;"><i><span style="">Network bridge</span></i><span style=""> atau </span><i><span style="">Ethernet bridge</span></i><span style=""> adalah suatu cara menghubungkan dua atau lebih (</span><i><span style="">multiple</span></i><span style="">)
<br /></span><i><span style="">ethernet/network segment</span></i><span style=""> pada layer data link (layer 2) dari model OSI. Bridge memiliki kemiripan dengan perangkat<span style="font-weight: bold;"> </span></span><b>repeater</b><span style=""> atau </span><b>hub </b><span style="">yang menghubungkan </span><i><span style="">network segment</span></i><span style=""> pada layer physical, namun demikian sebuah bridge bekerja dengan menggunakan teknik forwarding packet yang biasa digu</span></span></p><p style=""><span style="font-size:100%;"><span style="">nakan dalam packet-switching dalam jaringan komputer , yakni traffic dari satu network diatur atau dikelola ketimbang semata - mata membroadcast ulang ke segment network atau jaringan yang berdekatan.</span>
<br /></span></p> <p style="">
<br /><span style="font-size:100%;"><b>Bagaimana menjadikan sistem linux sebagai bridge</b>
<br />Untuk memudahkan pemahaman, kita akan mengambil kasus sederhana sebagai berikut:</span></p> <ul><li><p style=""><span style="font-size:100%;">Sebuah komputer A yang bersistem operasi linux Fedora Core 6 akan kita jadikan sebagai bridge, yang harapannya dapat menghubungkan dua buah ethernet se</span></p> <p style=""><span style="font-size:100%;">gment. Komputer A ini memiliki 2 buah ethernet yaitu eth0 dan eth1.</span></p> </li><li><p style=""><span style="font-size:100%;">Komputer A berfungsi sebagai bridge untuk segment jaringan 192.168.1.0/24.</span></p> </li><li><p style=""><span style="font-size:100%;">Interface eth0 dari komputer A terhubung langsung ke hub atau switch utama dari segement jaringan 192.168.1.0/24 (lihat gambar 1.)</span></p></li><li><p style=""><span style="font-size:100%;">terdapat sebuah komputer client (PC) dengan nomor ip address 192.168.1.251/24 yang dihubungkan dengan cross cable ke ethernet eth1 komputer A (lihat ga</span></p> <p style=""><span style="font-size:100%;">mbar 1.)</span></p> </li><li><p style=""><span style="font-size:100%;">Interface bridge (br0) komputer A bernomor IP 192.168.1.31/24</span></p> </li></ul> <p style="margin-left: 1.25cm;">
<br /></p><h3 class="western"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-c_sUc-waTQOrD_EoOcqcZiXGIqDOb-CTUGaL0MOFmldc80u3LY1xPb51PiOKV0_iM2wSty9gimtBcpga9TnVTCHzVA5IUGckf79_BAmkqZVE2KF3GkarhT0lA-Jz_oGEGhbSt4JGYbpF/s1600-h/Diagram-jaringan-dgn-linux-bridge.jpeg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-c_sUc-waTQOrD_EoOcqcZiXGIqDOb-CTUGaL0MOFmldc80u3LY1xPb51PiOKV0_iM2wSty9gimtBcpga9TnVTCHzVA5IUGckf79_BAmkqZVE2KF3GkarhT0lA-Jz_oGEGhbSt4JGYbpF/s320/Diagram-jaringan-dgn-linux-bridge.jpeg" alt="" id="BLOGGER_PHOTO_ID_5275519174826871650" border="0" /></a></h3> <p style="margin-left: 1.25cm;"><span style="font-size:100%;"><b> Gambar-1. Jaringan dengan linux network bridge</b></span></p> <p><span style="font-size:100%;"><b>Langkah-langkah setup linux ethernet bridge (komputer A):</b></span></p> <p style=""><span style="font-size:100%;">Umumnya kernel 2.6 bawaan distro Fedora Core 6 sudah dikonfigurasi dengan dukungan network bridge. Untuk memastikan dukungan network bridge dalam kernel yang digunakan saat ini lakukan langkah berikut:</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:85%;" >[root@PC-Boy ~]# grep -i bridge /boot/config-2.6.18-1.2798.fc6
<br /># PC-card bridges
<br />CONFIG_BRIDGE_NETFILTER=y
<br /># Bridge: Netfilter Configuration
<br />....<>
<br />CONFIG_BRIDGE_EBT_ULOG=m
<br /><b>CONFIG_BRIDGE=m</b></span></p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">Perhatikan output dari perintah diatas yang bercetak tebal (CONFIG_BRIDGE=m), menandakan dukungan
<br />network bridge pada kernel sebagai modul sudah ada.</span></p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">Langkah berikutnya memuat modul '<i>bridge</i>' kedalam kernel yang sedang berjalan saat ini dengan perintah <b>modprobe</b>, seperti berikut ini:</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:85%;" >[root@PC-Boy ~]# modprobe -v bridge</span></p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">
<br /></span> </p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">Selanjutnya Anda dapat memeriksa untuk memastikan apakah modul bridge tadi telah dimuat dengan cara seperti berikut ini:</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"></p><p style="margin-bottom: 0cm;"> <meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"><title></title> <meta name="GENERATOR" content="OpenOffice.org 2.4 (Linux)"> <style type="text/css"> <!-- @page { size: 21.59cm 27.94cm; margin: 2cm } P { margin-bottom: 0.21cm } --> </style> </p><p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-family:Courier,monospace;"><span style="font-size:85%;">[root@PC-Boy ~]# lsmod |grep bridge
<br />bridge 60253 0</span></span></p>
<br />
<br /><span style="font-size:100%;">
<br />Selanjutnya jika pada sistem linux belum terinstal paket software “bridge-utils” maka segera instal paket software 'bridge-utils' dengan cara seperti berikut ini:</span><p></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:85%;" >[root@PC-Boy ~]# yum install bridge-utils</span></p> <p><span style="font-size:100%;">Paket bridge-utils menyediakan tool atau utiliti untuk mengelola atau mengatur <i>ethernet bridge</i>. <span style="">Pada </span><i><span style="">network bridge</span></i><span style=""> atau </span><i><span style="">ethernet bridge</span></i><span style=""> beberapa interface network yang terpasang akan diasosiasikan dengan sebuah interface bridge secara logika yang umumnya dikenal sebagai interface br. </span></span> </p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">
<br />Langkah selanjutnya membuat atau mengaktifkan bridge (br0) dengan cara berikut:</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:85%;" >[root@PC-Boy ~]# brctl addbr br0</span></p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">
<br />Berikutnya menambahkan device ethernet sebagai port dari bridge, hal ini akan menyebabkan setiap frame atau paket yang diterima oleh inteface akan diproses seolah - olah sebagai frame atau paket yang ditujukan ke interface bridge. Berikut ini langkah - langkah nya :</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:100%;" >[root@PC-Boy ~]# brctl addif br0 eth0</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:100%;" >[root@PC-Boy ~]# brctl addif br0 eth1</span></p> <p style="background: transparent none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size:100%;">
<br /></span> </p> <p style="background: transparent none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size:100%;">
<br /></span> </p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">Langkah selanjutnya mendefinisikan IP address untuk semua interface (eth0 dan eth1) port bridge, IP yang diset adalah 0.0.0.0 dengan mode promiscious:</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:100%;" >[root@PC-Boy ~]# ifconfig eth0 0.0.0.0 promisc</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:100%;" >[root@PC-Boy ~]# ifconfig eth1 0.0.0.0 promisc</span></p> <p style="background: transparent none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size:100%;">
<br /></span> </p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">Langkah terkahir mengaktifkan interface bridge (br0) dengan memberikan IP address yang disesuaikan dengan skenario diatas, dengan cara berikut ini:</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:85%;" >[root@PC-Boy ~]# ifconfig br0 192.168.1.31
<br />[root@PC-Boy ~]# route add default gw 192.168.1.1
<br />[root@PC-Boy ~]# ifconfig
<br /><b>br0</b> Link encap:Ethernet HWaddr 00:19:66:05:75:69
<br /><b>inet addr:192.168.1.31 Bcast:192.168.1.255 Mask:255.255.255.0</b>
<br />inet6 addr: fe80::219:66ff:fe05:7569/64 Scope:Link
<br />UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
<br />RX packets:8634 errors:0 dropped:0 overruns:0 frame:0
<br />TX packets:3138 errors:0 dropped:0 overruns:0 carrier:0
<br />collisions:0 txqueuelen:0
<br />RX bytes:2169315 (2.0 MiB) TX bytes:404236 (394.7 KiB)
<br /><b>eth0</b> Link encap:Ethernet HWaddr 00:50:FC:6C:33:82
<br />inet6 addr: <span style="">fe80::250:fcff:fe6c:3382/64</span> Scope:Link
<br />UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
<br />RX packets:139414 errors:0 dropped:4294967284 overruns:0 frame:0
<br />TX packets:173526 errors:0 dropped:0 overruns:0 carrier:0
<br />collisions:0 txqueuelen:1000
<br />RX bytes:56041534 (53.4 MiB) TX bytes:203492653 (194.0 MiB)
<br />Interrupt:201 Base address:0xac00
<br /><b>eth1 </b> Link encap:Ethernet HWaddr 00:19:66:05:75:69
<br />inet6 addr: fe80::219:66ff:fe05:7569/64 Scope:Link
<br />UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
<br />RX packets:53504 errors:0 dropped:0 overruns:0 frame:0
<br />TX packets:34230 errors:0 dropped:0 overruns:0 carrier:0
<br />collisions:0 txqueuelen:1000
<br />RX bytes:5675230 (5.4 MiB) TX bytes:39722183 (37.8 MiB)
<br />Interrupt:201 Base address:0xe800</span></p> <p style="background: transparent none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size:100%;">
<br /></span> </p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">Perintah “</span><span style=";font-family:Courier,monospace;font-size:100%;" >route add default gw 192.168.1.1</span><span style="font-size:100%;">” sifatnya opsional, dalam contoh diatas diasumsikan pada
<br />segment jaringan 192.168.1.0/24 yang bertindak sebagai gateway ke internet adalah 192.168.1.1, dengan harapan
<br />komputer A (bridge) dapat digunakan juga untuk mengakses internet.</span></p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">
<br />Untuk konfigurasi di komputer PC client 192.168.1.251 tidak terlalu istimewa, hanya konfigurasi jaringan biasa yaitu mendefinisikan IP address , netmask, dan gateway serta DNS, sbb:</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:85%;" >[root@PC-Client ~]# ifconfig eth0 192.168.1.251
<br />[root@PC-Client ~]# route add default gw 192.168.1.1
<br />[root@PC-Client ~]# echo “nameserver 192.168.1.254” > /etc/resolv.conf</span></p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">
<br />Untuk menguji coba, maka cobalah sekarang dari PC client 192.168.1.251 mengirimkan paket ping ke salah satu
<br />PC dalam segment jaringan 192.168.1.0/24. Jika berhasil maka komputer A sudah dapat berperan sebagai
<br />sebuah <i>network bridge</i>.</span></p> <p style="margin-bottom: 0cm;"><span style="font-size:100%;">
<br />Untuk menghapus atau menonaktifkan interface bridge adalah sebagai berikut:</span></p> <p style="background: rgb(230, 230, 230) none repeat scroll 0% 50%; margin-bottom: 0cm; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style=";font-family:Courier,monospace;font-size:100%;" >[root@PC-Boy ~]# ifconfig br0 down
<br /><span style="font-size:85%;">[root@PC-Boy ~]# brctl delbr br0</span> </span> </p> Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-4493491631726155532008-12-03T01:44:00.000-08:002008-12-03T02:04:00.580-08:00Langkah-langkah penerapan user quota disk<pre><span style="color: rgb(0, 0, 0);font-family:verdana;font-size:100%;" >1. Konfigurasi /etc/fstab, tambahkann opsi usrquota dan grpquota pada baris (entri)<br /> file system yang akan Anda terapkan quota disk, sbb:<br /><br />/dev/hda6 /home ext3 defaults,usrquota,grpquota 1 2<br /><br />atau untuk yang / dan /home berada dalam satu partisi yang sama sbb:<br /><br />/dev/hda1 / ext3 defaults,usrquota,grpquota 1 1<br /><br />2. Buat file database aquota.user dan aquota.group sbb:<br /><br />#touch /home/aquota.user<br />#touch /home/aquota.group<br /><br />atau untuk yang / dan /home berada dalam satu partisi yang sama sbb:<br />#touch /aquota.user<br />#touch /aquota.group<br /><br />3. Restart komputer<br /># reboot<br /><br />4. Update database aquota.user dan aquota.group, sbb:<br /> # quotacheck -avug<br /><br />atau untuk yang / dan /home berada dalam satu partisi yang sama sbb:<br /><br /># quotacheck -avugm<br /><br />5. Check report quota sbb:<br /> #repquota -a<br /><br />6. Edit grace periode time menjadi 0days (0seconds) sbb:<br /> # edquota -t<br />Filesystem Block grace period Inode grace period<br />/dev/hda3 0days 0days<br /><br />7. Restart komputer<br /># reboot<br /><br />atau jika Anda tidak ingin merestart jalankan perintah:<br /># quotaoff -a<br /># quotacheck -avug<br /># quotaon -a<br /><br /><br />8. Cobalah Anda set quota utk user tertentu, misalnya sbb:<br /><br /># setquota -u akhtar 10000 10000 0 0 -a<br /># setquota -u hana 5000 5000 0 0 -a<br /><br />contoh perintah diatas artinya user 'akhtar' diberi quota 10000Kb<br />(soft limit dan hard limit block nya) serta (0 untuk soft dan hard limit inode nya).<br />Sedangkan user 'hana" diberi quota 5000Kb (soft limit dan hard limit block nya)<br />serta (0 untuk soft dan hard limit inode nya).<br /><br />9. Coba check report quota sbb:<br /># repquota -a<br /><br />10. Kemudian coba login sbg user 'akhtar' atau 'hana' lalu lakukan aktifitas menyalin<br />file atau direktori yang ukurannya melampaui batas quota disk yg telah ditetapkan<br />ke home direktori masing-masing user lalu perhatikan apakah ada pesan "Disk quota exceeded"<br /><br />By Henry Saptono</span><br /></pre>Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-27549139612455654122008-12-03T01:33:00.000-08:002008-12-03T02:03:15.940-08:00Konfigurasi Apache HTTP server dengan certificate SSL/TLS<span style="color: rgb(0, 0, 0);font-size:100%;" ><span style="font-family: verdana;">Tulisan ini mencoba menjelaskan sesederhana mungkin praktis bagaimana melakukan</span><br /><span style="font-family: verdana;">konfigurasi SSL (enable secure socket layer) di Apache 2.0., namun bisa jadi sebagian Anda</span><br /><span style="font-family: verdana;">merasa tulisan ini masih juga tetap komplek : ).</span><br /><br /><br /><span style="font-family: verdana;">Asumsi:</span><br /><span style="font-family: verdana;">-------------------------------------------------------------------------------</span><br /><span style="font-family: verdana;">Server web Anda (Apache 2.0) berada pada mesin dengan nama (hostname/FQDN)</span><br /><span style="font-family: verdana;">sotnec.contohaja.com, perlu diperhatikan bahwa hostname mesin Anda harus</span><br /><span style="font-family: verdana;">dapat dilookup (valid terdaftar di DNS). Sebelumnya web server Anda hanya</span><br /><span style="font-family: verdana;">menjalankan service http(port 80), sekarang Anda berkeinginan mengaktifkan</span><br /><span style="font-family: verdana;">service https(port 443) pada web server Anda. Pada web server Anda terdapat</span><br /><span style="font-family: verdana;">2 virtualhost yang jalan dalam mode HTTPS yang masing masing virtual host</span><br /><span style="font-family: verdana;">memiliki hostname (FQDN) yaitu "mars.contohaja.com" dan "bumi.contohaja.com".</span><br /><br /><span style="font-family: verdana;">Langkah-langkah step by step konfigurasi SSL (enable secure socket layer) di</span><br /><span style="font-family: verdana;">Apache 2.0:</span><br /><span style="font-family: verdana;">------------------------------------------------------------------------------</span><br /><br /><span style="font-family: verdana;">Tahap 1: Setup your own CA (Certificate Authority)</span><br /><span style="font-family: verdana;">---------------------------------------------------</span><br /><br /><span style="font-family: verdana;">Agar apache web server Anda dapat menjalankan secure (SSL/TLS encrypted) web server,</span><br /><span style="font-family: verdana;">Anda harus memmiliki sebuah "private key" dan sebuah "certificate" untuk web server Anda.</span><br /><span style="font-family: verdana;">Untuk website commercial, Mungkin Anda dapat membeli certificate yang telah ditanda tangani</span><br /><span style="font-family: verdana;">oleh root CA yang terkenal.</span><br /><span style="font-family: verdana;">Untuk Intranet atau special-purpose , Anda dapat membuat CA sendiri. Ini dapat</span><br /><span style="font-family: verdana;">dilakukan dengan menggunakan tools OpenSSL .</span><br /><br /><span style="font-family: verdana;">Disini, kita akan membuat sebuah private CA key dan sebuah certificate private CA X.509.</span><br /><span style="font-family: verdana;">Kita juga akan membuat direktori untuk menyimpan certs dan keys:</span><br /><br /><span style="font-family: verdana;"># mkdir /root/CA</span><br /><span style="font-family: verdana;"># chmod 0770 /root/CA</span><br /><span style="font-family: verdana;"># cd /root/CA</span><br /><br /><span style="font-family: verdana;"># openssl genrsa -des3 -out my-ca.key 2048</span><br /><span style="font-family: verdana;"># openssl req -new -x509 -days 3650 -key my-ca.key -out my-ca.crt</span><br /><span style="font-family: verdana;"># openssl x509 -in my-ca.crt -text -noout</span><br /><span style="font-family: verdana;">Certificate:</span><br /><span style="font-family: verdana;"> Data:</span><br /><span style="font-family: verdana;"> Version: 3 (0x2)</span><br /><span style="font-family: verdana;"> Serial Number: 0 (0x0)</span><br /><span style="font-family: verdana;"> Signature Algorithm: md5WithRSAEncryption</span><br /><span style="font-family: verdana;"> Issuer: C=ID, ST=Jawa Barat, L=Depok, O=PT NCI, OU=IT,</span><br /><span style="font-family: verdana;">CN=sotnec.contohaja.com/emailAddress=henry@contohaja.com</span><br /><span style="font-family: verdana;"> Validity</span><br /><span style="font-family: verdana;"> Not Before: Apr 3 02:10:25 2007 GMT</span><br /><span style="font-family: verdana;"> Not After : Mar 31 02:10:25 2017 GMT</span><br /><span style="font-family: verdana;"> Subject: C=ID, ST=Jawa Barat, L=Depok, O=PT NCI, OU=IT,</span><br /><span style="font-family: verdana;">CN=sotnec.contohaja.com/emailAddress=henry@contohaja.com</span><br /><span style="font-family: verdana;"> Subject Public Key Info:</span><br /><span style="font-family: verdana;"> Public Key Algorithm: rsaEncryption</span><br /><span style="font-family: verdana;"> RSA Public Key: (2048 bit)</span><br /><span style="font-family: verdana;"> Modulus (2048 bit):</span><br /><span style="font-family: verdana;"> 00:d2:55:bb:2c:54:17:11:8e:15:9d:5f:58:c5:a2:</span><br /><span style="font-family: verdana;"> ae:f2:a6:c2:a7:c3:9d:bd:7c:f7:2a:b0:ac:1a:25:</span><br /><span style="font-family: verdana;"> 3e:4c:4c:ee:c7:27:ed:68:79:85:22:77:7f:46:9a:</span><br /><span style="font-family: verdana;"> e3:48:2a:b4:c7:87:f9:03:6f:47:54:c7:31:4f:35:</span><br /><span style="font-family: verdana;"> b7:57:b0:02:d0:0e:9c:5a:87:52:58:09:3c:c6:cd:</span><br /><span style="font-family: verdana;"> 1b:a5:53:b7:4f:97:9f:52:e7:c8:22:3b:fa:0d:3a:</span><br /><span style="font-family: verdana;"> 6c:98:1b:ae:87:9e:7b:78:b3:c1:d1:87:97:b8:8f:</span><br /><span style="font-family: verdana;"> 88:29:a7:2d:18:60:30:4a:fb:84:3f:c8:e8:8c:bd:</span><br /><span style="font-family: verdana;"> 86:1f:9c:b9:45:a0:1f:be:04:66:37:60:e8:c4:0a:</span><br /><span style="font-family: verdana;"> e1:fd:04:84:f8:cd:4a:4a:95:5f:c4:6e:20:d7:e0:</span><br /><span style="font-family: verdana;"> c8:c4:a0:1f:3b:e7:01:7c:16:06:11:b8:b3:1a:65:</span><br /><span style="font-family: verdana;"> ed:f1:da:7d:76:80:5a:3e:7c:05:4a:4c:da:cf:8a:</span><br /><span style="font-family: verdana;"> 6f:8f:e4:6c:65:ed:ec:4c:61:4f:8e:0b:3c:28:9b:</span><br /><span style="font-family: verdana;"> fd:47:7c:40:68:c0:7b:74:cc:03:87:7d:ed:29:e0:</span><br /><span style="font-family: verdana;"> 18:b9:01:64:e7:4b:f6:cb:a0:bc:3c:85:e7:4a:4d:</span><br /><span style="font-family: verdana;"> 14:80:16:ea:54:80:a7:00:40:f9:fc:21:4a:c9:45:</span><br /><span style="font-family: verdana;"> e5:32:c3:f1:3f:d9:bd:ce:e6:86:f5:c9:c4:4a:ea:</span><br /><span style="font-family: verdana;"> 9a:bb</span><br /><span style="font-family: verdana;"> Exponent: 65537 (0x10001)</span><br /><span style="font-family: verdana;"> X509v3 extensions:</span><br /><span style="font-family: verdana;"> X509v3 Subject Key Identifier:</span><br /><span style="font-family: verdana;"> 43:F7:93:F4:F5:7A:D1:24:F5:A8:F1:4E:CF:F9:9C:3C:83:73:25:34</span><br /><span style="font-family: verdana;"> X509v3 Authority Key Identifier:</span><br /><span style="font-family: verdana;"> keyid:43:F7:93:F4:F5:7A:D1:24:F5:A8:F1:4E:CF:F9:9C:3C:83:73:25:34</span><br /><span style="font-family: verdana;"> DirName:/C=ID/ST=Jawa Barat/L=Depok/O=PT</span><br /><span style="font-family: verdana;">NCI/OU=IT/CN=sotnec.contohaja.com/emailAddress=henry@contohaja.com</span><br /><span style="font-family: verdana;"> serial:00</span><br /><br /><span style="font-family: verdana;"> X509v3 Basic Constraints:</span><br /><span style="font-family: verdana;"> CA:TRUE</span><br /><span style="font-family: verdana;"> Signature Algorithm: md5WithRSAEncryption</span><br /><span style="font-family: verdana;"> 8f:75:79:48:6b:d0:7e:02:9f:1c:f8:9d:39:e5:5b:6e:c7:1e:</span><br /><span style="font-family: verdana;"> e9:6e:a3:e4:d1:d3:9b:db:33:62:f6:67:aa:54:90:38:78:61:</span><br /><span style="font-family: verdana;"> 4a:fb:b8:fd:0c:74:d5:ac:08:ff:00:a2:fb:98:b3:56:44:6e:</span><br /><span style="font-family: verdana;"> 7f:8d:77:d9:5d:0f:ee:40:06:62:46:aa:bc:8b:ff:c7:a3:e6:</span><br /><span style="font-family: verdana;"> 83:b9:63:f8:c7:ef:1a:ed:6e:eb:57:e9:d1:2c:f0:12:50:4b:</span><br /><span style="font-family: verdana;"> 7d:5b:c5:22:b0:a0:12:65:93:81:e3:54:f8:85:10:8d:5b:d3:</span><br /><span style="font-family: verdana;"> 9b:56:59:b8:3d:01:07:6e:33:d6:52:c5:8e:b3:c9:48:95:7b:</span><br /><span style="font-family: verdana;"> 26:c2:74:ab:d3:b0:3a:ad:52:bb:69:86:dc:83:40:b6:9a:f0:</span><br /><span style="font-family: verdana;"> b3:f7:46:5d:ca:99:61:c6:7e:ac:92:c5:a9:3b:80:c1:05:e7:</span><br /><span style="font-family: verdana;"> 5f:7b:24:8d:1e:eb:dc:85:fe:77:c5:99:4b:10:d3:d5:3c:fa:</span><br /><span style="font-family: verdana;"> 24:f2:f5:a4:e6:7d:dd:c7:e2:25:8a:c1:18:59:92:f7:42:77:</span><br /><span style="font-family: verdana;"> 27:1e:3d:36:c3:6a:65:ab:1d:c5:34:a8:ab:66:9e:1f:d6:9c:</span><br /><span style="font-family: verdana;"> 50:46:76:94:bc:67:27:29:60:55:b3:88:65:58:63:85:c5:f2:</span><br /><span style="font-family: verdana;"> d9:dc:f9:06:d4:27:a2:18:22:65:36:72:80:44:cf:b6:d2:d5:</span><br /><span style="font-family: verdana;"> 28:e4:25:35</span><br /><br /><span style="font-family: verdana;">Catatan:</span><br /><span style="font-family: verdana;">Perintah openssl yang pertama akan membuat CA key . Perintah yang kedua</span><br /><span style="font-family: verdana;">akan membuat X.509 certificate dengan waktu hidup 10 tahun (10-year lifetime).</span><br /><span style="font-family: verdana;">Perintah ketiga akan menampilkan certificate kita secara lengkap.</span><br /><br /><span style="font-family: verdana;">Tahap 2: Membuat key dan certificate untuk web server:</span><br /><span style="font-family: verdana;">--------------------------------------------------------------------------</span><br /><span style="font-family: verdana;">Sekarang, kita membuat X.509 certificate dan private key nya untuk web server.</span><br /><span style="font-family: verdana;">Karena kita membuat certificate secara langsung, kita akan membuat key dan</span><br /><span style="font-family: verdana;">certificate, kemudian certificate yang diminta akan di"tandatangani" dengan CA key</span><br /><span style="font-family: verdana;">yang telah kita buat pada tahap 1. Kita juga dapat membuat multiple keys untuk</span><br /><span style="font-family: verdana;">multiple web servers (virtual host) dengan cara yang sama.</span><br /><span style="font-family: verdana;">Satu hal yang perlu dicatat bahwa SSL/TLS private keys untuk web server memerlukan</span><br /><span style="font-family: verdana;"> 512 atau 1024 bits. Ukuran key yang lain bisa jadi tidak kompatibel dengan</span><br /><span style="font-family: verdana;">browser-browser tertentu.</span><br /><br /><span style="font-family: verdana;">Dalam contoh kasus disini kita akan membuat key dan certificate untuk</span><br /><span style="font-family: verdana;">virtualhost mars.contohaja.com dan bumi.contohaja.com.</span><br /><br /><span style="font-family: verdana;"># openssl genrsa -des3 -out mars-server.key 1024</span><br /><span style="font-family: verdana;"># openssl req -new -key mars-server.key -out mars-server.csr</span><br /><span style="font-family: verdana;"># openssl x509 -req -in mars-server.csr -out mars-server.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 3650</span><br /><span style="font-family: verdana;"># openssl x509 -in mars-server.crt -text -noout</span><br /><span style="font-family: verdana;"># openssl genrsa -des3 -out bumi-server.key 1024</span><br /><span style="font-family: verdana;"># openssl req -new -key bumi-server.key -out bumi-server.csr</span><br /><span style="font-family: verdana;"># openssl x509 -req -in bumi-server.csr -out bumi-server.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 3650</span><br /><span style="font-family: verdana;"># openssl x509 -in bumi-server.crt -text -noout</span><br /><br /><span style="font-family: verdana;">Sebaiknya semua file key yang ada di /root/CA dirubah ijin aksesnya menjadi</span><br /><span style="font-family: verdana;">0400 sbb:</span><br /><span style="font-family: verdana;"># chmod 0400 *.key</span><br /><span style="font-family: verdana;"># ls /root/CA/</span><br /><br /><span style="font-family: verdana;">Tahap 3: Mengexport/Menyalin keys dan certificate, ke dalam direktori konfigurasi apache</span><br /><span style="font-family: verdana;">-----------------------------------------------------------------------------------------------------------------</span><br /><span style="font-family: verdana;"># mkdir /etc/httpd/conf/ssl.crt</span><br /><span style="font-family: verdana;"># mkdir /etc/httpd/conf/ssl.key</span><br /><br /><span style="font-family: verdana;"># cp my-ca.crt /etc/httpd/conf/ssl.crt</span><br /><span style="font-family: verdana;"># cp mars-server.crt /etc/httpd/conf/ssl.crt</span><br /><span style="font-family: verdana;"># cp mars-server.key /etc/httpd/conf/ssl.key</span><br /><span style="font-family: verdana;"># cp bumi-server.key /etc/httpd/conf/ssl.key</span><br /><span style="font-family: verdana;"># cp bumi-server.crt /etc/httpd/conf/ssl.crt</span><br /><br /><br /><span style="font-family: verdana;">Tahap 4: Membuat directory documentroot & index.html utk masing-masing virtualhost</span><br /><span style="font-family: verdana;">--------------------------------------------------------------------------------------------------------------</span><br /><span style="font-family: verdana;"># mkdir /var/www/mars</span><br /><span style="font-family: verdana;"># chmod 0775 /var/www/mars</span><br /><span style="font-family: verdana;"># cd /var/www/mars</span><br /><span style="font-family: verdana;"># echo "Hello mars" > index.html</span><br /><span style="font-family: verdana;"># mkdir /var/www/bumi</span><br /><span style="font-family: verdana;"># cd /var/www/bumi</span><br /><span style="font-family: verdana;"># chmod 0775 /var/www/bumi</span><br /><span style="font-family: verdana;"># echo "Hello bumi" > index.html</span><br /><br /><br /><span style="font-family: verdana;">Tahap 5: Mengkonfigurasi Apache, agar mensuport SSL/TLS</span><br /><span style="font-family: verdana;">--------------------------------------------------------------------------------</span><br /><br /><span style="font-family: verdana;"># vi /etc/httpd/conf.d/ssl.conf</span><br /><br /><span style="font-family: verdana;">------------------------------------------------------------------------------------</span><br /><span style="font-family: verdana;"># This is the Apache server configuration file providing SSL support.</span><br /><span style="font-family: verdana;"># It contains the configuration directives to instruct the server how to</span><br /><span style="font-family: verdana;"># serve pages over an https connection. For detailing information about these</span><br /><span style="font-family: verdana;"># directives see </span><url:http: org="" 0="" mod="" html=""><br /><span style="font-family: verdana;">#</span><br /><span style="font-family: verdana;"># Do NOT simply read the instructions in here without understanding</span><br /><span style="font-family: verdana;"># what they do. They're here only as hints or reminders. If you are unsure</span><br /><span style="font-family: verdana;"># consult the online docs. You have been warned.</span><br /><span style="font-family: verdana;">#</span><br /><br /><span style="font-family: verdana;">LoadModule ssl_module modules/mod_ssl.so</span><br /><br /><span style="font-family: verdana;">#</span><br /><span style="font-family: verdana;"># When we also provide SSL we have to listen to the</span><br /><span style="font-family: verdana;"># standard HTTP port (see above) and to the HTTPS port</span><br /><span style="font-family: verdana;">Listen 443</span><br /><span style="font-family: verdana;">AddType application/x-x509-ca-cert .crt</span><br /><span style="font-family: verdana;">AddType application/x-pkcs7-crl .crl</span><br /><br /><span style="font-family: verdana;">SSLPassPhraseDialog builtin</span><br /><br /><span style="font-family: verdana;">SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)</span><br /><span style="font-family: verdana;">SSLSessionCacheTimeout 300</span><br /><br /><span style="font-family: verdana;"># Semaphore:</span><br /><span style="font-family: verdana;"># Configure the path to the mutual exclusion semaphore the</span><br /><span style="font-family: verdana;"># SSL engine uses internally for inter-process synchronization.</span><br /><span style="font-family: verdana;">SSLMutex default</span><br /><br /><span style="font-family: verdana;">SSLRandomSeed startup file:/dev/urandom 256</span><br /><span style="font-family: verdana;">SSLRandomSeed connect builtin</span><br /><br /><span style="font-family: verdana;">SSLCryptoDevice builtin</span><br /><br /><span style="font-family: verdana;">##</span><br /><span style="font-family: verdana;">## SSL Virtual Host Context</span><br /><span style="font-family: verdana;">##</span><br /><br /><span style="font-family: verdana;">NameVirtualHost 192.168.1.33:443</span><br /><virtualhost style="font-family: verdana;"><br /><br /># General setup for the virtual host, inherited from global configuration<br />DocumentRoot "/var/www/mars"<br />ServerName mars.contohaja.com:443<br />ErrorLog logs/mars-ssl_error_log<br />TransferLog logs/mars-ssl_access_log<br />LogLevel warn<br />SSLEngine on<br />SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP<br />SSLCertificateFile /etc/httpd/conf/ssl.crt/mars-server.crt<br />SSLCertificateKeyFile /etc/httpd/conf/ssl.key/mars-server.key<br /><files><br /> SSLOptions +StdEnvVars<br /></files><br /><directory><br /> SSLOptions +StdEnvVars<br /></directory><br />SetEnvIf User-Agent ".*MSIE.*" \<br /> nokeepalive ssl-unclean-shutdown \<br /> downgrade-1.0 force-response-1.0<br />CustomLog logs/ssl_request_log \<br /> "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"<br /></virtualhost><br /><br /><virtualhost style="font-family: verdana;"><br /><br /># General setup for the virtual host, inherited from global configuration<br />DocumentRoot "/var/www/bumi"<br />ServerName bumi.contohaja.com:443<br />ErrorLog logs/bumi-ssl_error_log<br />TransferLog logs/bumi-ssl_access_log<br />LogLevel warn<br />SSLEngine on<br />SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP<br />SSLCertificateFile /etc/httpd/conf/ssl.crt/bumi-server.crt<br />SSLCertificateKeyFile /etc/httpd/conf/ssl.key/bumi-server.key<br /><files><br /> SSLOptions +StdEnvVars<br /></files><br /><directory><br /> SSLOptions +StdEnvVars<br /></directory><br />SetEnvIf User-Agent ".*MSIE.*" \<br /> nokeepalive ssl-unclean-shutdown \<br /> downgrade-1.0 force-response-1.0<br />CustomLog logs/ssl_request_log \<br /> "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"<br /><br /></virtualhost><br /><span style="font-family: verdana;">----------------------------------------------------------------------------------------------------</span><br /><br /><span style="font-family: verdana;">Setelah menkonfigurasi apache . kemudian restart service apache:</span><br /><span style="font-family: verdana;">[root@sotnec ~]# service httpd restart</span><br /><span style="font-family: verdana;">Stopping httpd: [ OK ]</span><br /><span style="font-family: verdana;">Starting httpd: Apache/2.0.52 mod_ssl/2.0.52 (Pass Phrase Dialog)</span><br /><span style="font-family: verdana;">Some of your private key files are encrypted for security reasons.</span><br /><span style="font-family: verdana;">In order to read them you have to provide the pass phrases.</span><br /><br /><span style="font-family: verdana;">Server bumi.contohaja.com:443 (RSA)</span><br /><span style="font-family: verdana;">Enter pass phrase:</span><br /><br /><span style="font-family: verdana;">OK: Pass Phrase Dialog successful.</span><br /><span style="font-family: verdana;"> [ OK ]</span><br /><br /><br /><span style="font-family: verdana;">Catatan:</span><br /><span style="font-family: verdana;">pada saat Anda restart service apache maka anda akan ditanyakan pass phrase</span><br /><span style="font-family: verdana;">untuk keys yang telah anda buat sbb, maka berikanlah pass phrase tersebut</span><br /><span style="font-family: verdana;">sesuai dengan pass phrase yang telah anda buat.</span><br /><br /><span style="font-family: verdana;">Lalu coba Anda akses web server dengan URL sbb:</span><br /><span style="font-family: verdana;">https://mars.contohaja.com</span><br /><br /><span style="font-family: verdana;">dan</span><br /><br /><span style="font-family: verdana;">https://bumi.contohaja.com</span><br /><br /><span style="font-family: verdana;">-----------------------------------</span><br /><span style="font-family: verdana;">WEB server key password:</span><br /><span style="font-family: verdana;">----------------------------------</span><br /><span style="font-family: verdana;">Setelah Anda melakukan tahap-tahap diatas maka web server Anda sudah</span><br /><span style="font-family: verdana;">mensupport SSL, namun perlu diingat setiap kali Anda restart atau start</span><br /><span style="font-family: verdana;">service apache Anda maka Anda harus memasukkan pass pharse(password) dari key</span><br /><span style="font-family: verdana;">masing-masing virtual host, nah ini terkadang kurang simple atau fleksibel</span><br /><span style="font-family: verdana;">menurut sebagian orang tetapi sebenarnya itu lebih safe/secure. Jika Anda</span><br /><span style="font-family: verdana;">tidak ingin setiap kali me-restart apache harus memasukkan pass</span><br /><span style="font-family: verdana;">phrase(password) dari key masing-masing virtualhost maka Anda harus melakukan</span><br /><span style="font-family: verdana;">beberapa tahap sbb:</span><br /><br /><br /><span style="font-family: verdana;">[root@sotnec ~]# cd /etc/httpd/conf/ssl.key</span><br /><span style="font-family: verdana;">[root@sotnec ssl.key]# cp bumi-server.key bumi-server.key.org</span><br /><span style="font-family: verdana;">[root@sotnec ssl.key]# openssl rsa -in bumi-server.key.org -out</span><br /><span style="font-family: verdana;">bumi-server.key</span><br /><span style="font-family: verdana;">Enter pass phrase for bumi-server.key.org:</span><br /><span style="font-family: verdana;">writing RSA key</span><br /><span style="font-family: verdana;">[root@sotnec ssl.key]# less bumi-server.key</span><br /><span style="font-family: verdana;">[root@sotnec ssl.key]# service httpd restart</span><br /><span style="font-family: verdana;">Stopping httpd: [ OK ]</span><br /><span style="font-family: verdana;">Starting httpd: Apache/2.0.52 mod_ssl/2.0.52 (Pass Phrase Dialog)</span><br /><span style="font-family: verdana;">Some of your private key files are encrypted for security reasons.</span><br /><span style="font-family: verdana;">In order to read them you have to provide the pass phrases.</span><br /><br /><span style="font-family: verdana;">Server mars.contohaja.com:443 (RSA)</span><br /><span style="font-family: verdana;">Enter pass phrase:</span><br /><br /><span style="font-family: verdana;">OK: Pass Phrase Dialog successful.</span><br /><span style="font-family: verdana;"> [ OK ]</span><br /><span style="font-family: verdana;">[root@sotnec ssl.key]# cp mars-server.key mars-server.key.org</span><br /><span style="font-family: verdana;">[root@sotnec ssl.key]# openssl rsa -in mars-server.key.org -out</span><br /><span style="font-family: verdana;">mars-server.key</span><br /><span style="font-family: verdana;">Enter pass phrase for mars-server.key.org:</span><br /><span style="font-family: verdana;">writing RSA key</span><br /><span style="font-family: verdana;">[root@sotnec ssl.key]# service httpd restart</span><br /><span style="font-family: verdana;">Stopping httpd: [ OK ]</span><br /><span style="font-family: verdana;">Starting httpd: [ OK ]</span><br /><span style="font-family: verdana;">[root@sotnec ssl.key]#</span><br /><br /><br /><br /><span style="font-family: verdana;">Selamat mencoba.!</span><br /><br /><span style="font-family: verdana;">By Henry Saptono </span><boypyt[at]gmail.com><br /><span style="font-family: verdana;">-------------</span><br /><span style="font-family: verdana;">Referensi</span><br /><span style="font-family: verdana;">--------------</span><br /><span style="font-family: verdana;">http://www.vanemery.com/Linux/Apache/apache-SSL.html</span><br /><span style="font-family: verdana;">http://localhost/manual/mod/mod_ssl.html</span><br /><br /></boypyt[at]gmail.com></url:http:></span>Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-77503708658348105782008-12-03T01:26:00.000-08:002008-12-03T02:05:23.338-08:00Memperbesar dan Mengurangi ukuran Partisi Harddisk dengan LVM<pre><span style="font-size:100%;">=</span><span style="color: rgb(0, 0, 0);font-size:100%;" >============================================================================<br />Pengantar<br />=============================================================================<br />LVM (Logical Volume Management) memungkinkan ukuran hard disk dengan mudah<br />diperbesar/expand ataupun dikurangi/reduce. Ide dasar dari LVM adalah<br />memudahkan Anda dalam "meresize" ukuran partisi Harddisk Anda.<br />Dalam konsep LVM seluruh partisi harddisk disebut dengan "Physical Volume",<br />Kemudian Physical volume dimasukkan kedalam suatu "Volume Group", dari<br />Volume Group dibuatlah "Logical Volume".<br />Jika Anda ingin memanfaatkan partisi LVM maka Anda perlu menginstall utiliti<br />untuk mensetup LVM, jadi pastikan paket utiliti lvm2 (lvm2-2.02.06-6.0.RHEL4)<br />telah terinstall pada system Anda (dalam tulisan ini penulis menggunakan<br />Linux CentOS 4.4 final)<br /><br /><br />===============================================================================<br />Membuat partisi Harddisk LVM<br />===============================================================================<br /><br />1. Membuat "Physical Volume"<br />--------------------------------<br />Untuk menerapkan partisi harddisk dengan LVM sebaiknya Anda memiliki<br />Harddisk lebih dari satu, tetapi dalam contoh kali ini kita hanya memiliki<br />sebuah harddisk (/dev/hda) yang sebelumnya terdiri dari beberapa partisi,<br />Misalkan Anda memiliki partisi hardisk /dev/hda10, dan /dev/hda11<br />kedua partisi ini masing-maisng ukurannya 2.80 GB dan 964.00 MB<br />lalu kedua partisi harddisk ini akan dijadikan sebagai Pyhisical Volume.<br />Untuk membuat Pyhisical Volume jalankan perintah sbb:<br /><br />[root@sotnec ~]# pvcreate /dev/hda10<br />Physical volume "/dev/hda10" successfully created<br />[root@sotnec ~]# pvcreate /dev/hda11<br />Physical volume "/dev/hda11" successfully created<br /><br /><br />2. Membuat "Volume Group"<br />------------------------------<br />Selanjutnya Anda harus membuat "Volume Group" yang terdiri dari "Physical<br />Volume" /dev/hda10 dan /dev/hda11. Tetapi sebelumnya Anda buat dahulu<br />file konfigurasi LVM secara otomatis dengan perintah Sbb:<br /><br />[root@sotnec ~]# vgscan<br />Reading all physical volumes. This may take a while...<br /><br />Kemudian barulah Anda buat Volume Group dengan perintah sbb:<br /><br />[root@sotnec ~]# vgcreate -v lvm-hda /dev/hda10 /dev/hda11<br /> Wiping cache of LVM-capable devices<br /> Adding physical volume '/dev/hda10' to volume group 'lvm-hda'<br /> Adding physical volume '/dev/hda11' to volume group 'lvm-hda'<br /> Archiving volume group "lvm-hda" metadata (seqno 0).<br /> Creating volume group backup "/etc/lvm/backup/lvm-hda" (seqno 1).<br />Volume group "lvm-hda" successfully created<br /><br />Perintah diatas akan membuat sebuah Volume Group dengan nama lvm-hda (nama ini<br />bisa didefinisikan sesuai keinginan Anda).<br /><br />3. Membuat "Logical Volume"<br />------------------------------------<br />Dari Volume Group yang sudah ada Anda kemudian dapat membuat "Logical Volume",<br />sebelumnya lihat dahulu daftar Volume Group yang ada saat ini, Anda dapat menjalankan<br />perintah sbb: <br /><br />[root@sotnec ~]# vgdisplay<br />--- Volume group ---<br />VG Name lvm-hda<br />System ID<br />Format lvm2<br />Metadata Areas 2<br />Metadata Sequence No 1<br />VG Access read/write<br />VG Status resizable<br />MAX LV 0<br />Cur LV 0<br />Open LV 0<br />Max PV 0<br />Cur PV 2<br />Act PV 2<br />VG Size 3.74 GB<br />PE Size 4.00 MB<br />Total PE 958<br />Alloc PE / Size 0 / 0<br />Free PE / Size 958 / 3.74 GB<br />VG UUID 0pGE2d-07s0-5u3t-sZBH-osZp-T6DI-HGXDYO<br /><br />Dan selanjutnya buatlah "Logical Volume" dengan perintah sbb:<br /><br />[root@sotnec ~]# lvcreate -l 958 lvm-hda -n lvm0<br />Logical volume "lvm0" created<br /><br />hasil perintah diatas akan membuat file device di /dev/lvm-hda/lvm0<br /><br />Untuk melihat "Logical Volume" yang tadi sudah Anda buat jalankan perintah<br />sbb:<br /><br />[root@sotnec ~]# lvdisplay<br />--- Logical volume ---<br />LV Name /dev/lvm-hda/lvm0<br />VG Name lvm-hda<br />LV UUID N3gRGE-2Kbp-jnnL-OwCo-CR9P-kq9g-ucBZ5l<br />LV Write Access read/write<br />LV Status available<br /># open 0<br />LV Size 3.74 GB<br />Current LE 958<br />Segments 2<br />Allocation inherit<br />Read ahead sectors 0<br />Block device 253:0<br /><br /><br />4. Memformat partisi LVM ("device lvm0") dengan File System ext3<br />----------------------------------------------------------------<br /><br />Selanjutnya partsis LVM yang telah dibuat diformat dengan file system ext3,<br />lakukan perintah berikut :<br /><br />[root@sotnec ~]# mkfs.ext3 /dev/lvm-hda/lvm0<br />mke2fs 1.35 (28-Feb-2004)<br />Filesystem label=<br />OS type: Linux<br />Block size=4096 (log=2)<br />Fragment size=4096 (log=2)<br />490560 inodes, 980992 blocks<br />49049 blocks (5.00%) reserved for the super user<br />First data block=0<br />Maximum filesystem blocks=1006632960<br />30 block groups<br />32768 blocks per group, 32768 fragments per group<br />16352 inodes per group<br />Superblock backups stored on blocks:<br /> 32768, 98304, 163840, 229376, 294912, 819200, 884736<br /><br />Writing inode tables: done<br />Creating journal (8192 blocks): done<br />Writing superblocks and filesystem accounting information: done<br /><br />This filesystem will be automatically checked every 22 mounts or<br />180 days, whichever comes first. Use tune2fs -c or -i to override.<br /><br /><br />5. Memounting device "lvm0" (partisi LVM)<br />-----------------------------------------<br />Setelah selesai diformat maka partisi LVM Anda sudah dapat digunakan<br />untuk itu coba Anda mount ke direktori tertentu dalam file system linux,<br />misalnya kita akan memunting device /dev/lvm-hda/lvm0 ke direktori /media/lvm<br /><br />[root@sotnec ~]# mount /dev/lvm-hda/lvm0 /media/lvm/<br />[root@sotnec ~]# df -h<br />Filesystem Size Used Avail Use% Mounted on<br />/dev/hda8 7.7G 3.7G 3.7G 51% /<br />/dev/hda6 6.7G 6.0G 363M 95% /opt/source<br />none 121M 0 121M 0% /dev/shm<br />/dev/mapper/lvm--hda-lvm0<br /> 3.7G 40M 3.5G 2% /media/lvm<br /><br />Dari perintah df -h tampak bahwa partsis LVM Anda sudah di mount dan<br />tinggal digunakan. Coba Anda kopi atau salin file atau folder tertentu ke<br />dalam partisi atau direktori /media/lvm, contoh sbb:<br /><br />[root@sotnec ~]# cp -rf /etc /media/lvm/<br /><br />perintah diatas akan menyalin direktori /etc kedalam /media/lvm/<br />lalu coba lihat size yang telah digunakan saat ini dari partisi LVM Anda, sbb:<br /><br />[root@sotnec ~]# df -h<br />Filesystem Size Used Avail Use% Mounted on<br />/dev/hda8 7.7G 3.7G 3.7G 51% /<br />/dev/hda6 6.7G 6.0G 363M 95% /opt/source<br />none 121M 0 121M 0% /dev/shm<br />/dev/mapper/lvm--hda-lvm0<br /> 3.7G 85M 3.5G 3% /media/lvm<br />[root@sotnec ~]# ls -al /media/lvm/<br />total 36<br />drwxr-xr-x 4 root root 4096 Apr 24 14:07 .<br />drwxr-xr-x 5 root root 4096 Apr 24 12:15 ..<br />drwxr-xr-x 86 root root 8192 Apr 24 14:07 etc<br />drwx------ 2 root root 16384 Apr 24 14:01 lost+found<br /><br /><br />Nah sudah berfungsi bukan partisi LVM Anda. Lalu bagaimana jika<br />partisi LVM Anda mulai penuh dan Anda ingin memperbesar ukuran dari partisi<br />LVM Anda saat ini. ? Nah untuk menjawabnya coba perhatikan bagian selanjutnya.<br /><br /><br />===============================================================================<br />Memperbesar/menambah (Expand) ukuran disk partisi LVM Anda.<br />===============================================================================<br /><br />Suatu saat partisi LVM Anda akan kehabisan space atau dengan kata lain<br />Available size disk nya akan mendekati 0% alias Full penggunaan size nya. Nah<br />untuk menjaga-jaga Anda berniat untuk menambah ukuran/size partisi LVM anda<br />(contoh : "lvm0"). Nah bagaimanakah caranya ?, misalkan Anda memiliki partisi<br />Hard disk /dev/hda12 dengan ukuran 964.62 MB (misal: sebesar inilah tambahan size<br />yang akan Anda terapkan) . Nah partisi /dev/hda12 ini akan Anda jadikan<br />sebagai Physical Volume dari Volume Group "lvm-hda". Untuk itu Anda buatlah<br />terlebih dahulu "Physical Volume" /dev/hda12 dengan perintah sbb:<br /><br />[root@sotnec ~]# pvcreate /dev/hda12<br />Physical volume "/dev/hda12" successfully created<br /><br />Lalu coba cek seluruh "Physical Volume" yang ada saat ini:<br /><br />[root@sotnec ~]# pvdisplay<br />--- Physical volume ---<br />PV Name /dev/hda10<br />VG Name lvm-hda<br />PV Size 2.80 GB / not usable 0<br />Allocatable yes (but full)<br />PE Size (KByte) 4096<br />Total PE 717<br />Free PE 0<br />Allocated PE 717<br />PV UUID BNk2Eo-ne4J-R4Xl-KYou-L8dF-xKBn-5UHFx5<br /><br />--- Physical volume ---<br />PV Name /dev/hda11<br />VG Name lvm-hda<br />PV Size 964.00 MB / not usable 0<br />Allocatable yes (but full)<br />PE Size (KByte) 4096<br />Total PE 241<br />Free PE 0<br />Allocated PE 241<br />PV UUID g1tFCz-AULA-H6UY-NPFC-PRzZ-ekcc-9BkdEX<br /><br />--- NEW Physical volume ---<br />PV Name /dev/hda12<br />VG Name<br />PV Size 964.62 MB<br />Allocatable NO<br />PE Size (KByte) 0<br />Total PE 0<br />Free PE 0<br />Allocated PE 0<br />PV UUID RP1FCi-hwJ6-nLkP-hMuU-zM9i-BIcs-mB4GEz<br /><br />[root@sotnec ~]# vgdisplay<br />--- Volume group ---<br />VG Name lvm-hda<br />System ID<br />Format lvm2<br />Metadata Areas 2<br />Metadata Sequence No 2<br />VG Access read/write<br />VG Status resizable<br />MAX LV 0<br />Cur LV 1<br />Open LV 1<br />Max PV 0<br />Cur PV 2<br />Act PV 2<br />VG Size 3.74 GB<br />PE Size 4.00 MB<br />Total PE 958<br />Alloc PE / Size 958 / 3.74 GB<br />Free PE / Size 0 / 0<br />VG UUID 0pGE2d-07s0-5u3t-sZBH-osZp-T6DI-HGXDYO<br /><br /><br /><br />Kemudian Anda harus memperluas (extend) Volume Group "lvm-hda" dimana sekarang<br />kita ingin Physical Volume /dev/hda12 menjadi anggota dari Volume Group<br />"lvm-hda", untuk itu jalankan perintah berikut:<br /><br />[root@sotnec ~]# vgextend lvm-hda /dev/hda12<br />Volume group "lvm-hda" successfully extended<br /><br />Coba cek volume group saat ini, seharusnya Volume Group "lvm-hda" ukuran size<br />nya bertambah bukan ? dari 3.74 GB menjadi 4.68 GB<br /><br /><br />[root@sotnec ~]# vgdisplay<br />--- Volume group ---<br />VG Name lvm-hda<br />System ID<br />Format lvm2<br />Metadata Areas 3<br />Metadata Sequence No 3<br />VG Access read/write<br />VG Status resizable<br />MAX LV 0<br />Cur LV 1<br />Open LV 1<br />Max PV 0<br />Cur PV 3<br />Act PV 3<br />VG Size 4.68 GB<br />PE Size 4.00 MB<br />Total PE 1199<br />Alloc PE / Size 958 / 3.74 GB<br />Free PE / Size 241 / 964.00 MB<br />VG UUID 0pGE2d-07s0-5u3t-sZBH-osZp-T6DI-HGXDYO<br /><br /><br />Apakah "Logical Volume (lvm0)" ukurannya telah bertambah ?<br />---------------------------------------------------------<br />Untuk menjawabnya coba Anda mount ulang partisi /dev/lvm-hda/lvm0<br /><br />[root@sotnec ~]# umount /media/lvm<br />[root@sotnec ~]# mount /dev/lvm-hda/lvm0 /media/lvm<br />[root@sotnec ~]# df -h<br />Filesystem Size Used Avail Use% Mounted on<br />/dev/hda8 7.7G 3.7G 3.7G 51% /<br />/dev/hda6 6.7G 6.0G 363M 95% /opt/source<br />none 121M 0 121M 0% /dev/shm<br />/dev/mapper/lvm--hda-lvm0<br /> 3.7G 85M 3.5G 3% /media/lvm<br /><br />dari perintah "df -h " diatas terlihat bahwa partisi lvm0 belum<br />bertambah ukurannya, nah solusinya agar Logical Volume ukurannya<br />juga mengikuti ukuran sebagaimana ukuran real Volume Group "lvm-hda" saat ini<br />maka Anda harus mengextend "Logical Volume" lvm0 dengan perintah sbb:<br /><br />[root@sotnec ~]# lvextend -l 1199 /dev/lvm-hda/lvm0 /dev/hda12<br />Extending logical volume lvm0 to 4.68 GB<br />Logical volume lvm0 successfully resized<br /><br />Catatan:<br />-l 1199 menunjukkan total PE yang Anda dapat lihat dari perintah "vgdisplay"<br /><br /><br />Selanjutnya meresize juga ukuran partisi /dev/lvm-hda/lvm0. Untuk itu<br />coba lakukan langkah-langkah berikut ini:<br /><br />Umount terlebih dahulu partisi /dev/lvm-hda/lvm0, sbb:<br /><br />[root@sotnec ~]# umount /media/lvm/<br /><br />Check/scan file system sbb:<br /><br />[root@sotnec ~]# e2fsck -f /dev/lvm-hda/lvm0<br />e2fsck 1.35 (28-Feb-2004)<br />Pass 1: Checking inodes, blocks, and sizes<br />Pass 2: Checking directory structure<br />Pass 3: Checking directory connectivity<br />Pass 4: Checking reference counts<br />Pass 5: Checking group summary information<br />/dev/lvm-hda/lvm0: 4034/490560 files (0.1% non-contiguous), 37159/980992<br />blocks<br /><br />Kemudian coba Anda resize file system /dev/lvm-hda/lvm0, sbb:<br /><br />[root@sotnec ~]# resize2fs /dev/lvm-hda/lvm0 4600M<br />resize2fs 1.35 (28-Feb-2004)<br />Resizing the filesystem on /dev/lvm-hda/lvm0 to 1177600 (4k) blocks.<br />The filesystem on /dev/lvm-hda/lvm0 is now 1177600 blocks long.<br /><br /><br />Coba Anda mount lagi /dev/lvm-hda/lvm0 sbb:<br /><br />[root@sotnec ~]# mount /dev/lvm-hda/lvm0 /media/lvm/<br /><br />Lalu lihatlah ukurannya saat ini, sbb:<br /><br />[root@sotnec ~]# df -h<br />Filesystem Size Used Avail Use% Mounted on<br />/dev/hda8 7.7G 3.7G 3.7G 51% /<br />/dev/hda6 6.7G 6.0G 363M 95% /opt/source<br />none 121M 0 121M 0% /dev/shm<br />/dev/mapper/lvm--hda-lvm0<br /> 4.5G 85M 4.2G 2% /media/lvm<br /><br />Dan coba lihat data yg ada pada /dev/lvm-hda/lvm0, tidak hilang<br />dan tetap ada bukan ?<br /><br />[root@sotnec ~]# ls /media/lvm/<br />etc lost+found<br /><br /><br /><br /><br />===============================================================================<br />Mengurangi (Reduce) ukuran disk partisi LVM Anda.<br />===============================================================================<br /><br />Hal yang sebaliknya dapat juga Anda lakukan (harus hati-hati !!) yaitu<br />mengurangi atau memperkecil ukuran partisi LVM Anda tetapi tentunya<br />pengurangan jangan sampai size total partisi LVM lebih kecil dari size yang sudah<br />digunakan pada partisi LVM tersebut. Nah untuk memperkecil atau mengurangi<br />partisi LVM , dapat Anda lakukan sbb:<br /><br />Umount terlebih dahulu partisi /dev/lvm-hda/lvm0, sbb:<br /><br />[root@sotnec ~]# umount /media/lvm/<br /><br />Check/scan file system sbb:<br /><br />[root@sotnec ~]# e2fsck -f /dev/lvm-hda/lvm0<br />e2fsck 1.35 (28-Feb-2004)<br />Pass 1: Checking inodes, blocks, and sizes<br />Pass 2: Checking directory structure<br />Pass 3: Checking directory connectivity<br />Pass 4: Checking reference counts<br />Pass 5: Checking group summary information<br />/dev/lvm-hda/lvm0: 4034/588672 files (0.1% non-contiguous), 40237/1177600<br />blocks<br /><br />Lalu resize partisi LVM (misalnya menjadi 4200M atau 4.2G) sbb:<br /><br />[root@sotnec ~]# resize2fs /dev/lvm-hda/lvm0 4200M<br />resize2fs 1.35 (28-Feb-2004)<br />Resizing the filesystem on /dev/lvm-hda/lvm0 to 1075200 (4k) blocks.<br />The filesystem on /dev/lvm-hda/lvm0 is now 1075200 blocks long.<br /><br /><br />Dan cobalah Anda mount partisi LVM tersebut, sbb:<br /><br />[root@sotnec ~]# mount /dev/lvm-hda/lvm0 /media/lvm/<br />[root@sotnec ~]# df -h<br />Filesystem Size Used Avail Use% Mounted on<br />/dev/hda8 7.7G 3.7G 3.7G 51% /<br />/dev/hda6 6.7G 6.0G 363M 95% /opt/source<br />none 121M 0 121M 0% /dev/shm<br />/dev/mapper/lvm--hda-lvm0<br /> 4.1G 85M 3.8G 3% /media/lvm<br /><br />Nah tampak bukan ukuran Size partisi LVM ("lvm0") saat ini menjadi "+/- 4,1G".<br /><br />Selamat mencoba..<br /><br />By Henry Saptono </span><boypyt[at]gmail.com><br /></boypyt[at]gmail.com></pre>Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-53471121820415633912008-12-03T01:13:00.000-08:002008-12-03T02:06:56.692-08:00Implementasi IPVS & NAT untuk Clustering dan Load Balancing HTTP Server<pre><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >IP virtual service merupakan fitur yang telah disediakan oleh linux kernel dalam bentuk<br />modul ataupun terintegrasi dalam kernel.</span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > Untuk memastikan apakah kernel linux anda telah<br />mendukung IPVS maka jalankan perintah berikut ini:</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >[root@lp3tnf35 ~]# grep -i ip_vs /boot/config-2.6.17-5mdv</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_DEBUG=y</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_TAB_BITS=12</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_PROTO_TCP=y</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_PROTO_UDP=y</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_PROTO_ESP=y</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_PROTO_AH=y</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_RR=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_WRR=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_LC=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_WLC=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_LBLC=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_LBLCR=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_DH=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_SH=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_SED=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_NQ=m</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >CONFIG_IP_VS_FTP=m</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Jika muncul output seperti diatas maka kernel telah mendukung IPVS.</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Untuk memanage/administrasi IP Virtual Service/Server maka kita memerlukan tools,<br />tool tersebut</span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > adalah ipvsadm. Jika belum terinstall maka sebaiknya Anda instal<br />terlebih dahulu , jika pada CD/DVD</span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > distro yang Anda gunakan tidak tersedia maka Anda<br />dapat mendownloadnya di</span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > http://www.linuxvirtualserver.org/software/kernel-2.6/.</span><span style="font-family: verdana;font-size:100%;" ><br /><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Untuk mempersingkat penjelasan kita langsung saja menerapkan IPVS untuk cluster</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >dan load balance HTTP service.</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Skenarionya sbb:</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Kita memiliki sebuah Server Public (yang terhubung langsung dgn Internet) yg akan berfungsi</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >sebagai Load Balancer dan 2 buah Real server (cluster nodes) yang diletakkan pada segement</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >jaringan local. Spesifikasi IP address untuk masing-masing server sbb:</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >-Server Public (load balancer) memiliki IP Public 192.168.1.35/24 (eth0),</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > dan IP localnya 10.0.0.1/24 (eth1)</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >-Cluster node A memiliki IP local 10.0.0.10/24</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >-Cluster node B memiliki IP local 10.0.0.20/24</span><span style="font-family: verdana;font-size:100%;" ><br /><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > Internet</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > --------</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > |</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > </span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > |</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > |</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > 192.168.1.35/24</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > =======================</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > (Load Balancer server)</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > ======================</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > 10.0.0.1/24 </span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > |</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > |</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > |</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > ------------------------</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > | |</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >----------------- -------------------</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > 10.0.0.10/24 10.0.0.20/24</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > ---------------- ------------------</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > http http</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" > Cluster server http</span><span style="font-family: verdana;font-size:100%;" ><br /><br /><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Langkah-langkah setup Load balancer - cluster hanya dilakuakn disisi server Load Balncer,</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >sedangkan disisi real sever cukup diaktifkan service httpd nya masing2x dgn asumsi data</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >atau dokumen webnya disinkronisasi(gunakan rsync).</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Server Load balancer diharpakan memasquerade traffic dari Local network, gunakan iptables sbb:</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >-----------------------------------------------------------------------------------------------</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >[root@lp3tnf35 ~]# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE</span><span style="font-family: verdana;font-size:100%;" ><br /><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Menambah/membuat virtual service dgn tool ipvsdam, sbb:</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >---------------------------------------------------------</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >[root@lp3tnf35 ~]# ipvsadm -A -t 192.168.1.35:80 -s wrr</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >pada perintah diatas kita akan menambahkan virtual service http(port 80) pada</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >server load balancer(192.168.1.35) dengan scheduling wighted round robin (wrr).</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Untuk lebih jauh mengenai wrr coba lihat "man ipvsadm".</span><span style="font-family: verdana;font-size:100%;" ><br /><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Menambah/membuat real server dgn tool ipvsdam, sbb:</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >---------------------------------------------------</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >[root@lp3tnf35 ~]# ipvsadm -a -t 192.168.1.35:80 -r 10.0.0.10:80 -m </span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >[root@lp3tnf35 ~]# ipvsadm -a -t 192.168.1.35:80 -r 10.0.0.20:80 -m -w 2</span><span style="font-family: verdana;font-size:100%;" ><br /><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >pada perintah diatas, perintah pertama akan menambahkan real server kedalam cluster</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >dengan IP 10.0.0.10 dan dengan weight faktor 1.</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >pada perintah diatas, perintah kedua akan menambahkan real server kedalam cluster</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >dengan IP 10.0.0.20 dan dengan weight faktor 2. Ini artinya jika ada 3 koneksi ke</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >load balncer maka 2 koneksi pertama diarahkan ke real server 10.0.0.20 dan 1 koneksi</span><span style="font-family: verdana;font-size:100%;" ><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >terakhit ke 10.0.0.10.</span><span style="font-family: verdana;font-size:100%;" ><br /><br /><br /><br /></span><span style="color: rgb(51, 51, 51); font-family: verdana;font-family:arial;font-size:100%;" >Selamat mencoba......</span><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><span style="font-size:130%;"><span style="font-family: verdana;font-size:100%;" >By Henry Saptono </span><boypyt[at]gmail.com><span style="font-family: verdana;font-size:100%;" ><br /><br /></span><br /><br /><br /><br /></boypyt[at]gmail.com></span><br /></pre>Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0tag:blogger.com,1999:blog-5031067177331860775.post-85415969538747741532008-10-21T23:19:00.000-07:002008-12-03T01:04:16.517-08:00welcome to click howtoJust Click howto , berbagi banyak hal dan dapatkan banyak hal di 'clickhowto'.Henry Saptonohttp://www.blogger.com/profile/12278999477212248178noreply@blogger.com0