• RSS
  • Facebook
  • Twitter

Welcome To All New altertek.net

Senin, 06 Februari 2012

Sampai pada hari kelima PKL, dimana saya melakukan manual config pada Proxy server squid.

Sebelumnya apabila kalian install squid via yum, maka directory squid secara otomatis terdapat pada /etc/squid/ lalu file configurasi terdapat pada /etc/squid/squid.conf.

Sebelum edit squid.conf silahkan backup setting yang terdahulu, walaupun sudah terdapat squid.conf.default.

Berikut ialah konfigurasi squid.conf pada Proxy server saya


Perhatikan pada source code squid.conf pada baris:

http_port 3128



// Port 3128 merupakan Port default yang digunakan Squid, sebelum menggunakan squid harap diperhatikan untuk membuka port tersebut pada firewall  fedora.



Add port tersebut pada firewall.
Atau dengan command:
-A RH-Firewall-l-INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT

##Keterangan pada Squid.conf##
icp_port 0

//port untuk internet cache protocol, protocol ini digunakan apabila ada proxy lain default =3128 , tapi jika tidak ada proxy lain =0

cache_dir ufs /var/spool/squid 100 16 256

// Folder cache untuk squid dimana
100 = maksimum data yang ditampung sebesar 100MB
16 = Data ditampung masing-masing pada 16 Folder
256 = Masing masing 16 Folder tersebut mempunyai subfolder/directory sebanyak 256 buah

cache_mem 8 MB
// Memory cache 8 MB max = Memory RAM maksimal yang digunakan untuk service squid

cache_log /var/log/squid/cache.log
cache_access_log /var/log/squid/access.log
cache_store_log /var/log/squid/store.log

//tempat menyimpan cache log, akses log, dan storing data log

cache_mgr cs.bleketek@gmail.com
//Email admin proxy server, dapat diganti sesuai email admin anda

acl noblacklist dstdomain "/etc/squid/blacklist/no-blacklist.txt"
acl katablacklist url_regex -i "/etc/squid/blacklist/kata-blacklist.txt"
acl domainblacklist dstdomain "/etc/squid/blacklist/domain-blacklist.txt"
acl ipblacklist dst "/etc/squid/blacklist/ip-blacklist.txt"


//Merupakan deklarasi Access List baik yang ingin di block maupun di Allow

Untuk membuat file-file tersebut dapat dilakukan dengan command touch, seperti

su

mkdir /etc/squid/blacklist/
touch /etc/squid/blacklist/no-blacklist.txt

acl tdkbebasdownload time 08:00-13:00

//Mengaktifkan Rule Proxy pada jam-jam tertentu

Sebenarnya masih banyak acl type pada squid, untuk mengetahui lebih lanjut, silahkan download daftar acl type yang saya peroleh dari Buku Fedora kaya Iwan Sofana


acl all src 0.0.0.0/0.0.0.0
//Kontrol Akses Sumber IP, jika diatas saya menggunakan 0.0.0.0, agar berlaku pada semua IP

http_access allow noblacklist
http_access deny katablacklist
http_access deny domainblacklist
http_access deny ipblacklist

//Config diatas untuk memanggil dari hasil deklarasi acl

visible_hostname batan.go.id

//nama host yang dimunculkan dalam Page Error Squid

cache_effective_group squid
cache_effective_user squid
//Mendefiniskan User dan Group saat Cache diakses


Setelah Config Selesai, sekarang membuat directory Cache tersebut dengan command:

su
squid -z

Jika ada pesan Error, mungkin directory /var/spool/squid/ atau mungkin ada masalah dengan ownership, lakukan command berikut untuk mengatasinya:

mkdir /var/spool/squid/
chown -R squid.squid /var/spool/squid/

Lalu lakukan  restart pada service squid : service squid restart

Proxy Server Non Transparent

Sesuai judul, berarti proxy server yang terlihat, yang dikonfigurasi secara manual pada Browser Client

Jika Client menggunakan Firefox ikuti Setting Berikut
Pada Menu Bar klik Preferences - Advanced - Network - Setting
Pada Proxy Server, klik Manual Proxy Config, dan gunakan IP Server Proxy 10.42.0.1dan Port 3128, setting ini mungkin berbeda, tergantung pada IP Proxy server anda

Lakukan Modifikasi pada file yang dijadikan rule pada Access List, misal pada domain



/etc/squid/blacklist/domain-blacklist.txt
Tambahkan domain yang ingin di block misal www.facebook.com


Maka Pada Browser client jika mengakses facebook, akan di block oleh squid.

Sekarang kita mencoba edit kata terlarang, saya menambahkan kata porno dan binal, maka pada browser client bila mencari dengan kata-kata mengandung kata terlarang maka akan langsung di block.

Perlu diperhatikan pada setiap konfigurasi, anda diharuskan restart Service squid.
sudo service squid restart

Block Suatu Situs Berdasarkan Waktu
Hal ini sering dilakukan oleh beberapa Kampus dan Perusahaan yang ingin menghemat Bandwidth dengan cara block domain-domain yang memakan bandwidth banyak, seperti youtube, metacafe, dll.

Berikut caranya:
Buat file txt Pada Folder /etc/squid/blacklist dengan nama waktu.txt
Isi dengan nama domain tertentu, misal youtube.com

Lalu lakukan konfigurasi pada squid.conf,sehingga menjadi seperti dibawah ini:



Intinya ialah config pada baris ini:
acl tdkbebasdownload time M T W F 08:00-12:00
acl tdkbebasdownload1 time M T W F 13:00-16:00
acl waktu dstdomain "/etc/squid/blacklist/waktu.txt"

lalu deklarasi  pada

http_access deny tdkbebasdownload waktu
http_access deny tdkbebasdownload1 waktu

Sekarang anda coba Browsing situs yang di block pada jam diatas, maka akan terblock secara otomatis.

Membatasi Download File tertentu + Waktu

Yang pertama Buat file pada directory etc/squid/blacklist/ dengan nama download.txt. Karena saya memakai urlpath_regex, jadi penulisan di file tersebut seperti ini:

\.[ Ee][ Xx][ Ee]$

Misal kita ingin block suatu file yang berextensi .exe, jadi kita harus menambahkan:
Deklarasi

acl download urlpath_regex "/etc/squid/blacklist/download.txt"

Lalu dapat dipadukan dengan Block berdasarkan waktu menjadi:

http_access deny tdkbebasdownload1 download


Maka jika saya download file berekstensi .exe akan terblock secara otomatis, sesuai jam yang berlaku



Block Mac Address Pada Squid
Pada bagian ini sangat bermanfaat bagi para admin yang kesal dengan user yang menggunakan bandwidth dengan jumlah melebihi batas, sehingga mengganggu user lain.

Cara yang paling mudah ialah mengetahui mac client, dapat dilakukan dengan Tuxcut atau software lain, setelah diketahui silahkan ke squid.conf dan tambahkan config berikut:
Install Tuxcut:

yum install nmap iproute dsniff arptables_jf beesu arp-scan PyQt4


wget-c https://bitbucket.org/a_atalla/tuxcut/downloads/TuxCut-3.2-1.i586.rpm

atau download manual di Situs Tuxcut Resmi

Jalankan Tuxcut


Pada Acl List:

acl macblok arp F4:6D:04:BB:F3:E7

  • macblock adalah nama list
  • arp mewakilkan mac address
  • F4:6D:04:BB:F3:E7 adalah alamat mac address
Lalu pada http access tambahkan config berikut:


http_access deny macblok

atau dapat digabung dengan acl waktu

http_access deny tdkbebasdownload macblok


Membatasi Jumlah maksimum Akses

Squid menyediakan maxconn yang berfungsi untuk membatasi jumlah maksimum akses web dari komputer client, sebagai contoh Komputer dengan IP 10.42.0.1 hingga 10.42.0.254 akan dibatasi aksesnya, dapat dituliskan sebagai berikut

Deklarasikan:
client_db on
acl jumlahclient src 10.42.0.0/24
acl limitkoneksi maxconn 15

Lalu beri rule:
http_access deny jumlahclient limitkoneksi

Perintah diatas berfungsi memblock koneksi akses web bejumlah maksimum 15, jadi misalkan ada situs yang mempunyai external link yang banyak, mungkin web itu tidak terload secara sempurna.

Hal-hal diatas merupakan penerapan Squid sebagai firewall


Transparent Proxy
Jika dalam Proxy squid biasa kita diharuskan setting satu demi satu browser Client, namun dalam Praktik di lapangan hal ini mungkin terjadi apabila Computer Client sedikit, 20 Buah misalnya dalam sebuah warnet. Namun apabila jumlah computer Client berjumlah ratusan bagaimana cara konfigurasinya agar setiap client terhubung dengan proxy yang kita bangun, apalagi client mempunyai Favorit Browser yang berbeda-beda.

Inilah penggunaan transparent Proxy sehingga secara otomatis Komputer client langsung terhubung ke Proxy yang kita bangun.

Cara setting Transparent Proxy sangat mudah, cukup dengan syntax berikut ini, pada squid.cfg :

http_port 3128 transparent

(Khusus untuk squid versi 2.6 keatas)

Jika versi 2.6 kebawah, memakai command ini:
httpd_accel_host virtual
httpd_accel_port 80

httpd_accel_proxy on
httpd_accel_uses_host_header on

Untuk apa perintah tersebut dijalankan?, intinya ialah semua request client pada port 80 dibelokkan ke port 3128 (Port Default Squid)

Lalu jalankan perintah epitables agar redirect dari port 80 ke 3128, pertama-tama kita harus mengetahui kartu jaringan mana yang terhubung ke internet, dengan command:

ifconfig


Lalu lakukan Grep Eth untuk mengetahui id kartu jaringan:
dmesg | grep 'eth'


Dari gambar terlihat bahwa eth0 yang terhubung ke internet. Jika sudah diketahui, sekarang lakukan command berikut:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -A INPUT -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED -i eth0 -p tcp --dport 3128


Jika tidak mengetahui device secara pasti lakukan perintah berikut:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -A INPUT -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 3128


Perlu diingat, kita harus mengembalikan settingan browser seperti semula, diconect terlebih dahulu interface server yang terhubung ke client lalu connect kembali, hal ini berguna untuk refresh konfigurasi network.

Nb: Setelah komputer server restart maka command diatas harus diketik ulang, untuk solusinya buat file .sh saya beri nama transparentsquid.sh.

Download

Gambar browser client:


0 komentar:

Posting Komentar