Translate

Motivator


Salam Super
Tugas kita bukanlah untuk berhasil. Tugas kita adalah untuk mencoba, karena didalam mencoba itulah kita menemukan dan belajar membangun kesempatan untuk berhasil

Henry James
Anda takkan tahu apa yang tak dapat Anda lakukan, sampai Anda mencobanya

Tampilkan postingan dengan label SQUID PROXY. Tampilkan semua postingan
Tampilkan postingan dengan label SQUID PROXY. Tampilkan semua postingan

Senin, 30 Januari 2012

Proxy Server Linux dengan Squid

Bagi sebagian rekan-rekan yang mau membuat proxy server dengan Linux, atau bagi adik-adik Ilmu Komputer USD yang mau coba-coba belajar bikin proxy, saya ingin membagikan pengalaman kecil saya dalam membuat proxy menggunakan Linux. Meski banyak software untuk membuat proxy server, saya memilih squid karena paketnya sudah ter-include dalam distro yang saya gunakan (Fedora Core) dan hampir sebagian proxy server Linux menggunakan squid. Untuk spesifikasi hardware yang saya gunakan, dapat dilihat di artikel Proxy Server di tempat kerja saya. Proxy server tersebut menggunakan squid versi 2.6-12 pada distro Fedora Core 6 yang saya fungsikan sebagai:
  1. Menyimpan halaman web di proxy untuk mempercepat akses Internet.
  2. Akses kontrol Internet berdasarkan IP Address. Menggunakan 2 network yang berbeda (saya fungsikan juga sebagai router – dengan IP Forwarding), untuk ini, saya menggunakan 3 NIC pada 1 server.
  3. Blacklist daftar situs terlarang secara manual.
  4. Membatasi ukuran download File dengan ekstension tertentu dan hanya berlaku pada jam tertentu.
  5. Pesan Error dalam format Bahasa Indonesia.
  6. Rule untuk memperbolehkan akses Internet hanya protokol tertentu saja.
Langkah-langkah yang saya lakukan:
  1. Instal aplikasi squid
  2. Edit file konfigurasi squid
  3. Buat direktori dan file blacklist untuk blacklist secara manual
  4. Buat direktori dan file untuk pesan error dalam bahasa indonesia
  5. Check konfigurasi firewall yang diterapkan di proxy
  6. Jalankan servicenya
  7. Test konfigurasi di proxy dan client
 
File konfigurasi squid: /etc/squid/squid.conf (versi saya)

#SQUID 2.6.STABLE12
#Author by: http://fxekobudi.net
 
# OPTION JARINGAN
# -----------------------------------------------------------------------------
http_port 3128
icp_port 0
 
# OPTION UKURAN CACHE
# -------------------------------------------------------------------
cache_mem 256 MB
cache_swap_low 94
cache_swap_high 96
maximum_object_size 16384 KB
minimum_object_size 4 KB
maximum_object_size_in_memory 2048 KB
fqdncache_size 1024
cache_replacement_policy heap GDSF
memory_replacement_policy heap GDSF
 
# DIREKTORI LOG DAN CACHE
# ------------------------------------------------------------------
cache_dir aufs /var/spool/squid 9000 16 256
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log none
 
# TUNING CACHE PROXY
# ------------------------------------------------------------------
refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern .        0    20%    4320
negative_ttl 1 minutes
 
# TIMEOUT
# -----------------------------------------------------------------
half_closed_clients off
# -------------------------------------
# Memblok situs terlarang (blacklist)secara manual
# -------------------------------------
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"
acl tdkbebasdownload time 08:00-13:00
 
# AKSES KONTROL
# ------------------------------------------------------------------
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80        # http
acl Safe_ports port 21        # ftp
acl Safe_ports port 443        # https
acl Safe_ports port 70        # gopher
acl Safe_ports port 210        # wais
acl Safe_ports port 1025-65535    # unregistered ports
acl Safe_ports port 280        # http-mgmt
acl Safe_ports port 488        # gss-http
acl Safe_ports port 591        # filemaker
acl Safe_ports port 777        # multiling http
acl CONNECT method CONNECT
# -------------------------------------
# Daftar IP address
# -------------------------------------
acl lab1 src 192.168.254.1-192.168.254.40/255.255.255.255
acl staf-it src 192.168.254.41-192.168.254.42/255.255.255.255
acl lab2 src 192.168.254.43-192.168.254.44/255.255.255.255
acl ruang1 src 192.168.1.1-192.168.1.8/255.255.255.255
acl ruang2 src 192.168.1.11-192.168.1.17/255.255.255.255
 
# -------------------------------------
# Memblok situs terlarang secara manual
# -------------------------------------
http_access allow noblacklist
http_access deny katablacklist
http_access deny domainblacklist
http_access deny ipblacklist
http_access allow manager localhost
http_access deny manager
# -------------------------------------
# Rule yang saya terapkan
# -------------------------------------
http_access allow lab1
http_access allow staf-it
http_access allow lab2
http_access allow ruang1
http_access allow ruang2
acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar.bz2 .bz2 .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .raw .wav .iso
 
# Cancel download if file is bigger than 2 MB = 2000x1024 byte = 2048000 byte
reply_body_max_size 2048000 allow magic_words2 tdkbebasdownload
 
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow all
 
# PARAMETER ADMINISTRATOR
# -----------------------------------------------------------------
cache_mgr fxekobudi@gmail.com
cache_effective_user squid
cache_effective_group squid
visible_hostname proxy.fxekobudi.local
 
# PESAN ERROR DALAM BAHASA INDONESIA
# --------------------------------------------------------------------
error_directory /usr/share/squid/errors/Indonesian
Agar fungsi blacklist manual itu dapat digunakan, buat direktori berisi file-file disebutkan dalam blacklist manual:
# mkdir /etc/squid/blacklist
# cd /etc/squid/blacklist/
# vim no-blacklist.txt
# vim kata-blacklist.txt
# vim domain-blacklist.txt
# vim ip-blacklist.txt
 
Minimal dimasukkan satu item untuk masing-masing file tersebut, karena jika tidak, maka saat kita melihat error log squid sesaat setelah service dijalankan, akan ada pesan error tidak menemukan item pada file tersebut...Selain itu, saya juga menyertakan konfigurasi untuk pesan Error dari Proxy squid dalam bentuk bahasa indonesia, agar user di tempat kerja saya lebih mudah memahami maksudnya... Ide pesan error ini kemudian menjadi inspirasi saya saat mengkonfigurasi redirect SquidGuard untuk mengarah kepada file yang sengaja saya buat di root direktori web server proxy. Untuk melakukannya, tinggal copykan saja pesan Error dalam bahasa Inggris ke direktori lokasi pesan error berbahasa Indonesia.

# cp /usr/share/squid/errors/English /usr/share/squid/errors/Indonesian

trus terjemahkan file-filenya... Untuk menjalankan servicenya, gunakan saja perintah:
 
# /sbin/service squid start

Oh ya, Anda juga perlu menambahkan di konfigurasi Firewall menggunakan Iptable agar client diperbolehkan mengakses Internet ini melalui proxy, request client ke proxy dengan IP address yang terdaftar diperbolehkan melalui port 3128 (atau 8080) tergantung konfigurasi yang Anda gunakan... Saya jadi ingat waktu pertama kali mencoba, koneksi internet di server pake proxy udah jalan, tapi kok clientnya ngga bisa akses, eh ternyata emang client belum diperbolehkan akses ke IP address dan portnya proxy... Hehe. Agar bisa akses ke proxy, rule iptable-nya untuk file /etc/sysconfig/iptables harus memuat rule ini: (saya pakai konfigurasi firewall bawaan Fedora Core)

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT

Untuk menerapkan IP forwarding, saya edit file /etc/sysctl.conf dan memberi nilai 1 (enable) untuk direktive:
 
net.ipv4.ip_forward = 0 menjadi net.ipv4.ip_forward = 1

Konfigurasi proxy ini saya gunakan sebagian ditempat kerja saya (YBHK dan persekolahan Tarsisius 1, Damai, Tarsisius 2, Vianney, dan Tarsisius Vireta) dengan beberapa tambahan fitur yang tidak dapat saya sebutkan disini... Dengan alasan keamanan. Hehe...Sedangkan konfigurasi squid untuk menggunakan blacklist dari redirect SquidGuard dan firewall-nya akan saya tulis beberapa minggu ke depan... Setelah saya pulang berlibur ke rumah orang tua saya sekaligus tanah kelahiran saya di Sarolangun, Jambi.

Referensi : http://fxekobudi.net/linux/proxy-server-linux-dengan-squid/

Minggu, 13 Maret 2011

Squid dengan Transparent Proxy


Awal saya menulis artikel ini hanyalah untuk sebagai pengingat saja, sapa tau lupa namanya juga manusia, tujuan saya menulis ini untuk berbagi kepada yg belum pernah mencoba, tadinya saya hanya copy paste, karena saya pikir toh sama saja yang penting tujuan sama, tapi ada yang email ke saya, katanya artikel saya hanya copy paste, nah berikut ini asli loh ya bung :d, untuk yg memerlukan artikel ini, silahkan mengcopy paste tulisan saya tanpa harus menjelaskan sumbernya dari saya kecuali sumber aslinya yaitu dari :

• http://www.squid-cache.org
• http://squid.nlanr.net/
• http://www.squid-cache.org/

Instalasi Squid dengan Transparent proxy.
Linux yang saya gunakan adalah turunan RedHat dan berikut langkah-2 nya

1. Pertama-tama install terlebih dahulu squid melalui command prompt dng cara :
A. http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.1.tar.gz
B.http://rpmfind.net/linux/rpm2html/search.php?query=squid&submit=Search+...
C. atau bisa juga pada saat instalasi pertama pilih paket squid yg sudah di sediakan di dalam CD Linux

2. Setelah selesai maka Squid langsung dapat di konfigurasikan dengan cara :
# vi /etc/squid/squid.conf
3. Tetapi sebelum di edit terlebih dahulu backup dulu file aslinya agar kalau rusak bisa dikembalikan ke default :
# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
4. Baru kemudian kita mulai bermain-main dengan konfigurasi script Squid :
# vi /etc/squid/squid.conf

Keterangan : semua step di atas wajib server anda sudah terinstall linux 

Maka akan muncul file konfigurasi squid yang sangat panjang, berikut langkah-langkah yang harus diperhatikan…., saya tidak akan mengikuti langkah-2 nya karena saya sendiri sudah membuat langkah sendiri dan boleh di ikuti tidak juga tidak di paksakan :d

http_port 80

#cache_peer 202.57.16.54 parent 3128 3130 (perintah ini kalo untuk tidak transparent proxy artinya di Skip aja ya )
cache_peer 172.17.1.54 parent 3128 3130 round-robin
cache_peer 172.17.1.48 parent 3128 3130 round-robin
cache_peer 10.15.3.20 sibling 80 3130

#Default:
cache_mem 64 MB

#Default:
cache_dir ufs /cache 8000 64 256

#Default:
cache_access_log /var/log/squid/access.log

#Examples:
#acl myexample dst_as 1241
#acl password proxy_auth REQUIRED
#acl fileupload req_mime_type -i ^multipart/form-data$
#
#Recommended minimum configuration:
acl virus urlpath_regex \/cmd.exe \/system32 \/msadc \/root\.exe \/default\.ida
acl pemda src 10.15.x.x/255.255.255.0
acl pemda1 src 10.15.xxx.x/255.255.255.0
acl pemda2 src 10.15.xxx.x/255.255.255.0

#--KPTI URL Blocking Configuration--
acl skinful url_regex -i skinful
acl teens url_regex -i teens
acl topceleb url_regex -i topceleb
acl vagina url_regex -i vagina
acl whore url_regex -i whore
acl young url_regex -i young
acl gostosa url_regex -i ^http://www.gostosaonline.com
acl russianhuy url_regex -i ^http://www.russianhuy
acl 17tahun url_regex -i ^http://www.17tahun
acl tokyogirls url_regex -i ^http://www.tokyo-girls
acl exoticredheads url_regex -i ^http://www.exoticredheads.com
acl extrajos1 url_regex -i ^http://www.extrajos
acl extrajos2 url_regex -i ^http://extrajos
acl lovezoo url_regex -i ^http://www.lovezoo
acl xonair url_regex -i ^http://www.xonair
acl sanggrahan url_regex -i sanggrahan
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # go^Lpher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

#Recommended minimum configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
#http_access allow manager operator
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports

#--KPTI URL HTTP_ACCESS--
http_access deny sanggrahan
http_access deny exoticredheads
http_access deny tokyogirls
http_access deny extrajos1
http_access deny kazza
http_access deny kaza
http_access deny extrajos2
http_access deny xonair
http_access deny lovezoo
http_access deny russianhuy
http_access deny 17tahun
http_access deny skinful
http_access deny teens
http_access deny topceleb
http_access deny vagina
http_access deny whore
http_access deny young
http_access deny gostosa
http_access deny pemda
http_access allow pemda1
http_access allow pemda2
# http_access allow iula
http_access allow localhost
http_access deny all


#Allow ICP queries from eveyone
icp_access allow all
# ADMINISTRATIVE PARAMETERS
# -----------------------------------------------------------------------------

# TAG: cache_mgr
# Email-address of local cache manager who will receive
# mail if the cache dies. The default is "webmaster."
#cache_mgr root
#
#Default:
cache_mgr root@timur.jakarta.go.id
#cache_effective_user nobody
#cache_effective_group nobody
#
#Default:
cache_effective_user squid
cache_effective_group squid

# TAG: visible_hostname
# If you want to present a special hostname in error messages, etc,
# then define this. Otherwise, the return value of gethostname()
# will be used. If you have multiple caches in a cluster and
# get errors about IP-forwarding you must set them to have individual
# names with this setting.
#
#Default:
#none
visible_hostname proxy.timur.jakarta.go.id.
#Example:
# cachemgr_passwd secret shutdown
# cachemgr_passwd lesssssssecret info stats/objects
# cachemgr_passwd disable all
cachemgr_passwd rahasia all
#
cachemgr_passwd proxyadm all
#Default:
# none
#Default:
# none
#--------------------------------------
acl local-intranet dstdomain .jakarta.go.id .dki.go.id
#acl netmon dstdomain netmon.dki.go.id
#acl local-ipintranet src 10.15.X.X/255.255.0.0
#acl local-ipksnet src 202.57.XX.XX/255.255.255.240
#acl xxx dstdomain "/usr/data/file_forno"
#http_access deny xxx
#always_direct allow netmon
always_direct allow local-intranet
#always_direct allow local-ipintranet
#always_direct allow local-ipksnet
never_direct allow all
#error_directory /etc/squid/errors
#
#Default:
error_directory /usr/share/squid/errors/English

Kalo sudah selesai simpah dengan men-save file konfigurasi squid.conf yang telah kita edit dengan menggunakan perintah : :wq #w : menyimpan q: keluar (Perintah vi)


Lalu pada command terminal anda ketikan perintah ;
# squid -z

Fungsi : untuk membuat direktori cache yang telah kita buat pada perintah squid.

7. Transparent Proxy
Merupakan suatu teknik agar Squid Proxy menjadi transparent atau tidak terlihat, maksudnya jika biasanya kita memasukkan alamat proxy pada setiap browser (firefox, etc..), jika transparent proxy diterapkan maka pada browser tidak akan kelihatan kita memasukkan alamat proxy kita.Sebelum memasukkan perintah transparent proxy pada squid, maka kita harus melakukan perintah iptable agar dapat meredirect port yang ada pada komputer client.

Maksudnya jika squid kita set pada port 3128, maka permintaan client yang umumnya internet itu berada pada port 80 maka kita harus meredirect port 80 dari client tersebut ke port proxy kita yang berada pada port 3128.IP Forwarding, agar transparent proxy dapat diterapkan, maka kita harus mengaktifkan Ip Forwarding dengan memberikan nilai 1 pada file “/proc/sys/net/ipv4/ip_forward” dengan cara :

# echo 1 > /proc/sys/net/ipv4/ip_forward atau bisa juga dengan cara
# vi /proc/sys/net/ipv4/ip_forward ganti angka 0 menjadi 1 setelah selesai tekan Shift titik dua ( : )


Tetapi perintah tersebut harus kita jalankan auto startup, agar jika komputer squid mati kita tidak perlu repot2 menjalankan perintah tersebut secara terus menerus yaitu dengan perintah :

Vi /etv/rc.local lalu tambahkan perintah ini :
# service squid start

Tutorial yang ditulis oleh Eko Darussaman, SKom dapat kita jadikan pedoman untuk melakukan hal ini.

Berikutnya kita harus menjalankan ip_tables agar client dapat meredirect port squid server kita dengan perintah :

# iptables -A PREROUTING -t nat -p tcp –dport 80 -j REDIRECT –to-port 3128

Kemudian restart proxy dengan perintah :
# squid -k reconfigure

Selesai deh … !!! semoga bermanfaat


Sumber :
http://m-it.blogspot.com/2010/02/squid.html