Konfigurasi Sederhana IPTABLES

Konfigurasi Sederhana IPTABLES


IP tables adalah adalah suatu tools dalam sd linux yang berfungsi seagai alat untuk melakukan filtrasi (penyaringan) terhadap (trafic) lalulintas data

Berikut ini merupakan konfigurasi sederhana iptables 


-   iptables -F
-   iptables -P INPUT ACCESS
-   iptables -P OUTPUT ACCESS
-   iptables -P FORWARD DROP 
-   iptables -P FORWARD 
 

IP Tables

         IP TABLES          





        IPTables adalah suatu tools dalam sistem operasi linux yang berfungsi sebagai alat untuk melakukan filter (penyaringan) terhadap (trafic) lalulintas data. Secara sederhana digambarkan sebagai pengatur lalulintas data. Dengan iptables inilah kita akan mengatur semua lalulintas dalam komputer kita, baik yang masuk ke komputer, keluar dari komputer, ataupun traffic yang sekedar melewati komputer kita.

IPTables memiliki tiga macam daftar aturan bawaan dalam tabel penyaringan, daftar tersebut dinamakan rantai firewall (firewall chain) atau sering disebut chain saja. Ketiga chain tersebut adalah INPUT, OUTPUT dan FORWARD.

 

Pada diagram tersebut, lingkaran menggambarkan ketiga rantai atau chain. Pada saat sebuah paket sampai pada sebuah lingkaran, maka disitulah terjadi proses penyaringan. Rantai akan memutuskan nasib paket tersebut. Apabila keputusannnya adalah DROP, maka paket tersebut akan di-drop. Tetapi jika rantai memutuskan untuk ACCEPT, maka paket akan dilewatkan melalui diagram tersebut.
Sebuah rantai adalah aturan-aturan yang telah ditentukan. Setiap aturan menyatakan “jika paket memiliki informasi awal (header) seperti ini, maka inilah yang harus dilakukan terhadap paket”. Jika aturan tersebut tidak sesuai dengan paket, maka aturan berikutnya akan memproses paket tersebut. Apabila sampai aturan terakhir yang ada, paket tersebut belum memenuhi salah satu aturan, maka kernel akan melihat kebijakan bawaan (default) untuk memutuskan apa yang harus dilakukan kepada paket tersebut. Ada dua kebijakan bawaan yaitu default DROP dan default ACCEPT.
Jalannya sebuah paket melalui diagram tersebut bisa dicontohkan sebagai berikut:
Perjalanan paket yang diforward ke host yang lain
1. Paket berada pada jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada table Mangle. Chain ini berfungsi untuk me-mangle (menghaluskan) paket, seperti merubah TOS, TTL dan lain-lain.
4. Paket masuk ke chain PREROUTING pada tabel nat. Chain ini berfungsi utamanya untuk melakukan DNAT (Destination Network Address Translation).
5. Paket mengalami keputusan routing, apakah akan diproses oleh host lokal atau diteruskan ke host lain.
6. Paket masuk ke chain FORWARD pada tabel filter. Disinlah proses pemfilteran yang utama terjadi.
7. Paket masuk ke chain POSTROUTING pada tabel nat. Chain ini berfungsi utamanya untuk melakukan SNAT (Source Network Address Translation).
8. Paket keluar menuju interface jaringan, contoh eth1.
9. Paket kembali berada pada jaringan fisik, contoh LAN.
Perjalanan paket yang ditujukan bagi host lokal
1. Paket berada dalam jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada tabel mangle.
4. Paket masuk ke chain PREROUTING pada tabel nat.
5. Paket mengalami keputusan routing.
6. Paket masuk ke chain INPUT pada tabel filter untuk mengalami proses penyaringan.
7. Paket akan diterima oleh aplikasi lokal.
Perjalanan paket yang berasal dari host lokal
1. Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui jaringan.
2. Paket memasuki chain OUTPUT pada tabel mangle.
3. Paket memasuki chain OUTPUT pada tabel nat.
4. Paket memasuki chain OUTPUT pada tabel filter.
5. Paket mengalami keputusan routing, seperti ke mana paket harus pergi dan melalui interface mana.
6. Paket masuk ke chain POSTROUTING pada tabel NAT.
7. Paket masuk ke interface jaringan, contoh eth0.
8. Paket berada pada jaringan fisik, contoh internet.

3. Sintaks IPTables

iptables [-t table] command [match] [target/jump]

1. Table
IPTables memiliki 3 buah tabel, yaitu NAT, MANGLE dan FILTER. Penggunannya disesuaikan dengan sifat dan karakteristik masing-masing. Fungsi dari masing-masing tabel tersebut sebagai berikut :
  1. NAT : Secara umum digunakan untuk melakukan Network Address Translation. NAT adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket.
  2. MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket, seperti TTL, TOS dan MARK.
  3. FILTER : Secara umum, inilah pemfilteran paket yang sesungguhnya.. Di sini bisa dintukan apakah paket akan di-DROP, LOG, ACCEPT atau REJECT
2. Command
Command pada baris perintah IPTables akan memberitahu apa yang harus dilakukan terhadap lanjutan sintaks perintah. Umumnya dilakukan penambahan atau penghapusan sesuatu dari tabel atau yang lain.
Command
Keterangan
-A 
--append
Perintah ini menambahkan aturan pada akhir chain. Aturan akan ditambahkan di akhir baris pada chain yang bersangkutan, sehingga akan dieksekusi terakhir
-D          
--delete
Perintah ini menghapus suatu aturan pada chain. Dilakukan dengan cara menyebutkan secara lengkap perintah yang ingin dihapus atau dengan menyebutkan nomor baris dimana perintah akan dihapus.
-R          
--replace
Penggunaannya sama seperti --delete, tetapi command ini menggantinya dengan entry yang baru.
-I          
--insert
Memasukkan aturan pada suatu baris di chain. Aturan akan dimasukkan pada baris yang disebutkan, dan aturan awal yang menempati baris tersebut akan digeser ke bawah. Demikian pula baris-baris selanjutnya.
-L          
--list
Perintah ini menampilkan semua aturan pada sebuah tabel. Apabila tabel tidak disebutkan, maka seluruh aturan pada semua tabel akan ditampilkan, walaupun tidak ada aturan sama sekali pada sebuah tabel. Command ini bisa dikombinasikan dengan option –v (verbose), -n (numeric) dan –x (exact).
-F          
--flush
Perintah ini mengosongkan aturan pada sebuah chain. Apabila chain tidak disebutkan, maka semua chain akan di-flush.
-N          
--new-chain
Perintah tersebut akan membuat chain baru.
-X          
--delete-chain
Perintah ini akan menghapus chain yang disebutkan. Agar perintah di atas berhasil, tidak boleh ada aturan lain yang mengacu kepada chain tersebut.
-P          
--policy
Perintah ini membuat kebijakan default pada sebuah chain. Sehingga jika ada sebuah paket yang tidak memenuhi aturan pada baris-baris yang telah didefinisikan, maka paket akan diperlakukan sesuai dengan kebijakan default ini.
-E          
--rename-chain
Perintah ini akan merubah nama suatu chain.
3. Option
Option digunakan dikombinasikan dengan command tertentu yang akan menghasilkan suatu variasi perintah.
Option
Command          Pemakai
Keterangan
-v          
--verbose
--list          
--append 
--insert 
--delete
--replace
Memberikan output yang lebih detail, utamanya digunakan dengan --list. Jika digunakan dengan
--list, akan menampilkam K (x1.000),
M (1.000.000) dan G (1.000.000.000).
-x          
--exact
--list
Memberikan output yang lebih tepat.
-n          
--numeric
--list
Memberikan output yang berbentuk angka. Alamat IP dan nomor port akan ditampilkan dalam bentuk angka dan bukan hostname ataupun nama aplikasi/servis.
--line-number
--list
Akan menampilkan nomor dari daftar aturan. Hal ni akan mempermudah bagi kita untuk melakukan modifikasi aturan, jika kita mau meyisipkan atau menghapus aturan dengan nomor tertentu.
--modprobe
All
Memerintahkan IPTables untuk memanggil modul tertentu. Bisa digunakan bersamaan dengan semua command.
4. Generic Matches
Generic Matches artinya pendefinisian kriteria yang berlaku secara umum. Dengan kata lain, sintaks generic matches akan sama untuk semua protokol. Setelah protokol didefinisikan, maka baru didefinisikan aturan yang lebih spesifik yang dimiliki oleh protokol tersebut. Hal ini dilakukan karena tiap-tiap protokol memiliki karakteristik yang berbeda, sehingga memerlukan perlakuan khusus.
Match
Keterangan
-p          
--protocol

Digunakan untuk mengecek tipe protokol tertentu. Contoh protokol yang umum adalah TCP, UDP, ICMP dan ALL. Daftar protokol bisa dilihat pada /etc/protocols.

Tanda inversi juga bisa diberlakukan di sini, misal kita menghendaki semua protokol kecuali icmp, maka kita bisa menuliskan --protokol ! icmp yang berarti semua kecuali icmp.
-s          
--src 
--source

Kriteria ini digunakan untuk mencocokkan paket berdasarkan alamat IP asal. Alamat di sini bisa berberntuk alamat tunggal seperti 192.168.1.1, atau suatu alamat network menggunakan netmask misal 192.168.1.0/255.255.255.0, atau bisa juga ditulis 192.168.1.0/24 yang artinya semua alamat 192.168.1.x. Kita juga bisa menggunakan inversi.

-d          
--dst
--destination

Digunakan untuk mecocokkan paket berdasarkan alamat tujuan. Penggunaannya sama dengan match –src

-i          
--in-interface

Match ini berguna untuk mencocokkan paket berdasarkan interface di mana paket datang. Match ini hanya berlaku pada chain INPUT, FORWARD dan PREROUTING

-o          
--out-interface

Berfungsi untuk mencocokkan paket berdasarkan interface di mana paket keluar. Penggunannya sama dengan
--in-interface. Berlaku untuk chain OUTPUT, FORWARD dan POSTROUTING

5. Implicit Matches
Implicit Matches adalah match yang spesifik untuk tipe protokol tertentu. Implicit Match merupakan sekumpulan rule yang akan diload setelah tipe protokol disebutkan. Ada 3 Implicit Match berlaku untuk tiga jenis protokol, yaitu TCP matches, UDP matches dan ICMP matches.
a. TCP matches
Match
Keterangan
--sport          
--source-port
Match ini berguna untuk mecocokkan paket berdasarkan port asal. Dalam hal ini kia bisa mendefinisikan nomor port atau nama service-nya. Daftar nama service dan nomor port yang bersesuaian dapat dilihat di /etc/services.
--sport juga bisa dituliskan untuk range port tertentu. Misalkan kita ingin mendefinisikan range antara port 22 sampai dengan 80, maka kita bisa menuliskan --sport 22:80.
Jika bagian salah satu bagian pada range tersebut kita hilangkan maka hal itu bisa kita artikan dari port 0, jika bagian kiri yang kita hilangkan, atau 65535 jika bagian kanan yang kita hilangkan. Contohnya --sport :80 artinya paket dengan port asal nol sampai dengan 80, atau --sport 1024: artinya paket dengan port asal 1024 sampai dengan 65535.Match ini juga mengenal inversi.
--dport          
--destination-port
Penggunaan match ini sama dengan match --source-port.
--tcp-flags
Digunakan untuk mencocokkan paket berdasarkan TCP flags yang ada pada paket tersebut. Pertama, pengecekan akan mengambil daftar flag yang akan diperbandingkan, dan kedua, akan memeriksa paket yang di-set 1, atau on.
Pada kedua list, masing-masing entry-nya harus dipisahkan oleh koma dan tidak boleh ada spasi antar entry, kecuali spasi antar kedua list. Match ini  mengenali SYN,ACK,FIN,RST,URG, PSH. Selain itu kita juga menuliskan ALL dan NONE. Match ini juga bisa menggunakan inversi.
--syn
Match ini akan memeriksa apakah flag SYN di-set dan ACK dan FIN tidak di-set. Perintah ini sama artinya jika kita menggunakan match --tcp-flags SYN,ACK,FIN SYN
Paket dengan match di atas digunakan untuk melakukan request koneksi TCP yang baru terhadap server
b. UDP Matches
Karena bahwa protokol UDP bersifat connectionless, maka tidak ada flags yang mendeskripsikan status paket untuk untuk membuka atau menutup koneksi. Paket UDP juga tidak memerlukan acknowledgement. Sehingga Implicit Match untuk protokol UDP lebih sedikit daripada TCP.
Ada dua macam match untuk UDP:
--sport atau --source-port
--dport atau --destination-port
c. ICMP Matches
Paket ICMP digunakan untuk mengirimkan pesan-pesan kesalahan dan kondisi-kondisi jaringan yang lain. Hanya ada satu implicit match untuk tipe protokol ICMP, yaitu :
--icmp-type
6. Explicit Matches
a. MAC Address
Match jenis ini berguna untuk melakukan pencocokan paket berdasarkan MAC source address. Perlu diingat bahwa MAC hanya berfungsi untuk jaringan yang menggunakan teknologi ethernet.
iptables –A INPUT –m mac –mac-source 00:00:00:00:00:01
 
b. Multiport Matches

Ekstensi Multiport Matches digunakan untuk mendefinisikan port atau port range lebih dari satu, yang berfungsi jika ingin didefinisikan aturan yang sama untuk beberapa port. Tapi hal yang perlu diingat bahwa kita tidak bisa menggunakan port matching standard dan multiport matching dalam waktu yang bersamaan.
iptables –A INPUT –p tcp –m multiport --source-port 22,53,80,110

c. Owner Matches

Penggunaan match ini untuk mencocokkan paket berdasarkan pembuat atau pemilik/owner paket tersebut. Match ini bekerja dalam chain OUTPUT, akan tetapi penggunaan match ini tidak terlalu luas, sebab ada beberapa proses tidak memiliki owner (??).
iptables –A OUTPUT –m owner --uid-owner 500
Kita juga bisa memfilter berdasarkan group ID dengan sintaks --gid-owner. Salah satu penggunannya adalah bisa mencegah user selain yang dikehendaki untuk mengakses internet misalnya.

d. State Matches

Match ini mendefinisikan state apa saja yang cocok. Ada 4 state yang berlaku, yaitu NEW, ESTABLISHED, RELATED dan INVALID. NEW digunakan untuk paket yang akan memulai koneksi baru. ESTABLISHED digunakan jika koneksi telah tersambung dan paket-paketnya merupakan bagian dari koneki tersebut. RELATED digunakan untuk paket-paket yang bukan bagian dari koneksi tetapi masih berhubungan dengan koneksi tersebut, contohnya adalah FTP data transfer yang menyertai sebuah koneksi TCP atau UDP. INVALID adalah paket yang tidak bisa diidentifikasi, bukan merupakan bagian dari koneksi yang ada.
iptables –A INPUT –m state --state RELATED,ESTABLISHED

7. Target/Jump

Target atau jump adalah perlakuan yang diberikan terhadap paket-paket yang memenuhi kriteria atau match. Jump memerlukan sebuah chain yang lain dalam tabel yang sama. Chain tersebut nantinya akan dimasuki oleh paket yang memenuhi kriteria. Analoginya ialah chain baru nanti berlaku sebagai prosedur/fungsi dari program utama. Sebagai contoh dibuat sebuah chain yang bernama tcp_packets. Setelah ditambahkan aturan-aturan ke dalam chain tersebut, kemudian chain tersebut akan direferensi dari chain input.
iptables –A INPUT –p tcp –j tcp_packets
Target
Keterangan
-j ACCEPT 
--jump ACCEPT
Ketika paket cocok dengan daftar match dan target ini diberlakukan, maka paket tidak akan melalui baris-baris aturan yang lain dalam chain tersebut atau chain yang lain yang mereferensi chain tersebut. Akan tetapi paket masih akan memasuki chain-chain pada tabel yang lain seperti biasa.
-j DROP 
--jump DROP
Target ini men-drop paket dan menolak untuk memproses lebih jauh. Dalam beberapa kasus mungkin hal ini kurang baik, karena akan meninggalkan dead socket antara client dan server.
Paket yang menerima target DROP benar-benar mati dan target tidak akan mengirim informasi tambahan dalam bentuk apapun kepada client atau server.
-j RETURN 
--jump RETURN
Target ini akan membuat paket berhenti melintasi aturan-aturan pada chain dimana paket tersebut menemui target RETURN. Jika chain merupakan subchain dari chain yang lain, maka paket akan kembali ke superset chain di atasnya dan masuk ke baris aturan berikutnya. Apabila chain adalah chain utama misalnya INPUT, maka paket akan dikembalikan kepada kebijakan default dari chain tersebut.
-j MIRROR
Apabila kompuuter A menjalankan target seperti contoh di atas, kemudian komputer B melakukan koneksi http ke komputer A, maka yang akan muncul pada browser adalah website komputer B itu sendiri. Karena fungsi utama target ini adalah membalik source address dan destination address.
Target ini bekerja pada chain INPUT, FORWARD dan PREROUTING atau chain buatan yang dipanggil melalui chain tersebut.
Beberapa target yang lain biasanya memerlukan parameter tambahan:

a. LOG Target

Ada beberapa option yang bisa digunakan bersamaan dengan target ini. Yang pertama adalah yang digunakan untuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug, info, notice, warning, err, crit, alert dan emerg.Yang kedua adalah -j LOG --log-prefix yang digunakan untuk memberikan string yang tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut.
iptables –A FORWARD –p tcp –j LOG --log-level debug
iptables –A INPUT –p tcp –j LOG --log-prefix “INPUT Packets”

b. REJECT Target

Secara umum, REJECT bekerja seperti DROP, yaitu memblok paket dan menolak untuk memproses lebih lanjut paket tersebut. Tetapi, REJECT akan mengirimkan error message ke host pengirim paket tersebut. REJECT bekerja pada chain INPUT, OUTPUT dan FORWARD atau pada chain tambahan yang dipanggil dari ketiga chain tersebut.
iptables –A FORWARD –p tcp –dport 22 –j REJECT --reject-with icmp-host-unreachable
Ada beberapa tipe pesan yang bisa dikirimkan yaitu icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, icmp-proto-unrachable, icmp-net-prohibited dan icmp-host-prohibited.

c. SNAT Target

Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel nat pada chain POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama.
iptables –t nat –A POSTROUTING –o eth0 –j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000

d. DNAT Target

Berkebalikan dengan SNAT, DNAT digunakan untuk melakukan translasi field alamat tujuan (Destination Network Address Translation) pada header dari paket-paket yang memenuhi kriteria match. DNAT hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau chain buatan yang dipanggil oleh kedua chain tersebut.
iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 --dport 80 –j DNAT --to-destination 192.168.0.2

e. MASQUERADE Target

Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option --to-source. MASQUERADE memang didesain untuk bekerja pada komputer dengan koneksi yang tidak tetap seperti dial-up atau DHCP yang akan memberi pada kita nomor IP yang berubah-ubah.
Seperti halnya pada SNAT, target ini hanya bekerja untuk tabel nat pada chain POSTROUTING.
iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE
 
 
f. REDIRECT Target

Target REDIRECT digunakan untuk mengalihkan jurusan (redirect) paket ke mesin itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket yang menuju suatu port tertentu untuk memasuki suatu aplikasi proxy, lebih jauh lagi hal ini sangat berguna untuk membangun sebuah sistem jaringan yang menggunakan transparent proxy. Contohnya kita ingin mengalihkan semua koneksi yang menuju port http untuk memasuki aplikasi http proxy misalnya squid. Target ini hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau pada chain buatan yang dipanggil dari kedua chain tersebut.
iptables –t nat –A PREROUTING –i eth1 –p tcp --dport 80 –j REDIRECT --to-port 3128



Sumber : http://rootbox.or.id/tips/iptables.html, Copyright :  Instalasi Squid, Banner Filter, Porn Filter, Limit Bandwith, Transparan Proxy -hanny
 

Konfigurasi dan Instalasi SQUID Proxy Server

Proxy Server Menggunakan SQUID

Sebelum kita mengetahui bagaimana cara setting Proxy Server Menggunakan SQUID, sebaiknyakita mengetahu terlebih dahulu apa itu Proxy

1.    Pengertian Proxy
Secara terminologi istilah proxy dapat diartikan sebagai seseorang/lembaga yang bertindak sebagai perantara atau atas nama dari orang lain/lembaga dalam suatu hal.
Namun dalam dunia jaringan komputer, istilah proxy berarti komputer yang berfungsi sebagai perantara antara client dan server dalam jaringan komputer. Jadi proxy server adalah sebuah perangkan komputer server yang menggunakan proxy pada sistemnya sebagai perantara antara server itu sendiri dengan clientnya.

2. Fungsi Proxy
Proxy memiliki 3 fungsi utama, yaitu:
a. Firewall
Proxy bekerja pada layer aplikasi (dalam OSI Layer), maka filtering yang dilakukan oleh proxy lebih "cerdas" daripada firewall biasa. Proxy web server dapat mengecek URL dari outgoing request (permintaan akses keluar) untuk halaman web. Dengan kemampuan ini, administrator dapat melarang atau mengizinkan akses ke domain tertentu. Firewall biasa tidak dapat melihat nama domain di dalam pesan tersebut, karena firewall hanya memeriksa header paket data.

b. Gateway
Untuk dapat mengakses internet, sebuah komputer harus memiliki sebuah IP public. Untuk dapat mengakses internet secara bersama‐sama dengan menggunakan satu IP public, dibutuhkan sebuah komputer yang memiliki IP public, yang digunakan sebagai gateway komputer‐komputer lain. Dalam hal ini, proxy server juga berfungsi sebagai gateway. Server ini mempunyai dua interface, untuk koneksi ke internet dan untuk koneksi ke jaringan lokal.

c. Cache
Fungsi proxy server yang lain adalah untuk web caching. Caching di sini diartikan sebagai penyimpanan internet object (gambar/halaman web) dari suatu website yang sudah pernah diakses, sehingga bila akan mengakses objek yang sama di internet, tidak perlu mengambil dari internet, tetapi cukup dari proxy karena sudah disimpan. Bandwidth yang dipakai pun akan lebih hemat, dan dapat mempercepat akses ke website.


SQUID PROXY

Squid adalah aplikasi untuk proxy yang berjalan di lingkungan sistem operasi *.nix. Namun, dalam perkembangannya ada pula squid yang berjalan di lingkungan system operasi Windows.

Beberapa file yang akan di konfigurasi pada SQUID Proxy adalah :

Access List
ACL (Access List) adalah daftar siapa saja yang dibolehkan atau ditolak untuk menggunakan proxy (squid) atau dengan kata lain adalah pendefinisian user/clients squid. Di Access list ini kita dapat membuat beberapa tipe daftar akses seperti acl ke IP address, acl Ke situs yang akan di blokir untuk client dan lain-lain.

Cache_mem
cache_mem digunakan untuk menentukan besaranya cache memori yang digunakan squid untuk melakukan caching objects ( In-Transit objects, Hot Objects, Negative-Cached objects). Sebaikanya besarnya sekitar 1/3 RAM yang digunakan.

Cache_dir
Menentukan direktori penyimpanan objek yang disimpan.
http_access
Menunjuk alamat‐alamat yang diperbolehkan atau tidak untuk mengakses proxy.

cache_mgr
Alamat Email yang di tampilkan bila proxy tidak dapat menampilkan halaman web
yang diminta.

visible_hostname
Informasi di footer bila proxy tidak dapat menampilkan halaman web yang diminta.

Visible_hostname
Informasi di footer bila proxy tidak dapat menampilkan halaman web yang diminta.


Berikut ini merupakan langkah-langkah setting proxy pad SQUID :

Yang Pertama kali harus di lakukan adalah setting IP address server yang akan dijadikan proxy server…
Untuk membuat Proxy server ini di butuhkan 2 NIC yaitu (eth0 dan eth1) dengan 2 IP address yaitu ip untuk terhubung ke internet dan ip untuk jaringan local.
Pada tulisan kali ini ip yang di gunakan adalah :

Untuk ke jaringan internet :
-    IP address : 192.168.137.2
-    Netmask : 255.255.255.0
-    Gateway : 192.168.137.1
Untuk jaringan local :
-    IPaddress : 192.168.1.1
-    Netmask: 255.255.255.0
-    Gateway: 192.168.137.2

Lakukanlah settingan di atas pada ubuntu server dengan perintah :
sudo nano /etc/network/interfaces

jika sudah, save dan restart jaringan dengan perintah
sudo /etc/init.d/networking restart

jika sudah install lah SQUID proxy server, pada percobaan ini squid yang akan di install adalah squid versi 3, install  dengan perintah :

sudo apt-get install squid3






Tekan Y lalu Enter, maka proses instalpun akan di jalankan.
Jika proses install selesai,lakukan konfigurasi squid dengan perintah :
Sudo nano /etc/squid3/squid.conf



Lakukan konfigurasi sederhana berikut ini pada file squid.conf tersebut :
Hal pertama yang harus di konfigurasi adalah konfigurasi kelas jaringan yang digunakan dan http_port yang di gunakan
Untuk memudahkan pencarian letak yang akan di rubah tekan CTRL + W (untuk melakukan pencarian berdasarkan kata/kalimat)
Carilah kata acl localnet ,dan akan tampil seperti gambar berikut :





 Pada bagian acl localnet src 192.168.0.0/16 hilangkan tanda # dan ubah 192.168.0.0/16 menjadi 192.168.1.0/24
Hal tersebut dilakukan untuk menyesuaikan dengan settingan kelas IP address yang di gunakan untuk jaringan local. Selanjutnya yaitu cari kalimat http_access allow localnet dan hilangkan tanda # nya, seperti gambar berikut ini :




  Setelah melakukan setting di atas selanjutnya adalah setting port http, port http yang biasa di gunakan adalah port 3128 dan 8080 , secara default squid mensetting port tersebut menjadi 3128, jika kita ingin mengubaknya maka Tekan kembali CTRL+W untuk search dan ketikkan Squid normally listens dan anda bisa mengubah portnya. Seperti gambar di bawah ini :


Selanutnya kita akan mengkonfigurasi/membuat daftar akses ACL (access list) beserta http_access nya.
Pada pembuatan (Acl) access list kita akan  membuat daftar seperti berikut
acl bloksitus dstdomain "/etc/squid3/blokdomain.txt"
acl katalarang url_regex –I “/etc/squid3/katalarang.txt”
acl iplarang dst “/etc/squid3/iplarang.txt”

Untuk http_access nya adalah seperti berikut :

http_access deny bloksitus
http_access deny katalarang
http_access deny  iplarang


Seperti Gambar Berikut :


Setelah Acl dan Http_access simpan dan keluar dari squid.conf di buat maka kita akan membuat dan mengisi file file berikut :
-    blokdomain.txt
Ketik perintah nano /etc/squid3/domainlarang.txt
Isi dengan nama-nama domain/situs yang akan kita larang misalnya kita akan melarang situs-situs berikut untuk di akses :
www.facebook.com
www.twitter.com
www.kaskus.co.id
www.tokobagus.com
www.berniaga.com
www.youtube.com


-    katalarang.txt
perintahnya sama seperti di atas dan contoh isinya sebagai berikut :
porno
jablay
seks
video
dan lain-lain


-    iplarang.txt
perintahnya sama seperti sebelumnya dan pada file ini kita akan mengisi file ini dengan ip dari situs-situs yang kita larang karena berdasarkan kejadian yang pernah terjadi situs-situs yang telah kita larang di domwwwainlarang.txt masih bisa di akses memalui ip addressnya. Untuk melihat ip address sebuah situs ketikkan perintah :
nslookup dan ketikkan situsnya misalnya www.youtube.com
maka hasinya akan tampil yaitu berupa ip dari situs tersebut.

Jika semua file di atas telah di buat, maka restart SQUID3 dengan perintah
/etc/init.c/squid3 restart
Setelah squid di restart ada baiknya kita mengetesnya terlebih dahulu pada Client sebelum melanjutkan ke konfigurasi lainnya.
pastikan clinet sudah terhubung ke jaringan dan terhubung ke server

Pada Client Aturlah Sperti Berikut ini : 
1. Buka Web Browser, Pada Percobaan ini saya menggunakan Firefox, Klik Tools - Options -  Advance, klik pada tab Network, seperti gambar di bawah ini 



selanjutnya adalah klik setting , dan klik manual proxy configuration..
masukkan IP address dari komputer server , dan klik OK, coba ketik pada address bar kata yang kita larang pada squid proxy server.
hasilnya akan seperti berikut ini : 


itu adalah hasil dari squid proxy server yang memblok kata "porno"

selain kata yang tidak masuk dalam daftar blok maka tampilannya akan seperti biasa, seperti berikut ini :