Langsung ke konten utama

Konfigurasi Proxy Server Squid Lusca + Mikrotik menggunakan Ubuntu 14.04

Kali ini aku akan membagikan dokumentasi yang akan aku terapkan pada pekerjaan kecilku di sebuah Internet Cafe di daerah jogja. karena permintaan dari client untuk menggunakan proxy sebagai web cache, aku akan mencoba memasang menggunakan komputer Jogloabang (http://jogloabang.com). sebelumnya kita akan mengenal yang namanya Proxy Server. Proxy Server adalah server yang bertindak sebagai perantara permintaan dari klien mencari sumber daya dari server lain. Seorang klien terhubung ke server proxy, meminta beberapa layanan, seperti file, koneksi, halaman web, atau sumber daya lain yang tersedia dari server yang berbeda dan server proxy mengevaluasi permintaan sebagai cara untuk menyederhanakan dan mengontrol kompleksitasnya. Proxy diciptakan untuk menambah struktur dan enkapsulasi untuk sistem terdistribusi. Saat ini, kebanyakan proxy adalah proxy web, memfasilitasi akses ke konten di World Wide Web dan menyediakan anonimitas. (Sumber). lalu apa itu Squid? Squid adalah sebuah daemon yang digunakan sebagai proxy server dan web cache. (Sumber)
tahap awal pembuatan Proxy Server terletak pada penginstallan OS ubuntu 14.04.
untuk mendownload ISO OS bisa menuju halaman ini (Link Download ISO)
untuk melakukan installasi bisa melihat panduan berikut (Doc Installasi)
tahap kedua melakukan installasi Squid Lusca
1. pastikan Proxy server sudah terkoneksi internet. topologi jaringan yang saya gunakan seperti ini
IP ke internet : 10.10.10.99/24
IP Proxy : 192.168.13.254/24
IP client DHCP : 192.168.1.2 - 192.168.1.254/24

2. masuk sebagai super user
$ sudo -i

3. memasang paket-paket untuk menginstall LUSCA
# apt-get update
# apt-get install apache2 php5 squid squidclient squid-cgi gcc build-essential sharutils ccze libzip-dev automake1.9 libfile-readbackwards-perl -y

4. unduh paket LUSCAnya:
# wget http://backcode.googlecode.com/files/LUSCA_HEAD-r14809-patch.tar.bz2 
5. seteah proses unduh/download selesai, ekstrak file tersebut:
# tar -xvjf LUSCA_HEAD-r14809-patch.tar.bz2
6. masuk tahap pengkonfigurasian. sebelumnya kita harus tau kode CFLAG dari tipe prosessor yang akan di pasang Lusca dengan cara lihat CPU info
# cat /proc/cpuinfo
lihat bagian yang kira-kira seperti ini:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz

setelah mengetahui tipe prosesor, cari CFLAG dari link berikut: Link1 dan Link2 khusus intel XEON. tak tertutup kemungkinan bisa mencari di mesin pencari.
maka akan mendapatkan kode CFLAG sebagai berikut:
CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=corei7-avx -O2 -pipe" CXXFLAGS="${CFLAGS}"
lalu kita kopi dan simpan.

7. Compile Lusca:
# cd LUSCA_HEAD-r14809
# make clean
# CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=corei7-avx -O2 -pipe" CXXFLAGS="${CFLAGS}" ./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-gnuregex --enable-async-io=24 --with-aufs-threads=24 --with-pthreads --with-aio --with-dl --enable-storeio=aufs,null --enable-removal-policies=heap --enable-icmp --enable-delay-pools --disable-wccp --enable-snmp --enable-cache-digests --enable-default-err-language=English --enable-err-languages=English --enable-linux-netfilter --disable-ident-lookups --with-maxfd=65535 --enable-follow-x-forwarded-for --enable-large-cache-files --with-large-files --enable-referer-log
# make
# make install
Script : CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=corei7-avx -O2 -pipe" CXXFLAGS="${CFLAGS}" ubahlah sesuai dengan CFLAG masing-masing

8. Buat direktori /proxy dan ubah hak akses penyimpanan cache menjadi kepemilikan user proxy dan grup proxy:
# mkdir /proxy
# chown -R proxy:proxy /proxy
# chmod -R 777 /proxy

9. buat direktori penyimpanan Log file proxy
# mkdir /var/log/squid
Ubah kepemilikan menjadi
# chown -R proxy:proxy /var/log/squid

10. unduh konfigurasi squid. kali ini hanya HTTP saja yang ter cache. untuk selebihnya bisa di tambahkan atau mencari konfigurasi lain.
# wget https://dl.dropboxusercontent.com/u/64064946/fileconfig.tar.gz
11. Ekstrak dan kopikan file konfigurasi tersebut ke dalam file /etc/squid
# tar -xvf fileconfig.tar.gz
# cp fileconf/* /etc/squid
12. beri hak akses dan eksekusi semua file berekstensi .pl
# chmod 0755 /etc/squid/*.pl
13. Dari semua file yang sudah di unduh bisa langsung dgunakan. akan tetapi apabila ingin menyesuaikan pada topologi yang berbeda bisa merubah dengan cara:
# vim /etc/squid/acl.conf
cari baris  acl localnet src 192.168.1.0/24. Lalu ganti bagian 192.168.1.0/24 sesuai dengan yang kalian inginkan. Jika sudah simpan dan tutup file tersebut.
untuk merubah tempat Cache Proxy tersimpan terdapat pada file /etc/squid/squid.conf. untuk merubahnya ketikan:
# vim /etc/squid/squid.conf
Cari bagian cache_dir aufs /proxy 16000 37 256 , lalu ganti bagian /proxy menjadi directory disk cache sesuai tempat cache tersimpan.
angka 16000 (satuannya megabyte) merupakan besaran penyimpanan cache. untuk normalnya ukuran cache sebesar 80% dari total hardisk
Angka 37 diperoleh dari rumus : ukuran 80% disk cache  dalam satuan byte/13/256/256 X 2.
Kira-kira cara menghitungnya seperti ini : 16000000/13/256/256 X 2 = 37.5. Dibulatkan saja menjadi 37.

Untuk mengubah ukuran RAM terdapat pada file tune.conf :

# vim /etc/squid/tune.conf

Cari bagian ipcache_size 4096 lalu ganti angka 4096 dengan 2X ukuran RAM kalian dalam satuan Megabyte. Sebagai contoh, tertulis 4096. karena hasil dari 2 X ukuran ram yaitu 2048.
Setelah itu cari lagi bagian fqdncache_size 2048 lalu ganti angka 2048 dengan ukuran RAM dalam satuan Megabyte.
Sebelum mengakses squid proxy di pastikan menghentikan service Squid3 pada server. agar tidak terjadi bentrok dengan squid lusca
# service squid3 stop
lalu ketikkan perintah
# squid -f /etc/squid/squid.conf -z
dan jalankan squid
# squid -NDd1 &
untuk melihat log file yang sudah ter-cache gunakan perintah:
# tail -f /var/log/squid/access.log | ccze
terakhir buat autorun pada squid apabila server restart bisa jalan dengan otomatis dengan cara ketikan:
# vim /etc/init.d/squid
kopikan isi dari script dari link berikut 
berikan hak akses dan buat file autorun dengan cara:
# chmod 755 /etc/init.d/squid
# update-rc.d squid defaults
lalu stop secara autostart squid3
# vim /etc/rc.local
isikan:
service squid3 stop

untuk setting mikrotik agar Proxy Squid ter-hit dengan cara:
1. masuk mikrotik dengan setting yang sudah ada. lalu tambahkan Firewall Nat sebagai berikut:
ip firewall nat add action=dst-nat chain=dstnat comment=”ke proxy” src-address=!192.168.13.0/24 disabled=no dst-port=80 protocol=tcp to-addresses=192.168.13.254 to-ports=3128

Lalu kita pantau web yang ter HIT oleh Proxy:

sumber:
1
2
3
4

Komentar

Posting Komentar

Postingan populer dari blog ini

Tutorial Install SQLmap Ubuntu

sqlmap merupakan tools/alat opensource yang mendeteksi dan melakukan exploit pada Bug SQLinjection. dengan melakukan serangan SQL injection, peretas dapat mengambil alih hingga dapat memanipulasi sebuah database di dalam sebuah server. Sebelumnya, apa itu SQL Injection? SQL injection merupakan teknik hacking di mana peretas dapat menyisipkan perintah-perintah SQL melalu URL untuk di eksekusi oleh database. bug atau vulnerability ini terjadi karena kelalian seorang programer atau webmaster dalam melakukan pemograman web seperti tidak difilternya variabel dalam web tersebut. Cara installnya? $ sudo apt-get install git $ git clone https://github.com/sqlmapproject/sqlmap.git Untuk Menjalankannya, $ cd /patch/to/sqlmap/ jalankan dengan perintah dasar $ python sqlmap.py -h << untuk melihat basic options $ python sqlmap.py -u 'http://alamat.com'  contoh lain: $ python sqlmap.py --url=”http://192.168.152.129/dvwa/vulnerabilities/sqli/? id=1&Submit=S

PHP Apps in a Subdirectory in Nginx

 location /pilkades {     alias /var/www/html/pilkades;     try_files $uri $uri/ @nested;     location ~ \.php$ {         include snippets/fastcgi-php.conf;         fastcgi_param SCRIPT_FILENAME $request_filename;         fastcgi_pass unix:/run/php/php7.4-fpm.sock;     } } location @pilkades {     rewrite /pilkades/(.*)$ /pilkades/index.php?/$1 last; } atau: location /alias {     alias  /var/www/htmlalias;     location ~ /([^/]+\.php)$ {       try_files /$1 =404;       fastcgi_pass unix:/var/run/php5-fpm.sock;       fastcgi_index index.php;       include fastcgi_params;       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;     }   }

Backup Mysql ALL Database with Specific Methods ( #! /bin/bash)

#! /bin/bash # backup-mysql.sh # # Craig Sanders <cas@taz.net.au> # this script is in the public domain.  do whatever you want with it. MYUSER="root" MYPWD="PASSWD" ARGS="--single-transaction --flush-logs --complete-insert" DATABASES=$( mysql -D mysql --skip-column-names -B -e 'show databases;' | egrep -v 'information_schema' ); BACKUPDIR=/var/backups/mysql YEAR=$(date +"%Y") MONTH=$(date +"%m") DAY=$(date +"%d") DATE="$YEAR-$MONTH/$YEAR-$MONTH-$DAY" mkdir -p $BACKUPDIR/$DATE cd $BACKUPDIR/$DATE for i in $DATABASES ; do   echo -n "backing up $i: schema..."   mysqldump $ARGS --no-data -u$MYUSER -p$MYPWD $i > $i.schema.sql   echo -n "data..."   mysqldump $ARGS --skip-opt --no-create-db --no-create-info -u$MYUSER -p$MYPWD $i > $i.data.sql   echo -n "backup full databases"   mysqldump $ARGS -u$MYUSER -p$MYPWD $i > $i.full.sql   echo -n "Backup views"