Postgresql database auto restore

Halo, hari yang lelah, setelah membuat automation dump restore database mariadb/mysql, kali ini membuat script untuk auto dump dan restore untuk database Postgresql.

saya tidak akan mengulang, saya mau merujuk dari artikel saya sebelumnya : http://mandrivaputri.info/2020/08/membangun-data-ware-house-yang-aman/

artikel diatas memang sulit di pahami, karena basic nya saya memang bukan penulis apalagi pengajar, wkwkwkw, tapi setidaknya ini catatan bagi saya jika suatu saat ada pekerjaan serupa, jadi saya bisa lihat lagi dokumentasi saya. atau catatan ini bisa jadi portofolio saya jika saya hendak melamar pekerjaan di tempat lain :p

langsung saja ke script yah, script ini di jalankan di server :

{DATA WARE HOUSE}

yang pertama, kamu pastikan dulu kalau database server untuk postgresqlnya sudah terinstall.

bisa membaca artikel disini : https://computingforgeeks.com/how-to-install-postgresql-12-on-centos-7/

setelah itu, jalankan script dan cronjobnya pada user postgres

[root@db-warehouse ~]# su postgres

bash-4.2$ vi importpostgre.sh
#import db postgre
echo “halo bos”
dropdb database
createdb database
echo “buat db selesai”
cd /home/postgre/db
tar -xf *.tar.bz2
echo “extrac rampung”
rm -rf *.tar.bz2
echo “tar bz sudah di hapus”
for i in `find /home/postgre/db -type f -ctime -1`
do
psql database < $i
done
cd /home/postgre/db
rm -rf *
echo “rampung”

nah, jadi seperti itu scriptnya. jalankan di cronjob pada user postgres.

bash-4.2$ crontab -e

ya pokoknya gitulah, hehehe :*

Bagikan saja, itu tidak berat

Membangun data Ware House yang aman

Halo, kebetulan saat ini saya sedang membangun sebuah data Ware House.

apa itu data ware house ? yaitu sekumpulan database dari bermacam aplikasi yang di kumpulkan dalam satu server.

tujuan adalah untuk melakukan pengolahan data yang sumber datanya di ambil dari bermacam aplikasi tersebut. besar dong ? tentu, namanya juga ware house = gudang data.

kenapa tidak dilakukan pengolahan langsung di aplikasinya ? -sudah, tapi terkadang ada kebutuhan khusus diluar dari aplikasi. karena untuk melakukan perubahan di Production aplikasi sangat tidak di sarankan. SANGAT TIDAKKKKKKKK. JANGAN, TIDAK BOLEH. TITIK.
NGEYEL ? KAMPLENG !

caranya bagaimana, ? logikanya simple, implementasinya yang gak simple wkwkwkwk

bahan-bahan yang di butuhkan :

1. server Production Aplikasi

2. server backup

3. server data ware house

tahapannya adalah :

{SERVER PRODUCTION}

  1. melakukan backup rutin pada server aplikasi production, caranya : http://mandrivaputri.info/2019/07/membuat-auto-backup-database-server-mariadb/

hal diatas dilakukan di semua server aplikasi yang ingin ditarik databasenya. oh ya, tutorial diatas adalah server dengan database mysql. jika databasenya berbeda, postgre misalnya, lakukan backup dengan cara yang ada di gugel, gampang, asalkan mau.

{SERVER BACKUP}

2. menarik ( get ) database hasil backup di server aplikasi production ke server backup, ini pakai rsync. contohnya seperti ini :

rsync -rzhav –update -e ‘ssh -p 220’ root@192.168.10.3:/home/centos/backupdb/ /data/192.168.10.3/db/

script diatas adalah contoh. jalankan ini di server backup, jalankan di cronjob secara rutin pakai bash script. cara nya cari di google, banyak.

kemudian, mengirim file hasil tarikan di server backup ke server Data ware house.

Screenshot_71

oh iya, siapa bilang sysadmin itu gak perlu ngerti programming. sysadmin harus ngerti programming, komunikasi antar mesin, itu perlu programming, bahasa pemograman yang sering digunakan untuk mesin adalah Python dan Shell Script. diatas adalah sedikit contoh bahasa pemograman shell script dengan bash command.

soalnya saya nyari-nyari di google gak nemu, akhirnya saya bongkar kitab lama saya. hahaha

saya jabarkan code diatas :

untuk i , temukan file yang modifikasi waktunya -1 hari di dalam folder /data/192.168.10.3/db

lalu

kirim data yang di temukan tersebut ke user root yang berada di server 192.168.11.4 di folder /root/db

selesai

{SERVER DATA WARE HOUSE}

setelah server Data ware house menerima kiriman backup database server Production dari server Backup, server Data Ware House bertugas untuk melakukan import database kiriman itu ke database server di Server Data Ware House. bingung ? ngopi dulu gih~~

saya membuat sebuah bash script yang saya jalankan secara rutin. oiya, timing waktu sangat penting, antara :

-server production melakukan backup internal

-server backup menarik data dari server production

-server backup mengirim data ke server data ware house

-server data ware house melakukan import database

timing waktu harus di perhatikan agar tidak miskom. hehehe

begini scriptnya :

Screenshot_72

penjabaran :

baris pertama : melakukan penghapusan database

baris kedua : membuat database baru

baris ketiga : untuk i , temukan file yang modifikasi waktunya -1 hari di dalam folder /root/xxx

baris ke empat : maka

baris ke lima : import file database hasil backupan di folder i ke database server

baris ke enam : selesai

baris ke tujuh : masuk ke folder /root/xxx

baris ke delapan : hapus semua file di folder tsb.

sampai disini, data ware house sudah selesai di bangun, kamu bebas mengolah data di data ware house tersebut tanpa harus menyentuh database aplikasi production. lebih aman bukan ?

disini kamu bisa mengolah data dengan melakukan query, terserah, mau pakai PHP, atau pun tools pengolah data seperti tableau.

sistem ini berjalan secara automatic, data di update sesuai dengan data asli di aplikasi production dengan waktu yang di tentukan oleh cronjob.

kamu tinggal bobok manis, biarkan tim pengolah data yang menggunakan layanan ini, kamu paling tinggal troubleshoot tipis-tipis aja kalau ada masalah. 🙂

Bagikan saja, itu tidak berat

Disable akses root pada phpMyAdmin

phpmyadmin

phpmyadmin

jutaan orang tidak menyadari, bahwa root akses dapat membayakan dirinya sendiri..

melakukan disable root, baik itu login maupun akses, itu memang pedih. bagi sebagian orang yang tidak tau, hehe

metode ini disebut-sebut merenggut kenyamanan dari seorang developer, padahal, yang namanya developer, itu kan sebelum live di production, ya dibuatnya di developer. nah, di production, itu memang harus benar-benar di konfigurasi dengan aman, salah satunya dengan disable root login/akses. jadi kalau production, jangankan root akses, phpmyadmin juga pasti tidak ada, port database juga tidak ada. ya pokoknya seperti itulah, hehehe,

mudah-mudahan kalian mengerti, karena saya tidak sedang berhasrat menulis saat ini. 😀

studi kasusnya linux ubuntu 16

pertama, edit file konfigurasi :

vi /etc/phpmyadmin/config.inc.php

allowroot

allowroot

temukan kata-kata tersebut dalam file yang di edit, pastikan valuenya FALSE

jika belum ada, bisa ditambahkan sendiri

$cfg[‘Servers’][$i][‘AllowRoot’] =FALSE;

kemudian save, dan restart web servernya.

systemctl restart apache2

 

Bagikan saja, itu tidak berat

Konfigurasi One to Many Destination NAT pada firewall Palo Alto

Oke kali ini saya akan bahas tentang saat saya mengkonfigurasi Destination NAT pada firewall Palo Alto.

jadi kasusnya begini, satu buah IP public, bisa di NAT ke beberapa IP server lokal, dalam kasus ini ada empat buah server.

PORT FOWARD

ilustrasinya begitu, saya tidak bisa menggambar 😀

ini kasus baru bagi saya, dan mungkin juga bagi kantor yang tempat saya bekerja sekarang. pasalnya belum ada konfigurasi seperti itu, biasanya, satu IP publik, untuk di NAT kedalam satu IP lokal

maksud dari Destination NAT tersebut adalah, jika user melakukan akses yang bertujuan ke port 80/443 , maka yang menjawab adalah server A , kemudian jika user melakukan akses ke port 70 , maka yang menjawab adalah server B. dan seterusnya.

istilah seperti ini dalam dunia perjaringan adalah port fowarding, yaitu mengarahkan request client ke server sesuai port.

nah untuk melakukan itu di firewall palo alto, ternyata cukup mudah, ( ya kan firewall tersebut harganya ratusan juta, tentunya dilengkapi fitur yang membuat malas memanjakan usernya. 😀

tapi karena ini awal, jadi ya menjadi susah bagi saya, harus mencari tutorial dan bertanya sana sini. dan memakan waktu seharian semalaman lebih untuk proses mencari tahu, untuk implementasinya sendiri memakan waktu seharian juga + trial dan error . 😀 😀

oke, sudah cukup basa basinya, sekarang langsung praktek.

  1. memberikan address pada 4 IP server lokal, dan 1 IP publik. caranya bisa di baca disini

Addresses server pada firewall Palo Alto

2. membuat grup port untuk masing-masing server,

grup port

grup port

diatas adalah salah satu server, server yang lainnya juga sama cara membuatnya.

3. setelah diberikan address, selanjutnya adalah melakukan SNAT dan DNAT kira-kira begini Prof Of Conceptnya

destination nat palo alto

destination nat palo alto

untuk Source NAT ( dari server lokal ke internet ) disini konfigurasinya Many To One, yaitu 4 buah server yang keluarnya hanya 1 buah IP publik, untuk Many to One, tidak perlu menggunakan port fowarding.

nah, untuk Destination NAT, ( dari internet ke server lokal ) disini konfigurasinya Many To One, menggunakan port fowarding.

sampai disini, untuk konfigurasi SNAT DNAT sudah sesuai, tinggal konfigurasi Port security yang akan saya bahas dilain waktu.

bersambung………

Bagikan saja, itu tidak berat

menambahkan kapasitas “diluar jangkauan” pada nextcloud

kasusnya begini, pada server nextcloud yang saya buat, kapasitas penyimpanan hanya saya sediakan sebesar 10 TeraByte, sementara ada user yang meminta kapasitas penyimpanan lebih besar daripada itu, saya juga bingung, doi mau nyimpan apa di server sampai minta sebesar itu, film india kali, hehehehe…

untuk menyelesaikan kasus tersebut. hal yang saya lakukan adalah :

  1. menambahkan kapasitas harddisk server nextcloud
  2. membuat pastisi terpisah pada server untuk user tersebut
  3. attach harddisk tersebut pada akun yang meminta.

point 1 saya selesaikan dengan membuat volume, FIY , cloud servernya menggunakan openstack, jadi saya bisa membuat volume untuk saya attach pada server nexcloudnya. tutorialnya belum ada, nanti nyusul deh.

point ke 2, saya selesaikan setelah membuat volume pada point satu, caranya :

Mempartisi harddisk linux yang lebih dari 2 TB

point ke 3, saya selesaikan dengan langkah-langkah berikut :

login nextcloud

login nextcloud

yang pertama harus login admin dulu, tanpa login admin, kamu bukan apa-apa,. hehehe

setelah login, pada admin, pilih menu settings

setting

setting

kemudian, kamu pilih menu external storages pada Administration

nextcloud

nextcloud

kemudian mulai untuk attach pada akun nextcloud. disini karena bentuknya volume yang saya atatach pada server tersebut, maka saya pilih metodenya local , memasukkan folder berikut akun mana yang di kehendaki. lalu klik centang di sebelahnya.

external storages

external storages

Bai the wayyy, selain metode local, ada juga metode-metode lain, misalnya SFTP , amazon dan lain lain.

sampai disini , sudah selesai. mudah kan.?

Bagikan saja, itu tidak berat

Mempartisi harddisk linux yang lebih dari 2 TB

halo, pada tutorial kali ini adalah cara bagaimana mempartisi harddisk linux yang lebih dari 2 TB.

kasusnya adalah saya membuat volume hdd sebesar 20 TB dan saya attach ke instance server, namun gagal mempartisi menggunakan perintah yang umum, yaitu fdisk.

setelah saya cari tau melalui om google, perintah untuk mempartisi harddisk di linux yang lebih dari 2 TB itu menggunakan perintah parted. oke, cekidot.

fdisk

fdisk

langkah awal adalah memastikan hdd sudah ada di server dan termuat dalam disk mana dengan mengetik perintah :

fdisk -l

dari gambar diatas, hdd sudak berada diserver yang termount di /dev/vdc sebesar 20 TB

parted

parted

langkah selanjutnya adalah mengetikkan perintah parted :

parted /dev/vdc

lalu masukkan perintah-perintah seperti gambar diatas sampai dengan perintah quit.

setelah quit, kini saatnya membuat file system pada harddisk dengan perintah :

mkfs.ext4 /dev/vdc

mkfs.ext4 /dev/sdb1

mkfs.ext4 /dev/vdc

sampai done.

kemudian membuat folder untuk mounting harddisk tersebut, bisa juga di folder yang telah ada, misalnya /media atau /mnt. setelah folder tersedia, berikutnya ketikkan perintah mount :

mount /dev/vdc /mnt

kemudian cek dengan perintah : df -h

Screenshot_1059

harddisk sudah termounting ke folder dan dapat digunakan.

Bagikan saja, itu tidak berat

menambah kapasitas volume pada project di openstack

hai, tutorial kali ini adalah menambahkan kapasitas volume pada project di openstack.

kasusnya adalah, sewaktu project di buat, kapasitas volume pada project tersebut hanya di buat sebesar 19 TeraByte. sementara, saya ingin membuat sebuah volume yang lebih besar dari itu. otomatis donk, jadi limited. untuk menambahkan, berikut caranya, mudah kok lewat GUI.

project openstack

project openstack

yang pertama, dari dashboard menuju menu admin, kemudian cari menu project, lalu kamu pilih project mana yang akan di edit jumlah volumenya.

edit

edit

setelah itu, pilih menu edit project > quotas. maka akan tampil seperti dibawah ini :

Screenshot_1053

kamu tinggal edit sesuai keinginan, lalu klik save. tapi yang perlu di ingat, kamu harus tau besaran fisik dari harddisk yang kamu miliki agar tidak over.

sampai disini, volume sudah berubah

Screenshot_1050

Bagikan saja, itu tidak berat

Tshoot error FTP directory listing

berawal dari laporan, jika salah satu client tidak bisa akses server via FTP. saya sendiri sudah tidak suka dengan FTP, tidak secure, tapi ya gimana lagi, permintaan client, katanya client adalah raja, hahaha

WhatsApp Image 2020-03-24 at 18.07.23

nah, seperti itu tampilannya, saya menduga ada yang tidak beres dengan jalur FTPnya.

disana tertulis sudah terkoneksi dengan server, tapi server tidak mau menampilkan directory, artinya, masih ada module yang di protect oleh firewall.

entah mengapa, saya langsung tertuju ke firewall, dugaan saya kuat kesitu soalnya, wkwkkw

oke, saya kemudian OTW cek firewall. jadi cara ceknya begini :

  • mengetahui IP publik dari FTP yang tidak bisa tersebut.
  • cek di trafik incoming ( dari jaringan luar ke server tertuju ke IP publik diatas, ditambah dengan port tujuan, ya. port 21 [FTP]
palo alto

palo alto

saya merasa ada yang kurang tepat saja sih, hehehe, oiya , firewall yang saya gunakan ini palo alto.

setelah melihat trafik, saya OTW ke rule security dari server tersebut, saya tambahkan aplikasi FTP pada rule,

Screenshot_966

setelah itu, tidak lupa saya commit perintahnya. karena hidup ini butuh komitmen, hahaha..

dan, saya coba lagi, akhirnya berhasil.

Screenshot_968

oke, cukup sekiloan laporan trouble shoot dari saya,

terima gaji.

Bagikan saja, itu tidak berat

Troubleshoot web server yang “lelah” karena melayani request

halo gaesss. catatan kali ini tentang Troubleshoot web server yang “lelah” karena melayani request.

jadi ceritanya pagi-pagi seorang client berkabar kepada saya melalui pesan singkat WA, mengabarkan kalau doi gak bisa akses aplikasi.

Screenshot_830

oke, saya cek emang bener aplikasinya tidak dapat diakses. lantas saya mulai remote servernya. pertama-tama, yang saya lihat adalah service default untuk menjalankan aplikasi ini, yaitu web server, dan database server.

Screenshot_834

dari hasil pengecekan, service masih berjalan. berarti dari sisi service aman. tahap berikutnya, saya melihat log dari service web server.

brute force attack

brute force attack

Dari error terbaca bahwa terdapat request file dalam jumlah besar dalam waktu bersamaan, terdapat limitasi dari konfigurasi default security server untuk membatasinya agar load CPU dan RAM tidak melonjak.

hmmm, sampai disini, saya curiga server ini sedang di attack, kalau memang manusia yang request, pasti tidak mungkin sebanyak ini. ini pasti robot ( script ). tahap berikutnya, saya cek firewall.

melakukan pengecekan trafik pada firewall untuk melihat request yang masuk ke server

brute force attack 2

brute force attack 2

Benar terdapat request dalam jumlah besar yang koneksinya di reset oleh server.

kemudian melakukan pengecekan threat pada firewall untuk melihat paket yang masuk ke server.

Screenshot_831

Server sedang diserang dengan metode Dictionary Attack pada port 80.

Dikarenakan kebutuhan mendesak, agak layanan kembali hidup dan server memiliki spesifikasi fisik CPU 16 core dan RAM 32 GB, saya memutuskan untuk meng-allow trafik pada server. Dengan spesifikasi diatas, server diperkirakan mampu menahan script scanner.

spek server

spek server

cara Troubleshootingnya adalah Melakukan edit pada file /etc/security/limits.conf

kemudian menambahkan pada baris akhir file tsb dengan :

ulimit -n 16384

setelah itu melakukan restart pada web server.

layanan kembali dapat digunakan.

Bagikan saja, itu tidak berat

troubleshoot No route to host setelah ganti port SSH di centOS

hmmm, ceritanya, saya baru saja ganti port SSH di linux untuk alasan keamanan. cara gantinya ada pada artikel ini

Hardening Server #1 . merubah default port akses SSH pada linux

tapi yang muncul malah error seperti ini

ssh error

ssh error

setelah saya googling, rupanya karena selinux dan firewall saya aktif. cara solvednya bukan dengan mematikan selinux maupun firewall, tapi saya menambahkan port SSH costum saya pada rules firewall dan selinux.

semanage port -a -t ssh_port_t -p tcp #PORTCOSTUM

kemudian di firewallnya juga.

firewall-cmd –permanent –add-port=#PORTCOSTUM/tcp
firewall-cmd –reload

jika muncul tulisan success, silahkan coba remote lagi servernya menggunakan port yang baru.

terima kasih telah membaca,

Bagikan saja, itu tidak berat