Sunday, April 29, 2012

Implementasi Network Firewall

Network Firewall atau biasa disebut packet filters adalah firewall yang berfungsi untuk menyaring paket yang melawati firewall tersebut. Network Firewall didesain untuk melindungi jaringan secara keseluruhan dari berbagai serangan. Umumnya dijumpai dalam dua bentuk, yakni sebuah perangkat terdedikasi atau sebagai sebuah perangkat lunak yang diinstalasikan dalam sebuah server. Network Firewall umumnya bersifat transparan (tidak terlihat) dari pengguna dan menggunakan teknologi routing untuk menentukan paket mana yang diizinkan, dan mana paket yang akan ditolak.

Tutorial kali ini saya akan menjelaskan salah satu contoh bagaimana mengimplementasikan Network Firewall untuk menyaring paket HTTP.

Persiapan :

- 4 PC atau virtual machine.
  Firewall menggunakan OS Ubuntu Server.
  Web Server menggunakan OS Backtrack.
  Client 1 menggunakan OS Ubuntu Desktop.
  Client 2 menggunakan OS Windows 7

Topologi :




Skenario :


Hanya Client 1 yang bisa mengakses HTTP di web server sehingga Client 2 tidak diijinkan mengakses HTTP.

Langkah-langkah implementasi :


Atur IP Address dan default gateway terlebih dahulu pada semua komputer.


IP Firewall : 1.1.1.1/24 , 1.1.2.1/24 , 1.1.3.1/24
IP Web server : 1.1.1.2/24
IP Client 1 : 1.1.2.2/24
IP Client 2 : 1.1.3.2/24

Untuk setting IP perintahnya adalah "ifconfig [nama_interface] [IP_address]"
Untuk setting default gateway perintahnya adalah "route add default gw [alamat_gateway]"

Contoh pengaturan IP Firewall :

Firewall
Karena firewall juga sebagai router maka pada firewall harus diaktifkan fungsi ip forwarding. Edit file /etc/sysctl.conf, kemudian hapus tanda # pada #net.ipv4.ip_forward=1 sehingga menjadi seperti ini


Aktifkan hasil perubahan tadi dengan command sysctl -p




Jika IP sudah disetting, cek koneksi ke setiap komputer dengan menggunakan ping


Sebelum diberlakukan rule, semua client dapat mengakses web dari web server.

Client 1

Client 2


Kemudian masukan rule baru ke Firewall.

iptables -A FORWARD -p tcp --dport 80 -s 1.1.2.2 -d 1.1.1.2 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -s 1.1.3.2 -d 1.1.1.2 -j DROP






Untuk melihat apakah rule sudah masuk ke tabel gunakan perintah iptables -L




Lakukan pengujian rule. Akses kembali web server dari kedua client.

Client 1

Client 2

Hanya Client 1 yang dapat mengakses web server karena request dari Client 2 di DROP oleh firewall




Perhatian ! Boleh Copy paste, tapi kalau anda tidak keberatan mohon cantumkan sumber dengan linkback ke blog ini.

Implementasi Personal Firewall

Personal Firewall adalah salah satu jenis firewall yang mengontrol lalu lintas data dari dan ke sebuah komputer, mengijinkan atau menolak komunikasi data sesuai dengan pengaturan keamanannya. Biasanya hanya mengontrol input dan output. Firewall jenis ini akhir-akhir ini berevolusi menjadi sebuah kumpulan program yang bertujuan untuk mengamankan komputer secara total, dengan ditambahkannya beberapa fitur pengaman tambahan semacam perangkat proteksi terhadap virus, anti-spyware, anti-spam, dan lainnya. Bahkan beberapa produk firewall lainnya dilengkapi dengan fungsi pendeteksian gangguan keamanan jaringan (Intrusion Detection System). Personal Firewall secara umum hanya memiliki dua fitur utama, yakni Packet Filter Firewall dan Stateful Firewall.

Tutorial yang akan saya jelaskan adalah implementasi personal firewall di Linux untuk memblokir penggunaan SSH menggunakan iptables.

Persiapan :


 - 2 buah PC ataupun virtual machine. Disini saya menggunakan Backtrack sebagai personal firewall dan Ubuntu sebagai Client. Untuk personal firewall harus menggunakan OS Linux.
- Paket openssh-server jika pada koputer firewall belum terinstalkan

Topologi :




Skenario :

Saya sudah menginstalkan paket openssh-server di komputer firewall sehingga skenarionya adalah komputer Client tidak dapat melakukan SSH service ke komputer Firewall.

Langkah-langkah implementasi :


Atur IP Address terlebih dahulu pada kedua komputer dengan perintah ifconfig.
IP Firewall : 1.1.1.1/24
IP Client : 1.1.1.2/24



Cek koneksi kedua komputer dengan melakukan ping.


Jika ping sudah berhasil maka tahap selanjutnya adalah mencoba SSH sebelum dipasang rule iptables.


Masukan passwordnya, jika berhasil maka tampilannya seperti gambar di bawah ini.


Kemudian kita masukan rule iptables nya pada firewall, command nya adalah "iptables -A INPUT -p tcp --dport 22 -s 1.1.1.2 -j DROP"


Untuk melihat apakah rule tersebut sudah masuk ke dalam tabel gunakan command "iptables -L"


Lakukan pengecekan apakah rule tersebut berfungsi atau tidak. Gunakan SSH dari Client ke Server.


Jika koneksi terputus maka rule yang kita masukan sudah berfungsi.


Perhatian ! Boleh Copy paste, tapi kalau anda tidak keberatan mohon cantumkan sumber dengan linkback ke blog ini.

Friday, January 13, 2012

Pengantar PHP

Mengenal PHP

Berdasarkan informasi dari situs resmi PHP, “PHP.net”, PHP (PHP: Hypertext Prepocessor) merupakan bahasa pemrograman web yang dapat disisipkan dalam script HTML. Banyak sintaks di dalamnya yang mirip dengan bahasa C, Java dan Perl. Tujuan dari bahasa ini adalah membantu para pengembang web untuk membuat web dinamis dengan cepat.

Ketika seseorang mengunjungi web berbasis PHP, web server akan memproses code-code PHP. Beberapa perintah atau code dari PHP tersebut selanjutnya ada yang diterjemahkan ke dalam HTML dan beberapa ada yang disembunyikan (misalnya proses kalkulasi dan operasi). Setelah diterjemahkan ke dalam HTML, web server akan mengirim kembali ke web browser pengunjung tersebut.

Kelebihan PHP
PHP termasuk bahasa pemprograman web yang paling banyak dipilih orang, tentunya dikarenakan banyaknya kelebihan-kelebihan yang dimiliki PHP, diantaranya :
§  Mudah didapatkan karena bebas didownload di internet tanpa dikenakan biaya sepeserpun dan termasuk Software Open Source
§  PHP termasuk server-side programming, artinya skrip kode diakses di sisi server, dan browser hanya menerima jadi berupa kode HTML. Dengan begitu keamanan kode PHP terjaga
§  PHP mudah dibuat dan memiliki kecepatan akses yang tinggi
§  PHP termasuk bahasa embedded, artinya bisa ditempel atau diletakkan dalam tag HTML
§  PHP dapat dijalankan diberbagai Platform, selain dijalankan di sistem operasi keluarga *NIX (Linux, UNIX, BSD, dsb), PHP juga bisa berjalan di Windows 9x/ME/XP/NT, dan Machintosh
§  PHP dapat dijalankan di berbagai Web Server. Bukan hanya Apache, PHP bisa dijalankan di Web Server IIS, PWS, Xitami dan lain sebagainya
§  PHP mendukung berbagai database, diantaranya : Oracle, Sysbase, mSQL, MySQL, Solid, Generic ODBC, Postgres SQL
§  PHP mendukung komunikasi dengan layanan lain melalui protokol IMAP, SNMP, NNTP, POP3, dan HTTP

Kebutuhan Sistem
Untuk dapat bekerja dengan PHP, berikut ini adalah beberapa aplikasi yang diperlukan:

§  Web server (Apache, IIS, Personal Web Server/PWS)

§  PHP server (dapat didownload di PHP.net)

§  Database server (MySQL, Interbase, MS SQL, dll)

§  Web Editor (Dreamweaver, Frontpage, dll)

Anda dapat pula menggunakan tool aplikasi yang di dalamnya sudah terdapat web server (Apache), PHP server, dan MySQL yang terintegrasi menjadi satu. Tool tersebut dapat diinstal di PC sebagai sarana belajar PHP. Beberapa contoh tool tersebut diantaranya adalah Easyphp (Easyphp.org), PHPTriad, AppServe, dll.

PHP server dapat berjalan dengan baik di beberapa OS seperti Windows, Linux, dan Macintosh

Membuat File PHP


Sintaks Dasar
Biasanya file PHP berisikan tag HTML, dan disisipkan kode-kode PHP didalamnya. Kode-kode PHP berada dalam blok yang diwali oleh <?php atau <? dan diakhiri dengan ?>. Ada tiga cara menuliskan script PHP :

1. <? . . . . . . . . . . . . . . . . . . .  ?>
2.  <?php   . . . . . . . . . . . . . . . . . ?>
3.  <SCRIPT LANGUAGE="php">
 . . .. . . . . . . . . .. . . . . . . . . .
</SCRIPT>

Perhatikan contoh sederhana dibawah ini :

<HTML>
<BODY>
<?php
echo "Hello World !!";
?>
</BODY>
</HTML>

Bila dijalankan dibrowser akan terlihat bacaan "Hello World".

Setiap baris kode dalam PHP selalu diakhiri tanda semicolon / titik koma (;). Tanda titik koma ini sebagai pemisah dan digunakan untuk mencirikan satu set intruksi dengan instruksi yang lain.

Fungsi-fungsi yang ada di PHP tidak case sensitive, yaitu tidak membedakan huruf besar dengan huruf kecil. Sedang variabelnya case sensitive, artinya membedakan antara huruf besar dengan huruf kecil.



Penulisan Variable di PHP
Semua variabel yang didefinisikan dalam php selalu menggunakan simbol "$". Dalam PHP Variabel biasanya berisikan string, number, array, dan objek. Sebagai contoh menampilkan "Hello World !!" dengan menggunakan variable.

<HTML>
<BODY>
<?php

$tulis = "Hello World !!";
echo $tulis;

?>
</BODY>
</HTML>

Contoh diatas menghasilkan output "Hello World !!". 


Pemisah antar intruksi adalah titik koma (;) -> semicolon
Apabila Anda perhatikan contoh sebelumnya, maka terdapat tanda titik koma (semicolon) pada akhir perintah echo. Tanda semicolon merupakan penanda akhir dari statement PHP dan harus ada.

Contoh:

<html>
<head>

<title>Halaman PHP pertamaku</title>
</head>

<body>
<?php

echo "Hello World! ";
echo "Hello World! ";
echo "Hello World! ";
echo "Hello World! ";
echo "Hello World! ";
?>

</body>
</html>


Komentar dalam PHP
Komentar diperlukan untuk mendefiniskan keterangan atau penjelasan kode. Komentar yang dimasukkan dalam kode tidak akan dieksekusi dan tidak mempengaruhi hasil akhir program.

Sama seperti bahasa C, PHP menggunakan simbol "//" untuk komentar perbaris, dan semua karakter yang diblok oleh simbol "/*" dan "*/".

Perhatikan contoh dibawah ini :

<HTML>
<BODY>
<?php /*

Baris  ini tidak akan muncul */

$tulis = "Hello World !!"; //mendefinisikan variabel $tulis
echo $tulis;

?>

</BODY>
</HTML>

Pada contoh di atas akan menghasilkan keluaran "Hello World !!", dan mengacuhkan karakter antara simbol "/*" dan "*/" dan simbol "//".


Tipe Data
Seperti bahasa pemrograman yang lain, dalam php juga dikenal beberapa macam tipe data untuk, antara lain :
§  array
§  double
§  integer
§  object
§  string
Namun biasanya pemrogram tidak perlu memberikan tipe data untuk variabel yang digunakan, sebab akan ditentukan sendiri oleh program ketika dijalankan.


Konstanta
Konstanta hampir sama dengan variabel, sebagai tempat penyimpanan data, namun nilainya sekali diberikan tidak akan bisa diubah lagi.
Dalam php, konstanta harus didefinisikan dengan perintah define.


Ekspresi
Ekspresi dapat diartikan sebagai “sesuatu yang mempunyai nilai”
Ekspresi adalah bagian yang sangat penting dalam php. Setiap baris yang ditulis dalam php merupakan ekspresi. Contoh paling sederhana dari ekspresi ini adalah variabel dan konstanta.


Fungsi
Adalah konstruksi pemrograman untuk melakukan sebuah proses tertentu.
Kekuatan php sebenarnya ada pada fungsi. Jika seluruh komponen atau add ins ditambahkan pada php, akan ada sekitar 700 fungsi yang bisa dipergunakan. Dan kita juga diperbolehkan untuk membuat definisi fungsi sendiri sesuai dengan kebutuhan.


Menyimpan File PHP
File PHP adalah file teks biasa yang berisikan tag HTML dan skrip PHP. File PHP mempunyai ekstensi "*.php", "*.php3", atau "*.phtml". Web server akan mengeksekusi tipe file tersebut sebagai skrip file PHP.
Langkah-langkah menyimpan file PHP :
§  Buatlah file/script php menggunakan editor teks, misalnya notepad, editplus dan lain-lain à (kerjakan file-file contoh diatas)
§  Kemudian simpan file-file tersebut dengan nama yang berekstensi .php di directory web server, misalnya htdocs untuk Apache, atau webpages untuk Xitami, WWW untuk paket WampServer. à misalnya salah satu file yang dikerjakan di beri nama hello.php.
§  Buka browser, dan panggil url dengan alamat : http://localhost/hello.php3, Jika tidak ada kesalahan atau error, maka kita akan melihat sebuah halaman web yang berisi tulisan “Hello World”.
§  Sebaiknya di dalam directory web server yang kita gunakan buat sebuah directory baru, misalnya directory Latihan, kemudian file yang kita buat disimpan didalam directory baru tersebut. Sehingga pemanggilan url nya menjadi : http://localhost/Latihan/hello.php3




Wednesday, October 19, 2011

Mengubah MAC Address Menggunakan macchanger

MAC Address adalah alamat jaringan yang diimplementasikan pada lapisan Data-Link dalam OSI Layer yang mempresentasikan sebuah node tertentu dalam sebuah jaringan. MAC Address juga sering disebut sebagai Ethernet address, physical address, atau hardware address. Susunan MAC address secara rinci adalah sebagai berikut :

MAC Address adalah alamat hardware yang unik oleh sebab itu MAC Address tidak dapat dirubah tapi masih bisa dimanipulasi. Pada postingan kali ini saya akan mempraktekan bagaimana memanipulasi MAC Address di Backtrack menggunakan macchanger

Langkah - langkah :

1.      Dari desktop Backtrack, buka terminal dan masuk ke dalam mode root.
2.      Periksa MAC address network interface yang digunakan dengan perintah ifconfig.



3.      Dari tampilan tersebut, diketahui bahwa MAC Address wlan0 adalah 48:5d:60:94:d9:ad
Sebelum memanipulasi MAC address, matikan interface terlebih dahulu dengan perintah ifdown.



4.      Manipulasi MAC address dengan perintah macchanger wlan0 –mac=48:5d:60:94:d9:ae



5.      Aktifkan kembali interface wlan0 dengan perintah ifup wlan0



6.      Periksa perubahan MAC Address dengan perintah ifconfig.




 Perhatian ! Boleh Copy paste, tapi kalau anda tidak keberatan mohon cantumkan sumber dengan linkback ke blog ini.

Tuesday, October 18, 2011

Konfigurasi Hak Akses File pada Linux

GNU/Linux merupakan sistem operasi multiuser yang dilengkapi dengan fitur-fitur keamanan. Jika kita akan masuk ke sistem, kita harus mengetahui terlebih dahulu username dan password yang menjadi haknya. Selain password, fitur keamanan pada Linux adalah hak akses terhadap file.


Berdasarkan wewenang terhadap keseluruhan sistem, pemakai dibagi menjadi dua, yaitu :
  • superuser (orang yang berhak mengakses sistem sepenuhnya)
  • user         (pemakai biasa yang wewenangnya terbatas)


Berdasarkan hak akses terhadap file, pemakai dibagi menjadi tiga kelompok, yaitu :
  • Owner (pemilik atau yang menciptakan file)
  • Group  (kelompok sejumlah pemakai)
  • Other   (semua pemakai diluar group pemilik)
Hak akses terhadap file dan direktori berupa :
  • Read     (hak akses untuk membaca | simbol r) 
  • Write    (hak akses untuk menulis atau memodifikasi | simbol w) 
  • Execute (hak akses untuk mengeksekusi atau menjalankan file | simbol x)
Pada file, Read berarti file dapat dibaca atau dibuka. Pada direktori, Read berarti isi direktori boleh dibuka. Write pada file berarti isi file dapat dimodifikasi, ditambah atau dikurangi. Write pada direktori berarti penciptaan file dapat dilakukan atau suatu file dapat dihapus. Execute pada file berarti file dapat dieksekusi dan pada direktori berarti atribut isi direktori boleh dibaca atau direktori boleh dilakukan sebagai direktori kerja.


Informasi hak akses terhadap direktori atau file dapat diperoleh melalui perintah ls –l.

Contoh hasil dari perintah ls -l




F

















Nomor 1: nomor ini digunakan untuk memberikan pengenal pada file. dari pengertian sebelumnya , tanda d: berarti  sebuah direktori, l: adalah hyperlink, dan – : adalah file biasa.
nomor 2,3,4: adalah area dimana kita dapat menetapkan suatu hak akses pada user yang bersangkutan. Urutan dalam pemberian hak akses adalah r, w , dan x
nomor 5,6,7: adalah area dimana anda dapat menetapkan suatu hak akses pada grup yang bersangkutan. urutan dalam permberian hak akses adalah r,w,x
nomor 8,9,10 adalah area dimana anda dapat menetapkan suatu hak akses untuk other/userlain. other artinya  untuk user dan grup yang bersangkutan . urutan dalam pemberian hak akses adalah r,w,x


Masing-masing arti karakter tersebut dapat dilihat pada tabel berikut: 

Karakter                   Arti                                        Nilai 
r (read)            Hak akses untuk membaca            4 
w (write)          Hak akses untuk menulis               2 
x (exec)           Hak akses untuk menjalankan        1 

Dengan mengkombinasikan nilai pada masing-masing hak akses tersebut, akan didapatkan hak akses masing-masing. 

Hak Akses               Nilai                                  Arti 
---                             0                       Tidak memiliki hak akses (tidak dapat di akses) 
r--                             4                        Dapat dibaca dan ditulis (diedit) 
rw-                            6                       Dapat dibaca dan ditulis (diedit) 
rwx                           7                        Dapat dibaca, ditulis dan dieksekusi (dijalankan) 
r-x                            5                        Dapat dibaca dan dijalankan, tetapi tidak dapat diedit 
--x                            1                        Hanya dapat dijalankan 

Berikut contoh penerapannya: 

Hak Akses Nilai Arti 
-rw------- 600 Pemilik memiliki hak akses baca dan tulis, sedangkan orang lain tidak memiliki hak akses apapun. Atur dengan hak akses ini supaya file anda tidak dapat dibaca orang lain, biasanya digunakan untuk file-file dokumen 
-rw-r--r-- 644 Pemilik memiliki hak akses baca dan tulis sedangkan orang lain hanya dapat membaca saja. Gunakan hak akses ini jika anda ingin orang lain dapat membaca file anda 
-rw-rw-rw- 666 Dengan hak akses ini, orang lain juga akan dapat membaca dan merubah file anda 
-rwx------ 700 Pemilik dapat membaca, menulis dan menjalankan file ini, hak akses ini yang biasanya digunakan untuk menjalankan program 
-rwxr-xr-x 755 Pemilik memiliki hak akses baca, tulis dan menjalankan file ini, sedangkan orang lain hanya dapat membaca dan menjalankan file tersebut 
drwx------ 700 Hanya pemilik yang dapat mengakses, membaca dan menulis pada direktori tersebut. Setiap direktori harus memiliki hak akses x untuk dapat diakses 
drwxr-xr-x 755 Isi direktori ini hanya dapat dirubah oleh pemilik, tetapi orang lain dapat membaca isi direktori tersebut 

Menggunakan Perintah chmod 
Untuk menggunakan chmod, perintahnya adalah: 

# chmod hakakses namafile 

misalnya: 

# chmod 644 aaa

Untuk mengganti hak akses sebuah direktori beserta dengan isinya, gunakan parameter R, dengan parameter tersebut, chmod akan dijalankan secara rekursif, misalnya seluruh file yang ada pada direktori /root akan dirubah hak aksesnya menjadi 755, maka perintahnya adalah sebagai berikut: 

# chmod R 755 /root 





Perhatian ! Boleh Copy paste, tapi kalau anda tidak keberatan mohon cantumkan sumber dengan linkback ke blog ini.