Jumat, 21 Desember 2012

Firewall dengan IPTables

Definisi 
   

        Firewall adalah sebuah bagian dari sistem komputer atau jaringan yang didesain untuk memblok atau mengijinkan sebuah jaringan lain untuk mengakses jaringan kita. Firewall bisa berbentuk hardware atau software atau pun kombinasi dari keduanya. Firewall digunakan untuk melindungi jaringan kita dari jaringan-jaringan yang berpotensi menimbulkan bahaya ke dalam sistem kita. Seluruh pesan yang masuk atau meninggalkan jaringan kita melalui firewall akan dicek setiap pesan dan memblok setiap pesan yang tidak memenuhi kriteria yang telah kita tetapkan di dalam firewall.


 
Fungsi Firewall

          Fungsi Firewall di dalam jaringan adalah sebagai berikut :

  1. Packet Filtering : memeriksa header dari paket TCP/IP ( tergantung arsitektur jaringannya, dalam contoh ini adalah TCP IP ) dan memutuskan apakah data ini memiliki akses ke jaringan.
  2. Network Address Translation ( NAT ) : biasanya sebuah jaringan memiliki sebuah IP public dan di dalam jaringan sendiri memiliki IP tersendiri. Firewall berfungsi untuk meneruskan paket data dari luar jaringan ke dalam jaringan dengan benar sesuai IP komputer lokal.
  3. Application Proxy : firewall bisa mendeteksi protocol aplikasi tertentu yang lebih spesifik.
  4. Traffic management : mencatat dan memantau trafik jaringan.  
Letak pada Jaringan (LAN & WAN) 


Bila ditinjau dari peran server di kedua tipe jaringan tersebut, maka server di jaringan tipe peer to peer diistilahkan non-dedicated server, karena server tidak berperan sebagai server murni melainkan sekaligus dapat berperan sebagai workstation.



Keunggulan :

  1. Antar komputer dalam jaringan dapat saling berbagi-pakai fasilitas yang dimilikinya seperti: harddisk, drive, fax/modem, printer.
  2. Biaya operasional relatif lebih murah dibandingkan dengan tipe jaringan client-server, salah satunya karena tidak memerlukan adanya server yang memiliki kemampuan khusus untuk mengorganisasikan dan menyediakan fasilitas jaringan.
  3. Kelangsungan kerja jaringan tidak tergantung pada satu server. Sehingga bila salah satu komputer/peer mati atau rusak, jaringan secara keseluruhan tidak akan mengalami gangguan.

Kelemahan :

  1. Troubleshooting jaringan relatif lebih sulit, karena pada jaringan tipe peer to peer setiap komputer dimungkinkan untuk terlibat dalam komunikasi yang ada. Di jaringan client-server, komunikasi adalah antara server dengan workstation.
  2. Sistem keamanan jaringan ditentukan oleh masing-masing user dengan mengatur keamanan masing-masing fasilitas yang dimiliki.
  3. Karena data jaringan tersebar di masing-masing komputer dalam jaringan, maka backup harus dilakukan oleh masing-masing komputer tersebut.
IPTables


Iptables merupakan sebuah aplikasi firewall terbaik yang biasa digunakan oleh para administrator linux. Iptables merupakan aplikasi yang dibuat oleh proyek the netfilter.org.

Sebelum membuat iptables yang berjalan mulai dari linux kernel 2.4.x sampai sekarang, proyek tersebut sudah membuat aplikasi ipchains untuk kernel 2.2.x dan aplikasi ipfwadm untuk kernel 2.0.x. Saat ini, banyak distro-distro besar sudah memaketkan firewall di dalam distro mereka sehingga memudahkan kita untuk menginstal iptables ke dalam sistem kita. Pada tutorial kali ini kita akan menggunakan distro Centos 5.4. Tutorial iptables pada artikel ini hanya menjelaskan tentang dasar-dasar iptables saja dan aplikasi iptables pada jaringan lokal saja.


Alur Paket Data


Membahas prinsip dasar firewall IPTables, mengelola akses internet berdasarkan alamat IP,port aplikasi dan MAC address. Firewall IPTables packet filtering memiliki tiga aturan (policy), yaitu:

·      INPUT
Mengatur paket data yang memasuki firewall dari arah intranet maupun internet. kita bisa mengelolakomputer mana saja yang bisa mengakses firewall.
     misal: hanya komputer IP 192.168.1.100 yang bisa SSHke firewall dan yang lain tidak boleh.
    
    OUTPUT
Mengatur paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya output tidak diset,karena bisa membatasi kemampuan firewall itu sendiri.

·      FORWARD
Mengatur paket data yang melintasi firewall dari arah internet ke intranet maupun sebaliknya. Policy forward paling banyak dipakai saat ini untuk mengatur koneksi internet berdasarkan port, mac address dan alamat IP Selain aturan (policy) firewall iptables juga mempunyai parameter yang disebut dengan TARGET, yaitu status yang menentukkan koneksi di iptables diizinkan lewat atau tidak. TARGET ada tiga macam yaitu:

1. ACCEPT
Akses diterima dan diizinkan melewati firewall

2. REJECT
Akses ditolak, koneksi dari komputer klien yang melewati firewall langsung terputus, biasanya terdapatpesan “Connection Refused”. Target Reject tidak menghabiskan bandwidth internet karena akses langsung ditolak, hal ini berbeda dengan DROP.

3. DROP
Akses diterima tetapi paket data langsung dibuang oleh kernel, sehingga pengguna tidak mengetahui kalau koneksinya dibatasi oleh firewall, pengguna melihat seakan – akan server yang dihubungi mengalami permasalahan teknis. Pada koneksi internet yang sibuk dengan trafik tinggi Target Drop sebaiknya jangan digunakan.



1. A. Memblok paket yang datang dari sebuah IP
 
       # iptables -I INPUT -s 192.168.0.149 -j REJECT
 
Peritah di atas digunakan untuk memblok paket dari IP 192.168.0.149. Ada 2 opsi yang digunakan sebenarnya yaitu DROP dan REJECT. Perbedaan dari keduanya adalah kalau REJECT, perintah ini akan memblok paket namun akan memberitahukan bahwa paket tersebut ditolak. Sedangkan kalau DROP, perintah ini akan memblok paket namun tidak diberitahu apakah paket tersebut

   B. Memblok paket yang keluar dari sebuah IP
 
      #iptables -A OUTPUT -p tcp -d 192.168.10.2 -j DROP

2. Menutup Port
     
    # iptables -A INPUT -p tcp  --dport 22 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk ssh
 
    # iptables -A INPUT -p tcp -i eth0 --dport 23 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk telnet

   # iptables -I INPUT -s 192.168.0.250 -p tcp --dport 23 -j REJECT
Perintah di atas untuk memblok service telnet dari IP 192.168.0.250

3. Membuat Dropped Log file.

    # iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "PORT 80 DROP: " --log-level 7

    # iptables -A INPUT -p tcp --destination-port 80 -j DROP

4. Menghapus iptables
     
     #  iptables -D INPUT 3 
Menghapus iptables pada tabel input di baris ke 3
 
     # iptables -F
Menghapus seluruh iptables
 
    # iptables -F FORWARD



Perintah Iptables


Untuk melihat apakah di dalam sistem kita sudah terinstal paket-paket iptables, ketikkan perintah berikut:

# rpm -qa | grep iptables

Jika memang belum terinstal, ketikkan perintah berikut:

# yum -y install iptables*

Agar iptables dapat berjalan otomatis setelah restart, gunakan perintah:

# chkconfig iptables on

Untuk melihat status iptables, gunakan perintah:

# service iptables status

Untuk menyalakan iptables, gunakan perintah:

# /etc/init.d/iptables start

Untuk mematikan iptables, gunakan perintah:

# /etc/init.d/iptables stop

Untuk merestart iptables, gunakan perintah:

# /etc/init.d/iptables restart 




Sebelum melangkah lebih lanjut, pastikan firewall di sistem kita di enable yaitu dengan cara ketik setup lalu pilih Firewall configuration. Setelah itu, pada bagian Security Level beri tanda bintang pada item Enabled lalu pilih tombol OK.

Squid3 Ubuntu Server 12.04

Pertama
Instal terlebih dahulu squid 3 pada ubuntu server anda, dengan menggunakan perintah:

Sudo apt-get install squid3

Kedua
Setelah proses instalasi selesai masuk ke dalam direktori squid3 dengan menggunakan perintah:

cd /etc/squid3

kemudian lanjutkan dengan perintah mengcopy squid.conf.origin dan ganti namanya dengan squid.conf, adapun perintah yang digunakan yaitu:

cp squid.conf.origin squid.conf

Ketiga
Setelah proses pengcopyan file selesai selanjutnya lakukan konfigurasi di dalam squid.conf tersebut, dengan menggunakan perintah:

sudo nano /etc/squid3/squid.conf

kemudian cari:

http port 3128 
http_access allow localhost 
dan acl localnet src 192.168.0.0/16 
hilangkan tanda # didepannya, jika semuanya telah dihilangkan save dan keluar dari jendela konfigurasi.

Keempat
Jika konfigurasi squid3 telah selesai restart squid3 dengan perintah:

sudo /etc/init.d/squid3 restart

Keelima
Selanjutnya hubungkan komputer clien dengan komputer server dengan menggunakan kartu jaringan 1 buah lagi setting ip pada kedua komputer tersebut dalam 1 kelas ip yang sama.

Keenam
Jika telah selesai tes dengan perintah ping. Pastikan kedua komputer telah terhubung dengan mendapatkan balasan reply. jika telah terhubung ketikkan perintah berikut di komputer server

sudo tail -f /var/log/squid3/access.log

Jika selesai setting proxy pada komputer clien dengan ip yang terdapat pada komputer server dan dengan port 3128 yang di konfigurasi pada squid3 tadi. Jika selesai, lakukan browser pada alamat tertentu pada komputer clien jika konfigurasi benar maka akan alamat tersebut akan tampil pada komputer server.

Kamis, 22 November 2012

MULTIDOMAIN DAN VIRTUAL HOST DI UBUNTU SERVER 12.04

Langkah-langkah Multidomain dan Virtual Host di ubuntu server 12.04, yaitu

Pertama

Pastikan terlebih dahulu bahwa BIND9 telah terinstal di Ubuntu server agan2 sekalian.
Kemudian lakukan setting pada BIND9 tersebut dengan perintah

$ sudo nano /etc/bind/named.conf.local

Kemudian tambahkan zona baru untuk domain baru. Dalam percobaan kali ini saya menambahkan domain baru dengan nama jarkom1.com dan jarkom2.com.

#zona jarkom1.com
Zone “jarkom1.com” {
Type master;
File “/etc/bind/zones/jarkom1.com.db”;
};

#zona jarkom2.com
Zone “jarkom2.com” {
Type master;
File “/etc/bind/zones/jarkom2.com”;
};

#DNS reverse
Zone “9.17.10.in-addr.arpa” {
Type master;
File “/etc/bind/zones/jarkom-rev.db”;
};

Kedua

Jika kita tadi telah menambahkan domain baru pada Ubuntu kita sekarang waktunya kita mendefinisikan kembali zona domain yang baru dibuat tadi, pertama kita akan mendefinisikan domain jarkom1.com, adapun perintah yang digunakan yaitu :

$sudo nano /etc/bind/zones/jarkom1.com.db

Kemudian isikan didalamnya seperti berikut :

$TTL 3D
@ IN SOA      ns.jarkom1.com.          admin.jarkom1.com. (
2007062001
28800
3600
604800
38400
);

jarkom1.com.              IN        NS       ns.jarkom1.com.
@                                IN        A         10.17.0.195
www                           IN        A         10.17.0.195
TXT                             “Network Gateway”

Lakukan hal yang sama pada jarkom2.com

Ketiga

Setelah selesai mendefinisikan nama2 domain yang telah dibuat tadi waktunya sekarang kita membuat DNS Forwarding, adapun perintah yang digunakan

$sudo nano /etc/bind/named.conf.options

Kemudian isikan ipdan ISP atau server yang sudah ada seperti berikut

Forwarders {
10.10.1.1;
};

Keempat

Sekarang waktunya kita mengedit file resolv, dengan cara mengisikan ip komputer yang sudah diinstall di DNS. Perintah yang digunakan yaitu

$sudo nano /etc/resolv.conf

Kemudian isikan

Search jarkom1.com
Nameserver 10.17.0.191

Kelima

Selanjutnya kita akan membuat file jarkom-rev yang akan digunakan untuk reverse lookup. Adapun perintah yang digunakan yaitu

$sudo nano/etc/bind/zones/jarkom-rev.db

Kemudian isikan

$TTL 3D
@        IN        SOA                ns.jarkom1.com.          admin.jarkom1.com. (
2007062001
28800
604800
604800
86400
)
IN        NS                   ns,jarkom1.com.
191      IN        PTR                 5CA.jarkom1.com.

Keenam

Setelah selesai melakukan konfigurasi pada bind9 sekarang waktunya kita untuk merestart bind9 tersebut, adapun perintah yang digunakan yaitu :

$sudo /etc/init.d/bind9 restart

Jika semuanya oke, coba lakukan ping pada nama domain tersebut jika berhasil maka kita akan mendapatkan balasan reply jika tidak maka periksa lagi pengaturan pada bind9 yang telah dibuat tadi.

Ketujuh

Jika kita tadi telah selesai membuat multidomain sekarang waktunya kita membuat direktori untuk masing-masing domain yang tadi telah dibuat. Adapun perintah yang digunakan yaitu

$cd /var/www
$sudo mkdir jarkom1.com       jarkom.net
$sudo chmod 755 jarkom1.com           jarkom.net

Kedelapan

Sekarang waktunya kita melakukan konfigurasi untuk virtual hostnya. Sebelum melakukan konfigurasi pada apache2.conf pastikan terlebih dahulu agan2 telah menginstall apache2. Setelah itu lakukan konfigurasi pada apache2 tersebut dengan menggunakan perintah

$sudo nano /etc/apache2/apache2.conf

Kemudian isikan pada baris terakhir

ServerName 127.0.0.1
NameVirtualHost *:80

Kesembilan

Setelah selesai melakukan settingan pada apache2nya sekarang waktunya kita membuat direktori sites-available. Adapun perintah yang digunakan yaitu

$cd /etc/apache2/sites-available
$sudo nano jarkom1.com

Selanjutnya isikan perintah berikut

<VirtualHost *:80>
ServerName                jarkom1.com
ServerAlias                  www.jarkom1.com
DocumentRoot           /var/www/jarkom1.com          #disesuaikan dengan direktori yang telah dibuat sebelumnya
ErrorLog                     /var/log/apache2/jarkom1-error.log
CustomLog                 /var/log/apache2/jarkom1-access.log combined
</VirtualHost>

Kemudian simpan dan keluar dari teks editor. Kemudian lakukan hal yang sama untuk jarkom2.com

Kesepuluh

Selanjutnya kita akan mendisable VirtualHost default dan enable domain yang baru. Adapun perintah yang digunakan

$sudo a2dissite default
$sudo a2ensite jarkom1.com
$sudo a2ensite jarkom2.com

Kesebelas

Setelah mendisble semua VirtualHost dan Domain, sekarang waktunya melakukan reload pada apache dengan perintah

$sudo /etc/init.d/apache2 reload

Setelah selesai melakukan reload, lakukan browsing menggunakan lynx kemasing-masing domain dengan menggunakan perintah

Lynx http://jarkom1.com

Jika berhasil maka akan tampil file index.html yang telah dibuat sebelumnya.

Selasa, 06 November 2012

Web Server (APACHE & PHP) di Ubuntu 12.04



Web server adalah software server yang menjadi tulang belakang dari World Wide Web (www). Web server menunggu permintaan dari client yang menggunakan browser seperti netscape navigator, internet explorer, Mozilla, dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu dan kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format standar yang disebut dengan format SGML (Standard General Markup Language). Dimana data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser itu. Contohnya ialah bila data yang dikirim berupa data gambar maka browser yang hanya mampu menampilkan text (misalnya lynx) tidak akan mampu menampilkannya dan jika ada akan menampilkan alternatifnya saja.

Tapi untuk saat ini umumnya para pengguna internet lebih banyak menggunakan format HTML (Hyper Text Markup Language) karena penggunaanya yang sederhana dan mudah untuk dipelajari. Kata Hyper Text disana mempunyai arti bahwa seorang pengguna internet dengan web browsernya dapat membuka dan membaca dokumen-dokumen yang ada dalam komputernya atau bahkan komputer yang jauh tempatnya sekalipun.

Apache merupakan salah satu software gratis yang mempunyai dukungan teknis dan dokumentasi yang lengkap untuk pembuatan web server. Web server apache ini mempunyai kelebihan yaitu :

  • Apache termasuk dalam kategori freeware (software gratisan)  
  •  Apache mudah sekali proses instalasinya jika disbandingkan dengan web server lainnya seperti NCSA, IIS, dan lain-lain.
Selain kelebihan tersebut apache juga mendukung penambahan modul-modul, diantaranya modul yang sering digunakan yaitu PHP. PHP (Personal Home Page Tool) adalah salah satu jenis alat yang digunakan untuk membuat halaman web anda menjadi lebih menarik, lebih aman, dan lebih dinamik. Pada dasarnya PHP hamper mirip dengan script yang lainnya seperti asp, Javascript, Visual Basil atau yang lainnya. Keuntungan dari PHP ini yaitu tidak diperlukan tambahan pada sisi webclient seperti halnya Javascript dan Visual Basil Script, sehingga lebih mudah penggunaanya.
Adapun beberapa keunggulan dari PHP yaitu :

 -Autentikasi http menggunakan PHP menggunakan fungsi header() yang ada dalam modul apache PHP.
-Pembuatan file GIF menggunakan library GD yang dikompilasi saat menginstal PHP.
-PHP dapat menerima metoda upload file.
 -Mendukung penggunaan cookie.
-Mendukung integrasi dengan database. 
- Mendukung ekspresi regular seperti ereg(), ereg_replace() dan lainnya.
-Penangan kesalah berdasarkan tingkat kesalahan.

Selanjutnya, Periksa terlebih dahulu koneksi ke gateway, ke dns server dan ke server repository dengan cara melakukan ping

Install apache2 yang akan digunakan sebagai web server dengan menggunakan perintah
Sudo apt-get install apache2

Setelah proses instalasi selesai maka jalankan apache2 tersebut dengan perintah
Sudo /etc/init.d/apache2 restart

Kemudian jalankan nmap-nya dengan perintah
nmap –p80 localhost
nmap –p80 10.17.0,196 (merupakan alamat ip)
jika benar maka akan muncul output sebagai berikut
output proses nmap localhost
Starting nmap 5.21 (http://nmap.org) at 2002-01-01 07:12 WIT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000068s latency).
Port state service
80/tcp open http

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Output proses nmap ipaddress
Starting nmap 5.21 (http://nmap.org) at 2002-01-01 07:25 WIT
Nmap scan report for 10.17.0.196
Host is up (0.000068s latency).
Port state service
80/tcp open http

Selanjutnya install lynx dengan cara
Sudo apt-get install lynx

Setelah proses intalasi selesai browser ke alamat ip komputer dengan cara
Lynx 10.17.0.196

Sampai disini jika proses benar maka kita akan membuat file html. Langkah pertama yaitu
Masuk ke direktori www dengan cara
Cd/var/www
Kemudian
Sudo nano index.html

Isikan

<html>
<head>
<tittle>coba-coba</tittle>
</head>
<body>
TEKNIK KOMPUTER POLSRI
</body>
</html>

Jika selesai save dan keluar dari nano

Selanjutnya browsing ke alamat IP , jika proses benar maka nantinya akan tampil tulisan TEKNIK KOMPUTER POLSRI

Oke kita lanjut dengan php

Langkah pertama install php pada web server, dengan cara
Sudo apt-get install php5 libapache2-mod-php5

Jika proses instalasi selesai restart apache dengan perintah
Sudo /etc/init.d/apache2 restart

Selanjutnya buat halaman php dan letakkan pada direktori www, yaitu dengan cara masuk terlebih dahulu ke direktori www
cd/var/www

kemudian
sudo nano test.php

kemudian isikan
<?php
phpinfo()
?>

Jika selesai save dan keluar dari nano
Selanjutnya browsing ke website agan2 sambil menjalankan tcpdump, jika proses benar maka akan tampil output seperti berikut :

Pada saat proses mengambil (get)
08:07:20:257384 IP 10.17.0.19.1107 > 10.17.0.196.ftp: Flags [.], ack 624, win 64658, length 0 08:07:20.270310 IP 10.17.0.19.1114 > 10.17.0.196.ftp-data: Flags [F.], seq 1, ack 132, win 64905, options [nop,nop,TS val 41123 ecr 924669], length 0
08:07:20.270327 IP 10.17.0.196.ftp-data > 10.17.0.1114: Flags [.], ack 2,  win 1825, option [nop,nop, TS val 924673 ecr 41123], length 0

Pada saat proses meletakkan (put)
08:13:28.971080 IP 10.17.0.195.1107 > 10.17.0.19.1107: Flags [P.], seq 249:271, ack 862, win 64540, length 22
08:13:28.971127 IP 10.17.0.195.ftp > 10.17.0.19.1107: Flags [R], seq 923375208, win 0, length 0