Apa itu Proxy Server Menurut Wikipedia?
Proxy server adalah sebuah komputer server atau program komputer yang dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari Internet atau intranet. Proxy Server bertindak sebagai gateway terhadap dunia Internet untuk setiap komputer klien.
Apa itu SARG?
SARG (Squid Analysis Report Generator) merupakan sebuah tool yang akan membantu seorang system administrator untuk memperlihatkan laporan user yang menggunakan internet secara web based melalui browser.
Kronologi;
Dalam hal ini saya menggunakan 2 ehternet (interface) ;
Eth0 : 202.xxx.xxx.xx8 (ip public untuk connect ke internet)
Gateway : 202.xxx.xx3 (gateway yg diberikan ISP)
Eth1 : 192.168.210.3 (ip private untuk koneksi ke LAN)
Gateway : Kosongkan saja karena hanya untuk sambungan ke lan.
Topology;
Internet (ISP) ======> Proxy Server =======> Switch ======> User Internet
Hal yang pertama kali harus diperhatikan dalam membuat proxy server dengan squid adalah memastikan paket squid tersebut telah terinstal.
Mengeceknya dengan command # rpm -qa | grep squid*
seperti berikut;
[root@localhost ~]# rpm -qa | grep squid*
squid-2.6.STABLE6-5.el5_1.3
[root@localhost ~]#
kemudian saya membuat filter terhadap kata-kata yang terlarang untuk diakses, saya beri nama “forbiden-words” yang saya letakkan di direktory /etc/squid/
[root@localhost squid]# vi forbiden-words
tahap berikutnya saya langsung mengkonfigurasi squid proxy yang ada di /etc/squid/squid.conf
[root@localhost ~]# vi /etc/squid/squid.conf
adapun konfigurasi yang saya buat adalah seperti berikut;
http_port 3128 transparent (kata “transparent” kita tambahkan disini karena untuk tujuan transparent)
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mem 256 MB
cache_swap_low 94
cache_swap_high 96
maximum_object_size 4 MB
cache_dir ufs /var/spool/squid 9000 16 256 (Angka 9000 = 9 Giga untuk size cache direktory)
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl limitation url_regex -i “/etc/squid/forbiden-words” ( ini saya tambahkan list kata2 yang tidak diperbolehkan)
acl admedika src 192.168.210.0/255.255.255.0
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
http_access deny limitation
http_access allow admedika
http_access allow manager localhost
http_access deny manager
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
visible_hostname localhost
coredump_dir /var/spool/squid
Kemudian setting iptables;
[root@localhost ]# iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128
[root@localhost ]# iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 8080 -j REDIRECT –to-port 3128
[root@localhost ]# iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 3128
[root@localhost ]# iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 8080 -j REDIRECT –to-port 3128
[root@localhost ]# iptables -t nat -A POSTROUTING -s 192.168.210.0/24 -j SNAT –to 202.xxx.xxx.xx8
Untuk mencegah trojan saya menambahkan beberapa firewall;
/sbin/iptables -A FORWARD -p tcp –dport 12345 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p udp –dport 12345 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p udp –sport 12345 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p tcp –sport 12345 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p tcp –dport 135:139 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p udp –dport 135:139 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p udp –sport 135:139 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p tcp –sport 135:139 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p tcp –dport 31337:31338 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p udp –dport 31337:31338 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p udp –sport 31337:31338 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p tcp –sport 31337:31338 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p tcp –dport 65000 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p udp –dport 65000 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p udp –sport 65000 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p tcp –sport 65000 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p tcp –dport 27374 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p udp –dport 27374 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p udp –sport 27374 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p tcp –sport 27374 -o eth0 -j DROP
#keterangan port:
#135 DCE (NetBIOS)
#137 NS (NetBIOS)
#139 Session (NetBIOS)
#445 DS (NetBIOS)
#12345 Netbus (Trojan)
#27374 Sub-7 (Trojan)
#31337 Back Orifice (Trojan)
#31338 Back Orifice (Trojan)
#65000 Stacheldraht (Trojan)
[root@localhost ]# /etc/init.d/iptables save
[root@localhost ]# /etc/init.d/iptables start
[root@localhost ]# /etc/init.d/squid start
# Edit error report /etc/squit/errors/
Configurasi SARG
# Download SARG (Squid Analysis Report Generator)
http://sarg.sourceforge.net/
(Asumsi Apache sudah terinstall terlebih dahulu)
[root@localhost local]#tar zxvf sarg-2.2.5.tar.gz
[root@localhost local]#cd sarg-2.2.5
[root@localhost sarg-2.2.5]#./configure
[root@localhost sarg-2.2.5]#make
[root@localhost sarg-2.2.5]#make install
Sampai dengan tahap ini, instalasi sarg sudah selesai dilakukan, dan berikut ini dalah folder-folder dimana sarg berada.
/usr/bin/sarg : tempat sarg menyimpan file-file.
/var/log/squid/access.log : tempat squid menyimpan file log.
/var/www/html/sr : tempat file-file html sarg disimpan.
Jika kita lihat maka tampilannya sebagai berikut ;
[root@localhost sarg-2.2.5]# ll /var/www/html/
total 8
drwxr-xr-x 3 root root 4096 Feb 20 14:16 sarg-php
Kemudian copy file tersebut diatas
[root@localhost sarg-2.2.5]# cp -R sarg-php/ sr
[root@localhost sarg-2.2.5]# ll /var/www/html/
drwxr-xr-x 3 root root 4096 Feb 20 14:16 sarg-php
drwxr-xr-x 5 root root 4096 Feb 20 14:29 sr
[root@localhost sarg-2.2.5]#
Tahap selanjutnya adalah membuat konfigurasi SARG
dalam /usr/local/sarg/sarg.conf
pastikan configurasi berikut berada dalam path yang benar dan aktifkan.
# pilihan bahasa (bisa juga bahasa Indonesia) saya pakai English
language English
# lokasi log squid berada.
access_log /var/log/squid/access.log
#output yang akan ditampilkan sarg berhubungan dengan httpd.conf.
output_dir /var/www/html/sr
selebihnya bisa dibiarkan dalambentuk default.
tahap selanjutnya adalah membuat report agar, sarg bisa ditampilkan dalam harian, mingguan dan bulanan.
buat script harian, mingguan dan bulanan dan disimpan di /usr/sbin/
[root@localhost sarg-2.2.5]# vi /usr/sbin/sarg.harian
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date –date “1 day ago” +%d/%m/%Y)
/usr/bin/sarg -l /var/log/squid/access.log -o /var/www/html/sr/daily -z -d $YESTERDAY-$TODAY
exit 0
[root@localhost sarg-2.2.5]# vi /usr/sbin/sarg.mingguan
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date –date “1 week ago” +%d/%m/%Y)
/usr/bin/sarg -l /var/log/squid/access.log -o /var/www/html/sr/weekly -z -d $YESTERDAY-$TODAY
exit 0
[root@localhost sarg-2.2.5]# vi /usr/sbin/sarg.bulanan
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date –date “1 month ago” +%d/%m/%Y)
/usr/bin/sarg -l /var/log/squid/access.log -o /var/www/html/sr/monthly -z -d $YESTERDAY-$TODAY
/usr/sbin/squid -k rotate
exit 0
Jika script diatas sudah dibuat, pastikan script diatas ada dengan perintah berikut ini.
[root@localhost sarg-2.2.5]# ll /usr/sbin/sarg.harian
-rwxr-xr-x 1 root root 227 Feb 20 14:28 /usr/sbin/sarg.harian
[root@localhost sarg-2.2.5]# ll /usr/sbin/sarg.mingguan
-rwxr-xr-x 1 root root 228 Feb 20 14:27 /usr/sbin/sarg.mingguan
[root@localhost sarg-2.2.5]# ll /usr/sbin/sarg.bulanan
-rwxr-xr-x 1 root root 258 Feb 20 14:24 /usr/sbin/sarg.bulanan
Jika sudah ada. jalankan script diatas. seperti berikut ini
[root@localhost sarg-2.2.5]#sh /usr/sbin/sarg.harian
[root@localhost sarg-2.2.5]#sh /usr/sbin/sarg.mingguan
[root@localhost sarg-2.2.5]#sh /usr/sbin/sarg.bulanan
Selanjutnya, agar script sarg ini bisa aktif berdasarkan jadwal yg kita buat, maka buat script untuk dimasukan kedalam crontab.
[root@localhost sarg-2.2.5]#crontab -e
59 23 * * * /usr/bin/sarg -l /var/log/squid/access.log
00 08-18/1 * * * sh/usr/sbin/sarg.harian
00 00 * * * sh /usr/sbin/sarg.harian
00 01 * * 1 sh /usr/sbin/sarg.mingguan
03 02 1 * * sh /usr/sbin/sarg.bulanan
[root@localhost sarg-2.2.5]#/etc/init.d/crond restart
[root@localhost sarg-2.2.5]# /usr/bin/sarg -l /var/log/squid/access.log
[root@localhost sarg-2.2.5]#/etc/init.d/httpd start
[root@localhost sarg-2.2.5]# chkonfig iptables on
[root@localhost sarg-2.2.5]# chkonfig squid on
[root@localhost sarg-2.2.5]# chkonfig httpd on
0 comments:
Post a Comment