Membuat Proxy Server Ubuntu, Install Squid3 & Setting Mikrotik redirect proxy

Langkah Pertama :
Login ke Ubuntu server dengan user “root” menggunakan putty.
Lakukan Update dan install paket pendukung pada Ubuntu server:

#sudo -i
isikan password :

1
2
apt-get update
apt-get install devscripts -y
Download Squid installer lalu lakukan configure dan install, disini saya menggunakan squid versi 3.5.12, anda bisa lihat Disini untuk versi yang lain.
1
2
3
4
5
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.12.tar.gz
tar zxvf squid-3.5.12.tar.gz
cd squid-3.5.12
./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib/squid --sysconfdir=/etc/squid --localstatedir=/var --libdir=/usr/lib --with-default-user=proxy --with-logdir=/var/log/squid --with-pidfile=/var/run/squid.pid
sudo make && make install
Cara Install Squid3
Sampai disini langkah pertama selesai, jika saat Instalasi tidak terjadi error maka dipastikan squid anda sudah terinstall dengan benar. Untuk cek squid versi yang terinstall anda bisa melakukan perintah berikut pada putty:
1
squid -v
Cara Install Squid3 - image1
Langkah Ke Dua :
Masukan Script di bawah ini pada file “squid.conf” yang ada di directory “/etc/squid/squid.conf”, namun sebelum anda masukan terlebih dulu anda edit baris yang sudah saya kasih komentar.
Copy script di bawah ini lalu pastekan ke dalam notepad++ terlebih dulu dan edit yang sudah saya kasih komentar, lalu buka file squid.conf yang ada di “/etc/squid/squid.conf” menggunakan “winscp” lalu hapus isinya kemudian masukan script yang ada di notepad++ , kemudian simpan.

Warning!! jangan sampai salah ketika anda edit dan memasukan “squid.conf” salah sedikit dapat mengakibatkan squid tidak bisa berjalan.

Setting Squid.conf
# nano /etc/squid/squid.conf

masukan scipt squid.cof :

  1. acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
  2. acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
  3. acl localnet src 192.168.1.0/24 # RFC1918 possible internal network
  4. acl localnet src fc00::/7 # RFC 4193 local private network range
  5. acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
  6. acl SSL_ports port 443
  7. acl Safe_ports port 80 # http
  8. acl Safe_ports port 21 # ftp
  9. acl Safe_ports port 443 # https
  10. acl Safe_ports port 70 # gopher
  11. acl Safe_ports port 210 # wais
  12. acl Safe_ports port 1025-65535 # unregistered ports
  13. acl Safe_ports port 280 # http-mgmt
  14. acl Safe_ports port 488 # gss-http
  15. acl Safe_ports port 591 # filemaker
  16. acl Safe_ports port 777 # multiling http
  17. acl CONNECT method CONNECT
  18. acl ipblacklist dst "/etc/squid/ipblacklist/ip-blacklist.txt"
    acl noipblacklist dst "/etc/squid/noipblacklist/noip-blacklist.txt"
    acl situsblacklist url_regex -i "/etc/squid/situsblacklist/situs-blacklist.txt"

    http_access allow noipblacklist
    http_access deny ipblacklist
    http_access deny situsblacklist
  19. http_access deny !Safe_ports
  20. http_access deny CONNECT !SSL_ports
  21. http_access allow localhost manager
  22. http_access deny manager
  23. http_access allow localnet
  24. http_access allow localhost
  25. http_access deny all
  26. http_port 3128
  27. # BAGIAN YANG PERLU DI SESUAIKAN
  28. # DISINI SAYA MENGGUNAKAN PARTISI /cache untuk cache_dir, jika nama partisi anda berbeda silahkan sesuaikan
  29. # UNTUK UKURAN cache_dir sesuaikan juga, disini yang mencontohkan 100gb,
  30. cache_mgr Administrator
  31. cache_dir aufs /cache 100000 100 256
  32. refresh_pattern ^ftp: 1440 20% 10080
  33. refresh_pattern ^gopher: 1440 0% 1440
  34. refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
  35. refresh_pattern . 0 20% 4320
  36. # END

Agar Squid Berjalan secara otomatis ketika komputer ubuntu-server di restart, maka kita butuh scrip untuk menjalankan proses tersebut. Pertama yang kita lakukan adalah membuat file bernama “squid” dan menyimpannya pada directory “/etc/init.d/”. berikut cara membuatnya dan lakukan perintahnya dengan putty
1
touch /etc/init.d/squid
Sekarang buka file tersebut menggukan winscp yang ada di directory “/etc/init.d/squid” lalu copy script di bawah ini kemudian masukan scriptnya pada file tersebut.

#! /bin/sh
#
# squid32012                Startup script for the SQUID HTTP proxy-cache.
#
# Version:      @(#)squid3.rc  1.0  07-Jul-2006  luigi@debian.org
#
### BEGIN INIT INFO
# Provides:          Squid 3.X
# File-Location:     /etc/init.d/squid3
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Squid HTTP Proxy version 3.2.0.12
### END INIT INFO
 
NAME="By www.dokter-squid.com"
DESC="HTTP/HTTPS Proxy"
DAEMON=/usr/sbin/squid
PIDFILE=/var/run/$NAME.pid
CONFIG=/etc/squid/squid.conf
SQUID_ARGS="-YC -f $CONFIG"
# RAMFS=/scripts/ramcache
 
[ ! -f /etc/default/squid ] || . /etc/default/squid
 
. /lib/lsb/init-functions
 
PATH=/bin:/usr/bin:/sbin:/usr/sbin
 
[ -x $DAEMON ] || exit 0
 
ulimit -n 65535
 
find_cache_dir () {
        w="     " # space tab
        res=`sed -ne '
               s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
               t end;
               d;
               :end q' < $CONFIG`
        [ -n "$res" ] || res=$2
        echo "$res"
}
 
find_cache_type () {
        w="     " # space tab
        res=`sed -ne '
               s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
               t end;
               d;
               :end q' < $CONFIG`
        [ -n "$res" ] || res=$2
        echo "$res"
}
 
start () {
#        $RAMFS clean
#        $RAMFS mount
#        $RAMFS restore
 
        cache_dir=`find_cache_dir cache_dir /var/spool/squid/cache`
        cache_type=`find_cache_type cache_dir ufs`
 
        #
    # Create spool dirs if they don't exist.
    #
        if [ "$cache_type" = "coss" -a -d "$cache_dir" -a ! -f "$cache_dir/stripe" ] || [ "$cache_type" != "coss" -a -d "$cache_dir" -a ! -d "$cache_dir/00" ]
        then
                log_warning_msg "Creating $DESC cache structure"
                $DAEMON -z
        fi
 
        umask 027
        ulimit -n 65535
 
 
        cd $cache_dir
        start-stop-daemon --quiet --start \
                --pidfile $PIDFILE \
                --exec $DAEMON -- $SQUID_ARGS < /dev/null
        return $?
}
 
stop () {
 
        PID=`cat $PIDFILE 2>/dev/null`
        start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
        #
        #       Now we have to wait until squid has _really_ stopped.
        #
        sleep 2
        if test -n "$PID" && kill -0 $PID 2>/dev/null
        then
                log_action_begin_msg " Waiting"
                cnt=0
                while kill -0 $PID 2>/dev/null
                do
                        cnt=`expr $cnt + 1`
                        if [ $cnt -gt 24 ]
                        then
                                log_action_end_msg 1
                                return 1
                        fi
                        sleep 5
                        log_action_cont_msg ""
                done
                log_action_end_msg 0
                return 0
        else
                return 0
        fi
}
 
case "$1" in
    start)
        log_daemon_msg "Starting $DESC" "$NAME"
        if start ; then
                log_end_msg $?
        else
                log_end_msg $?
        fi
        ;;
    stop)
        log_daemon_msg "Stopping $DESC" "$NAME"
 
 
        if stop ; then
                log_end_msg $?
        else
                log_end_msg $?
        fi
#        $RAMFS dump
#        $RAMFS umount
#        $RAMFS clean
 
        ;;
    reload|force-reload)
        log_action_msg "Reloading $DESC configuration files"
        start-stop-daemon --stop --signal 1 \
                --pidfile $PIDFILE --quiet --exec $DAEMON
        log_action_end_msg 0
        ;;
    restart)
        log_daemon_msg "Restarting $DESC" "$NAME"
        stop
        if start ; then
                log_end_msg $?
        else
                log_end_msg $?
        fi
        ;;
    *)
        echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart}"
        exit 3
        ;;
esac
 
exit 0
    # END
Lakukan perintah di bawah ini menggunakan putty, bertujuan agar file “squid” yang tadi kita buat bisa di proses secara default:
1
2
chmod 755 /etc/init.d/squid
update-rc.d squid defaults
Sampai disini untuk langkah yang kedua selesai, tinggal ke langkah berikutnya
Langkah Ke Tiga :
Beri Permision pada beberapa file :
1
2
3
chown -R proxy:proxy /var/log/squid
mkdir /cache
chown-R proxy:proxy /cache
  • chmod 777 /cache
    Membuat directory cache
    1
    squid -z
    langsung tekan [enter] jika saat bikin directory selesai, ciri-cirinya sudah tidak ada gerakan.
    Cara Install Squid3 - image3
  • Sekarang kita restart ubuntu
    1
    reboot
    jika ubuntu sudah running kembali, silahkan login kembali putty nya.
  • Terakhir adalah mengecek, apakah squid sudah berjalan atau belum, caranya lakukan perintah berikut dengan putty.
    1
    squid -k check
  • 2. squid -k reconfigure 
  • jika tidak ada info error atau “no running service” maka sudah di pastikan squid anda sudah berjalan dengan baik.
Selamat, sekarang anda sudah berhasil install squid3 dengan mudah.
Sekarang kita test squid yang barusan kita install. karna proxy yang barusan kita buat belum bisa transparant, maka untuk meneruskan traffic http ke proxy kita harus setting manual di browser. caranya sangat mudah, saya contohkan pada browser firefox lihat gambar berikut:
Cara Install Squid3 - image4
Untuk melihat log lewat putty, caranya lakukan perintah berikut:
1
tail -f /var/log/squid/access.log | ccze
Contoh log nya:
Cara Install Squid3 - image5Cara Install Squid3 - image6

Jika menggunakan mikrotik :

Setting redirect ke proxy :
/ip firewall nat
add chain=dstnat comment="Redirect-Proxy" dst-port=80 protocol=tcp src-address=!192.168.1.89 action=redirect to-ports=3128

Setting bypass akses internet tanpa proxy :
/ip firewall nat
add chain=srcnat commet=bypass-proxy port=80 protocol=tcp src-address-list=!boleh action=accept

Membuat addresslist untuk bypass proxy :
ip firewall address-list add list=bolehcomment="Wifi KAM" address=192.168.1.4
ip firewall address-list add list=bolehcomment="Pak BS" address=192.168.1.7
ip firewall address-list add list=bolehcomment="Wifi MM" address=192.168.1.8
ip firewall address-list add list=bolehcomment="Wifi Meeting Direksi" address=192.168.1.9
ip firewall address-list add list=bolehcomment="Wifi Direksi" address=192.168.1.10
ip firewall address-list add list=boleh

SUmber : https://dokter-squid.com/install-squid3/
comment=Axell address=192.168.1.16

0 Response to "Membuat Proxy Server Ubuntu, Install Squid3 & Setting Mikrotik redirect proxy"

Post a Comment