Blocking Situs Dengan SquidGuard pada Ubuntu


Pada kesempatan kali ini saya akan coba jelaskan cara bloking situs dengan menggunakan squidGuard. Terlebih dahulu siapkan server yang telah terinstall squid. Artikel terkait bisa dibaca di sini. Berikut adalah langkah2-nya:

Install squidGuard

apt-get install squidguard

download blacklist

wget http://squidguard.mesd.k12.or.us/blacklists.tgz

pindahkan file blacklist.tgz

mv blacklists.tgz /var/lib/squidguard/db/

pindah ke directory dimana file blacklists.tgz diletakkan

cd /var/lib/squidguard/db

extract file blacklists.tgz

tar -zxvf blacklists.tgz

akan meghasilkan folder ads, porn, violence, dsb. masing – masing folder terdapat file urls dan domains yang berisi daftar url atau domain sesuai dengan kategorinya.

ubah permission semua file blacklists

chomod 777 * -R

chown proxy:proxy * -R

Konfigurasi squidGuard.conf sebagai berikut (terdapat di directory /etc/squid/) :

#
# CONFIG FILE FOR SQUIDGUARD
#

dbhome /var/lib/squidguard/db/blacklists
logdir /var/log/squid

# DAFTAR SOURCE ADDRESS

src manager  {

# source address dengan berbagai format penulisan
ip 192.168.1.0-192.168.1.255
ip 192.168.2.0/24
ip 192.168.3.0/255.255.255.0
ip 192.168.4.1 192.168.4.2 192.168.4.3
iplist maganerlist
# buat file dengan nama managerlist di directory dbhome (/var/lib/squidguard/db/blacklists
# contoh isi file tersebut
#
# 192.168.1.0-192.168.1.255
# 192.168.2.0/24
# 192.168.3.0/255.255.255.0
# 192.168.4.1 192.168.4.2 192.168.4.3
}

src staff  {
ip 192.168.5.0/24
}
# TIME RULES

time habiskerja {
weekly * 17:00-24:00 # setiap hari dari jam 5 sore sampai ja 12 malem
date *.01.01 # tahun baru
}

# DAFTAR DESTINATION

dest porn {
domainlist porn/domains
urllist porn/urls } dest ads {
domainlist ads/domains
urllist ads/urls
}

dest aggressive {
domainlist aggressive/domains
urllist aggressive/urls
}

dest audio-video {
domainlist audio-video/domains
urllist audio-video/urls
}

dest drugs {
domainlist drugs/domains
urllist drugs/urls
}

dest gambling {
domainlist gambling/domains
urllist gambling/urls
}

dest hacking {
domainlist hacking/domains
urllist hacking/urls
}

dest proxy {
domainlist proxy/domains
urllist proxy/urls
}

dest redirector {
domainlist redirector/domains
urllist redirector/urls
}

dest spyware {
domainlist spyware/domains
urllist spyware/urls
}

dest suspect {
domainlist suspect/domains
urllist suspect/urls
}

dest violence {
domainlist violence/domains
urllist violence/urls
}

dest warez {
domainlist warez/domains
urllist warez/urls
}

# MASUKKAN ACCESS LIST / POLICY DI BAGIAN INI

acl {
manager {
pass all # manager di los aja
}
staff within habiskerja {
pass all # staff di los kalau jam pulang kantor
}
default {
pass !ads !audio-video !gambling !proxy !spyware !violence !aggressive !drugs !hacking !porn !redirector !suspect !warez all
redirect http://muslim.or.id
}
}

generate file db untuk semua destination yang sudah kita definisikan pada konfigurasi di atas

squidGuard -C all

Akan terbentuk file .db pada masing – masing folder di blacklists direcorty. Ubah permissionnya agar squid bisa membaca file tsb. chmod 777 /var/lib/squidguard/bl/* -R

chown proxy:proxy /var/lib/squidguard/bl/* -R

tambah baris berikut di file /etc/squid/squid.conf

url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

restart squid

squid -k reconfigure

Silakan cek rules/policy yang telah dibuat dengan mengakses situs yang telah diblok.

Membuat Proxy Server Dengan Lusca Head


Sebelumnya silakan baca dulu artikel saya bagaimana cara instalasi squid pada debian di sini

Install paket2 yang diperlukan:

apt-get install squid squidclient squid-cgi gcc build-essential sharutils ccze libzip-dev automake1.9

download file lusca

wget https://sites.google.com/site/catatanfaish/lusca_he/LUSCA_FMI.tar.gz

extract file lusca-nya

tar xzvf LUSCA_FMI.tar.gz

masuk ke directory hasil extract

cd LUSCA_FMI

kemudian kita compiler lusca headnya

./configure --prefix=/usr --exec_prefix=/usr \
--bindir=/usr/sbin --sbindir=/usr/sbin \
--libexecdir=/usr/lib/squid --sysconfdir=/etc/squid \
--localstatedir=/var/spool/squid --datadir=/usr/share/squid \
--enable-http-gzip --enable-async-io=24 --with-aufs-threads=24 \
--with-pthreads --enable-storeio=aufs --with-maxfd=65536 \
--enable-linux-netfilter --enable-arp-acl --enable-epoll \
--enable-removal-policies=heap --with-aio --with-dl --enable-snmp \
--enable-delay-pools --enable-htcp --enable-cache-digests \
--disable-unlinkd --enable-large-cache-files --with-large-files \
--enable-err-languages=English --enable-default-err-language=English


Install lusca

make && make install

Stop squid

squid -k shutdown

kita ganti file squid.conf dengan file berikut

wget https://sites.google.com/site/catatanfaish/lusca_he/squid.conf

download storeurl

wget https://sites.google.com/site/catatanfaish/lusca_he/storeurl.pl

kita buat permision untuk squid.conf dan storeurl.pl

chown proxy:proxy /etc/squid/storeurl.pl
chmod 777 /etc/squid/storeurl.pl
chmod 600 /etc/squid/squid.conf

sekarang kita buat cache_dir nya:

saat installasi buat 2 partisi khusus untuk cache. tentang installasi linux server (debian) bisa dilihat di sini

/cache1—>>partisi untuk cache pertama

/cache2—>>partisi untuk cache kedua

cd /cache1

mkdir proxy1
chmod 777 /cache1/proxy1
chown proxy:proxy /cache1/proxy1

cd /cache2
mkdir proxy2
chmod 777 /cache2/proxy2
chown proxy:proxy /cache2/proxy2

sekarang kita buat swap untuk cache_dir nya

squid -f /etc/squid/squid.conf -z

sekarang jalankan squidnya

squid -N -d 1 -D

kemudian cek untuk squidnya

tail –f /var/log/squid/access.log

 

 

Selamat mencoba!!!

 

SELESAI

Membuat Proxy Server dengan Squid pada Debian


Untuk mengatur penggunaan internet di kantor atau sekolah Proxy Server merupakan suatu hal yang wajib agar user tidak menyalahgunakan fasilitas koneksi internet seperti membuka situs – situs yang tidak baik misalnya situs – situs yang mengandung pornografi, perjudian, kekerasan, dsb. Atau juga mengontrol penggunaan

Berikut ini akan coba saya tulis cara instalasi Proxy Server menggunakan Squid pada Debian dan konfigurasi minimum agar Squid bisa berjalan. Sedangkan untuk konfigurasi tingkat lanjut seperti penambahan rules, blocking situs, bandwidth management akan saya tulis pada artikel yang berbeda Insya Allah.

Persiapan

PC yang sudah terinstall Linux. Dalam kasus ini saya menggunakan Debian Lenny. Secara umum langkahnya sama. Perbedaannya hanya pada saat proses installasi paket Squid. Jika pada Debian dan turunannya (Ubuntu dll) menggunakan “apt-get”, pada RedHat dan turunannya (Centos dll) menggunakan “yum”. PC ini harus memiliki paling tidak 2 interface. 1 interface terhubung ke LAN dan 1 lagi ke WAN yang dalam contoh kali ini terhubng ke modem speedy.

Network Topology

Modem Speedy   —>  Proxy Server  —>  LAN

Modem Speedy

IP Address : 192.168.0.1

Netmask : 255.255.255.0

DNS : 202.134.0.155, 203.130.196.5, 222.124.204.34

Proxy Server

eth0 (connected to Modem Speedy)

IP Address : 192.168.0.2

Netmask : 255.255.255.0

Gateway : 192.168.0.1

eth1 (connected to LAN)

IP Address : 192.168.1.1

Netmask : 255.255.255.0

LAN

IP Address : 192.168.1.2 – 192.168.1.254

Netmask : 255.255.255.0

Default Gateway : 192.168.1.1

DNS Server : 192.168.1.1

Setting Network dan IPtables

Lakukan setting network di Proxy Server dengan mengedit file /etc/network/interfaces (untuk distro selain Debian dan Ubuntu silakan menyesuaikan) sebagai berikut:

auto lo eth0 eth1

iface lo inet loopback

# The primary network interface

iface eth0 inet static

address 192.168.0.2

netmask 255.255.255.0

broadcast 192.168.0.255

network 192.168.0.0

gateway 192.168.0.1

iface eth1 inet static

address 192.168.1.1

netmask 255.255.255.0

broadcast 192.168.1.255

network 192.168.1.0

Restart network untuk mendapatkan efek.

/etc/init.d/networking restart

atau

/etc/init.d/networking force-reload

Cek hasil konfigurasi network dengan perintah “ifconfig” (tanpa tanda petik). Pastikan hasil konfigurasi telah sesuai.

Edit file /etc/resolv.conf sebagai berikut untuk DNS Server:

nameserver 202.134.0.155
nameserver 203.130.196.5
nameserver 222.124.204.34

Edit file /etc/sysctl.conf dengan menghilangkan tanda # pada baris #net.ipv4.ip_forward=1.

sebelum

#net.ipv4.ip_forward=1

sesudah

net.ipv4.ip_forward=1

Simpan konfigurasi kemudian aktifkan dengan perintah berikut:

sysctl -p

Lakukan konfigurasi IPtables sebagai berikut:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to-source 192.168.0.2

iptables -t nat -A PREROUTING -p tcp -i eth1 –dport 80 REDIRECT –to-ports 3128

Baris pertama melakukan source NAT semua paket yang keluar dari eth0 yang terhubung ke modem speedy sehingga semua client di LAN IP Addressnya akan terbaca 192.168.0.2 (IP Address Proxy Server yang terhubung ke modem speedy) oleh modem speedy. Hal ini dilakukan agar semua client di LAN bisa akses internet.

Sedangkan baris ke 2 berfungsi mengalihkan semua paket yang masuk ke eth1 dari LAN yang menuju port 80 (port web server) ke port Squid yaitu port 3128. Tanpa baris ini maka fungsi Squid sebagai proxy server tidak akan bekerja.

Konfigurasi IPtables di atas bersifat sementara. Jika komputer direstart maka konfigurasi IPtables akan hilang. Untuk mengatasi hal ini lakukan langkah – langkah berikut:

Simpan konfigurasi IPtables ke suatu file (dalm contoh ini ke file /etc/iptables.up.rules) dengan perintah berikut:

iptables-save > /etc/iptables.up.rules

Edit file /etc/network/interfaces. Tambahkan baris “post-up iptables-restore < /etc/iptables.up.rules” agar konfigurasi IPtables di load setelah interface up. Setelah diedit hasilnya adalah sebagai berikut:

auto lo eth0 eth1

iface lo inet loopback

# The primary network interface

iface eth0 inet static

address 192.168.0.2

netmask 255.255.255.0

broadcast 192.168.0.255

network 192.168.0.0

gateway 192.168.0.1

iface eth1 inet static

address 192.168.1.1

netmask 255.255.255.0

broadcast 192.168.1.255

network 192.168.1.0

post-up iptables-restore < /etc/iptables.up.rules

Installasi Squid

Setelah network dan Iptables selesai dikonfigure maka tahap selanjutnya adalah installasi Squid. Gunakan perintah berikut:

apt-get install squid

Setelah Squid terinstall lakukan konfigurasi minimum sebagai berikut:

http_port 3128 transparent

cache_dir ufs 20480 16 256

acl localnet 192.168.1.0/24

http_access allow localnet

http_access deny all

Kemudian restart squid dengan perintah berikut:

/etc/init.d/squid restart

Pastikan squid berjalan dengan menggunakan perintah berikut:

ps ax | grep squid

Jika squid telah berjalan maka seharusnya output dari perintah di atas tidak kosong. Atau bisa gunakan utility “nmap” yang terlebih dahulu harus diinstall dengan perintah “apt-get install nmap” (tanpa tanda petik). Ketikkan perintah berikut maka seharusnya ada baris “3128/tcp open squid-http” yang menandakan Squid telah berjalan:

nmap localhost

Install dnsmasq

Tahap selanjutnya adalah menginstall dnsmasq yang berfungsi sebagai caching DNS server (memetakan nama doamin ke IP Address) sehingga di client tidak perlu menggunakan DNS server public (DNS Server speedy.) Hal ini akan mengurangi traffic ke DNS server public sehingga sedikit banyak akan menekan penggunaan bandwidth. Install dnsmasq dengan perintah berikut:

apt-get install dnsmasq

Setalah terinstall cek apakah dnsmasq telah berjalan dengan perintah berikut:

ps ax | grep dnsmasq

Atau bisa juga dengan perintah “nmap localhost” (tanpa tanda petik). Jika dnsmasq telah berjalan maka output perintah tadi akan ada baris “53/tcp open domain”.

Semua konfigurasi telah selesai kita lakukan. Langkah selanjutnya adalah melakukan test dari PC client untuk akses ke internet. Jika halaman web terbuka maka Proxy Server telah berhasil kita buat. Konfigurasi IP Address client bisa dilihat di bagian Network Topology artikel ini.

Langkah selanjutnya adalah membuat rules tambahan untuk mengontrol penggunaan internet. Baik itu blocking situs, bandwidth management, maupun rules lain. Seperti janji saya, artikel tentang ini akan saya terbitkan segera.

Jika menggunakan lebih dari 1 koneksi internet saya sarankan untuk membaca artikel saya tentang loadbalancing.

Installasi Server Debian Lenny


Berikut ini adalah step by step instalasi Server Debian Lenny. Saya harap bisa menjadi acuan untuk instalasi distro Linux yang lain karena pada prinsipnya langkah – langkahnya adalah sama saja. Yang terpenting adalah kita selalu memahami tiap prosesnya dengan selalu membaca informasi tahap demi tahap.

Persiapan

Yang harus disiapkan adalah 1 buah PC dengan spec sesuai kebutuhan dengan mempertimbangkan service apa saja yang akan di install (sebagai proxy server, database server,web server, mail server, ftp server atau file server atau bahkan gabungan dari beberapa service tadi), seberapa sering diakses,  seberapa banyak yang mengakses. Untuk kebutuhan kantor dengan user sampai dengan 50 orang Pentium 4 dengan memory 1GB dan HDD 100GB saya rasa sudah cukup untuk melayani berbagai service.

Selain PC tentu saja CD instalasi distro Linux juga perlu kita siapkan. Kita bisa mendapatkan file instalasi (iso) semua distro Linux secara gratis di internet. Tinggal download saja, setelah itu burning ke CD. Dalam artikel ini penulis menggunakan CD Debian Lenny.

BIOS pada PC yang akan kita install perlu kita atur agar first boot-nya melalui CD ROM.

Installasi

Setelah semua siap masuk ke tahap instalasi. Di bawah ini adalah tampilan awal saat PC booting dari CD Instalasi Linux. Pilih “install” maka proses instalasi akan berjalan. Berikut adalah step – stepnya.

Tampilan Awal Instalasi Debian Lenny

Tampilan Awal Instalasi Debian Lenny. Pilih menu install.

Pilih bahasa - Installasi Debian Lenny

Pilih English

Pilih bahasa - Installasi Debian Lenny

Pilih United States

Pilih keyboard layout - Instalasi Debian Lenny

Pilih American English

Masukkan hostname - Installasi Debian Lenny

Masukkan hostname komputer. Misal : server

Masukkan nama domain - Installasi Debian Lenny

Masukkan nama domain. Misal : example.com

Pilih zona waktu - Installasi Debian Lenny

Pilih zona waktu yang sesuai. Misal Asia, Jakarta

Pilih metode partisi - Installasi Debian Lenny

Pilih metode partisi. Pilih opsi paling atas (Guided - Use entire disk).

Pilih disk - Instalasi Debian Lenny

Pilih disk yang akan di partisi.

Pilih skema partisi - Instalasi Debian Lenny

Pilih skema partisi. Pilih opsi paling atas (All files in one partition).

Konfirmasi skema partisi - Instalasi Debian Lenny

Konfirmasi skema partisi. Pilih Finish partitioning and write chages to disk.

Konfirmasi partisi disk - Installasi Debian Lenny

Konfirmasi partisi disk. Pilih Yes.

Proses installasi - Installasi Debian Lenny

Proses installasi. Tunggu beberapa saat.

Masukkan password root - Installasi Debian Lenny

Masukkan password root.

Ulangi masukkan password root - Installasi Debian Lenny

Ulangi masukkan password root.

Buat user baru - Installasi Debian Lenny

Buat user baru. Misalnya nama Anda.

Buat akun dari user baru yang baru saja dibuat - Installasi Debian Lenny

Buat akun dari user baru yang baru saja dibuat. Samakan saja dengan nama user untuk mempermudah.

Masukkan password user yang baru dibuat - Installasi Debian Lenny

Masukkan password user yang baru dibuat.

Ulangi masukkan password user yang baru dibuat - Installasi Debian Lenny

Ulangi masukkan password user yang baru dibuat.

Pilih mirror - Installasi Debian Lenny

Pilih mirror Indonesia. Proses ini biasa di-skip.

Pilih website mirror - Installasi Debian Lenny

Pilih website mirror. Proses ini biasa di-skip.

Masukkan proxy - Installasi Debian Lenny

Biarkan kosong lalu Continue.

Proses konfigurasi apt - Installasi Debian Lenny

Proses konfigurasi apt. Tunggu beberapa saat.

Proses installasi - Installasi Debian Lenny

Proses installasi. Tunggu beberapa saat.

Pupularity Contest - Installasi Debian Lenny

Pupularity Contest. Pilih No untuk opsi ini.

Pilih software - Installasi Debian Lenny

Pilih software yang akan diinstall. Sesuaikan dengan keperluan. Gunakan tombolpanah atas dan bawah sebagai navigasi dan tombol spasi untuk memilih.

Install GRUB - Installasi Debian Lenny

Pilih Yes untuk menginstall GRUB pada MBR (Master Boot Record).

Proses finishing installasi - Installasi Debian Lenny

Proses finishing installasi. Tunggu beberapa saat.

Installasi selesai - Installasi Debian Lenny

Installasi selesai. Keluarkan CD lalu Continue.

Installasi selesai - Installasi Debian Lenny

Setelah reboot server telah siap. Login dengan user root atau user yang telah dibuat saat proses intallasi.

Demikianlah step by step installasi Debian Lenny. Seperti saya katakan diatas, pada prinsipnya semua installasi Linux adalah sama. Kita hanya perlu memahami informasi di setiap langkah proses installasi.

Loadbalancing dengan 2 Modem Speedy


Berikut adalah konfigurasi loadbalancing di Linux (sudah dicoba di Debian Lenny dan berhasil) dengan 2 modem Speedy

Network Topology

+———–+ —> Modem Speedy 1 —>  +———–+
| Internet |                                                           | Gateway | —> LAN
+———–+ —> Modem Sppedy 2 —>  +———–+

Modem
Speedy 1

IP Address : 192.168.1.1
Netmask : 255.255.255.0

Speedy 2
IP Address : 192.168.2.1
Netmask : 255.255.255.0

Gateway
Eth0 (Connected to LAN)
IP Address : 192.168.0.1
Netmask : 255.255.255.0

Eth1 (Connected to Speedy 1)
IP Address : 192.168.1.2
Netmask : 255.255.255.0

Eth2 (Connected to Speedy 2)
IP Address : 192.168.2.2
Netmask : 255.255.255.0

Network Configuration

Edit file /etc/network/interfaces (distro lain menyesuaikan) dengan editor kesayangan Anda sbb:

auto lo eth0 eth1 eth2
iface lo inet loopback

iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0

iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0

iface eth3 inet static
address 192.168.2.2
netmask 255.255.255.0

Loadbalancing

Edit file /etc/iproute2/rt_tables. Tambahkan baris berikut di baris paling bawah:

201 speedy1
202 speedy2

Buat file /etc/loadbalancing sbb:

#!/bin/bash

T1=speedy1
IF1=eth1
IP1=192.168.1.2
GW1=192.168.1.1
NET1=192.168.1.0/24

T2=speedy2
IF2=eth2
IP2=192.168.2.2
GW2=192.168.2.1
NET2=192.168.2.0/24

ip route add $NET1 dev $IF1 src $IP1 table $T1
ip route add default via $GW1 table $T1
ip route add $NET2 dev $IF2 src $IP2 table $T2
ip route add default via $GW2 table $T2

ip route add $NET1 dev $IF1 src $IP1
ip route add $NET2 dev $IF2 src $IP2

ip rule add from $IP1 table $T1
ip rule add from $IP2 table $T2
ip route add default scope global nexthop via $GW1 dev $IF1 weight 1 nexthop via $GW2 dev $IF2 weight 1

iptables -t nat -A POSTROUTING -o $IF1 -j SNAT –to-source $IP1
iptables -t nat -A POSTROUTING -o $IF2 -j SNAT –to-source $IP2

Simpan file konfigurasi. Set permission agar file dapat di execute.

#chmod +x /etc/loadbalancing

Edit file /etc/rc.local. Tambahkan baris berikut sebelum baris “exit 0”. Tujuannya adalah agar script tadi dijalankan ketika reboot.

/etc/loadbalancing

Reboot mesin untuk mendapatkan efek.

#reboot

Coba akses internet dari LAN. Gunakan tool ifstat untuk melihat apakah konfigurasi loadbalancing berhasil atau tidak. Tool ifstat bisa diinstall dengan cara “apt-get install ifstat” pada Debian atau Ubuntu. Distro lain menyesuaikan.

Jika output command ifstat menunjukkan adanya traffic di interface eth1 dan eth2 maka konfigurasi loadbalancing berhasil. Selamat mencoba…