Jiwa hobi itu kadang ngerusak pikiran dan kesehatan, jam 01.00 buka laptop gara-gara scroll medsos

jadi seperti orang normal biasanya, sebelum tidur, saya scroll-scroll medsos untuk sekedar melihat aktifitas rekan-rekan medsos. biar cepet ngantuk sih maksudnya…

nah, pas lagi scroll medsos, ada temen yang posting lagi disebuah acara, sepertinya di hotel, acara launching aplikasi, dan yang lauching Mentri.

acaranya di hotel , mewah, dihadiri menteri dan pejabat, serta kolega pastinya. saya yakin, ini program yang baik dan akan berhasil dikemudian hari, seperti program-program berbasis aplikasi lainnya, punya pemerintah tentunya….

karena saya insan IT, tentunya fokus saya tertuju pada platform yang digunakan, bukan pada core bisnis programnya lah ya, terlalu luas ah. fokus aplikasinya saja..

iseng saja buka di HP, kok ya bikin penasaran aplikasi, akhirnya memutuskan untuk membuka laptop, padahal udah jam 01 malam, resiko terbesar saya jika buka laptop jam segitu adalah aungan istri, karena kalau asam lambung saya kambuh, istri yang paling berjasa di hidup saya. sambil melipir intip istri yang sudah tidur, saya mengendap-endap buka laptop…

kemudian saya buka aplikasinya menggunakan laptop, hal pertama yang saya lakukan adalah intercept aplikasi tersebut. aplikasinya berbasis web,

Intercept atau pengintersepsian dalam dunia keamanan siber dan pengembangan perangkat lunak mengacu pada tindakan mencegat atau memotong komunikasi antara dua pihak, sering kali untuk memeriksa, memodifikasi, atau menyadap data yang dikirimkan. Dalam konteks web atau jaringan, intercept umumnya berarti menangkap data yang dikirim antara klien (misalnya, browser pengguna) dan server.

dari proses intercept, terdapat beberapa informasi, diantaranya :

  1. ada 2 node yang merespon, frontend dan backend ( API )
  2. server menggunakan ubuntu linux dengan web servernya nginx
  3. bahasa pemograman menggunakan next.js untuk front endnya.

nah, dari informasi awal tersebut, sudah bisa dilakukan langkah selanjutnya. ini aplikasi bersifat register, saya sudah register akun, ada beberapa file upload, dan memiliki potensi untuk dilakukan injeksi backdoor didalamnya, namun, karena bahasa pemograman menggunakan java, menurut saya agak efford untuk melakukannya.

kemudian, saya melirik ke respon disisi backend, yaitu API respon.

masih pada mode intercept, struktur folder pada API dapat dilakukan crawling, sehingga mengetahui berbagai respon dari API.

nah, yang paling mengejutkan, ada Bug IDOR pada API tersebut,

IDOR (Insecure Direct Object References) terjadi ketika aplikasi tidak mengamankan akses ke sumber daya atau data berdasarkan identitas pengguna, sehingga pengguna dapat mengakses data milik pengguna lain hanya dengan mengubah ID dalam URL atau parameter.

IDOR nya seperti apa sih, yaitu terdapat informasi sensitif dan ter-expose ke publik, tentunya ini sangat berbahaya, karena data dan informasi tersebut dapat digunakan untuk berbagai tindak kejahatan,

terdapat, nama , email, dan nomor telp

nah, pas saya mau explore untuk Bug berikutnya, tiba-tiba laptop saya low batere, saya juga jadi ke inget asam lambung saya. akhirnya saya memutuskan untuk membiarkan laptop saya sampai mati total. dan tidur……

pointnya , tujuan hacker / peretas itu ada 2,

  1. menguasai sistem, setelah dikuasai, mereka bisa menjarah data, dan memanfaatkan sistem atau infrastuktur untuk kebutuhan mereka.
  2. mendapatkan data sensitif, biasanya mereka mencari data sensitif untuk dijual, dibuat kejahatan, atau sekedar membuat ancaman.

jadi, waspadalah.

tulisan ini hanya bersifat informasi dan pembelajaran, gunakan dengan bijak.

oiya, saya juga baru lulus sertifikasi Alibaba Cloud Security . kalau kamu butuh jasa saya untuk membantu manage cloud boleh donk japri kesaya. 😀 😀

Bagikan saja, itu tidak berat

website diretas dan diinject link slo*t gac*or , kita perbaiki.

sudah lama banget saya gak nulis di blog ini. entah karena sibuk, atau males. kombinasi sih kayaknya hehe.

padahal, banyak banget kerjaan yang bisa di dokumentasiin di blog ini, ya bisa untuk sekedar kenangan, atau portofolio wkwkw

kali ini, saya lagi benerin sebuah website punya client, goverment yang laporannya ada link sl*ot g*acor di dalam website itu. si client meminta saya untuk membersihkan link dan menutup atau mencari tau celah keamanannya.

perpus5

hal pertama yang saya sampaikan kepada client adalah : “apakah sistem masih berjalan normal ?” , “ya, masih normal, jawab sang client”

saya meminta ke client untuk segera melakukan takedown atau memutus trafik ke website dari luar atau dari public. hal ini untuk kepentingan mitigasi.

setelah itu, saya meminta akses server kepada client, dan meminta untuk melakukan karantina, selain saya, jangan ada yang mengakses server tersebut.

kemudian, saya melihat websitenya. dari tampilan websitenya, ini adalah website perpustakaan yang source codenya berasal dari sebuah lembaga yang mengampu terkait perpustaaan, ya, benar, itu PERPUSNAS. dengan engine websitenya yang diberi nama INLISLite . 

INLISLite dibangun menggunakan bahasa pemograman PHP dan database MySql dengan memanfaatkan framework YII.

kemudian saya mencari kemungkinan Vulnerability yang terdapat pada INLISLite ataupun framework YII di mesin pencari google.

saya menemukan vulnerability pada INLISLite. berikut referensinya : Inlislite 3.2 Insecure Settings ≈ Packet Storm (packetstormsecurity.com)

hmmm, kemudian saya lakukan PoC pada website si client, namun tidak bisa. ini dikarenakan kredential tidak valid, ya bisa dirubah oleh admin, atau oleh siperetasnya. hehe

oke, lanjut kemudian saya login ke server. hal yang saya lakukan adalah melihat file log berikut besarannya. apakah syslog yang dibuat oleh administrator itu baik atau tidak. melihat dari sizenya, masih kurang baik sih.

saya tidak langsung membaca isi dari file log, karena bisa mual. saya berselancar dahulu sambil berenang renang ke folder aplikasi itu berada. folder yang saya sorot adalah folder yang memiliki permission full oleh web server. kebetulan, webservernya apache. biasanya, folder website yang memiliki full permission adalah folder dimana user bisa melakukan CRUD pada file/folder.

perpus1

nah, ada yang aneh satu, saya lanjut berselancar lagi deh di folder folder lainnya.

perpus2

nah, nemu lagi deh, coba saya pastikan isi filenya apa

perpus6

fix, ini php backdoor.

disini sekalian saya lihat, kapan siperetas melakukannya.

dan kemudian saya mencari file-file backdoor lainnya.

dari hasil analisis ini, menghapus file backdoor saja tidak cukup. karena pasti peretasnya akan kembali. saya lanjut analisis untuk menemukan celah keamanan pada web tersebut.

nah, saatnya berpusing ria, hehe. file log ini isinya ribuan, bahkan ada jutaan baris. dari hasil analisis diatas, saya sedikit trckly untuk menemukan celah keamanannya.

file backdoor sudah ketemu, berarti saya mencari log yang berkaitan dengan file backdoor tersebut.

perpus3

dari hasil percarian yang bernilai 200 , artinya 200 ini adalah respon ditanggapi oleh server. terlihat peretasan dilakukan sekitar 27 may 2023. namun, posisi file backdoor sudah terupload, belum kelihatan dari mana dia melakukan upload file backdoor tersebut yang disinyalir disitu letak celah keamanannya.

dari hasil percarian diatas, terlihat kan ya IP dari peretas, so sudah pasti dia pakai VPN. saya lanjut mencari tau celah keamanannya dengan membaca log dari IP tersebut. tentunya yang dilakukan pada tanggal 27 may 2023 atau sebelumnya.

perpus4

nah. sampai disini, bisa keliatan kalau emang bug atau vulnerabilitynya itu sama seperti yang saya sampaikan direferensi. berarti emang kredentialnya udah dirubah sama siperetas.

oke, saya lanjut, darimana dia berhasil upload backdoor itu. saya melanjutkan membaca log yang memiliki nilai POST pada diretory backend.

perpusdari hasil pencarian, ketemu. jadi celah keamanannya pada modul katalog dengan cara menambahkan konten-digital, darisinilah peretas mengunggah file backdoor pertamanya.

jadi kesimpulannya :

*peretas memanfaatkan celah keamanan atau vulnerability yang terdapat pada INLISLite

*peretas mengexploitasi celah keamanan dengan mengunggah backdoor atau malware dengan melakukan baypass file upload pada menu konten digital.

*tujuan peretas adalah membuat link sl*ot gac*or pada website

*motif peretas adalah ekonomi.

untuk saat ini, saya lagi bersihin backdoornya, dan ini butuh waktu. karena gak bisa dilakukan dengan bantuan antivirus atau anti anti lainnya, apalagi anti nyamuk.

setelah saya bersihin, baru saya backup database dan file appsnya. untuk jaga-jaga kalau rupanya siperetas punya hidden malware. utamanya, nutup celah kemanannya dengan menghapus folder backend atau merubah kredentialnya.

udah ah, segitu dulu ya. hehe.

 

Bagikan saja, itu tidak berat

Extend disk CentOS Virtual Server pada VMWare Vsphere

menambahkan disk pada virtual server centos logical volume di VMWare Vsphere

tulisan ini sebagai catatan pekerjaan agar tidak lupa dan sebagai Portofolio, kali aja ada yang lirik 😀

  1. harus login dulu ke dashboard Vspere nya.
  2. kemudian, pilih VM yang akan di extend disknya, dan klik kanan, dan pilih edit setting.

Screenshot_737

Screenshot_738

lalu kamu bisa edit jumlah disknya mau jadi berapa. setalh itu , klik Oke.

 

5. lanjut, SSH ke CentOS servernya. ketik fdisk -l untuk mengetahui diskname dan apakah disk sudah tertambah

[root@localhost /]# fdisk -l

Disk /dev/sda: 2199.0 GB, 2199023255552 bytes, 4294967296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009a189

 Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 419430399 208665600 8e Linux LVM

Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 8455 MB, 8455716864 bytes, 16515072 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-home: 151.5 GB, 151523426304 bytes, 295944192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

oke, sudah tertambah ya jadi 2 TB. lanjut ketik fdisk /dev/sda dan seperti langkah2 dibawah ini

[root@localhost /]# fdisk /dev/sda

WARNING: The size of this disk is 2.2 TB (2199023255552 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID 
partition table format (GPT).

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sda: 2199.0 GB, 2199023255552 bytes, 4294967296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009a189

 Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 419430399 208665600 8e Linux LVM

Command (m for help): n
Partition type:
 p primary (2 primary, 0 extended, 2 free)
 e extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (419430400-4294967295, default 419430400): 419430400
Last sector, +sectors or +size{K,M,G} (419430400-4294967294, default 4294967294): 4294967294
Partition 3 of type Linux and of size 1,8 TiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

kamu bisa reboot VM nya, atau ketik partprobe , saya pilih reboot saja biar hackul yakin.

kemudian ketik vgs untuk mengetahui volume groups

[root@localhost ~]# vgs
 VG #PV #LV #SN Attr VSize VFree
 centos 1 3 0 wz--n- <199,00g 4,00m

oke, disitu nama volume groupnya centos

kemudian, ketik lsblk, untuk mengetahui letak dan nama disknya yang baru

[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2T 0 disk 
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 199G 0 part 
│ ├─centos-root 253:0 0 50G 0 lvm /
│ ├─centos-swap 253:1 0 7,9G 0 lvm [SWAP]
│ └─centos-home 253:2 0 141,1G 0 lvm /home
└─sda3 8:3 0 1,8T 0 part 
sr0 11:0 1 1024M 0 rom

sda3 adalah nama disk yang baru itu. lalu, kita tambahkan disk yang baru itu pada volume group centos dengan perintah :

[root@localhost ~]# vgextend centos /dev/sda3
 Volume group "centos" successfully extended

lanjut, kita lihat dulu, apakah command diatas berhasil, yaitu volume goups sudah tertambah :

[root@localhost ~]# vgdisplay centos | grep Free
 Free PE / Size 473088 / 1,80 TiB

sudah tertambah ya, jadi 1.8 TB. lanjut , kita extend, nah disini bebas, mau extend full, atau beberapa sesuai kebutuhan, dan juga, yang di extend sesuai mount point, ya istilahnya bagi-bagi kuelah. ada beberapa mount point pada volujme group, khususnya centos, ada root,swap, dan home disini saya akan extend yang root saja dengan menambahkan 500GB dari 1.8 TB. untuk extend full

 lvextend -l 100%FREE /dev/centos/root

[root@localhost ~]# lvextend -L+500G /dev/centos/root 
 Size of logical volume centos/root changed from 50,00 GiB (12800 extents) to 550,00 GiB (140800 extents).
 Logical volume centos/root successfully resized.

setelah di tambahkan, tinggal proses sync meta data dengan perintah growfs

[root@localhost ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks
 = sectsz=512 attr=2, projid32bit=1
 = crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=13107200, imaxpct=25
 = sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=6400, version=2
 = sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 13107200 to 144179200

kemudian lihat, apakah sudah tertambah

[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3,9G 0 3,9G 0% /dev
tmpfs 3,9G 0 3,9G 0% /dev/shm
tmpfs 3,9G 8,8M 3,9G 1% /run
tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 550G 50G 501G 10% /
/dev/sda1 1014M 194M 821M 20% /boot
/dev/mapper/centos-home 142G 109G 33G 77% /home
tmpfs 783M 0 783M 0% /run/user/0

 

Bagikan saja, itu tidak berat

Mitigasi host yang menjadi bot

awalnya saya hanya melakukan rutinitas pengecekan firewall di kantor yang saya tangani.

dari hasil monitoring, ada lalu lintas yang tidak wajar dari salah satu host. kemudian saya mencoba mencari tau lebih jauh.

aktifitas tidak wajar

aktifitas tidak wajar

dari gambar diatas, dapat diketahui bahwa host tersebut berasal dari farmserver, dimana aktifitas outgoing yang tidak normal menuju port tertentu.

mitigasi selanjutnya saya remote SSH server tersebut. hal pertama yang saya cek adalah konsumsi resource

resource penuh

resource penuh

selain resource penuh, ada proses yang tidak wajar berjalan pada server, saya mitigasi lebih jauh terkait proses tersebut dengan melihat lebih rinci dengan perintah :

ps aux | grep netsnd

proses tidak wajar

proses tidak wajar

hasilnya adalah gambar diatas.  ada proses yang menjalankan file tttt yang targetnya random. oke, disini sudah jelas kalau memang aneh. saya lanjutkan migitasinya dengan mencari keberadaan file tttt dan kemudian membaca isi file tersebut,

letak file tttt dan rekan2 nya

letak file tttt dan rekan2 nya

dari hasil pencarian, menemukan letak file tersebut, kemudian saya membaca isi dari file tersebut dan file-file lainnya.

menjalankan nmap

menjalankan nmap

dari sana dapat dibaca, bahwasannya, proses yang tidak wajar tersebut adalah menjalankan perintah nmap pada host random di internet.

proses tersebut akan memakan resource, baik CPU, RAM dan Network.

darisana sudah bisa disimpulkan, bahwa server tersebut sudah menjadi ROBOT yang dikendalikan oleh orang lain diluar sana untuk proses-proses yang dia inginkan.

oiya, selain menjalankan perintah nmap, rupanya server tersebut juga digunakan untuk mining

miner

miner

siapa pelakunya ? bagaimana cara masuknya ? 

diperlukan mitigasi lebih dalam untuk mengetahui pelakunya, sementara ini, server tersebut saya karantina agar tidak berproses sementara waktu, dengan demikian, aplikasi diserver tersebut juga tidak dapat diakses sampai dengan waktu yang belum ditentukan.

terima kasih telah mau membaca. :*

Bagikan saja, itu tidak berat

Mengatasi masalah mailer LPSE

masalah ini pertama muncul saat saya mendapat laporan dari UKPBJ bahwasannya penyedia tidak mendapatkan balasan email, baik pendaftaran maupun reset password

hal yang saya lakukan adalah login ke server, memastikan koneksi ke mailer lkpp terkoneksi, setelah saya cek, rupanya tidak terkoneksi mailernya dari server lpse ke server lkpp.

status connect, tapi tidak respon

status connect, tapi tidak respon

pengujian dengan mengetikkan perintah

telnet mail.lpse.lkpp.go.id 465

kemudian, saya doble check dengan telnet dari laptop local saya. hasilnya

nah ini yang benar

nah ini yang benar

rupanya error terjadi karena server mail lpse lkpp IP nya berubah. cara perbaikan di server lpse nya adalah dengan melakukan edit file hosts, dengan perintah

nano /etc/hosts

sesuaikan seperti ini

sesuaikan seperti ini

jika sudah, jangan lupa save, kemudian lakukan perintah pengujian telnet seperti diatas

telnet mail.lpse.lkpp.go.id 465

dan pastikan, responnya sudah seperti gambar dibawah ini :

nah ini yang benar

nah ini yang benar

jika sudah seperti gambar tsb, berarti sudah berhasil di perbaiki dan silahkan di coba dengan mendaftarkan penyedia,

SARAN : gunakanlah mailer sendiri, karena mialer LKPP saya lihat sudah ngos ngosan.

 

terima kasih.

 

Bagikan saja, itu tidak berat

Analisa Sistem dan Infrastruktur untuk pemecahan masalah ( khusus pemula )

halo semua, seperti biasa, nulis untuk kebutuhan catatan saja bagi saya. atau bisa juga sebagai Portofolio, kali aja artikel saya ini di lirik sama seseorang yang sedang membutuhan jasa saya. hehehe wkwkwk. judulnya itu analisa sistem dan infrastruktur untuk pemecahan masalah.

oiya, artikel ini khusus pemula, untuk yang sudah Pro = Profesional, jangan dibaca. karena saya bisa diketawain. wkwkwkwkw begitu. karena ini analisa abal-abal alias sembarangan. saya sendiri baru pertama kali melakukan analisa se kompleks ini. permasalah ini sudah beberapa bulan terjadi, dan saya baru sempat nulisnya sekarang.

berawal dari laporan client, bahwa aplikasinya lambat di akses. errornya itu lo yang bikin menarik. :

error tcp

error tcp

dari error diatas, rata-rata mahluk hidup di muka bumi ini pasti menduga ada masalah dengan jaringan, lalu mereka akan berasumsi bahwa bandwith di servernya bermasalah. karena mereka buka yutub aman kok, dan web-web lain aman. bandwith servernya nih pasti. gitchu~~~

btw, wait… eh, itu di akses jam 11 malam loh, (lihat pojok kiri atas). harusnya, jam segitu bandwith server gak tinggi. oke deh, untuk memanstikan, saya terpaksa hubungi pihak provider, apakah benar, pada jam segitu bandwith mentok. dan jawabannya, tidak. mentoknya kalo siang wkwkwkw.

oke, kita bahas yang benerannya, error tersebut terjadi karena ada lost koneksi dari client (HP) ke server aplikasi. penyebabnya ? bisa jaringan di client, jaringan di server, query, bandwith, daaaaaaaann server yang terlalu sibuk, gak tau deh ngapain dan lain-lain, banyak deh. oke, kita eliminasi masalah, ini yang penting, bisa eliminasi. seperti indonesian idol aja ya. wkwkkw

A. eliminasi permasalahan

  1. internet client bermasalah? tidak mungkin. karena doi bisa buka yutub dan web web lain
  2. trafik network server bermasalah, ? tidak mungkin juga. karena itu diakses jam 11 malam, yang begitu di konfirmasi ke pihak provider juga aman.
  3. logic dari aplikasi, ? bisa jadi. mari kita cek untuk memastikan.
  4. utilitas server bermasalah ? bisa jadi, mari kita cek untuk memastikan.

B. cek utilisasi server

kemudian, saya akses server. hal pertama yang dilakukan adalah ketik htop . wkwkw, ini perintah paling lazim dilakukan untuk liat kondisi server.

dan ternyata, benar… resourcenya CPU nya tinggi banget. nah, ada apa ini ? wah wah.. kok bisa. ini yang bikin error disisi usernya

mentok cuk

mentok cuk

wealah, kok bisa ya CPU 16 core mentok. ini server ngapain ya ? seperti sedang dipakai mining Bitcoin ajah, wkwkkw. sek. kok ya jadi kepikiran ya mining Bitcoin pake server, lumayan juga buat nambah asupan gizi dimasa pandemi gini, wkwkwkw. wes wes sadar.

agak aneh bagi saya, dan bagi teman-teman yang saya tanyai. apalagi setelah melihat dari fungsi aplikasi, kegunaan, jumlah user akses, dan logicnya. 16 core VCPU harusnya udah lebih dari cukup.

nah, bagi orang yang panikan, biasanya langsung buru-buru untuk menjustifikasi masalah pada cpu yang penuh, dan harus di tambah, tidak main-main, 4 kali lipat sekaligus. wew, emangnya mau bikin Data Center Bos pakai 64 core ??? 😀 lagian, belum tentu kan masalahnya teratasi ????. tenang, mari kita cari tau masalahnya lebih dalam.

C. cek aplikasi yang memakan resource

ada dua aplikasi yang tertinggi memakan resource dari server tersebut, yang pertama database, yang kedua web server. saya melakukan penangkapan slow query log pada kedua aplikasi tersebut. yang pertama backend web server hasilnya :

Screenshot_2

benar, aplikasi tersebut menggunakan engine php untuk menjalankannya. perlu diingat, php itu bukan akronim dari Pemberi Harapan Palsu , ya.

dari error php tersebut mengarah ke database.

Screenshot_1

benar, satu query di eksekusi sampai dengan 15 -20 detik, panteslah error disisi clientnya TCP error.karena server gagal melayani permintaan dari client.

sampai disini, sysadmin harus berkomunikasi dengan Programmer dan Database Engineer. harus ada hubungan yang harmonis antara ketiga elemen tersebut.

hubungan ini tidak akan terjadi jika sebuah project hanya di handle oleh satu orang saja. biasa di sebut Full Stack Developer. dia programmernya, dia database enginernya, dia juga sysadminnya. bisa mabok darat doi. wkwkwkw

sysadmin menanyakan kepada Database engineer, apakah query pada aplikasi sudah di sederhanakan secara maksimal. jika jawabannya sudah, namun masih terdapat error slow query log. maka harus mencari penyebab lainnya.

D. pengecekan di sisi perangkat.

pengecekan dilanjutkan disisi perangkat. yang berhubungan dengan itu adalah perangkat Input Output. ada dua, NIC dan Disk. saya cek NIC terlebih dahulu. setelah di cek, NIC dalam kondisi baik. NIC dengan 10 Gbps dapat dilewati dengan mulus oleh data-data yang di transfer.

kemudian say cek Disk. untuk cek disk, bisa menggunakan hdparm, fdisk, dll, banyak toolsnya, disini saya menggunakan fio. yaitu aplikasi untuk mengecek Read & Write pada Disk. dan, setelah di cek ini hasilnya :

iops

iops

FYI, server ini masih menggunakan HDD , IOPS segitu untuk digunakan aplikasi yang trafik dan Read Write datanya tinggi, sangat jelek, bahkan bisa dikatakan jeblok. lihat saja Readnya, hanya 38.

beberapa orang yang pasrah dengan keadaan, maksudnya ya hanya punya server itu dan gak mungkin upgrade, maka akan mengakali dengan memecahnya menjadi banyak bagian aplikasi pada server.

untuk aplikasi, bisa menggunakan teknologi kekinian yang biasa di kenal Microservices. bisa di baca disini : https://medium.com/codelabs-unikom/microservices-apaan-tuh-b9f5d56e8848

untuk database, bisa upgrade ke yang lebih mumpuni untuk pengolahan data besar, Postgresql, atau Monggo DB lebih sangat bagus. setelah itu di cluster. Read dan Write database di pisah, menggunakan Proxy. pasti akan jadi pekerjaan berat nan keren. ya gimana lagi, adanya server itu. wkwkwkw

solusi yang kedua, upgrade SSD, maka masalah IOPS beres. begini penampakan IOPS yang menggunakan SSD

iops2

jauh banget kan ya ? hehehe

oke. lanjut.

pada kasus ini, server sudah upgrade menggunakan SSD, dan ternyata, aplikasi sudah beres, aman dan kenceng.

coba deh di lihat CPU nya, pasti tidak load mentok lagi. karena query yang di Read dan Write di Dsik tidak antri, tidak lama lagi waktunya, otomatis, CPU juga tidak bekerja keras lagi. dan loadnya menurun.

sampai disini saya tidak cek server lagi dari sisi sistem Operasi, karena sudah di handle oleh sysadminnya. saya hanya menyediakan SSD.

jadi, tidak perlu upgrade CPU kan ? bayangkan saja jika harus upgrade CPU, larang regone Rekkkkkk. dan kerjaannya ribet Rekkkk. kudu backup data, matiin server, bongkar, halah, mumet. semetara aplikasi diburu kudu running dan yang lebih kacau, bisa jadi setelah upgrade CPU masalah tidak teratasi.

Mal Praktek Rekkkk jenenge neng dunia kedokteran. 😀

yoweslah, sekian aja, yang penting client udah tersenyum lebar karena aplikasinya udah aman. disitu saya merasa dipuasin oleh client . walaupun clientnya LANANGAN.

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

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

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