Senin, 09 September 2013

 

MENGANALISA JALANNYA WEBSITE MENGGUNAKAN CMD DAN WIRESHARK BAIK MENGGUNAKAN HTTP DAN HTTPS


1.Menggunakan Command Prompt 
Id.yahoo.com
Perintah di command promt:Netstat

Id.yahoo.com 
Perintah di command promt:Netstat  -an

Ke email 
Perintah di command promt:Netstat

Ke email
Perintah di command promt: Netstat –n


Dari gambar di atas dapat dil lihat ketika komputer sumber melakukan koneksi ke  sebuah webstite yahoo protocol yang di gunakan adalah jenis tcp dan lokal ip  beserta port yang di gunakan kemudian akan di arahkan ke ip tujuan beserta port yang akan di gunakan yaitu port 80 yang merupakan port default dari sebuah website yang akan di akses dengan hasil user dapat mengakses website tersebut kemudian user akan melakukan pengaksesan ke email.



Lihat gambar di atas ketika user mengetikan username dan password maka secara otomatis akan terencrypted di gambar tertera dengan adanya tanda https dan port yang di gunakan adalah 443
Dari keterangan di atas dapat di simpulkan bahwa:
Untuk melakukan koneksi tetap menggunakan tcp ip hanya portnya aja yang berbeda di maksudkan untuk tujuan keamanan dan tujuan lainnya supaya tidak terjadi file crash ketika terjadi banjir user yang mengakses.
Dari gambar di atas dapat dil lihat ketika komputer sumber melakukan koneksi ke  sebuah webstite yahoo protocol yang di gunakan adalah jenis tcp dan lokal ip  beserta port yang di gunakan kemudian akan di arahkan ke ip tujuan beserta port yang akan di gunakan yaitu port 80 yang merupakan port default dari sebuah website yang akan di akses dengan hasil user dapat mengakses website tersebut


2.Berikut ini adalah hasil dari praktek dari jalnnya atau cara kerja website yang dapat di tangkap oleh wireshak :

Ketika kita melakukan koneksi ke website dari praktek yang saya tangkap action dari koneksi ke website yang di tangkap  wireshak adlah :


Seperti gambar di atas setiap melakukan koneksi ke website maka komputer akan melakukan koneksi ke gateaway di situ dapat di lihat komputer yang menggunakan wireshark(komputer sumber) adalah 192.168.0.3 melalui acces point dengan ip 192.168.0.2 dan komputer gateaway 192.168.0.1(komputer tujuan).setiap komputer sumber mau melakukan koneksi sniffing akan melakukan koneksi ke komputer tujuan /gateaway dahulu seperti pada gambar di atas koneksi ini menggunakan metode three way handshake dan sinkronisasi,
  1. komputer client mengirimkan broadcast (DHCP DISCOVER).
  2. komputer server mengirimkan (DHCPOFFER)beserta alamat ip dan waktu penyewaan.
  3. client menerima penawaran ip dari dhcp server mengirimkan (DHCPREQUEST)
  4. proses terakhir,DHCP server mengirimkan DHCPPACK
begitu juga dengan koneksi ke website dengan menggunakan protocol tcp komputer akan mengirimkan paket ke server website tsb seperti pada gambar di bawah ini:


Komputer sumber ip 192.168.0.3 akan mengirimkan paket ke alamat http://www.facebook.com tapi karena menggunakan isp smartfriend maka akan di arahkan dulu ke ip smart friend dengan ip 208.67.222.222  dengan PORT DOMAIN 53
Setelah itu komputer sumber akan melakukan koneksi ke ip tujuan yaitu  ip 173.252.110.27  dari source port 1723 ke destination port 80 setelah itu ip dari facebook akan mengirimkan paket data ke ip 192.168.0.3 dengan source port 80 yang merupakan port defaulot websiter server untuk di akses berjuta-juta umat.ke port 1723 yang isinya adalah isi dari halaman website facebook.


Nampak pada gambar di atas terlihat jelas ketika kita mengetikan user name dan password maka akan langsung di encrypted oleh server facebook itu sendiri yang penyimpanan username dan password tersimpan di tempat lain dengan ip 69.171.248.16 dengan source  port 1828 desination port https (443) proses peng encrypt an  adalah dengan menggunakan protocol ssl

Jalannya sebuah websites yang di akses oleh komputer terlihat jelas dapat di endus oleh wireshark dari mulai dari ip,jenis koneksi samapai port kecuali  http yang menggunakan jalur ssl yang merupakan jalur yang aman tidak dapat di sniffing karena ketika mengisi file user name dan password sudan langusng terendkripsi
Dari praktek di atas dapat di simpulkan bahwa:
Ketika komputer sumber akan melakukan koneksi ke suatu situs maka komputer sumber akan mengirimkan paket atau broadcast ke server website melalui koneksi tcp/ip beserta portnya kemudian webserver akan mengirimkan balik paket data ke komputer sumber beserta ip dan port untuk di akses dan ketika user akan mengetikan username dan password maka server akan mengencrypted fle yang penting tsbt agar aman yang proses pengencrypted annya menggunakan ssl  dengan cara mengactifkan proses encripsi di server website jalur aman ini di sebut https menggunakan ssl.

Selasa, 27 Agustus 2013

NAMA:ABAS WISARTO
MATKUL:KEAMANAN JARINGAN (SSL DAN SSH)
DOSEN   :NAHAR MARDIYANTORO M.KOM




PEMBAHASAN SSL DAN HTTPS
SSL(Secure Socket Layer)
SSL merupakan salah satu metode enkripsi dalam komunikasi data yang di buat oleh Netscape Communication Corporation .
Sebagaimana yang jelaskan dalam SSL Protocol Internet Draft (The SSL Protocol,version 3.0 oleh ALAN O,FREIER dan PAUL C,KOCHER)
SSL adalah protocol berlapos dalam tiap laposannya sebuah data terdiri dari panjang,deskripso dan sisi.SSL mengambil data u ntuk di kirimkan,di pecahkan ke dalam blick-blik yang teratur  kemudian di komptess jika perlu menerapkan MAC ,di dekripsi  verifikasi ,dekompess dan di susun k embali
SSL hanya meng ennkripsikan data yang di kirim lewat http: bagaimana SSL berjalan dapat di gambarkan sebagai berikut:
·         Pada saat koneksi mlai berjalan ,client dan server membuat dan mempertukarkan kunci rahasia yang akan di pergunakan untuk mengenkripsi data yang akan di komunikasikan.meskipun  sesi antara  klient dan server  di I ntip oleh pihak lain namun data yang terlihat sulit untuk di bacaa karena sudah di enkripso.
·         SSL mendukung kriptografi public key,sehingga server data melakukan autentikasi dengan metode y ang yang sudah di kenal umum seperti RSA dan Digital Signature Standart (DSS).
·         SSL dapat melakukan verifikasi intergritas sesi y ang sedang berjalan dengan menggunakan algoritma digerst sperti MD5 dan SHA .hal ini menghindari pembajakan suatu sesi.


HTTPS (Hyper Text Transfer Protocol Secure)
HTTPS  adalah versi amannya dari HTTP ,protocol komunikasi dari world wide web di kembangkan oleh Netscape Communication corporation untuk menyediakan autentikasi dan komunikasi bersandi dan penggunaan dalam perdagangan elektronik.
Selian menggunakan komunikasi plain text ,HTTPS menyandikan data sesi menggunakan protocol SSL  (secure soket layer) atau protocol TLS (transport layer security).
Kedua protocol tersebut memberikan perlindungan yang memadai dari serangan eaversdroppers dan man in the middle attacks,pada umumnya  port HTTPS  adalah 443 tingkat keamanan tergantung pada ketepatan dalam mengimplementasikan pada web browser dan aplikasi server dan di dukung oleh algoritma penyandian yang actual

HTTPS ini merupakan bentuk protocol yang lebih aman di bandingkan dengan http,karena semua lalu lintas data yang melewati protocol ini akan di acak dengan berbagai format enkripsi sehingga sulit untuk di bajak isinya maupun di lihat perintah-peritnah yang di eksekusi
Saya contohkan si A sedang melakukan login ke sebuah website dengan protocol http tanpa di sadari ternyata ada man in the middle attack (hacker).hacker ini menggunakan sebuah tools yang bekerja menangkap lalu lintas data antara anda dengan website atau server tujuan.dengan protocol http saja,si hacker akan sangat mungkin mendapatkan data a nda seperti misalnya username atau password dalam keadaan utuh .
akan berbeda hasilnya jika si A melakukan login ke website melalui protocol https ,karena sebelum data anda terkirim ke server,semua informasi sudah terlebih dahulu di enkripsi jadi si hacker akan mendaptkan data anda berupa kode-kode yang akan sangat sulit untuk di pecahkan
Saat ini 90% website besar sudah menggunakan protocol https untuk keperluan autentikasi terlebih untuk urusan yang sidfatnya sensitive seperti misalnya login internet bangking ,online shop ,mail dan lain sebagainya
Apakah https menjamin keamanan penuh?
Tidak ada yang bias menjamin keamanan penuh selama kita menggunakan I nternet yang di akses oleh public tapi setidaknya https sangat mungkin menginkatkan keamanan komunikasi data kita melalui internet.selain itu keamanan dalam berinternet juga perlu di lakukan oleh sisi client atau dari kita sendiri

SSH 
SSH adalah protocol jaringan yang memungkinkan pertukaran data melalui saluran aman antara dua perangkat jaringan.yang memungkinkan .terutama banyak di gunakan pada system berbasis linux dan unix untuk mengkases akun shell ,ssh di rancang sebagai p engganti
telnet dan shell remote taka man lainnya yang mengirim informasi terutama kata sandi dalam bentuk teks sederhana yang akan membuatnya mudah untuk di cegat.enkripso yang di gunakan oleh ssh menyediakan kerahasaian dan integritas data melalui jaringan yang tidak aman  seperti internet .
secara sederhana SSH yang sering kita gunakan untuk trik internet gratis adalah tunneling yaitu mengirimkan dan menerima data melelui koneksi lain ssebagai contoh sprit situs paypall.com atau gmail.com pasti secara otomatis kita akan masuk ke situs tersebut menggunakan URL dengan awalan ‘HTTPS ”, Megapa sprit itu?? Karena situs seperti yang saya sebutkan di atas menggunakan  protocol SSL hanya bias di gunakan jika kita memiliki sertifikat resmi yang harus kita beli ,sedangkan SSH tidak perlu sehingga penggunanya lebih mudah .jadi kesimpulannya :
kesimpulan:
SSH adalah protocol yang di gunakan untuk melapisi  pen giriman data seperti  HTTP,FTP DAN SMTP sehingga koneksi kita menjadi aman dan juga untuk bias mengakses situs-situs yang menggunakan protocol SSH atau m embuka situs yang di  blokir  ssperti www.apet*be.com dapat menggunakan protocol SSH ini.
SSH Tunneling adalah tehnik yang wajib di kuasai hacker ,tehnik ini sangat cocok di pakai sebagai backdoor dari dunia luar langsung menembus ke dalam “behind enemy lines” melewati semua  firewall ,IDS,IPS atau apapun itu di perbatasan.dalam artikel ini juga saya akan menjelaskan bagaimana melakukan chaining tunnel ,yaitu menyambung tunnel dengan tunnel lain.
SSH TUNNELING
Apa itu Tunneling?
Secara sederhana tunneling berarti mengirimkan data melalui koneksi lain yang lain sudah terbentuk.kalau anda buka situs internet bangking ,pasti anda akan membukanya  dengan URL berawalan “https”,yang sejatinya adalah data dalam protocol HTTP yang di kirimkan melalui koneksi dengan protocol  SSL,atau “HTTP” over SSL”,dalam bahasa gaulnya berarti HTTP di gendong sama SSL.
SSH dan SSL adalah dua contoh tunneling protocol ,keduanya bias di pakai untuk menggendong data dalam protol apa saja (tidak hanya http)hanya bedanya adalah pada SSL di butuhkan public key certificate dalam format X.509 yang perlu di verivikasi melalui certificate Authority resmi.SSH tidak memerlukan public key certificate ,sehingga lebih sederhana dan lebih mudah di pakai.
Protocol Encapsulation
Dalam aksus https,data dalam protocol HTTP di enkapsulasi(di bungkus) dalam protocol SSL sebagai payload.Enkapsulasi juga terjadi dalam layer model TCP/IP,yaitu data pada layer yang l ebih atas menjadi payload.Enkapsulasi juga terjadi dalam layer model TCP/IP ,yaitu data pada layer yang lebih atas menjadi payloads dan di enkapsulasi dengan protocol pada layer di bawahnya.
Anda tentu tahu boneka lucu terbuat dari kayu dari rusia  bernama Matryoshka.keunikan boneka I n I adalah boneka yang berukuran kecil bias di masukan ke dalam boneka yang lebih besar .bila boneka yang paling besar itu di buka,maka di dalamnya akan ada satu boneka yang lebih kecil,bila boneka tersebut di buka,maka akan di temukan bonkea yang lebih kecil ,demikian sterusnya hingga boneka yang terkecil.
Gambar di bawah I ni sangat tepat menggambarkan apa itu protocol encapsulation.


Gambar di atas menggambarkan bagaimana data ketika di kirim di enkapsulasi dan di kirimkan melalui protocol yang berada pada layer di bawahnya.pada gambar di atas bias di katakana bahwa email message tersebut di kirimkan dalam bentuk paket SMTP over TCP over IP over Ethernet.jadi pada akhirnya semua data tersebut akan terkirim dalam bentuk paket ehernet.
Dalam ilustrasi boneka matroshka,pesan email adalah boneka terkecil.boneka ini di masukan dalam boneka matroshka SMTP yang ukurannya lebih besar,kemudian boneka matryoshka SMTP ini di masukan dalam boneka matryoshka TCP yang l ebih kecil,dan bila boneka ini di buka di dalamnya ada boneke matryoshka TCP yang semakin kecil ukurannya.bila boneka matryoshka TCP  Ini di buka ,di dalamnya  ada boneka matryoshka SMTP yang di dalamnya ada matryoshka meail message.email message adalah boneka matryoshka terkecil.
Port Forwarding
Port forwarding atau port mapping pengalihan(redirection)koneksi dari suatu IP:port ke IP:port  yang l ain.ini artinya adalah semua ko neksi yang di tujukan ke ip:port asal akan di alihkan ke ip:port tujuan seolah-olah client sedang menghubungi ip:port tujuan secara langsung.
Contoh:bila kita definisikan port forwarding 127.0.0.1:80,artinya bila browser di arahkan ke url http://127.0.0.1:8080,maka request HTTP tersebut akan di teruskan ke 192.168.10.10:8080,maka request  HTTP tersebut akan di teruskan ke 192.168.10.10:80.jadi walaupuan pada localhost (127.0.0.1)port 8080 tidak ada web server,namun web browser bias membuka web pada url http://licalhost:8080 tidak ada webserver,namun web browser bias membuka web  pada url http://licalhost:8080.
Gambar di bawah Ini  adalah contoh port forwarding dari web nakahara-informatics.com
Pada port forwarding tersebut ,di definisikan sehingga klient dari dunia luar bias mengakses service yang ada pada jaringan inernal.port forwarding yang di definisikan adalah:
·         64.130.31.59:10004à192.168.1.100:22
Artinya untuk SSH ke host 192.168.1.100,maka client harus ssh ke IP 64.130.31.59 port 10004.
·         64.130.31.59:10001:22
Artinya untuk SSH ke host  192.168.1.100, maka client harus ssh ke ip 64.130.31.59 port 10001.
·         64.130.31.59:8080à192.168.1.102,maka url yang harus di buka di browser adalah http://64.130.31.59:8080
Port forwarding pada ssh,mirip dengan port forwarding pada gambar di atas ,namun ada sedikit perbedaan.pada port forward gambar di atas,titik koneksi masuk  dan keluar sama,artinya koneksi masuk ke IP  dan ort tertentu,dan koneksi tersebut akan di forward  ke tempat lain dari titik yang sama juga.sedangkan port forwarding  pada ssh titik keluarnya berbeda dengan titik masuknya.agar lebih jelas,silahkan  lihat gambar di bawah ini




Konsep SSH Tunneling
SSH adalah protocol yang multi guna ,selain untuk menggatnikan telnet ,ssh juga mendukung  fitur tunneling ,port forwarding,download/upload file(secure FTP),SOCK proxy dsb.semua fitur di bungkus dan di enkripsi  hingga data lewat melalui protocol ini aman dari jangkauan hacker.
Dalam ssh tunneling,data yang di kirimkan melalui koneksi ssh akan di enkapsulasi (di bungkus )dalam paket SSH seperti pada gambar di bawah ini.


Selain enkapsulasi paket ,dalam ssh tunnel juga di butuhkan port forwarding .port forwarding dalah SSH tunnel ada 3 jenis:
·         Local port forwarding.
·         Remote Port Forwarding
·         Dynamic Port Forwarding
Perhatikan gambar di bawah Ini untuk memahami perbedaan  antara lical port forwarding dan remote port forwarding.



Dari gambar di atas jelas terlihat bahwa perbedaan antara local dan remote port forwarding
·         Pada local port forwarding ,computer yang bertindak sebagai ssh client akan menjadi titik masuk koneksi yang akan di forward  dan computer yang akan bertindak sebagai ssh server menjadi titik keluar.



Minggu, 28 Juli 2013

ABAS WISARTONIM : STI201000536


SUHOSIN

Suhosin adalah semacam proteksi untuk melindungi aplikasi PHP yang kita buat atau core-PHP itu sendiri dab suhosin mulai diimplementasikan pada installer php di januari 2007. Suhosin termasuk juga mengenkripsi COOKIES sehingga jika anda mengimplementasikan SESSION, maka perlu hati-hati.

Sesuai dengan yang sudah saya lakukan, SESSION di PHP tidak akan dikenal di sub folder dan sub domain jika suhosin masih aktif walaupun sudah menggunakan syntax session.cookie_domain. So, bagaimana cara mengatasinya? satu-satunya jalan dengan mematikan di php.ini untuk:

suhosin.cookie.encrypt=Off

suhosin.session.encrypt=Off

Trus bagaimana caranya jika tidak bisa mengubah php.ini di server hosting kita? mudah saja, biasanya php me-load master php.ini tetapi juga me-load local php.ini jika di folder/sub domain yang mengandung php.ini
Contoh: jika ingin mematikan suhosin di subdomain, buat file php.ini dengan isi seperti di atas pada folder dimana sub-domain tersebut berada

Suhosin juga merupakan sistem proteksi canggih untuk instalasi PHP. Dirancang untuk melindungi server dan user dari cacat yang dikenali maupun yang tidak dikenali dalam aplikasi PHP dan PHP core. Suhosin hadir dalam dua bagian yang independen, dapat digunakan secara terpisah atau dikombinasikan. Bagian pertama adalah sebuah patch kecil yang melawan PHP core, yang menerapkan beberapa proteksi low-level yang melawan bufferoverflows atau kerentanan terhadap format string, dan bagian kedua adalah sebuah ekstensi PHP yang powerful yang mengimplementasikan semua proteksi yang lain. Tidak seperti PHP Hardening-Patch, Suhosin kompatibel terhadap instalasi PHP secara normal, yang berarti kompatibel juga untuk 3rd party binary extension seperti ZendOptimizer. Patch-patch dan extensi Suhosin dapat didownload pada
http://www.hardened-php.net/suhosin/download.html
Kenapa?
Pertanyaan paling penting untuk pengguna baru suhosin adalah, kenapa mereka harus menggunakan suhosin, jika benar-benar dibutuhkan dan apa yang mereka dapatkan dengan menggunakan patch, extension, atau kombinasi dari keduanya?  Jawaban dari pertanyaan tersebut bergantung pada untuk apa anda menggunakan PHP. Jika Anda menggunakan PHP hanya untuk server Anda sendiri dan hanya untuk script dan aplikasi milik Anda sendiri, maka Anda bisa menilai sendiri, jika Anda cukup mempercayai code Anda sendiri. Dalam kasus seperti ini kemungkinan besar Anda tidak memerlukan extension Suhosin. Karena sebagian besar fitur-fiturnya dimaksudkan untuk melindungi server dari serangan tehnik-tehnik kerentanan programming. Bagaimanapun PHP adalah sebuah bahasa pemrograman yang sangat kompleks dengan banyak perangkap yang jarang diawasi selama pengembangan aplikasi. Bahkan programmer PHP core menulis code secara tidak aman dari waktu ke waktu, karena mereka tidak tahu tentang adanya perangkap
PHP. Karena itu memiliki Suhosin sebagai jaring pengaman Anda adalah sebuah ide
yang bagus. Suhosin-patch disisi lain datang dengan perlindungan Zend Engine, fitur yang melindungi server Anda dari kemungkinan bufferoverflows dan kerentanan di dalam Zend Engine. Sejarah telah menunjukkan bahwa beberapa bug ini selalu ada di versi PHP sebelumnya.
            Jika Anda tidak hanya menjalankan skrip PHP Anda sendiri, tetapi juga hostig 3rd party PHP application untuk diri sendiri dan bahkan mungkin untuk pelanggan, maka Anda tidak bisa mempercayai kualitas code dari aplikasi PHP yang Anda gunakan. Sayangnya itu adalah kenyataan bahwa perangkap bahasa PHP tersebut tidak banyak diketahui oleh para pemrogram.  Jika Anda menginginkan perlindungan tambahan untuk server dan bisnis Anda, penggunaan extensi dan patch suhosin sangat direkomendasikan. Selalu ingat bahwa anda tidak hanya melindungi diri sendiri dan pengguna anda, tetapi juga orang lain di internet, yang mungkin akan diserang oleh server anda dengan serangan Spam/DDoS.

Instalasi

Preparation
Bila anda ingin menginstal PHP dengan Suhosin-Patch anda harus terlebih dahulu melakukan beberapa langkah persiapan.
Langkah 1 : instalasi signaturekey project hardened-PHP Terlebih dahulu anda ambil salinan dari http://www.hardened-php.net/hardened-php-signature-key.asc dan impor ke GNU Privacy Guard keychain anda
#> gpg --import < hardened-php-signature-key.asc gpg: /root/.gnupg/trustdb.gpg: trust-db erzeugt
gpg: key 0A864AA1: public key "Hardened-PHP Signature Key" imported
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
gpg: importiert: 1
Langkah 2 : men-download dan memeriksa file yang diperlukan Sekarang saatnya untuk ambil salinan tarball PHP terbaru dan versi terbaru dari suhosin-patch. Sebagai tambahan anda harus mendapatkan tandatangan digital
(*.sig) file. Anda bisa ambil semua ini di
http://www.hardened-
php.net/suhosin/download.html
Sebagai tindakan pencegahan pertama anda dapat memeriksa MD5 Hash dari file download terhadap orang-orang yang anda temukan pada halaman download
#> md5sum php-5.1.4.tar.bz2
66a806161d4a2d3b5153ebe4cd0f2e1c php-5.1.4.tar.bz2
#> md5sum suhosin-patch-5.1.4-0.9.0.patch.gz
ea9026495c4ce34a329fd0a87474f1ba suhosin-patch-5.1.4-0.9.0.patch.gz
bila nilai hash MD5 yang berlaku anda dapat memeriksa tandatangan digital seperti
ini.
#> gpg php-5.1.4.tar.bz2.sig
gpg: Signature made Di 16 Mai 2006 23:39:04 CEST using DSA key ID 0A864AA1
gpg: Good signature from "Hardened-PHP Signature Key"
#> gpg suhosin-patch-5.1.4-0.9.0.patch.gz.sig
gpg: Signature made So 21 August 2006 20:02:53 CEST using DSA key ID 0A864AA1
gpg: Good signature from "Hardened-PHP Signature Key"
Langkah 3 : Unpacking dan Patching
Anda sekarang harus mengekstrak tarbal PHP, gunzip patchfile dan kemudian menerapkan patch.
#> tar -xfj php-5.1.4.tar.bz2
#> gunzip suhosin-patch-5.1.4-0.9.0.patch.gz
#> cd php-5.1.4
#> patch -p 1 -i ../suhosin-patch-5.1.4-0.9.0.patch
 Jika anda lebih suka memilih suhosin sebagai extension builtin anda juga dapat mendownload source code extension suhosin dan mengcopy file src ke direktori ext/suhosin dengan menggunakan PHP source tree anda
Instalasi pada Linux/Unix
Setelah menyelesaikan persiapan pada PHP source tree, langkah selanjutnya tidak begitu berbeda dengan instalasi PHP seperti biasanya. Jika anda mengcopy extension suhosin ke direktori ext anda juga harus mengaktifkannya.
#> [./buildconf - in case you want to compile suhosin statically]
#> ./configure --with-whatever-you-want [--enable-suhosin]
#> make
#> make test
#> make install
Dengan mengeksekusi make test anda dapat memverifikasi, bahwa PHP masih bekerja dan tidak merusak apapun.
If you are upgrading from a previous installation of PHP you do not need to recompile all installed PHP modules and extensions unless you are upgrading to a PHP version that breaks  binary compatibility. However recompiling the extensions after having installed PHP with the Suhosin-Patch can protect them from possible format string vulnerabilities, which was built into the header files. After having recompiled and installed everything, have a look at the bundled php.ini files for  examples how to use the new configuration directives. For a documentation of the new directives consult the Configuration section. Binary extensions from for example
Zend should continue flawlessly. If you encounter any  problem contact us immediately. Installing the Extension Unlike the Hardening-Patch for PHP, nearly all of 

Suhosin
´s features are within the extension. Therefore you might want to only install the extension and use a plain unpatched PHP. Depending on the system we might already offer binary packages. You can check our Suhosin
Downloads page. In that case you only need to activate the extension inside your php.ini and maybe add Configuration directives if you are not satisfied by the default values. Before you continue compiling the
Suhosin-Extension you should verify the file integrity. Please check the  preparation section of this guide. The next step is unpacking the extension tarball and performing the usual compilation steps for PHP extensions.
#> cd suhosin
#> phpize
#> ./configure
#> make
#> make install
This should install suhosin in the correct extension directory. The final step is adding a load directive to php.ini extension=suhosin.so and optionally add some Configuration directives in case you do not like the default values. Special Instructions Some distributions already come with Suhosin source or binary packages. Here is a small overview how to install Suhosin on this distributions. Installing on Gentoo Installing and using Suhosin on Gentoo is very easy. At the moment the Suhosin patches and extensions are only available in the external PHP Overlay, and not yet in the Portage tree, you can expect them to also be available in the main Portage tree during October 2006. Let’s install the PHP Overlay then:
#> emerge layman
#> layman -f
#> layman -a php-testing
 Now let’s install PHP with the Suhosin patch and extension:
#> echo "dev-lang/php" >> /etc/portage/package.keywords (unstable version needed)
#> USE="suhosin" emerge =php-4* for PHP4, or =php-5* for PHP5 (NOTE: you cannot also have the "hardenedphp" USE flag enabled at the same
time!)
That’s it, your PHP on Gentoo is now running with the Suhosin patch enabled, and the Suhosin extension was automatically installed (from the dev-php{4,5}/suhosin package).Installing on FreeBSD The Suhosin-Patch and the Suhosin extension are both within the FreeBSD ports. Therefore installing it on FreeBSD is very simple. The Suhosin-Patch is an option which you can choose when you install the lang/php4 or  lang/php5 port. To install the patch just do
#> cd /usr/ports/lang/php5
#> make
... now select the menu item that says: Enable Suhosin Protection
#> make install
To install the extension just do
#> cd /usr/ports/security/php-suhosin
#> make
#> make install After these simple steps Suhosin-Patch is successfully installed on your system. Upgrading Upgrading to a new PHP or new Suhosin-Patch version is quite identical to the normal installation process. This is like upgrading a normal PHP. That means, if the binary compatibility was broken between PHP versions you have to recompile all installed PHP modules/extension. Upgrading the Suhosin-Extension on the other hand is as simple as recompiling it (or using a  binary), replacing the file and restarting your webserver.