<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ngadimin.Com</title>
	<atom:link href="http://ngadimin.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ngadimin.com</link>
	<description>Tutorial Seputar Sistem Administrasi di Linux dan OS lainnya</description>
	<lastBuildDate>Fri, 29 Jul 2011 06:48:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>Quick Fix: &#8216;xterm-256color&#8217;: unknown terminal type.</title>
		<link>http://ngadimin.com/2011/07/29/quick-fix-xterm-256color-unknown-terminal-type/</link>
		<comments>http://ngadimin.com/2011/07/29/quick-fix-xterm-256color-unknown-terminal-type/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 04:29:33 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1537</guid>
		<description><![CDATA[Solusi utk menghilangkan pesan error: 'xterm-256color': unknown terminal type, saat mengakses server-server Debian/Ubuntu dari Terminal di Mac OSX Lion.]]></description>
				<content:encoded><![CDATA[<p>Setelah upgrade ke Mac OSX Lion, saat mengakses server-server Debian/Ubuntu ada sedikit masalah yang cukup mengganggu. Biasanya kalau sudah melakukan aktifitas yang memenuhi layar terminal (misal lihat log), saya mengclearkan layar dengan menekan tombol CTRL+L. Tapi sekarang tidak bisa.</p>
<p>Saya coba cek dengan mengetikkan perintah clear.</p>
<pre>clear</pre>
<p>Muncullah pesan error</p>
<pre>xterm-256color': unknown terminal type.</pre>
<p>Ok, sudah diketahui masalahnya. Solusinya sederhana. Install paket ncurses-term, di server Debian/Ubuntu. </p>
<pre>sudo apt-get install ncurses-term</pre>
<p>Beberapa server Debian saya sudah terinstall (entah ini default atau terinstall saat saya menginstall paket lain), tetapi semua server Ubuntu Hardy (8.04) belum terinstall paket tsb. Mudah-mudahan ini membantu rekan-rekan yang mengalami hal yg serupa.</p>
]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2011/07/29/quick-fix-xterm-256color-unknown-terminal-type/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TIPS: Setting fstab menggunakan UUID</title>
		<link>http://ngadimin.com/2011/07/22/tips-setting-fstab-menggunakan-uuid/</link>
		<comments>http://ngadimin.com/2011/07/22/tips-setting-fstab-menggunakan-uuid/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 17:28:50 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[partisi]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[uuid]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1531</guid>
		<description><![CDATA[Ubuntu sudah sejak lama secara default menggunakan format UUID di berkas /etc/fstab. Lalu bagaimana cara mencari info UUID untuk partisi di harddisk agar saya bisa mengedit atau menambahkan partisi baru ke file tadi?]]></description>
				<content:encoded><![CDATA[<p>Ubuntu sudah sejak lama menggunakan UUID di berkas /etc/fstab. Jika Anda sebelumnya biasanya menuliskan partisi harddisk seperti /dev/sda1 atau menggunakan LABEL (default di CentOS/RHEL atau Fedora), maka Ubuntu menggunakan format UUID.</p>
<p>Singkatnya, misal di /etc/fstab saya tertulis spt ini.</p>
<pre>
# / was on /dev/sda8 during installation
UUID=e63ba07a-05e9-4745-bc93-26c589f976c7 /               ext4    errors=remount
-ro 0       1
# swap was on /dev/sda5 during installation
UUID=d55d01f4-9680-4562-a4f7-2f54b8ed3144 none            swap    sw            
  0       0
</pre>
<p>Lalu bagaimana kalau saya mau menambahkan partisi lain ke /etc/fstab dengan menggunakan format UUID seperti di atas. Caranya mudah, ketik di Terminal.</p>
<pre>sudo blkid</pre>
<p>Maka tampilan yang muncul adalah semua partisi dan UUID untuk partisi tersebut. Misal utk harddisk saya</p>
<pre>
/dev/sda1: LABEL="Recovery" UUID="6292C3C292C39945" TYPE="ntfs" 
/dev/sda2: LABEL="System Reserved" UUID="8466443666442B6E" TYPE="ntfs" 
/dev/sda3: UUID="01CC441D19810D10" TYPE="ntfs" 
/dev/sda5: UUID="d55d01f4-9680-4562-a4f7-2f54b8ed3144" TYPE="swap" 
/dev/sda6: UUID="bee69909-3c99-4240-aa09-9c5e8b3fe495" TYPE="ext4" 
/dev/sda7: LABEL="_Fedora-15-x86_6" UUID="2cfa5e94-d0de-46be-904d-7493ba1580a9" TYPE="ext4" 
/dev/sda8: UUID="e63ba07a-05e9-4745-bc93-26c589f976c7" TYPE="ext4" 
/dev/sda9: LABEL="openSUSE" UUID="32d7db68-5b45-cc01-10c5-da685b45cc01" TYPE="ext4" 
</pre>
<h3>Links</h3>
<p>http://www.unixtutorial.org/2008/05/ubuntu-uuid-how-to/</p>
<p>http://www.cyberciti.biz/faq/linux-finding-using-uuids-to-update-fstab/</p>
]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2011/07/22/tips-setting-fstab-menggunakan-uuid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TIPS: Membuat File Locking Sederhana di Skrip Bash</title>
		<link>http://ngadimin.com/2010/01/25/tips-membuat-file-locking-sederhana-di-skrip-bash/</link>
		<comments>http://ngadimin.com/2010/01/25/tips-membuat-file-locking-sederhana-di-skrip-bash/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 17:46:15 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[locking]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1522</guid>
		<description><![CDATA[Tips sederhana untuk membuat locking, agar skrip yang dijalankan via cron tidak dijalankan berkali-kali, alias hanya satu proses dalam satu saat bersamaan.]]></description>
				<content:encoded><![CDATA[<p>Misal Anda ingin menjalankan sebuah proses melalui cron secara rutin tiap sekian menit sekali. Anda juga harus memastikan proses tersebut tidak dijalankan lebih dari satu proses bersamaan. Misal, karena saat eksekusi skrip pertama kali belum selesai, lalu skrip keburu dijalankan lagi oleh cron. Dan itu tidak boleh.</p>
<p>Solusi sederhana untuk permasalahan Anda adalah dengan menggunakan file locking sederhana.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">#!/bin/bash
&nbsp;
LOCKFILE=&quot;/tmp/skrip.lock&quot;
&nbsp;
if [ -e &quot;$LOCKFILE&quot; ] ; then
    echo &quot;Ada file lock. Mungkin skrip sedang dijalankan.&quot;
    exit 1
fi
&nbsp;
touch $LOCKFILE
&nbsp;
#
# disini Anda bisa tulis proses yang ingin dijalankan, misalnya:
# - rsync utk backup
# - rdiff-backup
# - scp 
# - dll
&nbsp;
&nbsp;
# setelah proses selesai dijalankan, hapus file lock.
rm -f $LOCKFILE</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2010/01/25/tips-membuat-file-locking-sederhana-di-skrip-bash/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mengkonfigurasi HTTPS Server di Nginx</title>
		<link>http://ngadimin.com/2010/01/22/mengkonfigurasi-https-server-di-nginx/</link>
		<comments>http://ngadimin.com/2010/01/22/mengkonfigurasi-https-server-di-nginx/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 18:24:38 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[dokumentasi]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[terjemahan]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1504</guid>
		<description><![CDATA[Tulisan ini adalah terjemahan dari dokumentasi Nginx. Sebelumnya saya pernah membuat artikel <a href="http://ngadimin.com/2009/11/30/konfigurasi-https-di-nginx/">Konfigurasi HTTPS di Nginx</a>, tapi disana hanya dibahas secara singkat saja. 

Dan tulisan yg saya akan terjemahkan ini, membahas lebih lengkap tentang konfigurasi HTTPS di Nginx, ditulis oleh pengembang Nginx, Igor Sysoev.]]></description>
				<content:encoded><![CDATA[<p>Tulisan ini adalah terjemahan bebas dari &#8220;<a href="http://www.nginx.org/en/docs/http/configuring_https_servers.html">Configuring HTTPS servers</a>&#8220;. Dokumentasi tentang HTTPS server yang ditulis oleh Igor Sysoev, developer nginx. </p>
<p>Untuk mengkonfigurasi HTTPS server, Anda harus mengaktifkan protokol SSL di blok server, dan menuliskan lokasi dari berkas server certificate dan private key:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">server {
    listen               443;
    server_name          www.nginx.com;
    ssl                  on;
    ssl_certificate      www.nginx.com.crt;
    ssl_certificate_key  www.nginx.com.key;
    ssl_protocols        SSLv3 TLSv1;
    ssl_ciphers          HIGH:!ADH:!MD5;
    ...
}</pre></td></tr></table></div>

<p><em>Server certificate</em> adalah entitas publik. Ini akan dikirim ke setiap klien yang terhubung ke server. Sedangkan <em>private key</em> adalah entitas keamanan dan harus disimpan dalam berkas dengan akses terbatas, tapi walau terbatas harus bisa dibaca oleh master proses nginx. <em>Private key</em> bisa juga disimpan dalam berkas sama sebagai <em>certificate</em>:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">    ssl_certificate      www.nginx.com.cert;
    ssl_certificate_key  www.nginx.com.cert;</pre></td></tr></table></div>

<p>yang dalam kasus ini akses ke berkas juga harus dibatasi. Meskipun sertifikat dan kuncinya disimpan dalam satu berkas, hanya bagian <em>certificate</em> yang akan dikirim ke klien.</p>
<p>Direktif &#8220;<tt>ssl_protocols</tt>&#8221; dan &#8220;<tt>ssl_chipers</tt>&#8221; mungkin bisa digunakan untuk membatasi koneksi  ke versi aman/kuat (<em>strong</em>) protokol SSL dan chipers. Sejak versi 0.8.20, nginx menggunakan &#8220;<tt>ssl_protocols SSLv3 TLSv1</tt>&#8221; dan &#8220;<tt>ssl_chipers HIGH:!ADH:!MD5</tt>&#8221; pada konfigurasi default, jadi semua itu hanya harus diset jika menggunakan versi nginx sebelumnya.</p>
<h3>Optimasi HTTPS server</h3>
<p>Operasi SSL mengkonsumsi sumberdaya CPU lebih banyak. Pada sistem multi prosesor Anda sebaiknya menjalankan beberapa <em>worker processes</em>: tidak lebih sedikit dari jumlah CPU core yang tersedia. Operasi yang paling banyak memakai sumberdaya CPU adalah pada saat <em>SSL handshake</em>.  </p>
<p>Ada dua cara untuk meminimalkan jumlah operasi ini per klien: yang pertama adalah mengaktifkan <em>keepalive connections</em> untuk mengirimkan beberapa <em>request</em> melalui satu koneksi dan yang kedua adalah untuk menggunakan ulang sesi SSL untuk menghindari <em>SSL handshake</em> untuk koneksi parallel dan <em>subsequent connections</em>. Sesi-sesi ini disimpan dalam SSL session cache yang di share antara worker dan dikonfigurasi oleh direktif &#8220;<tt>ssl_session_cache</tt>&#8220;. Satu megabyte dari cache bisa menyimpan sekitar 4000 sesi. Nilai default untuk cache timeout adalah 5 menit. Dan bias dinaikkan menggunakan direktif &#8220;<tt>ssl_session_timeout</tt>&#8220;. </p>
<p>Berikut ini adalah contoh konfigurasi yang sudah dioptimasi untuk sistem quad core dengan 10M shared session cache:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">worker_processes  4;
&nbsp;
http {
    ssl_session_cache    shared:SSL:10m;
    ssl_session_timeout  10m;
&nbsp;
    server {
        listen               443;
        server_name          www.nginx.com;
        keepalive_timeout    70;
&nbsp;
        ssl                  on;
        ssl_certificate      www.nginx.com.crt;
        ssl_certificate_key  www.nginx.com.key;
        ssl_protocols        SSLv3 TLSv1;
        ssl_ciphers          HIGH:!ADH:!MD5;
        ...</pre></td></tr></table></div>

<h3>SSL certifcate chains</h3>
<p>Beberapa peramban mungkin komplen tentang sertifikat yang ditandatangani oleh <em>well-kown certificate authority</em>, sementara peramban lainnya mungkin menerima sertifikat tanpa masalah. Hal ini terjadi karena yang mengeluarkan otoritas telah menandatangi sertifikat server menggunakan sertifikat perantara (intermediate certificate) yang tidak tersedia di basis sertifikat dari <em>well-known trusted certificate authorities</em>, tapi dilain sisi sertifikat ini mungkin didistribusikan di sebagian peramban lainnya. Dalam kasus ini si otoritas biasanya menyediakan satu bundle chained certificates yang harus di gabungkan (concatenated) ke sertifikat yang telah ditandatangani. Sertifikat harus muncul sebelum chained certificates pada berkas yang sudah digabung:</p>
<pre>$ cat www.nginx.com.crt bundle.crt > www.nginx.com.chained.crt</pre>
<p>Berkas yang dihasilkan digunakan dalam direktif &#8220;<tt>ssl_certificate</tt>&#8220;:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">server {
    listen               443;
    server_name          www.nginx.com;
    ssl                  on;
    ssl_certificate      www.nginx.com.chained.crt;
    ssl_certificate_key  www.nginx.com.key;
    ...
}</pre></td></tr></table></div>

<p>Jika sertifikate server dan bunel sudah digabungkan dalam urutan yang salah, nginx akan gagal dijalankan dan akan menampilkan pesan error:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">SSL_CTX_use_PrivateKey_file(&quot; ... /www.nginx.com.key&quot;) failed
   (SSL: error:0B080074:x509 certificate routines:
    X509_check_private_key:key values mismatch)</pre></td></tr></table></div>

<p>karena nginx mencoba menggunakan private key dengan certifikat pertama dari bundle dan bukan ke sertifikat server yang seharusnya.</p>
<p>Peramban biasanya menyimpan sertifikat perantara yang mereka terima dan yang ditandatangani oleh otoritas terpercaya, jadi peramban yang sudah digunakan secara aktif mungkin sudah memiliki sertifikat perantara yang dibutuhkan dan tidak akan komplen tentang sertifikat yang dikirim tanpa bundle. Untuk meyakinkan server mengirimkan certificate chain yang lengkap, Anda bisa menggunakan perintah &#8220;<tt>openssl</tt>&#8220;, misalnya:</p>
<pre>$ openssl s_client -connect www.godaddy.com:443</pre>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">...
Certificate chain
 0 s:/C=US/ST=Arizona/L=Scottsdale/1.3.6.1.4.1.311.60.2.1.3=US
     /1.3.6.1.4.1.311.60.2.1.2=AZ/O=GoDaddy.com, Inc
     /OU=MIS Department/CN=www.GoDaddy.com
     /serialNumber=0796928-7/2.5.4.15=V1.0, Clause 5.(b)
   i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc.
     /OU=http://certificates.godaddy.com/repository
     /CN=Go Daddy Secure Certification Authority
     /serialNumber=07969287
 1 s:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc.
     /OU=http://certificates.godaddy.com/repository
     /CN=Go Daddy Secure Certification Authority
     /serialNumber=07969287
   i:/C=US/O=The Go Daddy Group, Inc.
     /OU=Go Daddy Class 2 Certification Authority
 2 s:/C=US/O=The Go Daddy Group, Inc.
     /OU=Go Daddy Class 2 Certification Authority
   i:/L=ValiCert Validation Network/O=ValiCert, Inc.
     /OU=ValiCert Class 2 Policy Validation Authority
     /CN=http://www.valicert.com//emailAddress=info@valicert.com
...</pre></td></tr></table></div>

<p>Di contoh ini subject (&#8220;s&#8221;) dari sertifikat server www.GoDaddy.com #0 ditandatangani oleh issuer (&#8220;i&#8221;) yang merupakan subject dari sertifikat #1, yang juga ditandatangani oleh issuer yang merupakan subject dari certificate #2, yang ditandatangani oleh well-known issuer ValiCert, Inc. Semua sertifikat itu disimpan di built-in certificate base dari peramban.</p>
<p>Jika Anda tidak menambahkan certificate bundle, Anda hanya akan melihat sertifikate server #0.</p>
<h3>A single HTTP/HTTPS server</h3>
<p>Merupakan langkah yang baik untuk mengkonfigurasi server secara terpisah untuk protokol HTTP dan HTTPS dari sejak awal. Meskipun mungkin fungsionalitas mereka terlihat mirip, tapi ini bisa saja berubah secara signifikan di masa yang akan datang dan menggunakan server yang digabung mungkin akan menjadi masalah. Walau demikian, jika server HTTP dan HTTPS adalah sama, dan Anda tidak ingin berfikir tentang masa yang akan datang, Anda bisa mengkonfigurasi satu server tunggal yang menangani request HTTP dan HTTPS dengan menghapus direktif &#8220;<tt>ssl on</tt>&#8221; dan menambahkan parameter &#8220;<tt>ssl</tt>&#8221; untuk port *:443</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">server {
    listen               80;
    listen               443  ssl;
    server_name          www.nginx.com;
    ssl_certificate      www.nginx.com.crt;
    ssl_certificate_key  www.nginx.com.key;
    ...
}</pre></td></tr></table></div>

<p>Semenjak versi 0.8.21, nginx hanya membolehkan parameter &#8220;<tt>ssl</tt>&#8221; di set pada socket yang di listen dengan parameter &#8220;default&#8221;:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">listen  443  default  ssl;</pre></td></tr></table></div>

<h3>Name-based HTTPS servers</h3>
<p>Biasanya muncul masalah umum ketika mengkonfigurasi dua atau lebih server HTTPS yang listening pada satu alamat IP:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">server {
    listen           443;
    server_name      www.nginx.com;
    ssl              on;
    ssl_certificate  www.nginx.com.crt;
    ...
}
&nbsp;
server {
    listen           443;
    server_name      www.nginx.org;
    ssl              on;
    ssl_certificate  www.nginx.org.crt;
    ...
}</pre></td></tr></table></div>

<p>Dengan konfigurasi ini, peramban menerima sertifikat dari default server, misalnya, www.nginx.com tanpa terpengaruh dengan server name yang direquest. Ini disebabkan karena sifat dari protokol SSL. Koneksi SSL terjadi sebelum browser mengirim request HTTP dan nginx tidak akan pernah tahu nama dari server yang direquest. Oleh karena itu, dia hanya akan menawarkan satu sertifikat dari default server.</p>
<p>Cara lama dan yang paling tokcer untuk mengatasi masalah ini adalah dengan membuat alamat IP terpisah untuk setiap HTTPS server:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">server {
    listen           192.168.1.1:443;
    server_name      www.nginx.com;
    ssl              on;
    ssl_certificate  www.nginx.com.crt;
    ...
}
&nbsp;
server {
    listen           192.168.1.2:443;
    server_name      www.nginx.org;
    ssl              on;
    ssl_certificate  www.nginx.org.crt;
    ...
}</pre></td></tr></table></div>

<h3>Sertifikat SSL dengan beberapa nama</h3>
<p>Ada cara lain untuk berbagi alamat IP antara beberapa HTTPS server, meskipun demikian, semuanya memiliki kelemahan. Salah satu cara adalah menggunakan sertifikat dengan beberapa nama pada bagian SubjectAltName di sertifikat. Sebagai contoh misalnya, www.nginx.com dan www.nginx.org. Tapi, bagian SubjectAltName memiliki panjang yang terbatas.</p>
<p>Cara lain adalah menggunakan sertifikat dengan wildcard name, misalnya, *.nginx.org. Sertifikat ini akan cocok dengan www.nginx.org, tapi tidak akan cocok dengan nginx.org dan www.sub.nginx.org. Dua metode tadi, bisa juga dikombinasikan. Sertifikat bisa saja berisikan exact dan wildcard name pada bagian SubjectAltName, misalnya, nginx.org dan *.nginx.org.</p>
<p>Akan lebih baik untuk menyimpan berkas sertifikat dengan beberapa nama dan berkas kunci privatenya pada level http dari berkas konfigurasi, agar di inherit ke semua server dari satu salinan memori.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">ssl_certificate      common.crt;
ssl_certificate_key  common.key;
&nbsp;
server {
    listen           443;
    server_name      www.nginx.com;
    ssl              on;
    ...
}
&nbsp;
server {
    listen           443;
    server_name      www.nginx.org;
    ssl              on;
    ...
}</pre></td></tr></table></div>

<h3>Server Name Indication</h3>
<p>Solusi yang lebih mendasar untuk menjalankan beberapa server HTTPS pada satu alamat IP tunggal adalah menggunakan TLSv1.1 Server Name Indication extension (SNI, RFC3546), dimana dia membolehkan peramban melanjutkan request server name pada saat SSL handshake, dan selanjutnya, server akan tahu sertifikat yang mana yang harus digunakan untuk koneksi tersebut. Tapi SNI memiliki dukungan peramban yang terbatas. Saat ini dukungan fitur mulai ada di beberapa versi peramban berikut:</p>
<p>Opera 8.0;<br />
MSIE 7.0 (hanya untuk Windows Vista atau versi lebih tinggi);<br />
Firefox 2.0 dan peramban lain yang menggunakan platform Mozilla Platform rv:1.8.1;<br />
Safari 3.2.1 (Versi Windows mendukung SNI pada Vista atau versi lebih baru);<br />
dan Chrome (Versi Windows mendukung SNI pada Vista atau versi lebih baru).</p>
<p>Untuk menggunakan SNI di nginx, ini harus didukung oleh pustaka OpenSSL yang mana saat nginx dibangun juga oleh pustakan yang sedang ditautkan secara dinamik saat dijalankan. OpenSSL sudah mendukung SNI sejak versi 0.9.8f jika dia dibangun dengan opsi konfigurasi &#8220;<tt>--enable-tlsext</tt>&#8220;. Sejak OpenSSL 0.8.9j opsi ini diaktifkan secara default. Jika nginx sudah dibangun dengan dukungan SNI, maka nginx akan menampilkan ini ketika dijalankan dengan pilihan &#8220;-V&#8221;:</p>
<pre>$ nginx -V
...
TLS SNI support enabled
...</pre>
<p>Akan tetapi, jika nginx yang sudah diaktifkan SNI nya, tapi ditautkan secara dinamik ke pustaka OpenSSl yang tidak memiliki dukungan SNI, ngixn akan menampilkan peringatan:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">nginx was built with SNI support, however, now it is linked
dynamically to an OpenSSL library which has no tlsext support,
therefore SNI is not available</pre></td></tr></table></div>

<h3>Kompatibilitas</h3>
<p>The SNI support status has been shown by the “-V” switch since 0.8.21 and 0.7.62.<br />
The “ssl” parameter of the “listen” directive has been supported since 0.7.14.<br />
SNI has been supported since 0.5.32.<br />
The shared SSL session cache has been supported since 0.5.6.<br />
Version 0.8.19 and later: the default SSL protocols are SSLv3 and TLSv1.<br />
Version 0.8.18 and earlier: the default SSL protocols are SSLv2, SSLv3, and TLSv1.<br />
Version 0.8.20 and later: the default SSL ciphers are “HIGH:!ADH:!MD5”.<br />
Version 0.8.19: the default SSL ciphers are “ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM”.<br />
Version 0.8.18 and earlier: the default SSL ciphers are<br />
“ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP”.</p>
<p>Ditulis oleh Igor Sysoev<br />
Diedit oleh Brian Mercer<br />
Diterjemahkan oleh Cecep Mahbub</p>
]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2010/01/22/mengkonfigurasi-https-server-di-nginx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Squid hari ke tiga: Mengenal Sistem Autentikasi di Squid</title>
		<link>http://ngadimin.com/2009/12/20/squid-hari-ke-tiga-mengenal-sistem-autentikasi-di-squid/</link>
		<comments>http://ngadimin.com/2009/12/20/squid-hari-ke-tiga-mengenal-sistem-autentikasi-di-squid/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 06:00:22 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Seri Tutorial]]></category>
		<category><![CDATA[autentikasi]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[dasar]]></category>
		<category><![CDATA[digest]]></category>
		<category><![CDATA[konfigurasi]]></category>
		<category><![CDATA[negotiate]]></category>
		<category><![CDATA[ntlm]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1113</guid>
		<description><![CDATA[Sebelum mengkonfigurasi sistem autentikasi di Squid, kita akan berkenalan dengan skema-skema autentikasi yang didukung oleh Squid. Setiap skema autentikasi ada kelebihan dan kekurangan. Dan untuk mengkonfigurasinya biasanya diperlukan <em>helper</em>, atau program untuk membantu proses autentikasi ke <em>backend</em>. Lebih jelasnya saya coba bahas ditulisan ini.]]></description>
				<content:encoded><![CDATA[<h3>Sistem Autentikasi di Squid</h3>
<p>Squid mendukung 4 skema autentikasi, yaitu:</p>
<ol>
<li>Basic</li>
<li>Digest</li>
<li>NTLM</li>
<li>Negotiate (mulai dari versi 2.6)</li>
</ol>
<p>Masing-masing skema autentikasi punya kelebihan dan kekurangan masing-masing. Mari kita bahas satu per satu.</p>
<h3>Basic Authentication</h3>
<p>Ini adalah skema autentikasi yang didukung oleh semua peramban (browser) utama. Dan lebih dari itu, bisa berfungsi dengan baik di semua platform OS. Jadi kalau ingin menggunakan skema autentikasi yang yakin berfungsi dengan baik di semua browser, pakailah skema autentikasi basic.</p>
<p>Sayangnya skema autentikasi basic ini memiliki satu kelemahan utama, yaitu proses pengiriman data user dan password dikirim dalam format plain text. Jadi sangat rentan terhadap proses snip atau penyadapan saat proses autentikasi berlangsung.</p>
<p>Skema ini tidak disarankan ketika layanan yang diberikan akan diakses melalui jaringan internet. Tapi masih bisa ditolerir jika layanan itu dibuat untuk kalangan terbatas, misalnya LAN kantor. Dan karena squid pada umumnya digunakan di jaringan terbatas, skema autentikasi ini masih bisa digunakan.</p>
<p><strong>Helper atau program bantu untuk autentikasi ke backend</strong></p>
<p>Squid menyediakan beberapa program bantu untuk skema autentikasi basic. Anda bisa memilih mana yang cocok dengan keperluan Anda.</p>
<ol>
<li>LDAP: Autentikasi ke LDAP.</li>
<li>NCSA: Menggunakan format penulisan username dan password format NCSA.</li>
<li>MSNT: Autentikasi ke domain Windows NT.</li>
<li>PAM: Menggunakan skema autentikasi PAM yang umum digunakan di sistem operasi Unix/Linux. </li>
<li>SMB: Menggunakan server SMB seperti Windows NT atau Samba.</li>
<li>getpwam: Menggunakan cara kuno, berkas password di Unix/Linux.</li>
<li>SASL: Mengggunakan pustaka SASL.</li>
<li>mswin_sspi: Windows native authenticator.</li>
<li>YP: Menggunakan database NIS.</li>
</ol>
<h3>Digest Authentication</h3>
<p>Skema autentikasi digest diperkenalkan untuk mengatasi kelemahan yang ada di skema autentikasi basic. Skema ini lebih aman, karena pada saat autentikasi, data username dan password tidak dikirim dalam format plain text. </p>
<p>Secara umum, kelebihan skema autentikasi digest dibandingkan skema autentikasi basic, yaitu lebih aman. Tapi sayangnya tidak didukung oleh semua browser. Internet Explorer 5 &#038; 6 adalah salah satu browser yang tidak mendukung skema autentikasi digest.</p>
<h3>NTLM Authentication</h3>
<p>Ini adalah skema autentikasi yang diperkenalkan oleh Microsoft. Dengan menggunakan skema autentikasi NTLM, semua user yang sudah login ke domain, ketika mengakses squid tidak akan diminta lagi username dan password. Ini yang kita kenal sebagai proses Single Sign On. Jika sudah sukses autentikasi di satu layanan, ketika ingin menggunakan layanan lain tidak perlu memasukkan login dan password lagi, proses autentikasi berlangsung secara transparan.</p>
<p>Sayangnya, seperti yang mungkin Anda sudah bisa tebak, ini hanya berfungsi dengan baik di sistem operasi Windows. Dan tidak semua browser mendukung skema autentikasi NTLM. Internet Explorer dan Firefox adalah salah satu browser yang mendukung skema autentikasi NTLM. Chrome, Safari dan Opera adalah contoh browser yang belum mendukung skema autentikasi NTLM.</p>
<p>Biasanya, untuk browser atau OS yang tidak mendukung skema autentikasi NTLM, ada pilihan fallback ke skema autentikasi basic.</p>
<p><strong>Helper atau program bantu untuk autentikasi ke backend</strong></p>
<p>Paket samba menyertakan winbind ntlm helper untuk membantu squid bisa memberikan layanan skema autentikasi NTLM. </p>
<p>Sedikit catatan di Debian atau Ubuntu, yang Anda gunakan adalah /usr/bin/ntlm_auth, dan BUKAN ke /usr/lib/squid/ntlm_auth.</p>
<h3>Negotiate Authentication</h3>
<p>Protokol negotiate diperkenalkan lagi-lagi oleh Microsoft, sering dikenal juga sebagai SPNEGO. Skema autentikasi ini memperbarui skema Single Sign On yang sebelumnya menggunakan autentikasi NTLM.</p>
<p>Jadi apakah Negotiate itu? Skema ini bisa dianggap sebagai wrapper (atau alat bantu) untuk menggunakan salah satu dari autentikasi ke Kerberos atau NTLM. Kelebihan skema ini, jauh lebih aman bila dibandingkan dengan skema autentikasi NTLM.</p>
<p>Kelemahannya, lagi-lagi hanya berfungsi dengan baik di lingkungan OS Windows. Selain itu untuk saat ini mengkonfigurasi skema autentikasi negotiate agak ribet, karena helper baru tersedia untuk sistem operasi windows.</p>
<h3>Rangkuman</h3>
<p>Di tulisan ini memang tidak memberikan contoh siap pakai, tapi diharapkan Anda memahami beberapa aspek dasar tentang skema autentikasi di Squid. Dan untuk memahami lebih lanjut, saya berika beberapa tautan yang mungkin bisa memberikan penjelasan yang lebih detail.</p>
<ul>
<li><a href="http://wiki.squid-cache.org/Features/Authentication">http://wiki.squid-cache.org/Features/Authentication</a></li>
<li><a href="http://wiki.squid-cache.org/Features/NegotiateAuthentication">http://wiki.squid-cache.org/Features/NegotiateAuthentication</a></li>
<li><a href="http://en.wikipedia.org/wiki/BasicAuthenticationScheme">http://en.wikipedia.org/wiki/BasicAuthenticationScheme</a></li>
<li><a href="http://en.wikipedia.org/wiki/NTLM">http://en.wikipedia.org/wiki/NTLM</a></li>
<li><a href="http://en.wikipedia.org/wiki/DigestAccessAuthentication">http://en.wikipedia.org/wiki/DigestAccessAuthentication</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2009/12/20/squid-hari-ke-tiga-mengenal-sistem-autentikasi-di-squid/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Konfigurasi HTTPS di Nginx</title>
		<link>http://ngadimin.com/2009/11/30/konfigurasi-https-di-nginx/</link>
		<comments>http://ngadimin.com/2009/11/30/konfigurasi-https-di-nginx/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 17:35:33 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1468</guid>
		<description><![CDATA[Mengkonfigurasi https di Nginx. Di tulisan ini akan dijelaskan bagaimana cara mengkonfigurasi Nginx agar bisa melayani akses https. Dan kita akan menggunakan self sign certificate.]]></description>
				<content:encoded><![CDATA[<p>Sebelum melanjutkan, silakan Anda baca tentang cara <a href="http://ngadimin.com/2009/11/11/membuat-self-signed-certificate/">Membuat Self-Signed Certificate</a>, dan <a href="http://ngadimin.com/2009/06/26/video-instalasi-nginx-di-ubuntu-hardy/">cara menginstal Nginx</a>. Karena kita akan menggunakan keduanya.</p>
<h3>Yang diperlukan</h3>
<p>Pastikan Nginx dikompilasi dengan opsi:</p>
<pre>--with-http_ssl_module</pre>
<p>Jika Anda menggunakan paket debian atau rpm, Anda bisa memastikannya dengan pertintah:</p>
<pre>nginx -V</pre>
<p>Selain itu Anda harus sudah menginstal paket openssl.</p>
<h3>Membuat Self Sign Certificate</h3>
<p>Saya tuliskan lagi secara singkat. Lengkapnya silakan lihat di tulisan sebelumnya, <a href="http://ngadimin.com/2009/11/11/membuat-self-signed-certificate/">Membuat Self Sign Certificate</a>.</p>
<pre>openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 731 -in server.csr -signkey server.key -out server.crt
</pre>
<p>Anda akan mempunyai 3 berkas baru.</p>
<pre>server.crt
server.csr
server.key</pre>
<p>Yang akan diguanakan hanya dua, <code>server.crt</code> dan <code>server.key</code>.</p>
<h3>Konfigurasi Nginx</h3>
<p>Sekarang silakan salin dua berkas tersebut, dan atur hak aksesnya. Asumsi Nginx dijalankan sebagai user www-data.</p>
<pre>cp server.crt /etc/ssl/
cp server.key /etc/ssl/
chmod 644 /etc/ssl/server.crt
chmod 640 /etc/ssl/server.key
chown root:www-data /etc/ssl/server.key</pre>
<p>Maka konfigurasi Nginx untuk https:</p>
<pre>server {
    server_name perusahaan.com;
    listen 443;
    ssl on;
    ssl_certificate /etc/ssl/server.crt;
    ssl_certificate_key /etc/ssl/server.key;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2009/11/30/konfigurasi-https-di-nginx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Membuat Self-Signed Certificate</title>
		<link>http://ngadimin.com/2009/11/11/membuat-self-signed-certificate/</link>
		<comments>http://ngadimin.com/2009/11/11/membuat-self-signed-certificate/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 14:51:57 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Seri Tutorial]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[self-signed]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1418</guid>
		<description><![CDATA[Membuat Self-Signed Certificate sebetulnya sangat mudah. Tapi karena sintak atau penulisan perintah openssl yang lumayan panjang dan penuh opsi yang tidak mudah untuk dimengerti, jadinya terlihat sulit.  Ditambah pula dengan banyaknya artikel yang membahas cara membuat self-signed certificate dengan sintak perintah yang diberikan terlihat berbeda. Lengkaplah sudah kebingungan Anda.

Nah di tulisan ini, saya mencoba merangkum itu semua, dan menjelaskan secara singkat, tapi mudah-mudahan bisa memberikan banyak pencerahan buat Anda tentang bagaimana membuat self-signed certificate.]]></description>
				<content:encoded><![CDATA[<p>Ditulisan saya sebelumnya, saya sudah menjelaskan tentang apa itu self-sign certificate dan apa bedanya dengan sertifikat berbayar. Silakan baca tulisan: <a href="http://ngadimin.com/2009/11/10/mengenal-self-signed-certificate/">Mengenal Self-Signed Certificate</a>.</p>
<h3>4 Langkah Membuat Self-Signed Certificate</h3>
<h4>Buat Private Key</h4>
<p>Buat <em>private key</em> dengan perintah di bawah ini. Anda akan diminta memasukkan password untuk mengenkripsi <em>private key</em> yang baru saja dibuat.</p>
<pre>openssl genrsa -des3 -out server.key 2048</pre>
<p>Anda kemungkinan besar, nantinya akan membuat versi yang tidak dienkripsi. Karena ketika sertifikat ssl digunakan dalam konfigurasi apache misalnya, setiap <em>service</em> apache di restart, server akan menunggu Anda memasukkan password untuk <em>private key</em>. </p>
<p>Cara lain, biar lebih hemat waktu, buat <em>private key</em> yang tidak dienkripsi. Gunakan perintah di bawah ini.</p>
<pre>openssl genrsa -out server.key 2048</pre>
<h4>Buat Certificate Signing Request</h4>
<p>Buat <em>Certificate Signing Request</em>, atau sertifikat yang akan disiapkan untuk di tanda tangani nanti. </p>
<pre>openssl req -new -key server.key -out server.csr</pre>
<p>Anda akan diminta memasukkan beberapa entri seperti di bawah ini:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">Country Name (2 letter code) [AU]: ID
State or Province Name (full name) [Some-State]: DKI Jakarta
Locality Name (eg, city) []: Jakarta Selatan
Organization Name (eg, company) [Internet Widgits Pty Ltd]: PT. Ngadimin Sehat Selalu
Organizational Unit Name (eg, section) []: Dept. Teknologi Informasi    
Common Name (eg, YOUR name) []: www.ngadimin.com
Email Address []: cecep@ngadimin.com</pre></td></tr></table></div>

<p>Yang perlu Anda ingat, agar sertifikat Anda valid, dibagian Common Name isi dengan alamat dns yang akan diakses nanti oleh user. Jika user akan mengaksesnya dengan nama portal.perusahaan.com, maka isi dengan portal.perusahaan.com.</p>
<h4>Sign Certificate Menggunakan Private Key</h4>
<p>Tandatangani sertifikat menggunakan <em>private key</em> yang Anda buat sebelumnya (inilah makanya disebut <em>self-sign certificate</em>, karena dibuat dan ditandatangani menggunakan kunci yang sama). </p>
<p>Dalam contoh ini sertifikat akan valid selama 731 hari atau kira-kira 2 tahun. Silakan ganti dengan jumlah hari yang diinginkan. Saran jangan terlalu lama, dan jangan terlalu singkat.</p>
<pre>openssl x509 -req -days 731 -in server.csr -signkey server.key -out server.crt</pre>
<h4>Buat versi Private Key yang tidak dienkripsi</h4>
<p>Jika dilangkah sebelumnya Anda membuat <em>private key</em> yang dienkripsi (atau dilindungi dengan password), Anda bisa membuat versi yang tidak dilindungi dengan password menggunakan perintah di bawah ini.</p>
<pre>openssl rsa -in server.key -out server.key.tidak-dienkripsi
mv server.key server.key.dienkripsi
mv server.key.tidak-dienkripsi server.key </pre>
<p>Selanjutnya Anda akan menggunakan versi private key yang tidak dienkripsi, untuk mempermudah menjalankan  secara otomatis service yang menggunakan ssl.</p>
<h3>Perintah yang Lebih Ringkas</h3>
<p>Langkah-langkah di atas, bisa diringkas menjadi satu perintah seperti di bawah ini. Bedanya Anda tidak membuat <em>certificate signing request</em> dulu, tapi langsung bikin <em>private key</em> dan <em>certificate</em> nya.</p>
<pre>openssl req -days 731 -newkey rsa:2048 -keyout server.key -out server.crt</pre>
<p>Tapi sepertinya Anda tetap harus menjalankan perintah di bawah ini, untuk membuat versi <em>private key</em> yang tidak dienkripsi.</p>
<pre>openssl rsa -in server.key -out server.key.tidak-dienkripsi
mv server.key server.key.dienkripsi
mv server.key.tidak-dienkripsi server.key </pre>
<h3>Daftar Berkas Yang Dihasilkan</h3>
<p>Baik menggunakan langkah-langkah yang lebih panjang, atau pakai perintah yang lebih ringkas, Anda kira-kira akan mendapatkan 4 berkas di bawah ini.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">server.crt
server.csr --&gt; kalau pakai cara ringkas, berkas ini tidak akan ada
server.key
server.key.dienkripsi</pre></td></tr></table></div>

<p>Dari berkas di atas, yang akan digunakan oleh service, seperti apache, nginx atau service lainnya, hanya dua berkas. Yaitu server.crt dan server.key.</p>
<p>Untuk konfigurasi ssl untuk apache atau nginx akan dijelaskan ditulisan terpisah.</p>
]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2009/11/11/membuat-self-signed-certificate/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mengenal Self-Signed Certificate</title>
		<link>http://ngadimin.com/2009/11/10/mengenal-self-signed-certificate/</link>
		<comments>http://ngadimin.com/2009/11/10/mengenal-self-signed-certificate/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 07:33:46 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Seri Tutorial]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[self-signed]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1406</guid>
		<description><![CDATA[Apa itu self-signed certificate? Lalu apa perbedaannya dengan sertifikat ssl berbayar? Apakah dengan menggunakan sertifikat ssl buatan sendiri, proses komunikasi data menjadi kurang aman?

Mungkin itu sebagian pertanyaan yang akan muncul terkait self-signed certificate. Di tulisan ini saya akan mencoba membahasnya, dan membandingkan dengan sertifikat ssl berbayar. Dengan harapan akan lebih mudah dimengerti oleh Anda.]]></description>
				<content:encoded><![CDATA[<h3>Murah, tidak harus bayar</h3>
<p>Saya coba tampilkan tabel harga sertifikat SSL, dari salah satu situs reseller sertifikat ssl. Anda bisa dengan mudah menemukan tabel serupa dengan mencari tabel perbandingan harga sertifikat ssl di google.</p>
<p><img src="http://ngadimin.com/wp-content/uploads/2009/11/Tabel-Harga-Sertifikat-SSL.png" alt="Tabel Harga Sertifikat SSL" title="Tabel Harga Sertifikat SSL" width="500" height="145" class="aligncenter size-full wp-image-1431" /></p>
<p>Sertifikat SSL standar, rata-rata ada di harga lebih dari $100 dollar per tahun. Bahkan bisa mencapai ribuan dollar ketika menggunakan Sertifikat SSL Extended Validation (EV). Okelah misalnya Anda termasuk cukup menggunakan sertifikat ssl dengan level verifikasi terendah, seperti Geotrust RapidSSL atau Comodo PositiveSSL. Dibeberapa situs kedua sertifikat itu bisa Anda peroleh dengan harga $9 per tahun. </p>
<p>INGAT per tahun! Artinya tahun berikutnya Anda harus siap mengeluarkan budget yang sama.</p>
<p>Dengan self-signed certificate, Anda tidak perlu mengeluarkan biaya sepeserpun. Bikin sendiri, tanda tangani sendiri. Beres!</p>
<h3>Mudah, tidak ada proses verifikasi</h3>
<p>Verifikasi terendah dalam pembuatan Sertifikate SSL adalah dengan verifikasi domain. Jadi otoritas yang akan memverifikasi sertifikat Anda akan memastikan kalau Anda memang punya kontrol atas domain yang akan dibuatkan sertifikat sslnya.</p>
<p>Jika Anda membeli sertifikat SSL yang lebih tinggi lagi, dan tentunya lebih mahal pula, Anda harus siap dengan proses verifikasi yang lebih rumit lagi. Beberapa dokumen resmi akan diminta sebagai alat untuk memverifikasi identitas si pemilik domain.</p>
<p>Menggunakan self-signed certificate tidak perlu verifikasi. Tinggal bikin, gak ada verifikasi.</p>
<h3>Amankah menggunakan Self-Signed Certificate?</h3>
<p>Dari segi teknis, sama-sama aman. Jika sertifikat berbayar bisa digunakan untuk komunikasi ssl 256 bit, maka sertifikat yang dibuat dan ditandatangani sendiri juga bisa digunakan untuk keperluan itu. Yang membedakan hanya tingkat kepercayaan. Karena pada prinsipnya, sertifikat ssl hanyalah berperan sebagai kartu identitas.</p>
<h3>Kapan harus menggunakan Sertifikat SSL komersial</h3>
<p>Internet adalah sebuah ruang publik dimana tingkat anonimitasnya sangat tinggi. Banyak identitas tidak jelas bahkan identitas palsu di internet. Dan ini menjadi masalah ketika berhubungan dengan transaksi yang melibatkan uang di dunia online. Pengguna layanan transaksi online, tentunya ingin mendapatkan keyakinan kalau situs yang dia kunjungi memang memberikan identitas yang benar.</p>
<p>Dengan sertifikat SSL, pengguna bisa yakin kalau identitas yang ada di situs yang dia kunjungi memang benar atau valid. Pihak yang memberikan sertifikat (yang menandatangani sertifikat), menjamin data-data yang ada di sertifikat itu benar, berdasarkan proses verifikasi saat pembuatan sertifikat ssl tersebut. </p>
<p>Misal, ketika Anda mengakses situs <a href="https://ibank.klikbca.com">https://ibank.klikbca.com</a>, berdasarkan informasi yang Anda lihat di sertifikat ssl, Anda bisa yakin kalau yang menjalankan situs tersebut adalah PT. Bank Central Asia Tbk. Browser yang Anda gunakan juga tidak memunculkan peringatan, yang artinya sertifikat tersebut dikenali berdasarkan Root CA yang sebelumnya sudah disertakan di browser Anda.</p>
<p><strong>Sebagai Catatan</strong>: Otoritas penyedia layanan sertifikat SSL, harus memenuhi sejumlah persyaratan agar sertifikat mereka bisa dimasukkan ke browser paling umum digunakan seperti Mozilla, Internet Explorer, Opera dll. Termasuk didalamnya membayar sejumlah biaya ke pengembang browser.</p>
<p>Bagaimana dengan self-signed certificate? Browser akan memperlakukan berbeda. Saat pertama kali Anda mengakses halaman https yang menggunakan self-signed certificate, browser akan menampilkan sejumlah peringatan. Peringatan karena yang menandatangani sertifikat tersebut, atau dalam kata lain yang menjamin data tersebut tidak dikenal. </p>
<h4>Jadi kapan harus menggunakan Sertifikat SSL berbayar?</h4>
<p>Ketika Anda berniat menjalankan situs yang melayani transaksi online untuk publik internet. Bentuk transaksi online ini bisa berupa toko online atau lainnya. Dengan memberikan Sertifikat SSL yang valid dikenali oleh browser, Anda bisa lebih meyakinkan calon pembeli untuk berbelanja di toko online Anda.</p>
<h4>Kapan Self-Signed Certificate bisa ditolerir?</h4>
<p>Kalau layanan yang diberikan hanya untuk kalangan terbatas saja. Misal untuk kalangan internal sebuah perusahaan saja, atau sebuah organisasi tertentu saja.</p>
]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2009/11/10/mengenal-self-signed-certificate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Squid hari ke dua: Mengenal ACL</title>
		<link>http://ngadimin.com/2009/10/31/squid-hari-ke-dua-mengenal-acl/</link>
		<comments>http://ngadimin.com/2009/10/31/squid-hari-ke-dua-mengenal-acl/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 11:30:08 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Seri Tutorial]]></category>
		<category><![CDATA[acl]]></category>
		<category><![CDATA[dasar]]></category>
		<category><![CDATA[konfigurasi]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1106</guid>
		<description><![CDATA[Ini adalah lanjutan dari seri belajar membuat web proxy server menggunakan Squid. Kali ini kita akan berkenalan dengan tipe-tipe acl yang bisa digunakan saat mengkonfigurasi squid. 

Anda juga bisa langsung berkenalan dengan cara penulisan dan penggunaan acl di squid. Disini akan dituliskan beberapa contoh, bagaimana menggunakan acl untuk keperluan membatasi akses internet.]]></description>
				<content:encoded><![CDATA[<p>Sebelum melanjutkan membaca tulisan ini, bagi Anda yang belum sempat membaca tulisan sebelumnya, silakan baca terlebih dahulu tulisan <a href="http://ngadimin.com/2009/10/24/squid-hari-pertama-instalasi-dan-konfigurasi-dasar/">pertama</a> dari seri tutorial ini. Disana Anda akan belajar cara menginstal dan membuat konfigurasi sederhana squid.conf. </p>
<h3>Terjemahan TAG: acl di squid.conf</h3>
<p>Mari kita mulai dengan membaca tipe-tipe acl yang didefinisikan di squid.conf. Jika Anda kesulitan memahami  karena kendala bahasa, saya coba terjemahkan blok acl tadi di bawah ini.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">#  TAG: acl
#   Mendefinisikan Access List
#
#   acl namaacl tipeacl string1 ...
#   acl namaacl tipeacl &quot;berkas&quot; ...
#
#   ketika menggunakan &quot;berkas&quot;, di dalam berkas tersebut harus berisikan satu item
#   per baris
#
#   tipeacl adalah salah satu dari tipe-tipe yang dijelaskan di bawah
#
#   Secara default, regular expression diset CASE-SENSITIVE
#   untuk membuatnya case-insensitive, gunakan opsi -i 
#
#   acl namaacl src      alamat-ip/netmask ...       (alamat IP klien)
#   acl namaacl src      alamat1-alamat2/netmask ... (rentang dari alamat-alamat)
#   acl namaacl dst      alamat-ip/netmask ...       (alamat IP dari targer URL)
#   acl namaacl myip     alamat-ip/netmask ...       (alamat IP untuk local socket)
#
#   acl namaacl arp      alamat-mac ... (format penulisannya xx:xx:xx:xx:xx:xx )
#     # ACL arp memerlukan opsi khusus saat mengkonfigurasi --enable-arp-acl.
#     # Lebih jauh lagi, ACL arp tidak berlaku untuk semua sistem operasi.
#     # Berfungsi di Linux, Solaris, FreeBSD dan beberapa varian *BSD.
#     #
#     # CATATAN: Squid hanya bisa mendeteksi alamat MAC dari klien yang ada di
#     # subnet yang sama. Jika klien berada di subnet yang berbeda, maka Squid tidak
#     # bisa mengetahui alamat MAC nya.
#
#   acl namaacl srcdomain   .fulan.com ...  # reverse lookup, IP klien
#   acl namaacl dstdomain   .fulan.com ...  # server tujuan dari URL
#   acl namaacl srcdom_regex [-i] xxx ...   # regex yang cocok dengan nama klien
#   acl namaacl dstdom_regex [-i] xxx ...   # regex yang cocok dengan server
#     # Untuk dstdomain dan dstdom_regex reverse lookup dicoba jika URL berbasiskan
#     # IP yang digunakan tidak ada yang cocok. Nama &quot;none&quot; digunakan jika reverse
#     # lookup gagal.
#
#   acl namaacl time     [day-abbrevs]  [h1:m1-h2:m2]
#       day-abbrevs:
#       S - Sunday (Minggu)
#       M - Monday (Senin)
#       T - Tuesday (Selasa)
#       W - Wednesday (Rabu)
#       H - Thursday (Kamis)
#       F - Friday (Jumat)
#       A - Saturday (Sabtu)
#       h1:m1 harus kurang dari h2:m2
#   acl namaacl url_regex [-i] ^http:// ...    # regex yang cocok di URL secara 
#                                                keseluruhan
#   acl namaacl urlpath_regex [-i] \.gif$ ...  # regex yang cocok pada bagian 
#                                                path URL
#   acl namaacl urllogin [-i] [^a-zA-Z0-9] ... # regex yang cocok pada bagian 
#                                                login URL
#   acl namaacl port     80 70 21 ...
#   acl namaacl port     0-1024 ...            # rentang diperbolehkan
#   acl namaacl myport   3128 ...              # (local socket TCP port)
#   acl namaacl proto    HTTP FTP ...
#   acl namaacl method   GET POST ...
#   acl namaacl browser  [-i] regexp ...
#     # pola yang cocok pada header User-Agent (lihat juga req_header di bawah)
#   acl namaacl referer_regex  [-i] regexp ...
#     # pola yang cocok pada header Referer
#     # Referer sangatlah tidak reliable, jadi gunakan dengan hati-hati
#   acl namaacl ident    namauser ...
#   acl namaacl ident_regex [-i] pattern ...
#     # string yang cocok pada keluaran ident.
#     # gunakan REQUIRED untuk menerima semua ident yang tidak kosong.
#   acl namaacl src_as   angka ...
#   acl namaacl dst_as   angka ...
#     # Kecuali untuk access control, AS number bisa digunakan untuk 
#     # mengarahkan request ke cache tertentu. Sebagai contoh untuk mengarahkan
#     # semua request untuk AS#1241 dan hanya itu saja ke cachesaya.domainsaya.net:
#     # acl ascontoh dst_as 1241
#     # cache_peer_access cachesaya.domainsaya.net allow ascontoh
#     # cache_peer_access cachesaya.domainsaya.net deny all
#
#   acl namaacl proxy_auth [-i] namauser ...
#   acl namaacl proxy_auth_regex [-i] pattern ...
#     # daftar dari namauser yang valid
#     # gunakan REQUIRED untuk menerima semua username yang valid. 
#     #
#     # CATATAN: ketika header Proxy-Authentication dikirim tetapi dia tidak
#     # diperlukan pada saat pengecekan ACL, maka username TIDAK akan dicatat
#     # di access.log.
#     #
#     # CATATAN: proxy_auth memerlukan program autentikasi EXTERNAL
#     # untuk memeriksa kombinasi username/password (lihat direktif auth_param).
#     #
#     # CATATAN: proxy_auth tidak bisa digunakan di transparent proxy karena
#     # peramban perlu dikonfigurasi menggunakan proxy agar bisa merespon pada
#     # proses autentikasi proxy.
#
#   acl namaacl snmp_community string ...
#     # String community untuk membatasai akses ke agen SNMP Anda.
#     # Contoh:
#     #
#     # acl snmppublic snmp_community public
#
#   acl namaacl maxconn angka
#     # Ini akan cocok ketika alamat IP dari klien memiliki
#     # jumlah koneksi HTTP yang tersambung melebihi dari &lt;angka&gt;
#
#   acl namaacl max_user_ip [-s] angka
#     # Ini akan cocok ketika user mencoba login melebihi dari &lt;angka&gt; 
#     # alamat ip yang berbeda. Parameter authenticate_ip_ttl mengontrol
#     # nilai timeout pada entri-entri ip.
#     # Jika dituliskan -s maka pembatasannya ketat, browsing akan ditolak
#     # dari alamat IP lainnya sampai nilai ttl expire. Tanpa -s Squid hanya
#     # akan membuat user kesel dengan &quot;secara acak&quot; menolak akses.
#     # (pencatatan akan di reset setiap kali batasan tercapai dan request
#     # akan ditolak)
#     # CATATAN: pada mode akselerasi atau ketika disana ada banyak anak proxy,
#     # klien mungkin akan terlihat datang dari beberapa alamat saat mereka memasuki
#     # peternakan proxy, jadi pembatasan hanya 1 akan menyebabkan problem ke user.
#
#   acl namaacl req_mime_type mime-type1 ...
#     # regex yang cocok dengan mime type dari request yang digenerate oleh klien
#     # Dapat digunakan untuk mendeteksi berkas upload atau beberapa tipe request
#     # HTTP tunneling.
#     # CATATAN: Ini TIDAK akan cocok dengan reply. Anda tidak bisa menggunakan
#     # ini untuk mencocokkan dengan tipe berkas yang dikembalikan.
#
#   acl namaacl req_header header-name [-i] any\.regex\.here
#     # regex yang cocok dengan request header apa saja yang sudah dikenali.
#     # Mungkin bisa dianggap sebagai superset dari ACL-ACL &quot;browser&quot;, &quot;referer&quot; dan
#     # &quot;mime-type&quot;.
#
#   acl namaacl rep_mime_type mime-type1 ...
#     # regex yang cocok dengan mime type dari reply yang diterima oleh squid. Dapat
#     # digunakan untuk mendeteksi berkas yang didownload atau beberapa tipe dari
#     # request HTTP tunneling.
#     # CATATAN: Ini tidak akan berpengaruh pada aturan http_access. Ini hanya akan
#     # berpengaruh pada aturan yang mempengaruhi reply data stream seperti misalnya
#     # http_reply_access.
#
#   acl namaacl rep_header nama-header [-i] regex\.apa\.saja\.disini
#     # regex yang cocok dengan reply header apa saja yang sudah dikenali.
#     # Mungkin bisa dianggap sebagai superset dari ACL-ACL &quot;browser&quot;, &quot;referer&quot; dan
#     # &quot;mime-type&quot;.
#     #
#     # Contoh:
#     #
#     # acl banyak_spasi rep_header Content-Disposition -i [[:space:]]{3,}
#
#   acl nama_acl external nama_class [arguments...]
#     # ACL external yang melakukan pencarian melalui class bantu yang didefinisikan
#     # oleh direktif external_acl_type.
#
#   acl urlgroup group1 ...
#     # cocok dengan urlgroup seperti yang diindikasikan oleh redirector.
#
#   acl namaacl user_cert atribut nilai...
#     # cocok dengan atribut-atribut dari user sertifikat SSL
#     # atributnya adalah salah satu dari DN/C/O/CN/L/ST
#
#   acl namaacl ca_cert attribut nilai...
#     # cocok dengan atribut-atribut dari user-user yang menerbitkan sertifikat 
#     # CA SSL
#     # atributnya adalah salah satu dari DN/C/O/CN/L/ST
#
#   acl namaacl ext_user namauser ...
#   acl namaacl ext_user_regex [-i] pola ...
#     # string yang cocok dengan namauser yang diberikan oleh pembantu acl external
#     # gunakan REQUIRED untuk menerima namauser apa saja yang tidak-kosong.</pre></td></tr></table></div>

<p>Bagaimana? cukup banyak kan aclnya. Pusing? ya wajar lah hehe</p>
<h3>ACL yang paling umum digunakan</h3>
<p>Dari sekian banyak tipe acl yang bisa digunakan, menurut pengalaman saya hanya beberapa saja yang umum digunakan. Tentunya memang semua itu tergantung kebutuhannya. Walau tidak umum digunakan, tapi kalau memerlkukannya, mungkin saja digunakan dan sebaliknya.</p>
<p>Biasanya yang paling umum diguanakan adalah, <code>src</code>, <code>dst</code>, <code>dstdomain</code>, <code>port</code>. ACL lainnya yang mungkin sering ditemui adalah <code>url_regex</code>, <code>proxy_auth</code>, <code>maxconn</code>, <code>max_user_ip</code>, <code>time</code>.</p>
<p>Untuk lebih memahami cara penggunaan acl ini, saya akan coba berikan beberapa contoh penggunaan acl.</p>
<h3>Contoh 1: Membatasi akses internet dari IP tertentu</h3>
<p>Misal, dalam satu jaringan kantor, semua diperbolehkan mengakses internet via proxy. Kecuali beberapa komputer di meja penerima tamu atau front office.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">acl jaringan_kantor src 192.168.1.0/24
acl front_office src 192.168.1.21    # komputer1 di front office
acl front_office src 192.168.1.22    # komputer2 di front office
acl front_office src 192.168.1.23    # komputer3 di front office
&nbsp;
http_access deny front_office
http_access allow jaringan_kantor</pre></td></tr></table></div>

<p>Sekalian untuk format penulisan acl di atas, Anda bisa juga menuliskannya seperti di bawah ini.</p>
<p>Format inline, jadi IP dituliskan ke samping, tanpa menekan enter atau penanda baris baru.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">acl jaringan_kantor src 192.168.1.0/24
acl front_office src 192.168.1.21 192.168.1.22 192.168.1.23
&nbsp;
http_access deny front_office
http_access allow jaringan_kantor</pre></td></tr></table></div>

<p>Format rentang, karena kebetulan IP si komputer front office berurutan.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">acl jaringan_kantor src 192.168.1.0/24
acl front_office src 192.168.1.21-192.168.1.23/32
&nbsp;
http_access deny front_office
http_access allow jaringan_kantor</pre></td></tr></table></div>

<p>Silakan dilihat lagi di blok ACL yang sudah saya terjemahkan di atas.</p>
<h3>Contoh 2: Membatasi akses ke situs tertentu</h3>
<p>Anda ingin memblock beberapa situs porno yang paling sering dikunjungi oleh user Anda. Tentu saja ini cara paling sederhana, dan mungkin tidak cocok untuk memblock situs porno secara keseluruhan. Tapi ini hanya sekedar contoh saja.</p>
<p>Pertama, pastikan rules untuk membatasi akses ke situs porno itu muncul lebih dahulu, dibandingkan rules lain yang membolehkan akses internet. Lihat contoh dibawah ini. Kita akan menggunakan tipeacl dstdomain, yang bisa digunakan untuk menandai domain tujuan yang akan diakses.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">acl situs_porno dstdomain .playboy.com
acl situs_porno dstdomain .porno.com
http_access deny situs_porno
&nbsp;
acl jaringan_kantor 192.168.1.0/24
http_access allow jaringan_kantor</pre></td></tr></table></div>

<p>Contoh penempatan yang salah ada di bawah ini</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;"># Contoh penempatan yang salah
&nbsp;
acl jaringan_kantor 192.168.1.0/24
http_access allow jaringan_kantor
&nbsp;
# rules di bawah ini tidak akan pernah dijalankan, karena akses sudah diperbolehkan
# di baris sebelumnya
acl situs_porno dstdomain .playboy.com
acl situs_porno dstdomain .porno.com
http_access deny situs_porno</pre></td></tr></table></div>

<p>Jadi perlu Anda ingat, posisi menentukan prestasi. Atau posisi rules yang Anda buat di squid.conf sangat menentukan apakah rules tersebut akan digunakan atau tidak.</p>
<h3>Contoh 3: Membatasi akses internet di jam kerja</h3>
<p>Kali ini kita akan menggunakan tipe acl <code>time</code>. Langsung saja ke contoh.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">acl jam_kerja time MTWH 08:00-12:00  # Senin s.d Kamis jam 08:00 s.d Jam 12:00
acl jam_kerja time F 08:00-11:30  # Jumat 08:00-11:30 WIB
acl jam_kerja time MTWHF 13:00-16:00 # Senin s.d Jumat jam 13:00 s.d 16:00
&nbsp;
acl jaringan_kantor src 192.168.1.0/24
&nbsp;
# Buka akses internet, diluar jam kerja
http_access allow jaringan_kantor !jam_kerja</pre></td></tr></table></div>

<p>Lihat tanda seru (!) di depan acl. Yang berarti tanda negasi, atau NOT (bukan). Jadi artinya kita hanya membuka akses internet untuk jaringan_kantor dan waktunya bukan di jam kerja.</p>
<h3>Contoh 4: Membatasi akses internet di jam kerja, kecuali manager dan bos</h3>
<p>Contoh lain, kantor hanya ingin membuka akses internet untuk komputer-komputer manajer dan si Boss besar. Karyawan lainnya, bisa mengakses internet tapi hanya di luar waktu kerja.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">acl jam_kerja time MTWH 08:00-12:00  # Senin s.d Kamis jam 08:00 s.d Jam 12:00
acl jam_kerja time F 08:00-11:30     # Jumat 08:00-11:30 WIB
acl jam_kerja time MTWHF 13:00-16:00 # Senin s.d Jumat jam 13:00 s.d 16:00
&nbsp;
# jaringan kantor
acl jaringan_kantor src 192.168.1.0/24
&nbsp;
# manager dan boss
acl manager src 192.168.1.51  # manager keuangan
acl manager src 192.168.1.52  # manager marketing
acl manager src 192.168.1.53  # general manager
acl boss src 192.168.1.68     # si boss besar
&nbsp;
# Buka akses internet untuk manager dan boss, tanpa batasan waktu
http_access allow manager
http_access allow boss
&nbsp;
# Untuk karyawan lainnya, buka akses internet diluar jam kerja
http_access allow jaringan_kantor !jam_kerja</pre></td></tr></table></div>

<h3>Rangkuman</h3>
<p>Di tulisan hari kedua ini, Anda sudah berkenalan dengan beberapa tipe acl. <code>src</code> untuk menandai alamat ip dari klien, <code>dstdomain</code> untuk menandai domain yang akan diakses, <code>time</code> untuk menandai hari dan jam. </p>
<p>Selain itu Anda juga sudah belajar bagaimana menggunakan acl tersebut untuk keperluan tertentu. Contoh yang dituliskan disini misalnya, untuk membatasi akses ke proxy (menggunakan direktif http_access).</p>
<p>Satu lagi yang perlu diingat dari pelajar hari ini adalah, posisi menentukan prestasi (ini biar Anda ingat saja ya hehe). Artinya posisi rules yang Anda buat, menentukan apakah rules tersebut akan berfungsi sesuai apa yang Anda inginkan atau tidak.</p>
]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2009/10/31/squid-hari-ke-dua-mengenal-acl/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Squid hari pertama: Instalasi dan Konfigurasi Dasar</title>
		<link>http://ngadimin.com/2009/10/24/squid-hari-pertama-instalasi-dan-konfigurasi-dasar/</link>
		<comments>http://ngadimin.com/2009/10/24/squid-hari-pertama-instalasi-dan-konfigurasi-dasar/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 03:00:13 +0000</pubDate>
		<dc:creator>Cecep Mahbub</dc:creator>
				<category><![CDATA[Seri Tutorial]]></category>
		<category><![CDATA[dasar]]></category>
		<category><![CDATA[instalasi]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://ngadimin.com/?p=1100</guid>
		<description><![CDATA[Tulisan ini akan menjelaskan bagaimana menginstal squid proxy server di Ubuntu. Setelah instalasi tentu saja Anda harus mengkonfigurasi squid, tapi dalam tulisan ini proses konfigurasi akan diminimalkan sekali. Yang penting squidnya jalan, dan Anda bisa mengakses internet menggunakan proxy squid yang baru di instal.]]></description>
				<content:encoded><![CDATA[<p>Melalui tulisan ini saya mencoba membuat tutorial tentang squid proxy server. Karena topik bahasan yang sangat luas, saya akan membaginya dalam beberapa tulisan. Dalam coret-coretan ide sih, sudah ada kurang lebih sembilan draft untuk seri tulisan ini, mudah-mudahan semuanya bisa diselesaikan.</p>
<p>Mari kita mulai saja, kita akan menginstal squid proxy server di Ubuntu 8.04.</p>
<h3>Instalasi</h3>
<p>Menginstal squid sangatlah mudah, semudah menginstal aplikasi lain dari repositori Ubuntu.</p>
<pre>sudo apt-get install squid</pre>
<p>Untuk menjalankan squid, bisa menggunakan perintah,</p>
<pre>sudo /etc/init.d/squid start</pre>
<p>Untuk mematikan squid, bisa menggunakan perintah,</p>
<pre>sudo /etc/init.d/squid stop</pre>
<h3>Mengkonfigurasi</h3>
<p>Setelah squid terinstal, lokasi konfigurasi ada di <code>/etc/squid/squid.conf</code>. Mari kita backup terlebih dahulu, karena kita akan melakukan beberapa perubahan di berkas konfigurasi tersebut.</p>
<pre>sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.asli</pre>
<p>Sebelum kita lanjutkan, saya ingin menunjukkan sesuatu. Coba jalankan perintah di bawah ini,</p>
<pre>sudo cat /etc/squid/squid.conf |wc -l

4529</pre>
<p>Hasilnya kira-kira seperti tertulis di atas, yaitu 4529. Artinya berkas squid.conf yang akan kita sunting memiliki 4529 baris. Wow! Pantas kalau banyak admin pemula yang bingung ketika akan mengkonfigurasi squid.</p>
<p>Berbeda dengan apache atau postfix, pemaket sudah menyiapkan konfigurasi yang siap pakai, yang artinya begitu postfix atau apache diinstal sudah ada contoh yang bisa dilihat dan bisa dijalankan langsung. Tapi untuk paket squid di Ubuntu ini, squid.conf yang disertakan bukanlah contoh siap pakai. Berkas ini lebih mirip berkas dokumentasi hehe.</p>
<p>Oke, cukup ceritanya sampai disitu, mari kita mulai mengkonfigurasi. Dari sekian ribu baris, sebetulnya untuk menjalankan squid sebagai web proxy, kita hanya perlu mengkonfigurasi beberapa baris saja. Mari kita lihat apa saja yang harus dikonfigurasi.</p>
<h4><code>acl</code> dan <code>http_access</code></h4>
<p>Sebetulnya ini adalah topik yang besar, dan sudah saya rencanakan untuk membahasnya secara terpisah. Tapi karena untuk tahap awal, kita harus mengijinkan akses dari LAN agar bisa menggunakan proxy, kita bahas sekilas saja.</p>
<p>Yang perlu Anda ketahui, konfigurasi squid dibaca dari atas ke bawah. Artinya, yang pertama kali cocok, itulah yang menang. Selalu ingat konsep dasar ini, karena akan sangat penting untuk memahami mengapa konfigurasi squid Anda tidak bekerja dengan seharusnya.</p>
<p>Ok, sekarang kita harus membuat acl baru untuk mengijinkan semua IP di LAN Anda bisa menggunakan squid proxy yang baru diinstal.</p>
<p>Misal, Anda memiliki dua LAN, 192.168.1.0/24 dan 192.168.2.0/24. Maka konfigurasinya,</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">acl jaringan_saya src 192.168.1.0/24 192.168.2.0/24
http_access allow jaringan_saya</pre></td></tr></table></div>

<p>Jika Anda menginginkan hanya IP tertentu saja, bukan satu network, Anda bisa juga menuliskannya seperti di bawah ini.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">acl jaringan_saya src 192.168.1.0/24 192.168.2.0/24
http_access allow jaringan_saya
&nbsp;
acl kantor_cabang src 192.168.5.5
http_access allow kantor_cabang</pre></td></tr></table></div>

<p>Sekarang IP 192.168.5.5 yang ada di kantor cabang, bisa juga menggunakan proxy yang baru Anda buat.</p>
<h4><code>cache_dir</code></h4>
<p>Yang lain yang bisa dikonfigurasi saat ini adalah <code>cache_dir</code>. Defaultnya,</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="text" style="font-family:monospace;">cache_dir ufs /var/spool/squid 100 16 256</pre></td></tr></table></div>

<p>Saya jelaskan singkatnya, artinya lokasi direktori cache (tempat menyimpan objek yang dicache) ada di direktori <code>/var/spool/squid</code> dan dialokasikan sebesar 100 mega bytes. Angka 16 dan 256 adalah jumlah direktori cache yang dibuat. 16 artinya akan ada 16 direktori di /vaar/spool/squid, dan didalamnya masing-masing ada 256 direktori lagi.</p>
<p>Jadi kalau Anda ingin mengubah besar alokasi untuk cache, ganti angka 100 itu dengan angka baru. Misal untuk mengalokasikan sebesar 2 GB, ganti dengan 2000.</p>
<h3>Menerapkan Konfigurasi</h3>
<p>Untuk saat ini cukup dua konfigurasi itu saja (biar Anda tidak pusing). Setelah selesai menyunting berkas konfigurasi untuk menerapkan perubahan yang baru dibuat, Anda bisa merestart squid.</p>
<pre>sudo /etc/init.d/squid restart</pre>
<p>Tapi proses restart biasanya akan agak lama. Untuk mempermudah, tanpa perlu melakukan restart squid, jalankan saja perintah berikut.</p>
<pre>sudo squid -k reconfigure</pre>
<h3>Berkas squid.conf sederhana</h3>
<p>Dari 4529 baris, saya hapus baris yang tidak (atau belum) kita perlukan. Hasilnya kurang lebih ada seratusan baris, jadi Anda lebih mudah membacanya.</p>
<p>Silakan unduh berkas <a href='http://ngadimin.com/wp-content/uploads/2009/10/squid.conf.txt'>squid.conf</a> untuk disimpan di <code>/etc/squid/squid.conf</code>.</p>
<p>Untuk hari pertama, cukup sampai di sini, sampai jumpa di seri tulisan squid selanjutnya.</p>
]]></content:encoded>
			<wfw:commentRss>http://ngadimin.com/2009/10/24/squid-hari-pertama-instalasi-dan-konfigurasi-dasar/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using n/a

 Served from: ngadimin.com @ 2019-08-28 09:57:42 by W3 Total Cache -->