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.

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

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

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

Pengertian Email phishing

cerita kali ini adalah tentang email phishing, tidak main-main, email phishing ini tertarget kepada salah satu Menteri di Indonesia raya.

email phishing

email phishing

jadi ceritanya lagi cek report email, karena Menteri ini sudah tidak menjabat, saya iseng cek akun email atas nama beliau. benar saja, akun emailnya masih ada tetapi dalam keadaan lock.

BTW mau ngasih pengertian phishing, tapi sudah banyak sih pengertiannya di internet. intinya, pelaku mengirimkan email yang bertujuan agar si penerima ( dalam hal ini Menteri ) untuk melakukan klik pada URL yang ada dalam isi email tersebut.

email phishing

email phishing

email ini mengakui dari official ZIMBRA, dengan bahasa yang baik dan benar sesuai EYD. tapi kalau di lihat dari webmail pelaku, jelas ini bukan official ZIMBRA.

dan kalau di klik, maka secara otomatis, komputer/laptop/hp akan terinstall aplikasi Malware.

email phishing

email phishing

untungnya, browser sudah mendeteksi bahwa web tersebut mengandung Malware, tapi jika itu website baru di bangun, mungkin beda ceritanya.

dan yang lebih menguntungkan lagi, Bapak Menteri tidak pernah membuka email. 😀

tapi, FIY ( for yor informasyon ) , selain email, sekarang phishing sudah berkembang melalui pesan singkat loh, misalnya WA atau yang lain. dan hebatnya lagi, phishing sekarang sudah punya kemasan baru, yaitu dalam bentuk gambar.

jadi PoC nya, setelah kamu klik gambar tersebut, maka tamatlah riwayatmu. hahahaha..

ah, sudah, jadi begitu saja cerita saya kali ini yang tidak bermanfaat ini.

terima gaji.

Bagikan saja, itu tidak berat

Volume haddisk server tidak berkurang walaupun sudah hapus file ? begini solusinya

Halo, catatan kali ini tentang Volume haddisk server tidak berkurang walaupun sudah hapus file.

volume harddisk pada salah satu server sudah mencapai 98 % , biasanya jika sudah 100% , service-service akan macet alias tidak jalan. mengatasi itu, saya melakukan hapus file yang tidak perlu.

biasanya, file-file yang saya hapus itu log, tapi bukan log terakhir ya. melainkan log-log yang sudah lama.

selain file log, ada juga file temporary yang lumayan dan selalu besar.

kedua cara itu bukan solusi yang benar sih, karena bagaimanapun, log itu sangat penting. log itu dalam bahasa manusianya adalah kenangan, jadi menurut saya kenangan itu penting. kenangan kamu penting gak? kalo gak penting ya hapus saja. 😀

oke balik ke solusi. kalau ngomongin kenangan ini bisa panjang ceritanya 😀

solusi yang baik adalah membuat server log berukuran besar, jadi log bisa kita lempar ke server log tsb. server itu hanya berisi kumpulan log log dari berbagai server maupun device seperti router, firewall dan lain-lain.

tapi karena saya belum membuat server log, makanya untuk mengatasinya saya menghapus file tersebut.

hdd 98%

hdd 98%

ini penampakan hdd yang sudah 98%. padahal saya sudah hapus beberapa file. harusnya sudah berkurang ya.

nah, perintah yang digunakan untuk melihat itu adalah lsof ( list open files ) . penjelasan tentang lsof bisa kamu cari di google yah. 😀

kalau belum terinstall, kamu bisa menginstall lsof dengan perintah ( untuk linux centos ) :

[root@kb-management ~]# yum install lsof

yum install lsof

yum install lsof

list open files

list open files

nah, ketahuan itu, jadi maksudnya disini adalah, file-file yang sudah terhapus itu rupanya masih tersimpan di memory, jadi statusnya belum benar-benar terhapus. untuk menghapusnya, kita ketik perintah kill, begini contohnya :

kill -9

kill -9

kill itu bahasa inggris, artinya membunuh kalau tidak salah. jadi maksudnya prosesnya kita bunuh secara kejam dan tanpa maap 😀

setelah di kiil, harddisk saya kembali seperti harapan saya dan semua banyak pihak. hehe

df -h

df -h

ketik df -h untuk melihatnya.

sekian celotehan dari saya yang sangat newbie dan unfaedah ini.

Bagikan saja, itu tidak berat

Hardening Server #2 Instalasi dan konfigurasi Malware Detect pada linux server

Pengalaman kali ini bercerita tentang instalasi dan konfigurasi Malware Detect pada server linux.

akhir-akhir ini jadi konsentrasi sama security karena salah satu server terkena RootKit. jadi Parno 😀

oke, malware detect ini berfungsi untuk mendeteksi script malware yang berada pada server. biasanya, script itu nempelnya di folder website.

oke, berikut langkah-langkahnya.

pertama-tama mari ucapkan do’a, kemudian, download malware detect :

ant@linux:~$ wget http://www.rfxn.com/downloads/maldetect-current.tar.gz

ant@linux:~$ tar -xvf maldetect-current.tar.gz

ant@linux:~$ cd maldetect-1.6.4

ant@linux:~$ ./install.sh

lakukan konfigurasi maldetect dengan perintah :

ant@linux:~$ nano /usr/local/maldetect/conf.maldet

sesuiakan script dengan perintah ini :

email_alert=1
email_addr=gacanepa@localhost
email_subj="Malware alerts for $HOSTNAME - $(date +%Y-%m-%d)"
quar_hits=1
quar_clean=1
quar_susp=1
clam_av=1

setelah di sesuaikan, instalasi clamav , clamav ini anti virus, jadi cara kerja malware detect ini membuat Perjanjian Kerja Sama ( PKS ) antara malware detect dengan clamav.

ant@linux:~$ apt install clamav

freshclam

selesai, instalasi dan konfigurasi selesai, gampang kan ? banget.

sekarang saya uji coba scan di server saya :

ant@linux:~$ maldet –scan-all /var/www/

hasilnya :

cara install malware detect

tiga file terjaring razia malware detect dan langsung dikarantina, otomatis, fungsi dari aplikasi yang didalamnya terdapat file tersebut, tidak bisa berjalan sesuai fungsi sebelum file tersebut dihapus dari folder karantina.

/usr/local/maldetect/quarantine

Bagikan saja, itu tidak berat

Bagaimana bisa sih server terserang Rootkit ? begini kronologinya.

Beberapa waktu lalu, salah satu Virtual Private Server terserang Rootkit.

Rootkit ini adalah kode jahat atau didalam dunia IT biasa disebut Malware. melakukan pekerjaan di server yang terinfeksi sesuai dengan perintah programmernya. ya pokoknya kalau mau tau lengkap tentang rootkit, bisa brosing-brosing yaks.

setelah di telusuri dari log, baik log firewall maupun log sistem operasi. kemungkinan besar rootkit itu masuk melalui port default SSH , yaitu 22.

metode yang digunakan adalah Brute Force, yaitu sebuah teknik mencocokkan kombinasi username dan password untuk akses ke remote SSH.

Brute Force Attack

nah, kok bisa masuk melalui port tersebut ? setelah di telusuri, kombinasi username dan password server yang terjangkir Rootkit untuk remote SSH itu sangat default, dengan loginnya root ( user tertinggi pula ).
username : root
passwd : rahasia

berikut bukti bahwa ada ribuan kali percobaan untuk login,

Brute Force 3

tidak butuh waktu lama untuk Script Brute Force tersebut mampu menebak kombinasi loginnya.

Brute Force Attack 1setelah berhasil masuk ke server, scipt tersebut menanamkan Malware, melakukan Sync Flood ke IP luar Negeri.

ini malwarenya :

Brute Force 5

Screenshot_535

dan ini kegiatannya :

Brute Force 5

ini bisa terjadi juga dikarenakan konfigurasi firewall yang kurang tepat, sehingga mengijinkan trafik yang dinilai tidak lazim untuk melewati jaringan.

sekian, mitigasi dari saya. semoga kejadian ini tidak terjadi lagi. amin.

Bagikan saja, itu tidak berat