Cara Blok Situs dengan Transparent DNS Mikrotik

Assalamualaikum.. Hai.. kali ini akan membahas cara memblok situs dengan Transparent DNS di Mikrotik. Konsepnya, anda ingin memblokir situs-situs yang negatif pada client dan mengalihkannya ke nawala.org. Kenapa nawala.org ? Karena nawala.org merupakan situs penyedia layanan blokir situs-situs yang negatif. 
Pertama, ketahui dulu IP nawala.org yaitu : 180.131.144.144 dan 180.131.145.145
Masuk ke IP > Firewall > Nat >  [+]*Tab General Chain : dst-natProtocol : udpDst. port : 53

*tab Action
Action : dst-nat
To Addresses : 180.131.144.144
To Ports : 53

tambahkan lagi konfigurasinya dengan tab General yang sama seperti sebelumnya, dan di tab Action :
Action : dst-nat
To addresses : 180.131.145.145
To ports : 53

IP > DNS
masukkan kedua IP nawala.org

test di client, buka browser kemudian masukkan url situs yang berbahaya seperti dibawah

Cara Drop UDP DNS Flooding pada Router Mikrotik

Hi guys.., :D

Apakabarnya..? semoga dalam keadaaan sehat wal'afiat tentunya.., amin. Baiklah langsung saja pada artikel kali ini ane akan sharing sedikit pengalaman ane mengenai "Cara Drop UDP DNS Fooding pada Mikrotik Router" yang beberapa hari ini sering mengganggu koneksi jaringan dikantor ane. Pada saat pertama kali kejadian sempat bingung, kenapa ya traffict upload belakangan ini terlalu besar...? Padahal client tidak ada satupun melakukan upload ke situs-situs tertentu dalam jumlah besar karena ane dapat pantau langsung ke tkp. Usut demi usut ternyata ada percobaan flooding packet dari luar melalui protocol UDP terhadap port DNS (53) IP Public ISP ane, kasusnya dapat dilihat pada gambar di bawah ini :1
Monitoring flooding connection yang mencoba mengirimkan banyak package melalui protocol UDP menggunakan port DNS (53) ke IP Address Public yang kita gunakan pada router mikrotik menggunakan winbox seperti pada tampilan gambar dibawah ini.
0-2
Mengakibatkan traffict upload pun seakan-akan besar padahal client yang online hanya beberapa orang, seperti gambar di bawah ini:
2

Untuk mengatasi kasus seperti ini, langkah-langkah yang harus dilakukan adalah :

  1. Create address list DNS server yang diizinkan dalam penggunaaan nantinya dan beri nama "Allow DNS" atau sesuaikan dengan kebutuhan anda, kemudian isikan alamat IP Address DNS server yang diizinkan dalam penggunaan nantinya, seperti tampilan gambar di bawah ini.
    1
  2. Dalam kasus kali ini nantinya ane akan menggunakan 2 buah DNS Server, dimana DNS server yang kedua dipergunakan sebagai backup untuk mengatasi jika sewaktu-waktu terjadinya downtime atau gangguan teknis lainnya pada DNS 1 dan ototmatis akan beralih ke DNS 2 dalam penggunaannya. Makanya ane meng-create-kan 2 IP address list untuk "Allow DNS" seperti pada tampilan gambar dibawah ini.
    2
  3. Kemudian create Filter Rules pada menu Firewall mikrotik router menggunakan winbox software yang nantinya difungsikan sebagai pemblock / drop packet DNS yang bukan berasal dari DNS yang sudah kita allow kan pada tahap sebelumnya.
    3
    4
    5
  4. Berikut Filter Rules yang telah kita create tadi yang fungsionalnya agar packet melalui port DNS selain IP Address yang telah kita allow kan tadi jika mencoba malakukan request atau flood DNS ke IP Public ISP kita pada router mikrotik, maka packet tersebut akan langsung di drop oleh pengarutan rules tersebut.
    6
  5. Terlihat monitoring penggunaan bandwitdh sudah tidak terlalu besar dan sewajarnya, seperti pada tampilan gambar di bawah ini
    7
  6. Tampilan connection packet telihat tidak begitu rame dan sudah stabil dibandingkan dengan sebelumnya.
    8

Demikianlah pembahasan artikel kali mengenai cara "Cara Drop UDP DNS Fooding pada Mikrotik Router". Untuk pembahasan lainnya akan kita bahas pada artikel selanjutnya.
Semoga artikel kali ini bermanfaat bagi kita semua.

DNS Server menggunakan powerDNS

DNS singkatan dari  Domain Name System, intinya DNS ini digunakan untuk mentranslate/menterjemahkan ip address ke nama domain, baik IPv4 maupun IPv6. Contoh ip 31.13.79.246 di translatekan oleh dns menjadi http://www.facebook.com.
Pada tutorial ini kita akan membuat DNS server menggunakan powerDNS dengan mysql sebagai back end nya. Disini kita akan mentraslatekan ip 192.168.1.1 menjadi http://www.rizal.org

Yang dibutuhkan :

  • server ubuntu, saya menggunakan versi 12.04 32 bit dengan ip 192.168.1.1

Install mysql-server dan mysql-clientapt-get install mysql-server mysql-clientsaya menggunakan password root untuk user root
Konfigure mysql vi /etc/mysql/my.cnfberi tanda pagar di depan bind-address=127.0.0.1
Install powerdns apt-get install pdns-server pnds-backend-mysql
Configure Database yang akan digunakan oleh powerdnsmysql -u root -prootmasukan sql script berikut :

CREATE DATABASE powerdns;
GRANT ALL ON powerdns.* TO 'poweruser'@'%' IDENTIFIED BY 'ubuntu';
FLUSH PRIVILEGES;
USE powerdns;

CREATE TABLE domains (
  id                    INT AUTO_INCREMENT,
  name                  VARCHAR(255) NOT NULL,
  master                VARCHAR(128) DEFAULT NULL,
  last_check            INT DEFAULT NULL,
  type                  VARCHAR(6) NOT NULL,
  notified_serial       INT DEFAULT NULL,
  account               VARCHAR(40) DEFAULT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX name_index ON domains(name);


CREATE TABLE records (
  id                    INT AUTO_INCREMENT,
  domain_id             INT DEFAULT NULL,
  name                  VARCHAR(255) DEFAULT NULL,
  type                  VARCHAR(10) DEFAULT NULL,
  content               VARCHAR(64000) DEFAULT NULL,
  ttl                   INT DEFAULT NULL,
  prio                  INT DEFAULT NULL,
  change_date           INT DEFAULT NULL,
  disabled              TINYINT(1) DEFAULT 0,
  ordername             VARCHAR(255) BINARY DEFAULT NULL,
  auth                  TINYINT(1) DEFAULT 1,
  PRIMARY KEY (id)
);

CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername); 


CREATE TABLE supermasters (
  ip                    VARCHAR(64) NOT NULL,
  nameserver            VARCHAR(255) NOT NULL,
  account               VARCHAR(40) NOT NULL,
  PRIMARY KEY (ip, nameserver)
);


CREATE TABLE comments (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  name                  VARCHAR(255) NOT NULL,
  type                  VARCHAR(10) NOT NULL,
  modified_at           INT NOT NULL,
  account               VARCHAR(40) NOT NULL,
  comment               VARCHAR(64000) NOT NULL,
  PRIMARY KEY (id)
);

CREATE INDEX comments_domain_id_idx ON comments (domain_id);
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
 

CREATE TABLE domainmetadata (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  kind                  VARCHAR(32),
  content               TEXT,
  PRIMARY KEY (id)
);

CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
 

CREATE TABLE cryptokeys (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  flags                 INT NOT NULL,
  active                BOOL,
  content               TEXT,
  PRIMARY KEY(id)
);

CREATE INDEX domainidindex ON cryptokeys(domain_id);
 

CREATE TABLE tsigkeys (
  id                    INT AUTO_INCREMENT,
  name                  VARCHAR(255),
  algorithm             VARCHAR(50),
  secret                VARCHAR(255),
  PRIMARY KEY (id)
);

CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

quit;

dapat dilihat bahwa untuk database powerdns user yang digunakan adalah ‘poweruser’ dengan password ‘ubuntu’

Konfigurasi powerDNSrm /etc/powerdns/pdns.d/*vi /etc/powerdns/pdns.d/pdns.local.gmysql.confisi

# MySQL Configuration
#
# Launch gmysql backend
launch=gmysql

# gmysql parameters
gmysql-host=localhost
gmysql-dbname=powerdns
gmysql-user=poweruser
gmysql-password=ubuntu

vi /etc/powerdns/pdns.conf, pastika configurasi nya seperti ini. Jika tidak ada, tambahkan …

allow-recursion=0.0.0.0/0
config-dir=/etc/powerdns
daemon=yes
guardian=yes
include=/etc/powerdns/pdns.d
launch=
setgid=pdns
setuid=pdns
version-string=powerdns
local-address=192.168.0.100
local-port=53

log-dns-details=yes
log-dns-queries=yes
logging-facility=0
loglevel=6

recursor=8.8.8.8

bisa dilihat pada konfigurasi di atas, bahwa “recursor=8.8.8.8”. Seperti yang kita ketahui bahwa 8.8.8.8 adalah ip dns nya google, artinya apa? artinya saya mememinta bantuan dns google jika ada user yang mengakses domain yang tidak diketahui oleh dns server yang saya buat. contoh :
dns server milik saya hanya bisa mentranslate ip 192.168.1.1 menjadi http://www.rizal.org, jika user ingin mengakses http://www.facebook.com ip dns saya akan meminta bantuan dns google untuk mencari ip http://www.facebook.com tersebut.

dns google tersebut bisa dibilang dns recursor yang fungsinya melakukan pencarian melalui DNS sebagai tanggapan permintaan dari resolver yaitu client.

Restart powerDNS
/etc/init.d/pdns restart

untuk cek apakah powerDNS sudah berfungsi dapat menggunakan perintah :
netstat -tap | grep pdns

Cek dns server
dig http://www.facebook.com @192.168.1.1

Install poweradmin, yang berfungsi untuk memenej powerdns :
apt-get install apache2-mpm-prefork php5-mysql libapache2-mod-php5 php-pear php-mdb2 php-mdb2-driver-mysqlcd /var/wwwwget http://nchc.dl.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgztar zxvf poweradmin-2.1.7.tgzmv poweradmin-2.1.7 poweradminchown www-data.www-data -R poweradmincp /var/www/poweradmin/inc/config-me.inc.php /var/www/poweradmin/inc/config.inc.php
selanjutnya install poweradmin dari browser : 192.168.1.1/poweradmin/install

password nya = ubuntu

setelah itu delete/rename folder install agar tidak kembali pada proses install :
rm -rf /var/www/poweradmin/install

buka kembali di browser : 192.168.1.1/poweradmin, jika mengalami error seperti berikut, install php5-mycrypt : apt-get install php5-mcrypt

restart apache : /etc/init.d/apache2 restart, akses kembali poweradmin
jika mengalami error seperti ini :

configurasi file /var/www/poweradmin/inc/config.inc.php

session key didapat dengan cara :
ketik di terminal echo -n poweradmin | md5sum

jika sudah akses kembali poweradmin, username root password ubuntu :

jika sudah, sekarang kita akan membuat ip 192.168.1.1 dikenal sebagai http://www.rizal.org,klik add master zone, isikan seperti berikut kemudia add zone :

setalah itu untuk melihat, klik list zone :

klik gambar “note”, isikan sebagai berikut. Option A artinya memperkenalkan kan http://www.rizal.org menjadi ip 192.168.1.1 :

tes dengan cara : dig http://www.rizal.org @192.168.1.1

sekian tutorial kali ini, semoga bermanfaat. Mohon maaf apabila ada yang salah/kurang tepat dalam tutorial kali ini …
referensi :http://cyberlearning.web.id/wiki/index.php/PowerDNS:_Instalasi_Server_%26_Recursor_di_satu_mesin

Tutorial Cara Cache Konten HTTP/ HTTPS dengan menggunakan Proxy EXTERNAL UBUNTU + Squid 3.5.5 Feat MIKROTIK Marsha Manihuruk

Assalammualaikum pengunjung Blog Sha Malam ini Sha ingin berbagi Tutorial Cara CacheKonten HTTPS dengan menggunakan Proxy External khusunya menggunakan Ubuntu.
Kenapa Ubuntu? nggak ada alasan spesifik sih ya cuma kayaknya banyak para master jaringan yang merekomendasikan Linux ini buat Cache Server, kenapa begitu? ya karena dukungan dan Forumnya jelas dan banyak tutorial yang di bertebaran di Google.
Nah untuk forumnya silahkan berkunjung ke sini, untuk sekedar baca-baca silahkan menuju ke sini atau ke sini, atau ke sini juga boleh.  
Silahkan mendaftar dan Login di sana banyak yang anda bisa baca-baca tentang Linux jenis ini :).
Nah disini Sha nggak ngebahas cara Instal Ubuntunya nanti ada Sha share cara instal ulang Linux versi ini.
Yang Sha tekankan di Postingan ini adalah cara membuat Proxy External Ubuntu yang di isi Squid 3.5.5 Kita mampu menyimpan /Caching konten situs HTTPS.
KENAPA HTTPS harus di Cache bukannya itu mode aman biar nggak di Hack/Penyadapan Bla-bla???Bukan apa-apa sih tapi buat pemilik warnet yang masih menggunakan kecepatan yang masih belum menembus 10mb (paket standar Indihome) pasti mengerti bagaimana leletnya membuka situs populer seperti Facebook, Twitter, Youtube atau yang lazim di buka anak-anak muda saat Online di saat jam sibuk, nah kalau situs HTTPS di cache kan lumayan menambah kecepatan Loadingnya :).

Kalau situsnya masih mode HTTP sih saya pikir nggak masalah, masih bisa di cache squid versi 2.7 atau di tambahin addons nya Lusca.

Nah kalau situs yang udah model HTTPS di cache pastinya pemilik senang, pemain bahagia (cepat banget Buka Situs nya), tinggal hitung pendapatan doang hi hi.
Nah untuk versi squidnya Sha memilih versi 3.5.5 yang udah support untuk HTTPS Caching.
Ok tanpa lama-lama ini step by step nya.
Oh Iya lupa Rekomendasi untuk CPU yang akan di gunakan untuk menjadi server proxy di bawah ini:

1. Procecor Core2Duo 2,0 GHz, 
2. RAM 2 atau 4 GB DDR2 atau DDR3
3. HDD SATA 500 atau 320 GB

Kok tinggi banget ya speknya??
Bukan bermaksud apa-apa cuma karena kita pengen Cache Konten HTTPS ya wajar kita make Ram segitu :), kita menekankan Performa. 
Coba bayangkan sendiri saat anda memiliki mesin server Proxy Ram 512mb, Hdd 150 Gb di set untuk cache HTTPS dan di hajar 30 client?? logika nggak? 

Buat Sha pribadi sih nggak kenapa? karena melayani lalu lintas yang gituan harus minimal spek yang lumayan bagus 🙂 agak layanan terasa memuaskan.
Nah disini sha memakai Hdd berkisaran 500Gb Ram 4Gb.

Pembagiannya Sha set seperti ini.

1. Primary Root (/) 100 GB EXT4  
2. Logical Swap 4 GB (2X Jumlah RAM)  
3. Logical mount point : /Cache1 50 GB btrfs journaling, mount option noatime+nodiratime  
4. Logical mount point : /Cache2 50 GB  btrfs journaling, mount option noatime+nodiratime
5. Logical mount point : /Cache3 50 GB  btrfs journaling, mount option noatime+nodiratime
6. Logical mount point : /Cache4 50 GB  btrfs journaling, mount option noatime+nodiratime
7. Logical mount point : /Cache5 50 GB  btrfs journaling, mount option noatime+nodiratime

Setelah kamu menyelesaikan instalasi Ubuntu Server, ada beberapa hal yang perlu di seting.
Pertama adalah mengeset SSH di Ubuntu agar Putty dan WinSCP bisa login sebagai Root, tanpa itu bakalan repot  (harus ketik manual di Server Ubuntu).
Ketik Perintah ini di ubuntu Servernya tanpa memakai Putty atau WinSCP karena jalur SSH ( untuk Remote ProxyServernya) dari luar belum di buka.

Masuk ke root silahkan masukkan user name Ubuntu kamu dan masukkan passwordnya setelah terbuka/ sukses silahkan ketikkan code di bawah agar jalur SSHnya terbuka.

nano /etc/ssh/sshd_config [tekan enter]

Perhatikan baik-baik cari baris seperti ini.

Authentication:  
LoginGraceTime 120  
PermitRootLogin without-password  
StrictModes yes

Ubah menjadi seperti ini.

# Authentication:  
LoginGraceTime 120  
#PermitRootLogin without-password  
PermitRootLogin yes  
StrictModes yes

Simpan settingannya dengan menekan kombinasi tombol CTRL + X dan tekan tombol enter.

Selanjutnya ketik di Terminal Ubuntunya dengan perintah seperti ini.

service ssh restart  [tekan tombol enter]
ssh stop/waiting
ssh start/running, process 1588

Kemudian kamu akan di perintahkan membuat password Server yang baru J.

#passwd [tekan tombol enter]  
#enterpassword [tekan tombol enter]
#enterpasswdagain [tekan tombol enter] 

Proses untuk membuka port SSH Ubuntu selesai.

Selanjutnya memasuki proses yang agak lama karena update servernya hi hi, kalau kamu punya internet yang cepat ya mungkin cepat slesai kalau nggak ya kamu tinggal dulu nonton atau apalah hi -hi.

Buka Putty dari komputer yang bertugas remote Server Proxy nya, setelah terbuka silahkan login, masukkan perintah seperti ini di Putty.

apt-get update  [tekan tombol enter]

Kalau Internet kamu kencang ya nggak bakalan memakan waktu lama, kalau lambat ya gitu deh hi hi.
Setelah proses update selesai kemudian ketikkan atau Copy-Paste satu persatu perintah seperti di bawah.

apt-get install devscripts build-essential openssl libssl-dev fakeroot libcppunit-dev libsasl2-dev cdbs ccze libfile-readbackwards-perl libcap2 libcap-dev libcap2-dev -y [tekan tombol enter]
apt-get install sysv-rc-conf -y [tekan tombol enter]
cd   [tekan tombol enter]
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.5.tar.gz  [tekan tombol enter]
tar xzvf squid-3.5.5.tar.gz  [tekan tombol enter]
cd squid-3.5.5  [tekan tombol enter]

Setelah semua proses di atas sukses, Copy-paste perintah di bawah tanpa ada yang kurang di terminal Puttynya.

./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/lib/squid \
--sysconfdir=/etc/squid \
--localstatedir=/var \
--libdir=/usr/lib \
--includedir=/usr/include \
--datadir=/usr/share/squid \
--infodir=/usr/share/info \
--mandir=/usr/share/man \
--disable-dependency-tracking \
--disable-strict-error-checking \
--enable-async-io=32 \
--with-aufs-threads=32 \
--with-pthreads \
--enable-storeio=ufs,aufs,diskd \
--enable-removal-policies=lru,heap \
--with-aio \
--with-dl \
--enable-icmp \
--enable-esi \
--enable-icap-client \
--disable-wccp \
--disable-wccpv2 \
--enable-kill-parent-hack \
--enable-cache-digests \
--disable-select \
--enable-http-violations \
--enable-linux-netfilter \
--enable-follow-x-forwarded-for \
--disable-ident-lookups \
--enable-x-accelerator-vary \
--enable-zph-qos \
--with-default-user=proxy \
--with-logdir=/var/log/squid \
--with-pidfile=/var/run/squid.pid \
--with-swapdir=/var/spool/squid \
--with-large-files \
--with-openssl \
--enable-ltdl-convenience \
--with-filedescriptors=65536 \
--enable-ssl \
--enable-ssl-crtd \
--disable-auth

Lalu kita masukkan perintah.

make && make install && make install-pinger

Mungkin proses pembuatannya agak lama kamu tinggal aja sambil ngapain gitu J.

Setelah semua selesai kamu silahkan download File Squid yang sudah Sha set, di baris squidnya udah Sha kasih komentar dimana yang kamu ganti agar sesuai dengan Kondisi jaringan kamu.
Silahkan download di sini .

Password Rar nya : marsha-manihuruk

Edit File Squid dengan menggunakan Software Notepad++

Isi File winrarnya ada 3 buah yaitu:

  • Squid
  • Squid.conf
  • Store-id.pl

Buka Software WinSCP dan loginkan.

Copy file squid ke direktori /etc/init.d/.
Copy file squid.conf dan store-id.pl ke /etc/squid/.

Buka lagi Puttynya ketik atau copy-paste perintah di bawah satu-persatu.

chmod 755 /etc/init.d/squid 
update-rc.d squid defaults
/etc/init.d/squid stop 

Selanjutnya silahkan ketik atau copy-paste perintah di bawah di terminal Putty.

chown -R proxy:proxy /var/log/squid
cd /var/log/squid
touch access.log
touch cache.log

Buka lagi Terminal Puttynya.

Ketik atau copy-paste satu-persatu perintah di bawah.

cd
chown -R proxy:proxy /var/log/squid/access.log
chown -R proxy:proxy /var/log/squid/cache.log
chown -R proxy:proxy /cache1
chown -R proxy:proxy /cache2
chown -R proxy:proxy /cache3
chown -R proxy:proxy /cache4
chown -R proxy:proxy /cache5
chown -R proxy:proxy /etc/squid/store-id.pl
chmod 777 /cache1
chmod 777 /cache2
chmod 777 /cache3
chmod 777 /cache4
chmod 777 /cache5
chmod 777 /etc/squid/store-id.pl

Buka Lagi terminal  Putty nya.

Ketik copy-paste kembali Perintah di bawah.

cd /etc/squid
mkdir ssl_cert
cd ssl_cert
openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout myCA.pem -out myCA.pem

Nah itu proses pembuatan sertifikat SSL untuk cache HTTPS, silahkan masukkan manual ke browser masing-masing iyah :).

Selanjutnya.

Buka lagi Puttynya

openssl x509 -in myCA.pem -outform DER -out myCA.der

 cd /

mkdir /var/squid

cd /var/squid

mkdir ssl_db

cd ssl_db

chown -R nobody /var/squid/ssl_db/

/usr/lib/squid/ssl_crtd -c -s /var/squid/ssl_db/certs

chown -R proxy:proxy /var/squid/ssl_db/

squid -k parse

squid -z

/etc/init.d/squid restart

Langkah berikutnya adalah mengatur  IP Table server Ubuntu,

Buka WinSCP nya dan Buka File  /etc/rc.local

Copy-paste semua Scrip di bawah ini di atas baris “exit.0” di file rc.local

 modprobe xt_TPROXY  
 modprobe xt_socket  
 modprobe nf_tproxy_core  
 modprobe xt_mark  
 modprobe nf_nat  
 modprobe nf_conntrack_ipv4  
 modprobe nf_conntrack  
 modprobe nf_defrag_ipv4  
 modprobe ipt_REDIRECT  
 modprobe iptable_nat  
 iptables -t mangle -F  
 iptables -t mangle -X  
 iptables -t mangle -N DIVERT  
 iptables -t mangle -A DIVERT -j MARK --set-mark 1  
 iptables -t mangle -A DIVERT -j ACCEPT  
 iptables -t mangle -A INPUT -j ACCEPT  
 iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT  
 iptables -t mangle -A PREROUTING ! -d xxx.xxx.xxx.xxx/24 -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129  
 iptables -t mangle -A PREROUTING ! -d xxx.xxx.xxx.xxx/24 -p tcp --dport 443 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3127  
 /sbin/ip rule add fwmark 1 lookup 100  
 /sbin/ip route add local 0.0.0.0/0 dev lo table 100  
 echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter  
 echo 1 > /proc/sys/net/ipv4/ip_forward 

Ket:

xxx.xxx.xxx.xxx/24 itu ganti dengan IP server Ubuntu kamu.

Selanjutnya buka Puttynya ketik perintah.

reboot

Itu perintah untuk Merestart server Ubuntunya.

Setelah proses Rebootnya Selesai silahkan lakukan cek ulang Konfigurasi.

squid –k reconfigure

Jika sukses selamat!! kamu udah berhasil membuat server yang mampu mencaching situs HTTPS :).

Tapi jika masih ada Error silahkan lakukan langkah ini.

Error yang mungkin ada kemungkinan karena terkait dengan file store-id.pl
Hapus atau Timpa File store-id.pl yang ada di /etc/squid/ dengan yang baru (File Download yang tadi).
Lakukan lagi Perintah. di terminalPutty .

chown -R proxy:proxy /etc/squid/store-id.pl

Dan lakukan Perintah.

squid –k reconfigure

Jika semua beres tanpa ada yang error selamat kamu udah berhasil membuat server yang mampu mencache konten HTTPS.
Nah untuk mangle Mikrotik agar bisa menerima settingan Proxy Externalnya silahkan ketik atau copasscrip di bawah.
Di Firewall Mangle Mikrotik, scrip ini harus berada paling atas agar efektif.

Ket:

192.168.3.2 adalah IP Ubuntu Server.
192.168.2.0/24 adalah Network Lan.
BC-AE-C5-5C-15-61 adalah Mac-Address Proxy External Ubuntu.

Kode yang di masukkan ke Mangle Mikrotik.

/ip firewall mangle
add action=mark-connection chain=prerouting comment="HTTP + HTTPS TO PROXY HIT BOOSTER" dst-port=80,8080,443 new-connection-mark=to_proxy protocol=tcp src-address=192.168.2.0/24
add chain=prerouting src-mac-address=BC-AE-C5-5C-15-61
add action=mark-routing chain=prerouting connection-mark=to_proxy new-routing-mark=tproxy_route passthrough=no
/ip route
add distance=1 gateway=192.168.3.2 routing-mark=tproxy_route

Selesai!!

Terimaksih sudah mau berkunjung ke blog sederhana Sha :).

Jika ada pertanyaan silahkan layangkan ke kotak komentar dengan senang hati saya akan membalas nya.

Walaikumsalam.

SETTING QUEUE TREE MIKROTIK V6.X

Panduan Queue Tree yang kita bahas kali ini akan diterapkan pada MikroTik routerOS versi 6.X, pastikan anda sudah melakukan upgrade ke versi 6 sebelum mencoba script Queue Tree mikrotik ini.

queue tree mikrotik topology

Untuk topologi jaringan kira-kira seperti di atas, ether1 mikrotik ke Modem, dan ether2 ke HUB lalu ke PC.

Berikut script mangle queue tree untuk marking / menandai semua koneksi yang nantinya di teruskan di queue tree :

/ip firewall address-list
add address=192.168.0.0/16 list=private_IPv4
add address=172.16.0.0/12 list=private_IPv4
add address=10.0.0.0/8 list=private_IPv4
/ip firewall layer7-protocol
add name=EXE regexp="\\x4d\\x5a(\\x90\\x03|\\x50\\x02)\\x04"
add name=ZIP regexp="pk\\x03\\x04\\x14"
add name=MP4 regexp="\\x18\\x66\\x74\\x79\\x70"
add name=RAR regexp="Rar\\x21\\x1a\\x07"
add name=youtube regexp="r[0-9]+---[a-z]+-+[a-z0-9-]+\\.googlevideo\\.com"
/ip firewall mangle
add action=accept chain=prerouting comment="Bypass Local Traffic" dst-address-list=private_IPv4 src-address-list=private_IPv4
add action=accept chain=forward dst-address-list=private_IPv4 src-address-list=private_IPv4
add action=mark-connection chain=forward comment="Games Traffic" dst-port=39190-39200 new-connection-mark=games passthrough=yes protocol=tcp src-address-list=private_IPv4
add action=mark-connection chain=forward dst-port=40000-40010 new-connection-mark=games passthrough=yes protocol=udp src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=games in-interface="ether1 - Wan" new-packet-mark=games_down passthrough=no
add action=mark-packet chain=forward connection-mark=games in-interface="ether2 - Lan" new-packet-mark=games_up passthrough=no
add action=mark-connection chain=forward comment="ICMP Traffic" new-connection-mark=icmp passthrough=yes protocol=icmp src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=icmp in-interface="ether1 - Wan" new-packet-mark=icmp_down passthrough=no protocol=icmp
add action=mark-packet chain=forward connection-mark=icmp in-interface="ether2 - Lan" new-packet-mark=icmp_up passthrough=no protocol=icmp
add action=mark-connection chain=forward comment="DNS Traffic" dst-port=53 new-connection-mark=dns passthrough=yes protocol=udp src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=dns in-interface="ether1 - Wan" new-packet-mark=dns_down passthrough=no protocol=udp
add action=mark-packet chain=forward connection-mark=dns in-interface="ether2 - Lan" new-packet-mark=dns_up passthrough=no protocol=udp
add action=mark-connection chain=forward comment="Remote Traffic" dst-port=22,23,8291,5938,4899 new-connection-mark=remote passthrough=yes protocol=tcp src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=remote in-interface="ether1 - Wan" new-packet-mark=remote_down passthrough=no
add action=mark-packet chain=forward connection-mark=remote in-interface="ether2 - Lan" new-packet-mark=remote_up passthrough=no
add action=mark-connection chain=forward comment="YouTube Traffic" layer7-protocol=youtube new-connection-mark=youtube passthrough=yes src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=youtube in-interface="ether1 - Wan" new-packet-mark=youtube_down passthrough=no
add action=mark-packet chain=forward connection-mark=youtube in-interface="ether2 - Lan" new-packet-mark=youtube_up passthrough=no
add action=mark-connection chain=forward comment="Extension Layer7" layer7-protocol=EXE new-connection-mark=extensi passthrough=yes
add action=mark-connection chain=forward layer7-protocol=ZIP new-connection-mark=extensi passthrough=yes
add action=mark-connection chain=forward layer7-protocol=MP3 new-connection-mark=extensi passthrough=yes
add action=mark-connection chain=forward layer7-protocol=RAR new-connection-mark=extensi passthrough=yes
add action=mark-packet chain=forward connection-mark=extensi in-interface="ether1 - Wan" new-packet-mark=extensi_down passthrough=no
add action=mark-packet chain=forward connection-mark=extensi in-interface="ether2 - Lan" new-packet-mark=extensi_up passthrough=no
add action=mark-connection chain=forward comment="Browsing Traffic" connection-mark=!heavy_traffic new-connection-mark=browsing passthrough=yes src-address-list=private_IPv4
add action=mark-connection chain=forward comment="Heavy Traffic" connection-bytes=1024000-0 connection-mark=browsing connection-rate=256k-102400k new-connection-mark=heavy_traffic passthrough=yes protocol=tcp
add action=mark-connection chain=forward connection-bytes=1024000-0 connection-mark=browsing connection-rate=256k-102400k new-connection-mark=heavy_traffic passthrough=yes protocol=udp
add action=mark-packet chain=forward connection-mark=heavy_traffic in-interface="ether1 - Wan" new-packet-mark=heavy_browsing_down passthrough=no
add action=mark-packet chain=forward connection-mark=heavy_traffic in-interface="ether2 - Lan" new-packet-mark=heavy_browsing_up passthrough=no
add action=mark-packet chain=forward connection-mark=browsing in-interface="ether1 - Wan" new-packet-mark=small_browsing_down passthrough=no
add action=mark-packet chain=forward connection-mark=browsing in-interface="ether2 - Lan" new-packet-mark=small_browsing_up passthrough=no

Silahkan copy semua script diatas kemudian anda paste terlebih dulu ke text editor seperti notepad++, kemudian sesuaikan nama interface nya.

ether1 – Wan = adalah nama interface ether1 mikrotik
ether2 – Lan = adalah nama interface ether2 mikrotik

Jika semua sudah di sesuaikan, silahkan copy semua kemudian paste ke terminal winbox.

PENJELASAN SCRIPT MANGLE QUEUE TREE

/ip firewall address-list
add address=192.168.0.0/16 list=private_IPv4
add address=172.16.0.0/12 list=private_IPv4
add address=10.0.0.0/8 list=private_IPv4

Membuat address-list ke mikrotik dengan nama “private_IPv4” berisi semua private IP, jika di jaringan anda terdapat ip lokal di luar ip private di atas silahkan anda tambahkan.

/ip firewall layer7-protocol
add name=EXE regexp="\\x4d\\x5a(\\x90\\x03|\\x50\\x02)\\x04"
add name=ZIP regexp="pk\\x03\\x04\\x14"
add name=MP4 regexp="\\x18\\x66\\x74\\x79\\x70"
add name=RAR regexp="Rar\\x21\\x1a\\x07"
add name=youtube regexp="r[0-9]+---[a-z]+-+[a-z0-9-]+\\.googlevideo\\.com"

Memasukan Regex Layer7 Youtube dan Layer7 extensi EXE, ZIP, MP4, dan RAR.

Jika anda ingin menambah Layer7 untuk extensi yang lain, silahkan tinggal di input saja.

/ip firewall mangle
add action=accept chain=prerouting comment="Bypass Local Traffic" dst-address-list=private_IPv4 src-address-list=private_IPv4
add action=accept chain=forward dst-address-list=private_IPv4 src-address-list=private_IPv4

Bypass local Traffic, tujuannya adalah agar traffic dari lokal menuju lokal lagi tidak terlimit.

add action=mark-connection chain=forward comment="Games Traffic" dst-port=39190-39200 new-connection-mark=games passthrough=yes protocol=tcp src-address-list=private_IPv4
add action=mark-connection chain=forward dst-port=40000-40010 new-connection-mark=games passthrough=yes protocol=udp src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=games in-interface="ether1 - Wan" new-packet-mark=games_down passthrough=no
add action=mark-packet chain=forward connection-mark=games in-interface="ether2 - Lan" new-packet-mark=games_up passthrough=no

Menandai Traffic Game online berdasarkan port untuk kita pisahkan queue nya nanti. Script di atas saya hanya buatkan contoh pada game PB, silahkan anda tambahkan sendiri.

add action=mark-connection chain=forward comment="ICMP Traffic" new-connection-mark=icmp passthrough=yes protocol=icmp src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=icmp in-interface="ether1 - Wan" new-packet-mark=icmp_down passthrough=no protocol=icmp
add action=mark-packet chain=forward connection-mark=icmp in-interface="ether2 - Lan" new-packet-mark=icmp_up passthrough=no protocol=icmp
add action=mark-connection chain=forward comment="DNS Traffic" dst-port=53 new-connection-mark=dns passthrough=yes protocol=udp src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=dns in-interface="ether1 - Wan" new-packet-mark=dns_down passthrough=no protocol=udp
add action=mark-packet chain=forward connection-mark=dns in-interface="ether2 - Lan" new-packet-mark=dns_up passthrough=no protocol=udp
add action=mark-connection chain=forward comment="Remote Traffic" dst-port=22,23,8291,5938,4899 new-connection-mark=remote passthrough=yes protocol=tcp src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=remote in-interface="ether1 - Wan" new-packet-mark=remote_down passthrough=no
add action=mark-packet chain=forward connection-mark=remote in-interface="ether2 - Lan" new-packet-mark=remote_up passthrough=no

Menandai / marking traffic DNS, ICMP dan beberapa port seperti SSH, dan winbox.

add action=mark-connection chain=forward comment="YouTube Traffic" layer7-protocol=youtube new-connection-mark=youtube passthrough=yes src-address-list=private_IPv4
add action=mark-packet chain=forward connection-mark=youtube in-interface="ether1 - Wan" new-packet-mark=youtube_down passthrough=no
add action=mark-packet chain=forward connection-mark=youtube in-interface="ether2 - Lan" new-packet-mark=youtube_up passthrough=no
add action=mark-connection chain=forward comment="Extension Layer7" layer7-protocol=EXE new-connection-mark=extensi passthrough=yes
add action=mark-connection chain=forward layer7-protocol=ZIP new-connection-mark=extensi passthrough=yes
add action=mark-connection chain=forward layer7-protocol=MP3 new-connection-mark=extensi passthrough=yes
add action=mark-connection chain=forward layer7-protocol=RAR new-connection-mark=extensi passthrough=yes
add action=mark-packet chain=forward connection-mark=extensi in-interface="ether1 - Wan" new-packet-mark=extensi_down passthrough=no
add action=mark-packet chain=forward connection-mark=extensi in-interface="ether2 - Lan" new-packet-mark=extensi_up passthrough=no
[

Menandai / marking traffic YouTube dan Extensi berdasarkan layer7 yang sudah kita buat di awal, jika anda sudah menambahkan layer7, silahkan anda tambahkan juga mangle nya seperti di atas.

add action=mark-connection chain=forward comment="Browsing Traffic" connection-mark=!heavy_traffic new-connection-mark=browsing passthrough=yes src-address-list=private_IPv4
add action=mark-connection chain=forward comment="Heavy Traffic" connection-bytes=1024000-0 connection-mark=browsing connection-rate=256k-102400k new-connection-mark=heavy_traffic passthrough=yes protocol=tcp
add action=mark-connection chain=forward connection-bytes=1024000-0 connection-mark=browsing connection-rate=256k-102400k new-connection-mark=heavy_traffic passthrough=yes protocol=udp
add action=mark-packet chain=forward connection-mark=heavy_traffic in-interface="ether1 - Wan" new-packet-mark=heavy_browsing_down passthrough=no
add action=mark-packet chain=forward connection-mark=heavy_traffic in-interface="ether2 - Lan" new-packet-mark=heavy_browsing_up passthrough=no
add action=mark-packet chain=forward connection-mark=browsing in-interface="ether1 - Wan" new-packet-mark=small_browsing_down passthrough=no
add action=mark-packet chain=forward connection-mark=browsing in-interface="ether2 - Lan" new-packet-mark=small_browsing_up passthrough=no

Mangle terakhir di atas tujuannya memisahkan traffic browsing yang ringan dan berat, jika seseorang melakukan browsing dan sudah mencapai 1 Mb page yang sudah di buka tapi masih membutuhkan kecepatan di atas 256k, maka traffic tersebut di tandai sebagai “heavy traffic”.

QUEUE TREE HTB MIKROTIK

/queue type
add kind=pcq name=down_pcq pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-src-address6-mask=64
add kind=pcq name=up_pcq pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-src-address6-mask=64
/queue tree
add name="Global Traffic" parent=global queue=default
add max-limit=3M name=Download parent="Global Traffic" queue=default
add max-limit=1M name=Upload parent="Global Traffic"
add limit-at=512k max-limit=3M name="1. Game" packet-mark=games_down parent=Download priority=1 queue=down_pcq
add limit-at=64k max-limit=3M name="2. Icmp" packet-mark=icmp_down parent=Download priority=1 queue=down_pcq
add limit-at=64k max-limit=3M name="3. Dns" packet-mark=dns_down parent=Download priority=1 queue=down_pcq
add max-limit=3M name="5. Download Traffic" parent=Download queue=default
add max-limit=3M name="1. Small Browsing" packet-mark=small_browsing_down parent="5. Download Traffic" priority=5 queue=down_pcq
add max-limit=3M name="2. Heavy Browsing" packet-mark=heavy_browsing_down parent="5. Download Traffic" priority=7 queue=down_pcq
add limit-at=512k max-limit=3M name="4. Remote" packet-mark=remote_down parent=Download priority=3 queue=down_pcq
add max-limit=3M name="3. YouTube" packet-mark=youtube_down parent="5. Download Traffic" priority=7 queue=down_pcq
add max-limit=3M name="4. Extensi" packet-mark=extensi_down parent="5. Download Traffic" queue=down_pcq
add limit-at=256k max-limit=1M name="1. game" packet-mark=games_up parent=Upload priority=1 queue=up_pcq
add limit-at=32k max-limit=1M name="2. icmp" packet-mark=icmp_up parent=Upload priority=1 queue=up_pcq
add limit-at=32k max-limit=1M name="3. dns" packet-mark=dns_up parent=Upload priority=1 queue=up_pcq
add limit-at=256k max-limit=1M name="4. remote" packet-mark=remote_up parent=Upload priority=3 queue=up_pcq
add max-limit=1M name="5. Upload Traffic" parent=Upload queue=default
add max-limit=1M name="1. small browsing" packet-mark=small_browsing_up parent="5. Upload Traffic" priority=5 queue=up_pcq
add max-limit=1M name="2. heavy browsing" packet-mark=heavy_browsing_up parent="5. Upload Traffic" priority=7 queue=up_pcq
add max-limit=1M name="3. youtube" packet-mark=youtube_up parent="5. Upload Traffic" priority=7 queue=up_pcq
add max-limit=1M name="4. extensi" packet-mark=extensi_up parent="5. Upload Traffic" queue=up_pcq

Silahkan copy semua script di atas kemudian paste ke terminal winbox, hasilnya kira-kira seperti berikut:

queue tree mikrotik

Model Queue Tree di atas sangat membantu jika di terapkan pada jaringan seperti Warnet,rt rw net, hotspot, Kantor, Cafe wifi, Warung wifi, yang konsep pembagiannya sama rata tapi tanpa mengganggu traffic game dan browsing oleh pemakai IDM atau youtube.

Pembagian Bandwidth Queue Tree mikrotik di atas hanya contoh dan di ambil point penting nya saja.

Dengan menambah Priority di Queue Tree seperti di atas, kita bisa lihat dimana traffic game dan Browsing dipisah, dengan tujuan agar traffic tersebut mendapatkan jatah sesuai yang sudah kita prioritaskan.

Catatan!!

Contoh di atas kapasitas bandwidth saya adalah 3Mb Download dan 1Mb upload, jika kondisi real di tempat anda berbeda, silahkan anda sesuaikan.

Silahkan ukur kecepatan internet anda, ukur secara akurat dan jangan sampai bandwidth real anda dibawah settingan queue di atas.

Misal bandwidth real anda 10Mb, tapi anda setting 15Mb,  cara tersebut tidak tepat, karena pembagian prioritasnya nanti kurang pas.

Jika anda tidak ada waktu dan masih belum berhasil setting queue tree di mikrotik, kami melayani jasa setting mikrotik murah untuk solusi anda.

Semoga Tutorial MikroTik tentang Queue Tree kali ini bisa bermanfaat buat anda semua, Jangan lupa share tutorial ini jika bisa bermanfaat buat anda, dan silahkan tinggalkan komentar untuk permasalahan tutorial di atas.

Mohon saran dan kritikannya jika tutorial di atas ada yang salah dan perlu di bernarkan.

Salam MikroTiker..