Free Content  ncuptea blog
Showing posts with label Free Content. Show all posts
Showing posts with label Free Content. Show all posts

Penjelasan feature Squid tentang HTTPS (HTTP Secure or HTTP over SSL/ TLS)


Mengkonfigurasi squid proxy server di jaman sekarang tidak semudah seperti sebelumnya saat protokol service request masih menggunakan "http" bukan "https". Di saat sekarang saat kalian menginstall dan mengkonfigurasi squid proxy server seperti sebelumnya bisa di pastikan tidak akan ada dampaknya.

Di masa sekarang saat kita ingin mencache atau simpan suatu konten internet di media lokal server kita maka di butuhkan squid yang bisa menghandle HTTP Over TLS/ SSL (HTTPS).

Dibawah ini sedikit penjelasan clue dan terjemahan soal feature HTTPS di SQUID, ada baiknya di pahami sebelum mempraktekannya langsung dari semua sumber tentang konfgurasi squid bisa memcache https, karena memang konfigurasi ini terbilang masih rumit dan masiih banyak bug.

Sumber asli konten :
https://wiki.squid-cache.org/Features/HTTPS#CONNECT_tunnel_through_Squid


SILAHKAN SIMAK

Saat browser menemukan https://URL, ada satu dari dua hal berikut yang terjadi:
  • membuka koneksi SSL/ TLS langsung ke server asli atau
  • membuka terowongan TCP melalui squid ke server asli menggunakan metode permintaan CONNECT .
Interaksi squid dengan kedua jenis lalu lintas ini akan dibahas di bawah.

Terowongan CONNECT

Metode CONNECT adalah cara untuk melakukan koneksi tunnel apapun melalui HTTP proxy. Secara default, proxy tersebut menetapkan koneksi TCP ke server yang ditentukan, merespons dengan respons HTTP 200 (Connection Established), dan kemudian menyekop atau mencicil paket bolak-balik antara klien dan server tanpa memahami atau menafsirkan lalu lintas terowongannya.


CONNECT tunnel melalui Squid
Saat browser menetapkan tunnel CONNECT melalui squid, Access Controls dapat mengendalikan permintaan CONNECT, namun hanya tersedia informasi secara terbatas. Misalnya, banyak bagian umum dari permintaan URL tidak ada dalam permintaan CONNECT seperti :
         Skema atau protokol URL (misalnya, http: //, https: //, ftp: // , voip://, itunes://, atau telnet:// ),
         Jalur/ patch URL (misalnya, /index.html atau/ secure /image / ),
         dan string kueri (misalnya ? a=b &c=d )
Dengan HTTPS, semua bagian yang di atas hadir dalam permintaan HTTP yang dienkapsulasi dan mengalir melalui terowongan, namun squid tidak memiliki akses ke pesan yang terenkripsi tersebut. Protokol tunnelled lainnya mungkin tidak menggunakan pesan HTTP dan URL (misalnya, telnet). 

Penting untuk diperhatikan bahwa protokol yang melewati CONNECT tidak terbatas pada apa yang biasanya ditangani squid. Logikanya, apa pun yang menggunakan koneksi TCP dua arah dapat dilewatkan melalui terowongan CONNECT. Inilah sebabnya mengapa default ACL squid dimulai dengan deny CONNECT! SSL_Ports dan mengapa kita harus memiliki alasan bagus untuk menempatkan jenis aturan allow pada aturan di atas.

Intercepting CONNECT tunnels (Mencegat terowongan CONNECT)
Browser mengirimkan permintaan CONNECT saat dikonfigurasi untuk berkomunikasi/ memakai proxy. Jadi, tidak perlu mencegat permintaan CONNECT.  TBD: Dokumentasi tentang apa yang terjadi pada squid tidak mencegat permintaan CONNECT, entah karena squid telah salah dikonfigurasi untuk mencegat lalu lintas yang ditujukan ke proxy lain atau karena klien yang mungkin jahat mengirim permintaan CONNECT buatan tangan untuk mengetahui bahwa itu akan dicegat.

Terowongan CONNECT Bumping
PERINGATAN:  HTTPS dirancang untuk memberikan pengguna harapan akan privasi dan keamanan. Mengekstrusi terowongan HTTPS tanpa persetujuan atau pengetahuan pengguna mungkin melanggar norma etika dan mungkin melanggar hukum di yurisdiksi anda. Fitur dekripsi squid yang dijelaskan di sini atau di tempat lain dirancang untuk diterapkan dengan persetujuan pengguna atau paling tidak di lingkungan di mana dekripsi tanpa persetujuan bisa di sebut legal. Fitur-fitur ini juga menggambarkan mengapa pengguna harus berhati-hati dalam mempercayai koneksi HTTPS dan mengapa link terlemah dalam rantai perlindungan HTTPS sedikit rapuh. Mengekstrusi terowongan HTTPS merupakan kategori serangan man-in-the-middle jika di lihat dari sudut pandang keamanan jaringan secara keseluruhan.

Squid SslBump dan fitur yang terkait dengannya dapat digunakan untuk mendekripsi terowongan HTTPS CONNECT saat mereka melewati proxy squid. Hal ini memungkinkan untuk menangani pesan di terowongan HTTP seolah-olah pesan HTTP biasa, termasuk menerapkan kontrol akses terperinci dan melakukan adaptasi konten (misalnya, memeriksa request body  terhadap kebocoran informasi dan memeriksa respon terhadap virus). Kesalahan konfigurasi, bug squid, dan serangan berbahaya dapat menyebabkan pesan yang tidak terenkripsi keluar dari batas squid. Dari sudut pandang browser, pesan yang dienkapsulasi tidak dikirim ke proxy. Dengan demikian, keterbatasan intersepsi umum, seperti ketidakmampuan untuk mengotentikasi permintaan tertanam individual, berlaku di sini juga.

Sambungan SSL / TLS langsung
Saat browser membuat sambungan aman langsung dengan server asli, tidak ada permintaan HTTP CONNECT. Permintaan HTTP pertama kali yang dikirim pada koneksi semacam itu sudah dienkripsi. Dalam kebanyakan kasus, squid keluar dari lingkarannya: Squid tidak tahu apa-apa tentang koneksi itu dan tidak dapat memblokir atau proxy lalu lintas itu. Pengecualian terhadap reverse proxy dan intersepsi dijelaskan di bawah ini.

Sambungan SSL/ TLS langsung ke reverse proxy
Squid-2.5 atau yang lebih baru dapat menghentikan koneksi TLS atau SSL. Anda harus membangun/ build squid dengan --enable-ssl pada saat install/ re-build/ compile. Lihat https_port untuk informasi lebih lanjut. Squid-3.5 dan yang berikutnya dapat  melakukan autodetek terhadap ketersediaan perpustakaan GnuTLS dan mengaktifkan fungsinya jika tersedia. OpenSSL atau LibreSSL harus diaktifkan secara eksplisit dengan opsi configure --with-openssl saat mencompile/merebuild . Jika library/ perpustakaan dipasang di lokasi non-standar, anda mungkin perlu menggunakan opsi konfigurasi --with-foo=PATH. Lihat configure --help pada terminal untuk rinciannya.
Ini mungkin paling berguna dalam konfigurasi pengganti (aka, http accelerator, reverse proxy). Cukup konfigurasikan Squid dengan konfigurasi proxy normal dengan menggunakan port 443 dan rincian sertifikat SSL pada baris https_port .

Mencegat koneksi SSL / TLS langsung
Hal ini dimungkinkan untuk mencegat koneksi HTTPS ke server asli di https_port squid. Ini mungkin berguna di lingkungan pengganti (aka, http accelerator, reverse proxy), namun terbatas pada situasi di mana squid dapat mewakili server asli menggunakan sertifikat SSL server assli tersebut. Dalam kebanyakan situasi, penyadapan koneksi HTTPS langsung tidak akan bekerja dan tidak ada gunanya karena squid tidak dapat melakukan apapun dengan lalu lintas terenkripsi - Squid bukanlah proxy tingkat TCP.

Bumping koneksi SSL/ TLS langsung
PERINGATAN: HTTPS dirancang untuk memberi pengguna harapan akan privasi dan keamanan. Mengekstrusi terowongan HTTPS tanpa persetujuan atau pengetahuan pengguna mungkin melanggar norma etika dan mungkin melanggar hukum di yurisdiksi anda. Fitur dekripsi squid yang dijelaskan di sini atau di tempat lain dirancang untuk diterapkan dengan persetujuan pengguna atau, paling tidak, di lingkungan di mana dekripsi tanpa persetujuan itu di sebut legal. Fitur-fitur ini juga menggambarkan mengapa pengguna harus berhati-hati dalam mempercayai koneksi HTTPS dan mengapa link terlemah dalam rantai perlindungan HTTPS sedikit rapuh. Mengekstrusi terowongan HTTPS merupakan serangan man in the middle dari sudut pandang keamanan jaringan secara keseluruhan.

Kombinasi squid NAT Interception , SslBump , dan fitur yang terkait dengannya dapat digunakan untuk mencegat koneksi HTTPS langsung dan mendekripsi pesan HTTPS saat mereka melewati proxy squid. Hal ini memungkinkan untuk menangani pesan HTTPS yang dikirim ke server asli seolah-olah pesan HTTP biasa, termasuk menerapkan kontrol akses terperinci dan melakukan adaptasi konten (misalnya, memeriksa request body untuk kebocoran informasi dan memeriksa respon dari virus). Kesalahan konfigurasi, bug squid, dan serangan berbahaya dapat menyebabkan pesan yang tidak terenkripsi keluar dari batas squid.

Saat ini, lalu lintas squid-to-client pada koneksi HTTPS langsung yang dicegat/ intercept tidak dapat menggunakan Dynamic Certificate Generation , ini akan menyebabkan peringatan pada browser dan membuat konfigurasi seperti itu hampir tidak praktis. Keterbatasan inilah yang akan ditangani oleh proyek bagian bump-server-first.
Dari sisi browser, pesan yang dicegat/ intercept tidak dikirim ke proxy. Dengan demikian, keterbatasan intersepsi secara umum, seperti ketidakmampuan untuk mengotentikasi permintaan berlaku untuk transaksi yang disadap/ bumped tercegat juga.

Koneksi browser-Squid terenkripsi
Sementara upaya perancangan HTTPS difokuskan pada komunikasi end-to-end,  cara ini akan menyenangkan karena dapat mengenkripsi koneksi browser ke proxy (tanpa membuat terowongan CONNECT yang memblokir squid dari pengaksesan dan penyimpanan konten). Ini akan memungkinkan misalnya penggunaan proxy jarak jauh yang aman yang berada di jaringan lain.

Squid dapat menerima lalu lintas proxy biasa menggunakan https_port dengan cara yang sama seperti squid menggunakan perintah http_port . Sayangnya, browser modern yang populer tidak mengizinkan konfigurasi koneksi proxy terenkripsi TLS/ SSL. Ada laporan bug yang muncul terhadap sebagian besar browser tersebut sekarang, menunggu dukungan muncul. Jika anda berminat, tolong bantu tim browser agar hal itu terjadi.

Di lain hal, trik menggunakan stunnel atau terowongan SSH diperlukan untuk mengenkripsi koneksi browser-ke-proxy sebelum meninggalkan mesin klien. Ini agak berat di jaringan dan bisa malah lambat hasilnya.

Chrome
Browser Chrome dapat terhubung ke proxy melalui koneksi SSL jika dikonfigurasi untuk menggunakannya di file PAC atau tombol perintah. Konfigurasi via GUI nampaknya tidak atau belum dimungkin.

Firefox
Browser Firefox 33.0 dapat terhubung ke proxy melalui koneksi TLS jika dikonfigurasi untuk menggunakannya dalam file PAC. Konfigurasi via GUI nampaknya tidak atau belum dimungkin. meski ada hack hack untuk embedding logika PAC .
Masih ada bug penting yang terbuka:
Jika anda memiliki masalah saat menambahkan trust untuk cert proxy, ada sebuah proses oleh Patrick McManus untuk menyelesaikannya.

Selengkapnya

Solusi trial ispy Blackberry dan sms backup blackberry

I-Spy Blackberry atau SMS Backup cukup terkenal di kalangan pengguna blackberry untuk memata-matai namun cukup mengesalkan jika masa trial atau coba aplikasi yaitu 1 minggu ini telah habis maka tidak ada pilihan selain mengupgrade lisensinya yang mengharuskan kita membayar.  Belajar dari pengalaman saya browsing mencari sn I-Spy Blackberry atau sn SMS Backup ternyata hampir tidak ada, bahkan masuk-masuk ke situs warez atau underground juga untuk mendapatkan crack ispy blackberry atau SMS Backup full version nya.

Akhirnya barulah beberapa hari ini saya berhasil mengakali masa trial i-spy blackberry dan sms backup ini yaitu dengan menginstall ulang aplikasi tersebut tanpa menghapus aplikasi sebelumnya yang telah ada. Nah jadi untuk mengakali versi full version dari aplikasi ispy blackberry atau sms backup blackberry ini cukup dengan kita memiliki software mentah di perangkat blackberry untuk kita installkan kembali.

Dengan mengakali lewat cara di atas kita tidak akan kehilangan log atau history dari aplikasi ini, sekaligus cara ini bukan crack ispy blackberry yang ilegal. SN Linsensi I-Spy Blackberry dan SMS Backup juga tak perlu lagi kita cari untuk menjadikannya full version, cukup kita memiliki software mentahannya saja sudah cukup namun untuk installasinya harus offline dan aplikasinya bisa kalian download di bawah ini :


Jika kalian belum mengetahui cara menginstall software offline di Blackberry silahkan kalian baca artikel berikutnya tentang Install aplikasi di Blackberry tanpa koneksi internet.


Selengkapnya

Dr. Watson di Windows

Sedikit gambaran tentang Dr Watson

Dr Watson adalah untuk Windows dan suatu debugger kesalahan program di Windows, jadi kita berbicara yang dimana Dr. Watson ini bukan nama orang atau selebriti yah.
Informasi yang diperoleh dan dicatat oleh Dr Watson adalah informasi yang dibutuhkan oleh kelompok-kelompok teknis support untuk mendiagnosa kesalahan program untuk komputer yang menjalankan Operasi Sistem Windows, kalian juga bisa mentroubleshooting permasalahan tersebut jika merasa mampu tanpa harus menunggu dari tim teknis support. Sebuah file teks (Drwtsn32.log) dibuat setiap kali kesalahan atau error terdeteksi, dan dapat disampaikan untuk mendukung personel teknis support dengan metode yang mereka inginkan. Kalian juga memiliki pilihan untuk membuat file crash dump, yang berupa file biner yang seorang programmer dapat memuat ke debugger.

Jika kesalahan program terjadi, Dr Watson akan jalan secara otomatis. Untuk memulai Dr Watson secara manual sesuai waktu yang kalian inginkan, klik Run lalu kemudian ketikan drwtsn32. Dan untuk memulai Dr Watson dari command prompt, pindah ke direktori root, kemudian ketik drwtsn32 lalu enter.

Sedikit tentang menggunakan dan membaca log file Dr.Warson

Seperti sudah dibahas di atas, dimana jika suatu program terjadi error di Windows, Dr.Watson akan menghasilkan file log yang bernama Drwtsn32.log. Log file tersebut akan selalu mulai dengan berisikan beberapa baris sebagai berikut :

Application exception occurred:
     App: C:\Program Files\Windows Media Player\wmplayer.exe (pid=196)
     When: 6/2/2012 @ 12:07:46.203
     Exception number: c0000005 (access violation)
  • Warna Merah ialah program yang mengalami error.
  • Warna Biru ialah tanggal dan waktu kejadian program tersebut error.
  • Warna Pink ialah istilah error dalam bahasa manusia dan kode error-nya.


*----> System Information <----*
        Computer Name: CHAOS
        User Name: ut
        Terminal Session Id: 0
        Number of Processors: 1
        Processor Type: x86 Family 15 Model 44 Stepping 2
        Windows Version: 5.1
        Current Build: 2600
        Service Pack: 2
        Current Type: Uniprocessor Free
        Registered Organization: citeureup foundation team
        Registered Owner: ncuptea
Pada baris seperti diatas ini ialah informasi umum tentang komputer kalian yang dimana program tersebut mengalami error.


*----> Task List <----*
   0 System Process
   4 System
 576 smss.exe
 640 csrss.exe
 664 winlogon.exe
 708 services.exe
 720 lsass.exe
 864 svchost.exe
 924 svchost.exe
 964 svchost.exe
1008 svchost.exe
1132 svchost.exe
1324 Explorer.EXE
1420 spoolsv.exe
1540 apache.exe
1576 nSvcLog.exe
1596 nvsvc32.exe
1640 SupServ.exe
1772 ctfmon.exe
1832 nSvcIp.exe
 224 apache.exe
1064 alg.exe
 196 wmplayer.exe
2008 RTHDCPL.EXE
2800 drwtsn32.exe
Diatas ini ialah Taks List, yang sebelah kiri (angka) adalah nilai PID (Proses Identifikasi) dan yang sebelah kanan (yang kita lihat huruf) adalah nama prosses servicenya. List-list Task yang di catat oleh file log Dr. Watson seperti di atas juga ialah list task imbas atau dampaknya dari program yang error, sehingga jangan bingung jika taks list di komputer kalian berbeda dan lebih banyak seperti contoh diatas.



Dan berikut beberapa potongan file log yang sudah akan masuk ke bahasa mesin dibawah ini yang dikarenakan sudah melewati porsi penulis maka silahkan kalian artikan sendiri.

*----> Module List <----*
(0000000000c50000 - 0000000000f15000: C:\WINDOWS\system32\xpsp2res.dll
(0000000001000000 - 0000000001012000: C:\Program Files\Windows Media Player\wmplayer.exe
(0000000001870000 - 0000000001887000: C:\WINDOWS\system32\odbcint.dll
(0000000001910000 - 000000000195f000: C:\WINDOWS\system32\DRMClien.DLL
(000000000ffd0000 - 000000000fff8000: C:\WINDOWS\system32\rsaenh.dll
(0000000010000000 - 0000000010007000: C:\Program Files\Internet Download Manager\idmmkb.dll
(0000000020000000 - 00000000202ce000: C:\WINDOWS\system32\wmploc.dll
(000000004b0d0000 - 000000004b12b000: C:\PROGRA~1\WINDOW~2\mpvis.dll
(000000004b320000 - 000000004b349000: C:\WINDOWS\system32\wmidx.dll
(000000004b5b0000 - 000000004ba59000: C:\WINDOWS\system32\wmp.dll
(000000004d4f0000 - 000000004d548000: C:\WINDOWS\system32\WINHTTP.dll
(000000004f230000 - 000000004f337000: C:\WINDOWS\system32\wmnetmgr.dll
(0000000058390000 - 000000005841a000: C:\WINDOWS\system32\l3codeca.acm
(0000000059a10000 - 0000000059a4c000: C:\WINDOWS\system32\WMASF.DLL
(000000005ad70000 - 000000005ada8000: C:\WINDOWS\system32\UxTheme.dll
(000000005b860000 - 000000005b8b4000: C:\WINDOWS\system32\NETAPI32.dll
(000000005cad0000 - 000000005caf7000: C:\WINDOWS\system32\shmedia.dll
(000000005cb70000 - 000000005cb96000: C:\WINDOWS\system32\ShimEng.dll
(0000000060560000 - 0000000060593000: C:\WINDOWS\system32\AcSignIcon.dll
(0000000060610000 - 0000000060671000: C:\Program Files\Common Files\Autodesk Shared\AcSignCore16.dll
(000000006f880000 - 000000006fa4a000: C:\WINDOWS\AppPatch\AcGenral.DLL
(0000000071aa0000 - 0000000071aa8000: C:\WINDOWS\system32\WS2HELP.dll
(0000000071ab0000 - 0000000071ac7000: C:\WINDOWS\system32\WS2_32.dll
(0000000071ad0000 - 0000000071ad9000: C:\WINDOWS\system32\WSOCK32.dll
(0000000071b20000 - 0000000071b32000: C:\WINDOWS\system32\MPR.dll
(0000000071bf0000 - 0000000071c03000: C:\WINDOWS\System32\SAMLIB.dll
(0000000071c10000 - 0000000071c1e000: C:\WINDOWS\System32\ntlanman.dll
(0000000071c80000 - 0000000071c87000: C:\WINDOWS\System32\NETRAP.dll
(0000000071c90000 - 0000000071cd0000: C:\WINDOWS\System32\NETUI1.dll
(0000000071cd0000 - 0000000071ce7000: C:\WINDOWS\System32\NETUI0.dll
(00000000722b0000 - 00000000722b5000: C:\WINDOWS\system32\sensapi.dll
(0000000072d10000 - 0000000072d18000: C:\WINDOWS\system32\msacm32.drv
(0000000072d20000 - 0000000072d29000: C:\WINDOWS\system32\wdmaud.drv
(0000000073000000 - 0000000073026000: C:\WINDOWS\system32\WINSPOOL.DRV
(00000000736b0000 - 00000000736b7000: C:\WINDOWS\system32\msdmo.dll
(0000000073760000 - 00000000737a9000: C:\WINDOWS\system32\ddraw.dll
(0000000073b50000 - 0000000073b67000: C:\WINDOWS\system32\AVIFIL32.dll
(0000000073bc0000 - 0000000073bc6000: C:\WINDOWS\system32\DCIMAN32.dll
(0000000073ee0000 - 0000000073ee4000: C:\WINDOWS\system32\KsUser.dll
(0000000073f10000 - 0000000073f6c000: C:\WINDOWS\system32\DSOUND.DLL
(0000000074320000 - 000000007435d000: C:\WINDOWS\system32\ODBC32.dll
(0000000074380000 - 000000007438f000: C:\WINDOWS\system32\wdigest.dll
(0000000074720000 - 000000007476b000: C:\WINDOWS\system32\MSCTF.dll
(0000000074810000 - 000000007497d000: C:\WINDOWS\system32\quartz.dll
(00000000754d0000 - 0000000075550000: C:\WINDOWS\system32\CRYPTUI.dll
(0000000075970000 - 0000000075a67000: C:\WINDOWS\system32\MSGINA.dll
(0000000075a70000 - 0000000075a91000: C:\WINDOWS\system32\MSVFW32.dll
(0000000075c50000 - 0000000075cbe000: C:\WINDOWS\system32\jscript.dll
(0000000075cf0000 - 0000000075d81000: C:\WINDOWS\system32\mlang.dll
(0000000075e90000 - 0000000075f40000: C:\WINDOWS\system32\SXS.DLL
(0000000075f40000 - 0000000075f51000: C:\WINDOWS\system32\devenum.dll
(0000000075f60000 - 0000000075f67000: C:\WINDOWS\System32\drprov.dll
(0000000075f70000 - 0000000075f79000: C:\WINDOWS\System32\davclnt.dll
(0000000075f80000 - 000000007607c000: C:\WINDOWS\system32\browseui.dll
(0000000076360000 - 0000000076370000: C:\WINDOWS\system32\WINSTA.dll
(0000000076380000 - 0000000076385000: C:\WINDOWS\system32\msimg32.dll
(00000000763b0000 - 00000000763f9000: C:\WINDOWS\system32\comdlg32.dll
(0000000076600000 - 000000007661d000: C:\WINDOWS\System32\CSCDLL.dll
(0000000076980000 - 0000000076988000: C:\WINDOWS\system32\LINKINFO.dll
(0000000076990000 - 00000000769b5000: C:\WINDOWS\system32\ntshrui.dll
(00000000769c0000 - 0000000076a73000: C:\WINDOWS\system32\USERENV.dll
(0000000076b20000 - 0000000076b31000: C:\WINDOWS\system32\ATL.DLL
(0000000076b40000 - 0000000076b6d000: C:\WINDOWS\system32\WINMM.dll
(0000000076c30000 - 0000000076c5e000: C:\WINDOWS\system32\WINTRUST.dll
(0000000076c90000 - 0000000076cb8000: C:\WINDOWS\system32\IMAGEHLP.dll
(0000000076d60000 - 0000000076d79000: C:\WINDOWS\system32\iphlpapi.dll
(0000000076e80000 - 0000000076e8e000: C:\WINDOWS\system32\rtutils.dll
(0000000076e90000 - 0000000076ea2000: C:\WINDOWS\system32\rasman.dll
(0000000076eb0000 - 0000000076edf000: C:\WINDOWS\system32\TAPI32.dll
(0000000076ee0000 - 0000000076f1c000: C:\WINDOWS\system32\RASAPI32.DLL
(0000000076f60000 - 0000000076f8c000: C:\WINDOWS\system32\WLDAP32.dll
(0000000076fd0000 - 000000007704f000: C:\WINDOWS\system32\CLBCATQ.DLL
(0000000077050000 - 0000000077115000: C:\WINDOWS\system32\COMRes.dll
(0000000077120000 - 00000000771ac000: C:\WINDOWS\system32\OLEAUT32.dll
(00000000771b0000 - 0000000077256000: C:\WINDOWS\system32\WININET.dll
(0000000077260000 - 00000000772fc000: C:\WINDOWS\system32\urlmon.dll
(00000000773d0000 - 00000000774d2000: C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll
(00000000774e0000 - 000000007761c000: C:\WINDOWS\system32\ole32.dll
(0000000077760000 - 00000000778cc000: C:\WINDOWS\system32\shdocvw.dll
(0000000077920000 - 0000000077a13000: C:\WINDOWS\system32\setupapi.dll
(0000000077a20000 - 0000000077a74000: C:\WINDOWS\System32\cscui.dll
(0000000077a80000 - 0000000077b14000: C:\WINDOWS\system32\CRYPT32.dll
(0000000077b20000 - 0000000077b32000: C:\WINDOWS\system32\MSASN1.dll
(0000000077b40000 - 0000000077b62000: C:\WINDOWS\system32\appHelp.dll
(0000000077bd0000 - 0000000077bd7000: C:\WINDOWS\system32\midimap.dll
(0000000077be0000 - 0000000077bf5000: C:\WINDOWS\system32\MSACM32.dll
(0000000077c00000 - 0000000077c08000: C:\WINDOWS\system32\VERSION.dll
(0000000077c10000 - 0000000077c68000: C:\WINDOWS\system32\msvcrt.dll
(0000000077c70000 - 0000000077c93000: C:\WINDOWS\system32\msv1_0.dll
(0000000077d40000 - 0000000077dd0000: C:\WINDOWS\system32\USER32.dll
(0000000077dd0000 - 0000000077e6b000: C:\WINDOWS\system32\ADVAPI32.dll
(0000000077e70000 - 0000000077f01000: C:\WINDOWS\system32\RPCRT4.dll
(0000000077f10000 - 0000000077f56000: C:\WINDOWS\system32\GDI32.dll
(0000000077f60000 - 0000000077fd6000: C:\WINDOWS\system32\SHLWAPI.dll
(0000000077fe0000 - 0000000077ff1000: C:\WINDOWS\system32\Secur32.dll
(000000007c800000 - 000000007c8f4000: C:\WINDOWS\system32\kernel32.dll
(000000007c900000 - 000000007c9b0000: C:\WINDOWS\system32\ntdll.dll
(000000007c9c0000 - 000000007d1d4000: C:\WINDOWS\system32\SHELL32.dll
(000000007d790000 - 000000007d99a000: C:\WINDOWS\system32\wmvcore.dll


*----> State Dump for Thread Id 0x7cc <----*

eax=5f00b883 ebx=00000000 ecx=00ab1d48 edx=00aa214b esi=00a7bd40 edi=02e97004
eip=4b8c07c9 esp=0007b4e0 ebp=0007b4e8 iopl=0         nv up ei ng nz na po cy
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000287


*----> Stack Back Trace <----*
WARNING: Stack unwind information not available. Following frames may be wrong.
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\USER32.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\ntdll.dll - 
*** ERROR: Module load completed but symbols could not be loaded for C:\Program Files\Windows Media Player\wmplayer.exe
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\kernel32.dll - 
ChildEBP RetAddr  Args to Child              
0007b4e8 4b8c4e8a 009f004c 0007bdfc 00a3d00c wmp+0x3107c9
0007b4fc 4b8c3d4f 0007bdfc 00000001 009f0d40 wmp+0x314e8a
0007b794 4b8bee3a 0007bdfc 00000000 76b44e5b wmp+0x313d4f
0007bdc0 4b5cb28c 009f0d40 0007bdfc 120104be wmp+0x30ee3a
0007bdd8 4b5cb2ba 00a0b958 0007bdfc 120104be wmp!Ordinal3996+0x1b28c
0007ce30 4b725bc0 0007cf2c 0007ce9c 00a1c1f0 wmp!Ordinal3996+0x1b2ba
0007ce48 4b726e1c 0007ce60 120104be 00a06468 wmp!Ordinal3000+0x71b9b
0007ce9c 4b7273d6 00000001 ffffffff 00000000 wmp!Ordinal3000+0x72df7
0007cec4 4b726e59 00a1c2cc 00000001 ffffffff wmp!Ordinal3000+0x733b1
0007cefc 4b5f0150 00a06468 120104be 0007cf2c wmp!Ordinal3000+0x72e34
0007cf44 4b7270f3 0185000f 7f010bb9 0007cf9c wmp!Ordinal3996+0x40150
0007cff0 4b726f5f 00000000 7f010bb9 ffffff5c wmp!Ordinal3000+0x730ce
0007d0a4 4b726bf6 00000000 7f010bb9 ffffff5c wmp!Ordinal3000+0x72f3a
0007d12c 4b726d70 0007d174 0007d1b0 00367d60 wmp!Ordinal3000+0x72bd1
0007d15c 4b726e1c 0007d174 003675e0 4b9ab4e0 wmp!Ordinal3000+0x72d4b
0007d1b0 4b726e97 00000001 ffffffff 00000000 wmp!Ordinal3000+0x72df7
0007d1d8 4b726e59 00367e3c 00000001 ffffffff wmp!Ordinal3000+0x72e72
0007d210 4b5cb4ea 003689d8 7f010bb9 00000000 wmp!Ordinal3000+0x72e34
0007d2ac 4b5cb37d 0000000f 00000000 00000000 wmp!Ordinal3996+0x1b4ea
0007d2d0 4b5b1e5e 0017013c 0000000f 00000000 wmp!Ordinal3996+0x1b37d
0007d318 77d48709 003675e0 0000000f 00000000 wmp!Ordinal3996+0x1e5e
0007d344 77d487eb 003a0fc0 0017013c 0000000f USER32!GetDC+0x72
0007d3ac 77d4b368 00000000 003a0fc0 0017013c USER32!GetDC+0x154
0007d400 77d4b3b4 00545f90 0000000f 00000000 USER32!DefWindowProcW+0x183
0007d428 7c90eae3 0007d438 00000018 00545f90 USER32!DefWindowProcW+0x1cf
0007d494 77d489e8 0007d4f4 00000000 0007d4c4 ntdll!KiUserCallbackDispatcher+0x13
0007d4a4 4b5b246e 0007d4f4 4b5f15ac 0007d684 USER32!DispatchMessageW+0xf
0007d4c4 4b5b2380 00000200 4b9c03c8 00000000 wmp!Ordinal3996+0x246e
0007fecc 4b6b40d1 00020670 00000001 4b5b0000 wmp!Ordinal3996+0x2380
0007fef4 010012d7 01000000 00020670 00000001 wmp!Ordinal3000+0xac
0007ffc0 7c816d4f 00b2dd60 7c90e1fe 7ffde000 wmplayer+0x12d7
0007fff0 00000000 010010c5 00000000 78746341 kernel32!RegisterWaitForInputIdle+0x49


*----> Raw Stack Dump <----*
000000000007b4e0  0c d0 a3 00 00 00 00 00 - fc b4 07 00 8a 4e 8c 4b  .............N.K
000000000007b4f0  4c 00 9f 00 fc bd 07 00 - 0c d0 a3 00 94 b7 07 00  L...............
000000000007b500  4f 3d 8c 4b fc bd 07 00 - 01 00 00 00 40 0d 9f 00  O=.K........@...
000000000007b510  00 00 00 00 a6 18 81 7c - 18 ee 90 7c b0 4c 91 7c  .......|...|.L.|
000000000007b520  00 00 00 00 6a b7 07 00 - 02 00 00 00 00 00 00 00  ....j...........
000000000007b530  3a 00 00 00 4c b5 07 00 - 9e 04 42 77 08 90 37 01  :...L.....Bw..7.
000000000007b540  40 79 2c 01 1d 00 02 00 - 95 02 52 45 00 00 ff ff  @y,.......RE....
000000000007b550  94 02 52 45 64 88 00 00 - 84 b5 07 00 09 87 d4 77  ..REd..........w
000000000007b560  c4 00 0c 00 4e 00 00 00 - 00 00 00 00 30 b8 07 00  ....N.......0...
000000000007b570  9e 04 42 77 cd ab ba dc - 00 00 00 00 c0 b5 07 00  ..Bw............
000000000007b580  9e 04 42 77 ec b5 07 00 - b1 8b d4 77 00 d0 fd 7f  ..Bw.......w....
000000000007b590  ec b5 07 00 32 88 d4 77 - ac b5 07 00 ff 87 d4 77  ....2..w.......w
000000000007b5a0  4e 00 00 00 9e 04 42 77 - 9c b6 07 00 14 00 00 00  N.....Bw........
000000000007b5b0  01 00 00 00 f4 b5 07 00 - 30 67 12 00 c2 21 93 7c  ........0g...!.|
000000000007b5c0  d8 b5 07 00 c8 0d 30 01 - 00 00 00 00 00 00 0a 00  ......0.........
000000000007b5d0  11 00 6b 00 18 c6 00 00 - 10 00 1d 00 17 c6 00 00  ..k.............
000000000007b5e0  94 04 d7 77 01 00 00 00 - 68 0a 30 01 ff 87 d4 77  ...w....h.0....w
000000000007b5f0  40 70 2c 01 b8 b6 07 00 - 6d 05 91 7c 00 00 00 00  @p,.....m..|....
000000000007b600  c8 0d 30 01 c8 0d 30 01 - 30 b8 07 00 00 00 00 00  ..0...0.0.......
000000000007b610  00 00 00 00 82 00 00 00 - ec bc a5 00 3c b6 07 00  ............<...
Selengkapnya

Panduan manual seting OpenVPN

Ini ialah terjemahan panduan manual untuk Install dan Konfigurasi OpenVPN dari https://help.ubuntu.com/12.04/serverguide/vpn.html, walau pada prakteknya penulis lebih berhasil dengan OpenVPN Access Server yang dokumentasinya sendiri sudah lebih dulu saya publish namun dari sinilah sebenarnya awal permulaan keberhasilan tersebut.

Sekilas kalian pasti melihatnya adalah jumlah lembar pada Howto ini dan beranggapan terlalu banyak basa-basi, namun percayalah dengan membaca dari awal hingga akhir dari manual openvpn ini, juga sedikit daya imajinasi maka kita yang masih belajar tidak akan menemukan kesulitan berarti kedepannya. Jika pernah memanage jaringan dan router di Linux sebelumnya maka kalian kemungkinan besar sukses mengimplementasikannya.

Tulisan selanjutnya dibawah ini ialah urutan dari panduan install dan konfigurasi OpenVPN beserta masksud dan tujuannya dari suatu perintah dan parameter yang kita jalankan, jika kalian yang masih belajar dan melangkah dalam hal membaca howto ini kemungkinan akan terasa sulit memahaminya.

Tabel konten

Pendahuluan
Jika kalian ingin lebih dari sekedar berbagi kunci/keys OpenVPN menjadi lebih mudah setup-nya dan menggunakan Public Key Infrastructure (PKI) untuk menggunakan SSL/TLS sertifikat untuk otentikasi dan pertukaran kunci/key antara server VPN dan klien. OpenVPN juga dapat digunakan dalam mode VPN routed atau bridge dan dapat dikonfigurasi untuk menggunakan UDP atau TCP. Port dapat dikonfigurasi juga, tapi port 1194 adalah defaultnya. Dan hanya menggunakan port tunggal untuk semua komunikasi. Implementasi VPN client yang tersedia untuk hampir semua hal termasuk semua distribusi Linux, OS X, Windows dan berbasis OpenWRT WLAN router.

Installasi OpenVPN server
sudo apt-get install openvpn

Seting Public Key Infrastructure (PKI)
Langkah awal dalam membangun konfigurasi OpenVPN adalah bahwa menstabilkan PKI (Public Key Infrastructure). PKI sendiri mencakup seperti berikut :
  1. Sertifikat terpisah (biasa dikenal sebagai public key) dan kunci pribadi untuk server dan setiap klien, dan.
  2. Sertifikat utama/master sertifikat Authority (CA) dan kunci/key yang digunakan untuk menandatangani setiap server dan sertifikat klien.
OpenVPN mendukung otentikasi dua arah berbasis sertifikat, yang berarti bahwa klien harus mengotentikasi sertifikat server dan server harus mengotentikasi sertifikat klien sebelum koneksi saling percaya didirikan/dibangun.

Kedua server dan klien akan mengotentikasi hal lainnya dengan terlebih dahulu memverifikasi bahwa sertifikat yang diberikan dan ditandatangani oleh master sertifikat otoritas (CA), dan kemudian dengan menguji informasi yang sekarang ini – authenticated certificate header, seperti nama sertifikat umum atau sertifikat tipe (klien atau server).

Pengaturan Sertifikat Otoritas (Certificate Authority Setup)
Untuk setup Certificate Authority (CA) itu sendiri dan nantinya menghasilkan sertifikat dan kunci untuk server OpenVPN dan beberapa openvpn klien, pertama copy direktori easy-rsa ke /etc/openvpn. Ini untuk memastikan bahwa setiap perubahan pada script tidak akan hilang ketika paket diperbarui.

Dari terminal/konsol :
mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

Selanjutnya, edit /etc/openvpn/easy-rsa/vars dan sesuaikan contoh berikut ini untuk situasi di kalian:
export KEY_COUNTRY="ID"
export KEY_PROVINCE="JawaBarat"
export KEY_CITY="Bogor"
export KEY_ORG="Citeureup Foundation"
export KEY_EMAIL="ncuptea@telkom.net.id"

Masukan masing-masing perintah di bawah ini secara ber-urut untuk menghasilkan sertifikat master yaitu Certificate Authority (CA) dan key-nya :
cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-ca


Sertifikat untuk server (Certificate Server)
Berikut dibawah ini kita masukan perintah untuk menghasilkan sertifikat dan private key untuk Server VPN kita :
./build-key-server myservername

Seperti pada langkah sebelumnya, kebanyakan parameter/opsi bisa dibiarkan default. Dua pertanyaan lainnya mungkin memerlukan tanggapan, seperti "Sign the certificate [y / n]?" Dan satu persatu permintaan pertanyaan sertifikat bersertifikat, pilih untuk berkomitmen? [Y/n]".

Parameter Diffie Hellman harus di hasilkan (di generate) untuk server OpenVPN, perintahnya :
./build-dh

Semua sertifikat dan key yang telah di hasilkan (di generate) akan berada di subdirektori keys di /etc/openvpn. Umum dan praktisnya copy sertifikat dan keys di /etc/openvpn/keys ke /etc/openvpn :
cd /etc/openvpn/keys/
cp myservername.crt myservername.key ca.crt dh1024.pem /etc/openvpn/

Membuat sertifikat klien OpenVPN (Client Certificates)
Klien VPN akan sangat memerlukan sertifikat untuk melakukan otentikasi dirinya sendiri ke vpn server. Biasanya kita harus membuat sertifikat yang berbeda untuk setiap klien vpn. Dan untuk membuat sertifikat masukan perintah di bawah ini secara ber-urut dan satu persatu di terminal/konsol mesin vpn servernya.:
cd /etc/openvpn/easy-rsa/
source vars
./build-key client1

Nb. Jika ingin menambahkan sertifikat klien lainnya tinggalkan tambahkan perintah ./build-key client2

Copy file-file di mesin vpn server di bawah ini ke mesin vpn klien, terserah mau pakai cara apa kalian memindahkannya ke mesin klien :
/etc/openvpn/ca.crt
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key

Sebagaimana diketahui, beberapa file di atas adalah sertifikat dan keys untuk kliennya vpn maka dari itu harap di hapus yang di server jika sudah di copykan ke klien vpn-nya.

Konfigurasi sederhana server vpn
Seiring kalian menginstall OpenVPN otomatis kalian mempunyai contoh-contoh file konfigurasi dan banyak lagi jika kalian memeriksa direktori seperti di bawah ini :
root@server:/# ls -l /usr/share/doc/openvpn/examples/sample-config-files/
total 68
-rw-r--r-- 1 root root 3427 2011-07-04 15:09 client.conf
-rw-r--r-- 1 root root 4141 2011-07-04 15:09 server.conf.gz

Mulai dengan meng-copy dan meng-extract server.conf.gz ke /etc/openvpn/server.conf dari contoh konfigurasi openvpn yang sedang kita bahas ini :
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz

Edit /etc/openvpn/server.conf untuk memastikan baris di bawah ini menunjuk ke sertifikat dan kunci yang kalian buat di bagian atas.
ca ca.crt
cert myservername.crt
key myservername.key
dh dh1024.pem

Berikut ini ialah output status openvpn server yang sudah berjalan oke dengan konfigurasi yang minimum.
root@server:/etc/openvpn# /etc/init.d/openvpn start
* Starting virtual private network daemon(s)...
* Autostarting VPN 'server' [ OK ]

Sekarang kita cek apakah openvpn telah membuat interface tun0 :
root@server:/etc/openvpn# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
[...]

Konfigurasi klien cara mudah
Ada berbagai implementasi OpenVPN klien yang berbeda dengan atau tanpa GUI. Kalian dapat membaca lebih lanjut tentang klien vpn dalam bagian selanjutnya. Namun untuk saat ini kita menggunakan klien OpenVPN untuk Ubuntu yang merupakan eksekusi paket yang sama seperti di server. Jadi, kita harus menginstal paket openvpn lagi pada mesin klien:
sudo apt-get install openvpn

Sekarang waktunya mengcopy client.conf dari contoh/sample konfigurasi openvpn ke /etc/openvpn/ :
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

Salin key serta sertifikat klien dari CA yang telah kita buat seperti di bagian atas, misalnya di copy ke direktori /etc/openvpn/ dan edit /etc/openvpn/client.conf untuk memastikan baris berikut seperti dibawah yang menunjuk ke file-file tersebut. Jika kalian memiliki file di /etc/openvpn/ kalian dapat menghilangkan path-nya (simbol “#” nya).
ca ca.crt
cert client1.crt
key client1.key

Dan sekarang kita harus setidaknya menentukan nama server OpenVPN atau alamatnya. Pastikan kata kunci klien ada didalam konfigurasi. Dan Itulah yang memungkinkan modus klien.
client
remote vpnserver.example.com 1194

Sekarang start OpenVPN kliennya :
root@client:/etc/openvpn# /etc/init.d/openvpn start
* Starting virtual private network daemon(s)...
* Autostarting VPN 'client' [ OK ]

Sekarang kita cek apakah openvpn telah membuat interface tun0 :
root@client:/etc/openvpn# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

Cek apakah klien vpn bisa ping ke server vpn :
root@client:/etc/openvpn# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms

Catatan : Server OpenVPN selalu menggunakan alamat IP paling pertama yang digunakan dalam jaringan klien dan hanya IP yang pingable. Misalnya jika kita mengkonfigurasi /24 untuk network mask klien, alamat no.1-nya akan digunakan. Alamat PTP yang kita lihat dalam output ifconfig di atas biasanya tidak menjawab permintaan ping.

Cek perutean paket yang keluar di mesin klien :
root@client:/etc/openvpn# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.42.1 0.0.0.0 UG 0 0 0 eth0



Langkah awal dalam troubleshooting
Jika bahasan dan langkah-langkah di atas tidak bekerja di kalian, periksa di bawah ini :
  1. Cek syslog kalian, contoh grep -i vpn /var/log/syslog.
  2. Dapatkah klien konek ke mesin server? Mungkinkah firewall kalian mem-block akses? Cek kembali syslog di mesin server.
  3. Klien dan server harus menggunakan protokol dan port yang sama, misal UDP port 1194, lihat opsi konfigurasi protokol dan port.
  4. Klien dan server harus menggunakan konfigurasi yang sama tentang “kompresi”. Lihat comp-lzo pada opsi di dalam file konfigurasinya.
  5. Klien dan server harus menggunakan konfigurasi yang sama tentang mode bridge & routed. Lihat opsi konfigurasi server routed vs server-bridge.






Konfigurasi tingkat tinggi (Advanced Configuration)

Konfigurasi server vpn mode Route
Dibagian atas VPN bekerja secara sangat sederhana. Klien dapat mengakses layanan pada mesin server VPN melalui terowongan (tunnel) yang dienkripsi. Jika kita ingin mencapai ke lebih banyak server atau apapun di jaringan lain, menekankan beberapa rute ke klien. Misalnya jika jaringan perusahaan kita dapat diringkas ke network 192.168.0.0/16. Tapi kita juga harus mengubah routing/rute untuk jalan kembali lagi (way back) – untuk itu server kita perlu tahu rute ke jaringan klien VPN.

Atau kita mungkin ingin menekankan default gateway untuk semua klien untuk mengirim semua lalu lintas internet mereka ke gateway VPN pertamanya dan dari sana juga melalui firewall perusahaan ke internet. Bagian ini menunjukkan beberapa pilihan yang memungkinkan.

Pastikan rute ke klien bisa memungkinkan untuk mencapai subnet lokal lainnya di belakang server. Ingatlah bahwa subnet lokal juga perlu tahu rute pool alamat klien OpenVPN (10.8.0.0/24) kembali ke server OpenVPN.
push "route 10.0.0.0 255.0.0.0"

Jika opsi dibawah ini diaktifkan, direktif ini akan mengkonfigurasi semua klien untuk mengarahkan default gateway jaringan mereka melalui VPN, menyebabkan semua lalu lintas IP seperti web browsing dan pencarian DNS yang pergi melalui VPN (server OpenVPN mesin atau firewall pusat, kita mungkin perlu NAT TUN/TAP interface ke internet untuk bisa bekerja secara benar).
push "redirect-gateway def1 bypass-dhcp"

Konfigurasi mode server dan menyediakan subnet VPN untuk OpenVPN untuk menarik klien dari alamat. Server vpn akan mengambil IP 10.8.0.1 untuk dirinya sendiri, sisanya akan dibuat tersedia bagi semua klien vpn yang valid. Setiap klien akan dapat mencapai server pada 10.8.0.1. Hilangkan simbol “#” pada baris dibawah ini jika ethernet kita dibridging.
server 10.8.0.0 255.255.255.0

Mempertahankan catatan/rekaman klien ke asosiasi virtual alamat IP dalam file ini. Jika OpenVPN dimatikan atau di-restart, reconnecting klien dapat diberikan alamat IP yang sama dari pool virtual yang sebelumnya ditugaskan.
ifconfig-pool-persist ipp.txt

Menekankan DNS server ke klien :
push "dhcp-option DNS 10.0.0.2"
push "dhcp-option DNS 10.1.0.2"

Menginjinkan antara klien dan klien lainnya dapat berkomunikasi :
client-to-client

Mengenablekan kompresi pada link VPN :
comp-lzo

Direktif keepalive menyebabkan pesan ping yang akan dikirim bolak-balik atas link sehingga masing-masing pihak tahu ketika pihak lain berstatus shutdown, reboot, dsb. Ping setiap 1 detik, menganggap bahwa status remote peer adalah down jika ping tidak diterima selama periode waktu 3 detik.
keepalive 1 3

Ini adalah ide yang baik untuk mengurangi hak istimewa daemon OpenVPN setelah inisialisasi.
user nobody
group nogroup

OpenVPN 2.0 meyertakan fitur yang memungkinkan server OpenVPN secara aman mendapatkan username dan password dari klien yang terhubung, dan menggunakan informasi tersebut sebagai dasar untuk otentikasi klien. Untuk menggunakan metode otentikasi, pertama tambahkan direktif auth-user-pass untuk konfigurasi klien. Ini akan mengarahkan klien OpenVPN pada permintaan penggunaan untuk username/password, lalu melewatkan itu ke server melalui saluran TLS yang aman.
# client config!
auth-user-pass

Bagian baris dibawah ini akan memberitahu server openvpn untuk memvalidasi username dan password yang di masukan oleh klien menggunakan modul login PAM. Biasanya jika kita menyentralkan otentifikasi dengan, misal Kerberos.
plugin /usr/lib/openvpn/openvpn-auth-pam.so login

Catatan : Harap baca panduan tentang OpenVPN Hardening Security Guide untuk lebih lanjut

Konfigurasi server vpn mode Bridge
OpenVPN dapat di setup baik dengat mode Routed atau VPN Bridge. Kadang-kadang ini juga disebut sebagai OSI layer-2 dibandingkan layer-3 VPN. Dalam VPN Bridge semua frame layer-2 misalnya semua frame ethernet dikirim ke mitra VPN dan dalam mode Routed VPN maka hanya layer-3 paket dikirim ke mitra VPN. Dalam mode bridge semua lalu lintas termasuk lalu lintas yang secara tradisional seperti LAN lokal seperti siaran (broadcast) jaringan lokal, permintaan DHCP, permintaan ARP dll dikirim ke mitra VPN, sedangkan dalam mode Routed ini akan disaring (di filter).

Persiapan untuk mengkonfigurasi interfaces sebagai bridge di mesin server
Pastikan paket bridge-utils telah terinstall :
sudo apt-get install bridge-utils

Sebelum kita mengkonfigurasi vpn dalam mode bridge kita perlu menyesuaikan beberapa konfigurasi interfaces. Mari kita asumsikan bahwa server telah terkoneksi dengan eth0 ke Internet dan eth1 ke LAN yang kita ingin bridge. File konfigurasi /etc/network/interfaces kita mungkin terlihat seperti berikut :
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1

auto eth1
iface eth1 inet static
address 10.0.0.4
netmask 255.255.255.0

Konfigurasi interface lurus penerusan (straight forward) ini perlu diubah ke dalam mode bridge seperti di mana konfigurasi interfaces eth1 bergerak ke interfaces br0 baru. Plus kita mengkonfigurasi bahwa br0 harus menjembatani (membridge) interfaces eth1. Kita juga harus memastikan bahwa interface eth1 selalu dalam modus promiscuous - ini memberitahu interfaces untuk memforward semua frame ethernet ke IP stack.
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1

auto eth1
iface eth1 inet manual
up ip link set $IFACE up promisc on

auto br0
iface br0 inet static
address 10.0.0.4
netmask 255.255.255.0
bridge_ports eth1

Sampai titik ini kita harus merestart networking. Bersiaplah bahwa ini mungkin akan membuat tidak bekerja seperti yang kita harapkan dan mungkin kita akan kehilangan konektivitas secara remote akses. Pastikan kita dapat memecahkan permasalahan ini dengan memiliki akses lokal.
sudo /etc/init.d/network restart

Mempersiapkan server untuk di konfigurasi bridge
Edit /etc/openvpn/server.conf dan ganti beberapa opsi hingga seperti berikut :
;dev tun
dev tap
up "/etc/openvpn/up.sh br0 eth1"
;server 10.8.0.0 255.255.255.0
server-bridge 10.0.0.4 255.255.255.0 10.0.0.128 10.0.0.254

Berikutnya buat suatu script helper untuk menambahkan ke interfaces tap ke bridge dan untuk memastikan interfaces eth1 dalam modus promiscuous.
Buat /etc/openvpn/up.sh dan isi seperti dibawah ini:
#!/bin/sh

BR=$1
ETHDEV=$2
TAPDEV=$3

/sbin/ip link set "$TAPDEV" up
/sbin/ip link set "$ETHDEV" promisc on
/sbin/brctl addif $BR $TAPDEV

Lalu buat supaya script helper ini bisa di exekusi :
sudo chmod 755 /etc/openvpn/up.sh

Setelah mengkonfigurasi server, saatnya merestart openvpn :
sudo /etc/init.d/openvpn restart


Konfigurasi di klien
Pertama, install openvpn di klien :
sudo apt-get install openvpn

Kemudian bermodal dari server yang sebelumnya sudah dikonfigurasi dan dihasilkan sertifikat serta key klien yang telah disalin ke direktori /etc/openvpn/ pada mesin klien, kini membuat file konfigurasi klien dengan menyalin dari sample konfigurasi. Dalam terminal pada komputer klien masukkan :
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn

Kini edit /etc/openvpn/client.conf dan rubah hingga seperti di bawah ini :
dev tap
;dev tun

Restart openvpn-nya :
sudo /etc/init.d/openvpn restart

Mulai sekarang seharusnya kita sudah bisa terkoneksi ke remote LAN melalui VPN.

Implementasi software klien openvpn
Linux Network Manager GUI untuk openvpn
Banyak distribusi linux dekstop menyertakan ini dan bahkan varian Ubuntu desktop datang dengan Network Manager, cara menakjubkan sebuah GUI untuk mengkonfigurasi network seting kita. Ini juga dapat digunakan untuk mengatur koneksi openvpn. Pastikan bahwa kita sudah mempunyai paket network-manager-openvpn terinstall. Dibawah ini kita dapat melihat installasi yang menginstall paket lainnya yang dibutuhkan juga :
root@client:~# apt-get install network-manager-openvpn
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
liblzo2-2 libpkcs11-helper1 network-manager-openvpn-gnome openvpn
Suggested packages:
resolvconf
The following NEW packages will be installed:
liblzo2-2 libpkcs11-helper1 network-manager-openvpn
network-manager-openvpn-gnome openvpn
0 upgraded, 5 newly installed, 0 to remove and 631 not upgraded.
Need to get 700 kB of archives.
After this operation, 3,031 kB of additional disk space will be used.
Do you want to continue [Y/n]?

Untuk menginformasikan ke network-manager mengenai paket-paket yang baru diinstal kita harus restart:
root@client:~# restart network-manager
network-manager start/running, process 3078

Buka Network Manager GUI, pilih tab VPN dan kemudian klik tombol 'Add'. Pilih OpenVPN sebagai jenis VPN di kotak dialog pembuka dan tekan 'Create'. Pada kotak dialog berikutnya menambahkan nama server OpenVPN itu sebagai 'Gateway', set 'Type' ke 'Sertifikat (TLS)', 'User Sertifikat' titik ke sertifikat pengguna kita, 'CA Certificate' untuk sertifikat CA dan 'Private Key' ke file kunci pribadi kita. Gunakan tombol advanced untuk mengaktifkan kompresi atau pengaturan khusus lainnya yang kita atur sebelumnya di server. Sekarang cobalah untuk membangun (estabilized) VPN kita.

Software openvpn dengan GUI untuk Windows
Pertama-tama download dan install versi paling baru dari OpenVPN Windows Installer. Openvpn 2.2.1 menjadi versi terakhir saat manual openvpn ini ditulis.

Sesudah terinstall kita perlu menjalankan servis openvpn ini. Buka Start Menu>Computer>Manage>Services and Applications>Services. Cari OpenVPN servis dan jalankan itu sebagai administrator. Kita juga bisa mengklik kanan untuk melihat pilihannya.

Kita juga harus membuat dan menuliskan beberapa option konfig dalam teks file dan diletakan di C:\Program Files\OpenVPN\config\client.ovpn bersama dengan certificate CA. Kita juga bisa memasukan sertifikat pengguna ke dalam direktori home user seperti dalam contoh di bawah ini :
# C:\Program Files\OpenVPN\config\client.ovpn
client
remote server.example.com
port 1194
proto udp
dev tun
dev-type tun
ns-cert-type server
reneg-sec 86400
auth-user-pass
auth-retry interact
comp-lzo yes
verb 3
ca ca.crt
cert "C:\\Users\\username\\My Documents\\openvpn\\client.crt"
key "C:\\Users\\username\\My Documents\\openvpn\\client.key"
management 127.0.0.1 1194
management-hold
management-query-passwords
auth-retry interact


Manual page dalam bentuk PDF-nya bisa di download di bawah ini :
Panduan manual seting OpenVPN

Referensi :
OpenVPN
OpenVPN Hardening Security Guide
OpenVPN: Building and Integrating Virtual Private Networks
help.ubuntu.com/12.04/serverguide/vpn.html




Selengkapnya

Daftar Os Router/Firewall

Berikut dibawah ini ialah daftar list operasi sistem Router atau firewall yang kurang lebih masih aktif sampai saat ini, keseluruhan Os Router ini didistribusikan dari keluarga GNU/Linux, Bsd, dan Unix-Like baik perangkat bebas, demo, dan sebagainya. Mungkin masih banyak lagi Os Router dari yang terdaftar di bawah, kalian bisa menambahkan atau menginformasikan sourcenya dengan berkomentar jika berkenan.

Router Os ini berukuran variasi, dari mulai yang support boot via flopy, cd, dan lainnya namun saya kira ukurannya kurang dari .iso file linux desktop dan linux server. Sedikit penjelasan saja tujuan maksud dari adanya Os khusus Router ini tak lain hanya untuk mempermudah administrasi jaringan, dan service berbagi lainnya namun tetap tidak kalah jauh dengan Os linux versi server yang notabene pengguna awam kenal di Google.




DAFTAR LIST


INTERFACE
HOME PAGE
Alpine Linux X11 (XFCE, GNOME, dsb) atau command line Website
Astaro Security Gateway - Website
BSD Router Project CLI Website
BrazilFW Unknow Website
Bifrost Network Project UNIX Interfaces Website
ClarkConnect Web user interface Website
Collax Security Gateway Unknow Website
ClearOS Web user interface Website
Devil-Linux CLI Website
DD-WRT Unknow Website
Endian Firewall Web user interface Website
EnGarde Secure Linux CLI Website
Fli4l CLI, Teks File secara remote Website
floppyfw Unknow Website
FREESCO Unknow Website
FreeWRT Web user interface Website
Gibraltar Unknow Website
Global Technology Associates Unknow Website
IPCop Web user interface Website
IPFire Web user interface Website
Mikrotik RouterOS Web user interface Demo (gratis coba 24 jam) Website
M0n0wall Web user interface Website
OpenWrt CLI dan Web user interface Website
OpenWall Unknow Website
pfSense Unknow Website
redWall ? Website
Scrollout F1 ? Website
Securepoint UTM ? Website
Sentry Firewall Unknow Website
SmartRouter Unknow Website
SME Server Unknow Website
Smoothwall Web user interface Website
Threenix Web user interface Website
Trustix Unknow Website
Untangle Unknow Website
Vyatta Unknow Website
Zeroshell Web user interface Website
Zentyal Web user interface Website



Referensi :
Selengkapnya