rss

About Me

Tampilkan postingan dengan label Keamanan (Security). Tampilkan semua postingan
Tampilkan postingan dengan label Keamanan (Security). Tampilkan semua postingan

Rabu, 01 Desember 2010

Proxy Server Linux dengan SquidGuard


Proxy Server Linux Fedora 6










Proxy server berfungsi untuk: membatasi akses internet ke alamat tertentu menggunakan program redirect squidguard dan database-nya yang menampung jutaan situs dalam berbagai kategori.
Panduan instalasi dan konfigurasinya secara lengkap dapat ditemukan di situs resmi squidGuard.
Langkah-langkah instalasi dan konfigurasinya :
  1. Download dan instalasikan squidGuard pada sistem
  2. Download database squidGuard
  3. Membuat file konfigurasi untuk squidGuard di /etc/squid/squidGuard.conf
  4. Instal database squidGuard
  5. Menambahkan redirect squidGuard dalam konfigurasi proxy di /etc/squid/squid.conf
  6. Membuat script untuk memudahkan saya menjalankan squid dan squidGuard
  7. Jalankan proxy server
File konfigurasi squidGuard.conf yang saya gunakan isinya seperti berikut:
#
# CONFIG FILE FOR SQUIDGUARD
#
# Author By: fxekobudi@gmail.com
#

dbhome /var/squidGuard/blacklists
logdir /var/log/squidGuard
dest adv {
log adv
domainlist adv/domains
urllist adv/urls
}
dest aggressive {
log aggressive
domainlist aggressive/domains
urllist aggressive/urls
}
dest automobile {
log automobile
domainlist automobile/domains
urllist automobile/urls
}
dest chat {
log chat
domainlist chat/domains
urllist chat/urls
}
dest dating {
log dating
domainlist dating/domains
urllist dating/urls
}
dest drugs {
log drugs
domainlist drugs/domains
urllist drugs/urls
}
dest gamble {
log gamble
domainlist gamble/domains
urllist gamble/urls
}
dest hacking {
log hacking
domainlist hacking/domains
urllist hacking/urls
}
dest movies {
log movies
domainlist movies/domains
urllist movies/urls
}
dest music {
log music
domainlist music/domains
urllist music/urls
}
dest porn {
log porn
domainlist porn/domains
urllist porn/urls
}
dest redirector {
log redirector
domainlist redirector/domains
urllist redirector/urls
}
dest shopping {
log shopping
domainlist shopping/domains
urllist shopping/urls
}
dest spyware {
log spyware
domainlist spyware/domains
urllist spyware/urls
}
dest tracker {
log tracker
domainlist tracker/domains
urllist tracker/urls
}
dest violence {
log violence
domainlist violence/domains
urllist violence/urls
}
dest warez {
log warez
domainlist warez/domains
urllist warez/urls
}
dest webradio {
log webradio
domainlist webradio/domains
urllist webradio/urls
}
dest webtv {
log webtv
domainlist webtv/domains
urllist webtv/urls
}
acl {
default {
pass !adv !aggressive !automobile !chat !dating !drugs !gamble !hacking !movies !music !porn !redirector !shopping !spyware !tracker !violence !warez !webradio !webtv all
redirect 302:http://localhost.localdomain/blacklist.html
}
}
Untuk yang di sekolah, saya arahkan redirect tersebut ke file buatan saya sendiri, dimana dalam file tersebut saya berikan peringatan bahwa pengunjung tidak diperbolehkan mengakses situs dan saya berikan pilihan beberapa situs yang baik dan layak untuk dikunjungi. format file-nya dalam html. saya beri nama blacklist.html.
Setelah membuat file konfigurasinya, selanjutnya saya menambahkan direktive berikut ini agar squid membaca perintah untuk redirect squidGuard. Saya meminta squid untuk menjalankan anak proses squidGuard sebanyak 10, sesuai dengan kemampuan memory yang digunakan proxy. Maksud saya agar request terhadap situs tertentu yang masuk dalam database squidGuard segera dapat tertangani oleh anak-anak proses tersebut, selain karena jumlah client yang lumayan besar.
# unlinkd_program /usr/lib/squid/unlinkd
unlinkd_program /usr/lib/squid/unlinkd

# ———————————
# Redirect program untuk squidGuard
# ———————————
redirect_program /usr/bin/squidGuard
redirect_children 10
Berikut ini cara saya install database squidGuard:
1. File shallalist.tar.gz yang sudah saya download saya letakkan di direktory /tmp
2. Selanjutnya saya masuk direktory tersebut dan ekstrak file:
cd /tmp
tar -zxf shallalist.tar.gz
3.
Untuk memudahkan menginstal squidguard, saya edit script yang diberikan pada situs squidguard dan saya sesuaikan dengan kebutuhan serta keadaan. Kesulitan awal saya saat itu adalah masalah permission file untuk log squidGuard. Jadi hati-hati dengan proses instalasinya dan selalu check dengan command tail -f /var/log/messages.
#!/bin/sh
#
# squidGuard blacklists – install script
# author by: fxekobudi@gmail.com
cd /tmp
# extract blacklists
tar -zxf shallalist.tar.gz
# hapus databases lama
# copy blacklists ke db home
rm -Rf /var/squidGuard/blacklists/*
cp -R /tmp/BL/* /var/squidGuard/blacklists
# hapus direktory kategori blacklists yang tidak digunakan
rm -Rf /var/squidGuard/blacklists/automobile
rm -Rf /var/squidGuard/blacklists/dynamic
rm -Rf /var/squidGuard/blacklists/finance
rm -Rf /var/squidGuard/blacklists/forum
rm -Rf /var/squidGuard/blacklists/hobby/cooking
rm -Rf /var/squidGuard/blacklists/hobby/pets
rm -Rf /var/squidGuard/blacklists/isp
rm -Rf /var/squidGuard/blacklists/jobsearch
rm -Rf /var/squidGuard/blacklists/news
rm -Rf /var/squidGuard/blacklists/recreation
rm -Rf /var/squidGuard/blacklists/science
rm -Rf /var/squidGuard/blacklists/shopping
rm -Rf /var/squidGuard/blacklists/webmail
# buat direktory log squidGuard
#mkdir /var/log/squid/squidGuard
#chown squid.squid /var/log/squid/squidGuard/
chown squid.squid /var/log/squid/squidGuard/*
chown squid.squid /var/log/squid/squidGuard.log
# buat domains + urls db, kemudian rubah kepemilikan ke squid user
/usr/bin/squidGuard -C all
chown squid.squid /var/squidGuard/blacklists/*/*.db
chown squid.squid /var/squidGuard/blacklists/*/*/*.db
/sbin/service squid restart
rm -Rf /tmp/BL

sumber http://fxekobudi.net/linux/redirect-squid-proxy-server-linux-dengan-squidguard/

Selasa, 09 November 2010

Memblokir Situs Menggunakan File hosts

Ringkasan ini tidak tersedia. Harap klik di sini untuk melihat postingan.

Kamis, 28 Oktober 2010

Proxy Server Linux dengan Squid

Proxy Server Linux
Proxy server yang di gunakan adalah 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://blog-ollza.blogspot.com/
# 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 = 2000×1024 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 ollza.techno@gmail.com
cache_effective_user squid
cache_effective_group squid
visible_hostname proxy.ollza.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


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