Mikrotik + FreeBSD lusca Squid

Sebagai catatan ringan saja untuk saya sendiri agar tidak lupa. Saya coba tuliskan sedikit cara menginstall proxy squid lusca di FreeBSD dengan topologi sebagai berikut

proxy-warnet-topologi

Keterangan:

IP Mikrotik
ether1-publik = 111.213.168.102/26
ether2-lokal = 192.168.12.254/24
ether3-proxy = 10.29.0.254/24
Ip Proxy (em0) = 10.29.0.253/24

Instalasi FreeBSD 10.1 ZFS

Untuk tutorial instalasi freebsd 10.1 dengan metode ZFS sudah saya buat dalam bentuk video seperti dibawah ini.

Setelah selesai instalasi FreeBsd awal, direct login dengan ssh lakukan update port.

# portsnap fetch
# portnsap extract
# portsnap fetch update

Instalasi paket PERL

# cd /usr/ports/lang/perl5.18
# make install clean

Download dulu bahan-bahan jamu disini.Password rar “forummikrotik” tanpa tanda petik.

Upload hasil download lusca ke box FreeBSD dengan tool winscp, terserah di direktori mana bisa juga di direktori /tmp kemudian lakukan extract.

# tar xvzf LUSCA_HEAD-r14809.tar.gz
# cd LUSCA_HEAD-r14809

Konfigur sesuai dengan kebutuhan, atau bisa sama persis dengan prefix berikut yang sudah saya sesuaikan untuk keperluan di FreeBSD.

./configure --bindir=/usr/local/bin --sbindir=/usr/local/sbin --sysconfdir=/usr/local/etc/squid --datadir=/usr/local/etc/squid --libexecdir=/usr/local/libexec/squid --localstatedir=/var/log/squid --enable-removal-policies="heap" --enable-auth="basic ntlm digest" --enable-digest-auth-helpers=password --with-pthreads --enable-async-io=24 --with-aufs-threads=24 --enable-storeio="aufs coss" --disable-ident-lookups --enable-delay-pools --enable-snmp --enable-cache-digests --disable-wccp --enable-useragent-log --enable-http-violations --enable-arp-acl --disable-follow-x-forwarded-for --with-large-files --enable-large-cache-files --enable-default-err-language=English --with-maxfd=65536

Lanjutkan ke perintah make build

# make
# make install clean

Buat file kosong log access dan cache

# touch /var/log/squid/access.log
# touch /var/log/squid/cache.log
# chmod 777 /var/log/squid

Cek dulu direktori zfs, kemudian buat direktori cache, mount melalui zfs.

# zfs list
# mkdir /cache
# zfs create -o mountpoint=/cache zroot/data
# chmod 777 /cache

Masukkan squid.conf dan storeurl.pl ke /usr/local/etc/squid jangan lupa chmod.

# cd /usr/local/etc/squid
# chmod 777 storeurl.pl
# chmod +x storeurl.pl

Buat listing direktori cache dengan  perintah berikut.

# squid -z

Mengecek konfigurasi squid apakah masih ada yang error atau tidak.

# squid -k parse

Seandainya sudah tidak terdapat error, jalankan squid dengan perintah.

# squid -sY

Melihat access.log atau cache.log dengan perintah

# tail -f /var/log/squid/access.log
# tail -f /var/log/squid/cache.log

tambahkan di /etc/rc.conf agar squid dapat autostart.

# ee /etc/rc.conf
squid_enable="YES"

copy/upload file squid ke /usr/local/etc/rc.d jangan lupa chmod.

# cp squid /usr/local/etc/rc.d/
# chmod +x /usr/local/etc/rc.d/squid

perintah shutdown squid

# squid -k kill

Settinglah konfigurasi squid.conf sesuai dengan keahlian/kebutuhan, atau bisa samakan dengan contoh. Berhati-hatilah melakukan setting, jika salah maka tidak bisa running squidnya. Gunakan tool squidcalc untuk menghitung cache yang diperlukan.

Konfigurasi Mikrotik

Masukkan ip di masing-masing interface sesuai dengan topologi anda.

/ip address
add address=192.168.12.254/24 interface=ether2-lokal network=192.168.12.0
add address=111.213.168.102/26 interface=ether1-publik network=111.213.168.64
add address=10.29.0.254/24 interface=ether3-proxy network=10.29.0.0

Tambahkan default route

/ip route
add distance=1 gateway=101.203.168.65

Buat NAT masquerade untuk koneksi dari lokal dan proxy.

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1-publik src-address-list=ip-nat

/ip firewall address-list
add address=10.29.0.0/24 list=ip-nat
add address=192.168.12.0/24 list=ip-nat

Buat redirect proxy external port 80 ke alamat proxy 10.29.0.253 port 8000

/ip firewall nat
add action=dst-nat chain=dstnat comment=redirect-proxy-external dst-port=80 in-interface=ether2-lokal protocol=tcp src-address=192.168.12.0/24 to-addresses=10.29.0.253 \
    to-ports=8000

Buat mangle dan quee tree agar koneksi dari proxy ke klien tidak terkena limit.

/ip firewall mangle
add action=mark-packet chain=forward comment=HIT-PROXY dscp=12 \
    new-packet-mark=HIT-PROXY passthrough=no

/queue tree
add max-limit=100M name=PROXY-HIT packet-mark=HIT-PROXY parent=global \
    priority=1 queue=default

Jangan Lupa setting jam menggunakan ntp client.

/system clock
set time-zone-name=Asia/Jakarta

/system ntp client
set enabled=yes mode=unicast primary-ntp=203.114.224.252

Sampai disini konfigurasi mikrotik sudah bisa redirect proxy ke external.

Agar rule redirect proxy external shutdown otomatis saat service squid pada proxy external shutwon/mati, maka diperlukan konfigurasi tambahan.

Pertama buat http server di server proxy freebsd , silahkan bisa menggunakan apache, nginx, lighthttp dll. Disini saya pilih nginx, instalasi sbb.

# cd /usr/port/www/nginx
# make install clean
# cd /usr/local/www/nginx
# ee test.txt

File test.txt bisa diisi terserah atau dibiarkan  kosong tidak masalah.

Tambahkan config berikut ke /etc/rc.conf agar nginx server autostart

nginx_enable="YES"

Langkah keedua selanjutnya pindah konfigurasi ke mikrotik.

/system scheduler
add interval=10s name=Check_Proxy on-event=PROXY 

policy=reboot,read,write,policy,test,password,sniff,sensitive \
    start-date=jan/01/1970 start-time=00:00:00

/system script
add name=Check-proxy policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive 

source="{\r\
    \n:local checkpage \"test.txt\";\r\
    \n:local found \"0\" ;\r\
    \n:foreach i in=[/file find] do={\r\
    \n:local filename [/file get \$i name];\r\
    \n:if ( \$filename = \$checkpage) do={ \r\
    \n:set found \"1\" ; \r\
    \n:log info \"found\"; \r\
    \n}\r\
    \n}\r\
    \n:log warning \"\$found\";\r\
    \n:if ( \$found = \"0\" ) do={ \r\
    \n:log warning \"Disable rule, service down\"; \r\
    \n/ip fire nat dis 1 ; \r\
    \n} else={ \r\
    \n:log info \"Enable rule, service up\"; \r\
    \n/ip fire nat en 1; \r\
    \n}\r\
    \n/file remove \$checkpage;\r\
    \n}\r\
    \n"
add name=Download policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive source=\
    "{\r\
    \n/tool fetch url=\"http://10.29.0.253/test.txt\" mode=http port=8000\r\
    \n}"
add name=PROXY policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive source=\
    "{\r\
    \n/system script run Check-proxy;\r\
    \n:delay delay-time=2\r\
    \n/system script run Download \r\
    \n}\r\
    \n"

Script yang tertulis BOLD  bisa disesuaikan dengan konfigurasi mikrotik yang ada.

END….

Sumber:

– http://www.forummikrotik.com/

– https://www.freebsd.org/doc/handbook/zfs-quickstart.html

 

11 comments

  1. INFORMASI SEPUTAR GADGET says:

    pak saya belum faham tentang seting mikro tik di aplikasi server,,
    kapan materinya bisa di bahas,,hih

    • runnov says:

      di beberapa tutorial tersebar di forum mikrotik sudah banyak samplenya, tgl aplikasinya untuk apa…

  2. djahrudin says:

    lengkap sekali tutorialnya, mas 😉
    saya lagi mau nyoba instal proxy, apa boleh minta address emailnya? buat minta saran nanti kalo error 😀
    terimakasih banyak sebelumnya

  3. yusuf says:

    kok setiap mau install perl gagal?

    • runnov says:

      coba perl-nya ga harus pakai yg 5.18 bisa yg lainnya 5.20 atau berapa.
      kalau intstallnya dari port, sebelumnya update portnya dulu dengan perintah:
      # portsnap fetch update

  4. vicky says:

    Maaf itu untuk pembagian nya dimana ya seperti :

    boot
    swap
    /
    /usr
    /var
    /cache1
    /cache2
    /cache3

    terima kasih

    • runnov says:

      terserah saja mas, sy biasanya /boot dll jadi 1 partisi, kl swap diset 1Gb saja.
      Yang saya pisah biasanya partisi cache nya.

      • Vicky says:

        terima kasih atas pencerahannya.
        Maksud saya ketika saya melihat di panduan di youtube anda tidak ada pembagian cache dll nya.
        jadi untuk pembagian cache ( cara baginya ) bagaimana ???

        soalnya ketika saya install freebsd 9 itu ada pembagian cache nya di pass waktu install. terima kasih

        aku cek kembali.
        mas waktu install nya gak ambil yang manual ya.
        tapi langsung install. makanya disana tidak disebutkan berapa berapa cache nya.

        • runnov says:

          memang yg video tutorial Freebsd 10 itu sy hnya install semua masuk “/” tdk ada yang tak bagi.
          tinggal sberapa besar HD nya saja, oh iya sy lupa kalo itu partisinya ZFS, maka cukup pakai command yang ini:

          # mkdir /cache
          # zfs create -o mountpoint=/cache zroot/data
          # chmod 777 /cache

          atau mau tambah cache2
          # mkdir /cache2
          # zfs create -o mountpoint=/cache2 zroot/data
          # chmod 777 /cache2

  5. jetlii says:

    coba cek
    ada notif tidak