Cara Reset Passwd Mysql server yang lupa

masuk ke terminal linux kemudian ketikan perintah seperti di baawah.

service mysql stop
service mariadb stop
mysqld_safe --skip-grant-tables &
UPDATE user SET password=PASSWORD('PASSWORD_BARU') WHERE user='root';
FLUSH PRIVILEGES;

CREATE NEW USER
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

Lalu restart service mariadb dan mysqlnya

service mysql start
service mariadb start
GET DUMP DATABASES
mysqldump -u root db > save.sql --routines

Install PHP 7.3 / PHP 7.3-FPM With Apache2

Step 1: Setup PHP with Apache2 HTTP Server

sudo apt update
sudo apt install apache2
sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

Step 2: Install PHP 7.3 with Apache2 Support

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

sudo apt-get install php7.3 libapache2-mod-php7.3 php7.3-cli php7.3-mysql php7.3-gd php7.3-imagick php7.3-recode php7.3-tidy php7.3-xmlrpc

Step 3: Configure PHP 7.3 for Apache2

sudo nano /etc/php/7.3/apache2/php.ini

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

sudo systemctl restart apache2.service

Install DnsCrypt + Pihole

Siapkan bahan2

di linux versi2 lama kaya ubuntu bionic 18.04 dnscrypt yg di repo versi 1.xversi 1.x sudah gak diurus lagi jadi wajib pake versi 2.xkalau di repo armbian yang agan2 pake dnscryptnya uda versi 2.x tinggal install dari repo seperti biasa klo belum:Simak video tutorial sederhana inihttps://youtu.be/3zaswxZc8eEtutor singkat yg ada divideo

  1. download dnscrypt-proxy arm64 link diatas kemudian extract
  2. masuk ke folder hasil extract rename example-dnscrypt-proxy.toml menjadi dnscrypt-proxy.toml
  3. edit dnscrypt-proxy.toml dengan notepad ++ / yg lain cari listen_addresses : ganti jadi 127.0.2.1#5300 (boleh ganti port seusai keinginan selain 53), lalu hapus tanda “#” pada server_names lalu save
  4. copy kan file dnscrypt-proxy dan dnscrypt-proxy.toml ke stb dengan winSCP di folder /usr/bin (supaya gampang waktu ketik perintah nanti :v)
  5. ubah permission dnscrypt-proxy ke 0755 pake winSCP jg
  6. masuk ke putty ketik dnscrypt-proxy lalu [enter] kalau running tanpa error berarti sukses

selanjutnya install service dnsryptnya ketik

dnscrypt-proxy -service install && dnscrypt-proxy -service start

7. kalo berjalan tanpa error berarti sukses.. tinggal install pihole8. untuk install pihole liat di video 9. setting pihole waktu install biarkan default saja10. setelah install pihole ketik di putty

pihole -a -p passwordbaru

buka pihole lewat browser lalu login menggunakan passwordbaru yang dibuat lalu ke setting > DNS hilangkancentang di Upstream DNS server bagian kiri lalu centang custom 1 (ipv4) masukan 127.0.2.1#5300 (seusaikan sama setingan di dnscrypt-proxy.toml diawal tadi)lalu saveSELSAI

CARA INSTALL MOODLE 3.6 DI DEBIAN 9 MENGGUNAKAN NGINX, MARIADB, PHP7.3-FPM

Dunia pendidikan Indonesia pada akhir-akhir ini telah melalui sebuah era baru dalam sistem pembelajarannya. Seiring dengan kebijakan ujian nasional menggunakan Computer-Base Test (CBT) di jenjang pendidikan SMP dan SMA, sekolah telah mengakrabkan diri menggunakan berbagai macam aplikasi pembelajaran menggunakan Teknologi Informasi berbasis komputer. Penggunaan TIK kebanyakan dipakai untuk melakukan penilaian pembelajaran oleh guru misalnya adalah untuk ulangan harian, ulangan mid semester dan ulangan semester. Aplikasi CBT seperti Beesmart, WokaCBT, moodle dan aplikasi berbayar lainnya menjadi pilihan guru dan tenaga pendidikan di sekolah/lembaganya. Setiap aplikasi memiliki kelebihan dan kekurangan masing-masing tergantung dari sisi mana kita melihatnya. Moodle menurut saya memiliki berbagai kelebihan yang tidak dimiliki oleh aplikasi CBT lainnya. Selain gratis, moodle juga merupakan sebuah aplikasi open source yang terus berkembang dan dipakai di seluruh dunia. Berikut ini saya sajikan bagaimana 

Cara Install Moodle di Debian 9 Menggunakan Nginx, MariadB, PHP7.3-FPM .

Moodle sangat fleksibel karena bisa di-Install di berbagai platform sistem operasi seperti windows, linux, MacOs, dan FreeBSD. Bagi Anda yang hanya mengerti sistem operasi windows bisa melakukan Instalasi sendiri menggunakan Xampp, namun secara umum penggunakan moodle di xampp-windows kurang powerfull, cenderung agak berat karena membutuhkan resource memory yang besar. Untuk mengatasi hal tersebut kita bisa menggunakan Linux sebagai server tempat instalasi moodle yang diharapkan lebih cepat, ringan dan membutuhkan resources memory yang lebih kecil. Pada kesempatan ini, saya memilih Debian 9 sebagai OS server moodle.

Untuk web server yang harus diinstall di Debian sebenarnya ada sua pilihan utama yaitu menggunakan Apache bisa juga menggunakan Nginx, mana yang lebih baik ?, silahkan cari informasinya di Mbah Gugel . Demikian juga dengan database server, ada berbagai pilihan bisa menggunakan Mysql, MariadB atau Posgresql. Dan yang terakhir adalah versi PHP, kita bisa memakai versi PHP dari yang lama sampai yang terbaru. Nah diantara berbagai pilihan yang ada, di sini saya memilih Nginx, mariadb dan PHP7.3 yang dipasang di server Debian 9, sementara Moodle yang dipakai adalah moodle terakhir saat tulisan ini muncul yaitu Moodle 3.6. Langsung saja kita mulai bagaimana

 Cara Install Moodle di Debian 9 Menggunakan Nginx, MariadB, PHP7.3-FPM.

Langkah-langkahnya adalah sebagi berikut :

1. INSTALL DEBIAN 9

Pada tutorial ini Install Debian 9 sengaja dilewati karena kalau dijelaskan dari awal tentunya kan panjang dan lama. Anda bisa mencari tutorial cara Install Debian server 16.04 di Mbah Gugel jumlahnya sangat banyak. Rekomendasi saya silahkan cari tutorial di howtoforge.com dengan keyword howto install Debian 9 minimal server. Namun jika Anda ingin praktis dan melewati langkah ini tapi tetap melanjutkan ke langkah berikutnya saya sudah menyediakan VHD Debian 9 minimal server. Anda tinggal memasangnya pada virtual box dan menjalankannya. VHD ini hanya berisi kelengkapan dasar bawaan ubuntu server seperti nano dan openssh yang nantinya sangat diperlukan untuk kebutuhan instalasi komponen lainnya. Untuk mendapatkan VHD Debian kosongan ini silahkan download melalui link berikut ini :

VHD Debian 9 Minimal server ini sudah dilakukan pengubahan dari mode IP DHCP ke IP Statis 192.168.0.200 seperti halnya yang dipakai pada IP VHD UNBK. Openssh juga sudah terpasang agar nantinya server ini bisa diremote menggunakan Putty, winscp atau aplikasi remote server lainnya. Akses ssh juga sudah saya aktifkan Root Login Akses agar bisa akses melalui SSH. Sebelum melangkah lebih jauh dalam menjalankan perintah-perintah instalasi komponen server, perlu diketahui bahwa pada tutorial ini, saya menggunakan hak akses sebagai root.

Sebelum melakukan instalasi paket-paket yang dibutuhkan, ketikkan perintah berikut ini untuk update Debian di console linux :

apt-get update

apt-get upgrade

2. INSTALL WEB SERVER NGINX

Masuk ke console linux dengan mengetikkan perintah :

apt-get install nginx

Setelah proses install webserver selesai, untuk memastikan bahwa apache sudah terinstall dengan baik, buka browser dengan mengetikkan IP server pada URL address, maka akan muncul halaman default Nginx seperti ini :

setelah Nginx terpasang, berikut ini perintah yang dapat dilankan untuk mematikan, menghidupkan dan mengaktifkan Nginx saat server mulai dijalankan :

systemctl stop nginx.service

systemctl start nginx.service

systemctl enable nginx.service

3. INSTALL DATABASE MARIADB

Moodle juga memerlukan database server. MariadB merupakan pilihan yang sangat tepat untuk dipakai pada database server. Untuk Install database MariadB jalankan perintah berikut ini :

apt-get install mariadb-server mariadb-client

setelah mariadb terpasang, berikut ini perintah yang dapat dilankan untuk mematikan, menghidupkan dan mengaktifkan MariadB saat server mulai dijalankan :

systemctl stop mysql.service

systemctl start mysql.service

systemctl enable mariadb.service

Selanjutnya silahkan jalankan perintah berikut ini untuk mengamankan MariadB server :

mysql_secure_installation

akan muncul baris pertanyaan untuk dikonfirmasi y (yes) atau n (no), berikut pertanyaan dan panduan menjawabnya :

  • Enter current password for root (enter for none): Tekan Enter Saja
  • Set root password? [Y/n]: Y
  • New password: Masukkan Password
  • Re-enter new password: Ulangi Password
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]: Y
  • Reload privilege tables now? [Y/n]: Y

Selanjutnya, silahkan buka konfigurasi bawaan MariadB dengan menjalankan perintah :

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Setelah terbuka, tambahkan konfigurasi tambahan berikut tepat di bawah baris [mysqld]

default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
innodb_large_prefix = 1

simpan (ctrl + O, kemudian tekan enter) dan keluar (ctrl + x), selanjutnya restart MariadB server melalui perintah :

systemctl restart mariadb.service

4. INSTALL PHP 7.3-FPM DAN MODULE YANG DIBUTUHKAN

Repository bawaan Debian tidak menyediakan PHP7.3, maka kita membutuhkan repository pihak ketiga untuk mendapatkannya.

Jalankan perintah berikut ini untuk menambahkan repositori pihak ketiga

apt-get install apt-transport-https lsb-release ca-certificates

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

echo “deb ttps://packages.sury.org/php/ $(lsb_release -sc) main” | tee /etc/apt/sources.list.d/php7.3.list

apt-get update

apt-get upgrade

apt-get install php7.3-fpm

dan Install modul-modul yang dibutuhkan oleh Moodle :

apt-get install aspell graphviz clamav php7.3-common php7.3-mbstring php7.3-xmlrpc php7.3-soap php7.3-gd php7.3-xml php7.3-intl php7.3-mysql php7.3-cli php7.3-ldap php7.3-zip php7.3-curl

Setelah php7.3 dan modul-modul pendukungnya terinstall selanjutnya silahkan edit konfigurasi php.ini agar kinerja server lebih powefull. Untuk melakukannya melalui perintah :

nano /etc/php/7.3/fpm/php.ini

Edit nilai/value-nya sesuaikan dengan kemampuan server

file_uploads = On
allow_url_fopen = On
memory_limit = 128M
upload_max_filesize = 8M
max_execution_time = 60
post_max_size = 8M
cgi.fix_pathinfo = 0

Selanjutnya simpan dan keluar dari editor.

5. MEMBUAT DATABASE MOODLE

Berikut ini adalah langkah-langkah Membuat database Moodle, bila ada pertanyaan tentang password masukkan password yang telah dibuat saat Instalasi MariadB pada langkah 3.

mysql -u root -p

Berikutnya buat nama database, buat misalnya dengan nama moodle, dan jalankan dengan perintah :

CREATE DATABASE moodle;

Buat Nama User database misalnya moodleuser dan gunakan password baru user :

CREATE USER ‘moodleuser’@’localhost’ IDENTIFIED BY ‘new_password_here’;

Berikutnya ketikkan perintah berikut ini :

GRANT ALL ON moodle.* TO ‘moodleuser’@’localhost’ IDENTIFIED BY ‘user_password_here’ WITH GRANT OPTION;

FLUSH PRIVILEGES;

EXIT;

6. INSTALL MOODLE

Langkah berikutnya adalah melakukan pemasangan Moodle di server. Saat tulisan ini muncul Moodle terbaru memiliki versi 3.6. Jalankan perintah berikut ini untuk mendownload Moodle release terbaru.

cd /tmp

wget https://download.moodle.org/download.php/direct/stable36/moodle-latest-36.tgz

Jalankan perintah berikut untuk mengekstrak file download Moodle, dan memindahkannya ke folder moodle /var/www/html/moodle

tar -zxvf moodle-latest-36.tgz

mv moodle /var/www/html/moodle

Berikutnya adalah membuat folder moodledata sebagai tempat database moodle

cd

mkdir /var/moodledata

berikutnya adalah change modify the directory permission folder moodle dan moodledata

chown -R www-data /var/www/html/moodle

chmod -R 777 /var/www/html/moodle

chown -R www-data /var/moodledata

chmod -R 777 /var/moodledata

Lakukan Reboot pada server, dengan menjalankan perintah :

reboot

7. KONFIGURASI SITUS MOODLE DI NGINX

Langkah awal melakukan konfigurasi pada nginx, lakukan sedikit pengeditan letaknya pada direktori /etc/nginx/nginx.conf, silahkan buka dengan mengetikkan perintah :

nano /etc/nginx/nginx.conf

Lakukan sedikit pengatuaran pada keepalive_timeout berikan nilai yang wajar misalnya 2 seconds

[…]
keepalive_timeout 2;
[…]

Langkah berikutnya adalah mengkonfigurasi pengaturan file di Nginx untuk Moodle. Pada file inilah akan dikontrol bagaimana user bisa mengakses konten Moodle. Jalankan perintah berikut ini untuk membuat file konfigurasi dan namakan saja filenya dengan moodle :

nano /etc/nginx/sites-available/moodle

Selanjutnya, copy dan paste script berikut dan sesuaikan dengan domain yang kita pakai, setelah itu simpan dan tutup :

server {
listen 80;
listen [::]:80;
root /var/www/html/moodle;
index index.php index.html index.htm;
server_name 192.168.0.200;

location / {
try_files $uri $uri/ =404;
}

location /dataroot/ {
internal;
alias /var/moodledata/;
}

location ~ [^/]\.php(/|$) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

}

Berikutnya aktifkan moodle di nginx dengan mengkopi/menduplikat /etc/nginx/sites-available/moodle ke /etc/nginx/sites-enabled, melalui perintah :

ln -s /etc/nginx/sites-available/moodle /etc/nginx/sites-enabled/

Untuk memastikan konfigurasi yang kita lakukan benar ketikkan perintah berikut ini :

nginx -t

dan apabila konfigurasi benar, maka outputnya adalah seperti ini :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Untuk memastikan bahwa PHP yang dipasang sudah PHP7.3-FPM, maka buatlah file php.info di dokumen root var/www/html/moodle, dengan perintah :

nano /var/www/html/moodle/info.php

dan isi kan :

<?php
phpinfo();

simpan dan tutup editor.
Selanjutnya, restart nginx dengan mengetikkan perintah :

systemctl restart nginx.service

Sekarang kita cek info php, dengan mengetikkan http://192.168.0.200/info.php

Jika ketarangan pada baris Server API menunjukkan FPM/FastCGI maka instalasi PHP7.3-FPM sudah benar dan berjalan dengan baik.

Sumber :
https://www.sudutbaca.com/cara-install-moodle-3-6-di-debian-9-menggunakan-nginx-mariadb-php7-3-fpm/

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.