membuka alamat website, file malah terdownload – nginx

permasalahan umum saat pertama kali belajar web server nginx adalah membuka alamat website, file malah terdownload.

saya tidak akan tuliskan bagaimana cara menginstall web server nginx, karena sudah banyak tutorialnya, paling nanti saya cerita tentang bagaimana tunning dan securing web server nginx.

pada tulisan ini adalah fokus pada error saat pertama install nginx, ya, seperti yang saya alami. padahal install nginxnya sudah sesuai, php nya juga udah sesuai.

seperti ini tampilannya

seperti ini tampilannya

setelah saya cari tau sana sini, googling maupun tanya ke temen, akhirnya saya menemukan solusinya. untuk itu saya putuskan untuk menulis di blog ini, karena beberapa kali saya lupa saat setelah saya install web server nginx.

jadi, sebenarnya nginx tidak mengenali file PHP yang di minta oleh client itu mau di apain, jadi dia menyajikan secara default yaitu di download, masalah ini bisa diatasi dengan modifikasi di file .htaccess

 

location ~ \.php$ { try_files $uri =404;

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

include snippets/fastcgi-php.conf;

}

 

selain menambahkan di .htaccess , script tsb juga bisa ditambahkan pada konfigurasi file server blok, biasanya terletak di /etc/nginx/conf.d , atau /etc/nginx/site-enable/

 

kemudian, pastikan pada script server bloknya sudah ditambahkan

index index.php index.html index.htm;

kemudian melakukan perubahan pada file php.ini di folder php-fpm,

cgi.fix_pathinfo = 0

setelah itu jangan lupa untuk merestart service nginx dan php-fpm nya

systemctl restart nginx
systemctl restart php-fpm

sekian cerita ini,dan terima gaji.

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

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

Halo , mau cerita sedikit.

yang pertama mau cerita tentang pekerjaan saya ya, jadi pekerjaan saya adalah sebagai penyedia Hosting dan Virtual Private Server bagi client-client yang membutuhkan.

Hosting digunakan untuk user-user yang menitipkan file aplikasi atau website yang tidak membutuhkan spesifikasi dan konfigurasi khusus. jadi, pengelolaan server dan jaringannya sepenuhnya ditanggung oleh kami, mulai dari konfigurasi, backup sampai dengan maintenance.

berbeda dengan hosting, Virtual Private Server atau yang di singkat VPS adalah server virtual yang biasanya di minta karena user membutuhkan spesifikasi dan konfigurasi khusus. seharusnya dan memang semestinya, urusan konfigurasi, security, backup dan maintenance di kelola oleh user tersebut. ini secara virtual lo ya, kalau secara fisik, masih di kelola oleh penyedianya ( kami ).

jadi itu cerita singkat pekerjaan saya, selain pekerjaan-pekerjaan lagi yang ditugaskan oleh atasan.

lanjut ceritanya, beberapa hari yang lalu, salah satu VPS yang di kelola oleh client terserang rootkit, rootkit ini berjalan di user root , melakukan sync flood ke IP luar negeri

bagaimana bisa terserang rootkit, saya jelaskan pada artikel ini :

Bagaimana bisa sih server terserang Rootkit ? begini kronologinya.

mengandalkan firewall saya tidak cukup, jika itu yang menyerang script, mungkin bisa diatasi oleh firewall, tapi jika yang menyerang manusia ? tidak bisa.

maka dari itu perlu pengamanan tambahan seperti judul diatas. begini teknisnya :

setelah masuk ke server, rubah konfigurasi SSH kamu.

rubah default port ssh

menggunakan perintah editor, kemudian, hapus tanda pagar, dan rubah menjadi port yang unik dan tidak standar terserah kamu.

rubah default port ssh 2

lalu save , kemudian jangan lupa restart service ssh nya

rubah default port ssh 3

dengan begini, port ssh telah berubah. sedikit lebih aman karena biasanya script Brute Force disana menggunakan port default dari service SSH server.

pesan moral : TIDAK ADA SYSTEM YANG AMAN DI DUNIA INI, WALAUPUN ITU BERADA DI LOCALHOSTMU.

Bagikan saja, itu tidak berat

sudo grep -i -r

sudo grep -i -r “katayangkamucari” /foldertujuan

saat migrasi website, terkadang saya kesulitan mencari satu kata yang termuat didalam file diantara ratusan/ribuan file dan terselip didalam banyaknya subfolder yang isinya antah berantah.

cek file satu persatu itu gak mungkin, makanya saya pakai perintah diatas. dan dalam waktu sekejab, saya menemukan kata itu. mudah bukan, itulah teknologi.

hmmm,,,, saat saya melakukan perintah itu, sejenak terlintas didalam fikiran saya. andai kata, kedepannya, perintah grep ini bisa diterapkan tidak hanya di lingkup teknologi, tapi bisa juga diterapkan di lingkup sosiologis. mungkin akan banyak yang mengetik perintah grep itu dengan :

sudo grep -i -r “cinta” /dunia

47271107_2371811062843409_1793376848713875456_n

Bagikan saja, itu tidak berat

Membuat user nologin di ubuntu untuk eksekusi aplikasi

Halo, ceritanya saya sedang instalasi aplikasi di server linux ubuntu.

nah, pengennya saya, aplikasi tersebut dijalankan user user yang bukan sudoers dan tidak memiliki login. setelah googling sana sini, akhirnya nemu juga solusinya.

hal ini saya maksudnya untuk tingkat keamanan saja, dan untuk manajemen user. okeh, mari kita lakukan.

  1. hal pertama adalah membuat user baru.

ant@linux:~$ sudo useradd -s /sbin/nologin nadia

2. kemudian memberi password pada user tsb

ant@linux:~$ sudo passwd nadia
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
ant@linux:~$

3. lanjut, membuat direktory dan hak kepemilikan untuk user tsb.

ant@linux:~$ mkdir nadia
ant@linux:~$ sudo chown -R nadia:nadia nadia
ant@linux:~$ cd nadia
ant@linux:~/nadia$

4. selanjutnya memberikan hak akses bash pada user tersebut, dimana hak akses bash itu diperuntukkan menjalankan perintah-perintah, ya pokoknya gitu deh.

ant@linux:~$ sudo -u nadia bash
nadia@linux:~$

otomatis sudah pindah ya, ke user nadia.

yuk, sekarang saya buat contoh user tersebut untuk mendownload dan mengeksekusi aplikasi.

user nologin

user nologin

pada percobaan ini, user saya gunakan untuk wget. dan berhasil., kemudian

user nologin bash

user nologin bash

setelah extrack , dan saya masuk ke folder extrac untuk menjalankan aplikasi

membuat user nologin

membuat user nologin

oke, perintahnya sukses ya, sekarang kita cek, apakah benar aplikasi tersebut dijalankan oleh user nadia

pertama kita ketik exit dulu untuk kembali ke user sudoers, kemudian ketik perntah seperti digambar.

Screenshot_356oke, berhasil ya. sekian dulu celotehan dari saya.

salam damai :*

Bagikan saja, itu tidak berat

Membuat auto backup database server Mariadb

Halo , catatan kali ini adalah membuat Auto Backup pada database Mariadb/Mysql.

auto backup ini diperlukan dan menurut saya sangat diperlukan untuk antisipasi jika terjadi bencana pada server. misalnya kerusakan pada database server, ataupun terhapusnya data. dengan adanya backup, kita bisa melakukan restore menggunakan file backup tersebut.

kegiatan kali ini saya jalankan pada server saya. dengan komposisi :

  1. server dengan OS ubuntu.
  2. Mariadb versi 10.3
  3. akses SSH

untuk alasan Security, script ini saya jalankan di user root. tahap awal adalah membuat sebuah file bash script pada folder home root dengan perintah editor vi

root@hosting-app:~# vi backupdb.sh

ketik huruf i untuk mengedit, kemudian isi file tersebut dengan script dibawah ini :

#auto backup mariadb
mysqldump –user=’root’ –password=’xxxxx’ -h localhost –all-databases > data_`date +%d%m%Y_%H%M%S`.sql

#Menghapus file setelah tujuh hari
find /root -name “*sql” -mtime +7 -exec rm {} \;

setelah itu, ketik tombol Esc , kemudian save dengan perintah  :wq

setelah disimpan, berikan permisi pada file tersebut agar dapat dieksekusi dengan perintah :

root@hosting-app:~# chmod 777 backupdb.sh

sampai disini, script auto backup berhasil dibangun, namun belum bisa berjalan otomatis karena belum didaftarkan pada cronjob. cara menambahkan pada cronjob adalah dengan mengetikkan perintah :

root@hosting-app:~# crontab -e

tambahkan baris script seperti dibawah ini (yang di blok) :

Screenshot_82

kemudian tekan Ctrl+x , dan pilih Yes

arti dari baris diatas adalah : melakukan eksekusi file backudb.sh pada jam 01.00 dini hari setiap hari. dimana file backupdb.sh itu adalah perintah untuk backup database mariadb dan hapus file setelah tujuh hari.

setelah itu, lakukan restart pada service pada crobjob dengan perintah :

root@hosting-app:~# systemctl restart cron

sampai disini, script auto backup database sudah berhasil, jika belum berhasil, ulangi sampai berhasil :p

sekian dan terima gaji

Bagikan saja, itu tidak berat

Sysadmin siap dalam kondisi apapun

Laptop rusak belum dibenerin.
Quota internet habis belum diisi.

Beginilah sedikit cerita tentang ke misqueenan seorang tukang kebun yang harus menjaga kebun2nya baik siang ataupun malam agar tetap baik2 saja.

Sedang leyeh-leyeh di depan sambil numpang waifi sekolahan TK, tiba-tiba dapet pesan WA dari atasan : “Bro, coba akses web zzz , sepertinya error”. Oke siap cek boss, jawab saya.

Sadar kalau laptop masih rusak dan minimnya akses internet, saya melakukan remote terhadap ‘kebun-kebun’ saya dengan kondisi kadang konek, kadang putus + dinyamukin diluar rumah.

Rasanya lega, bisa mengatasi masalah dengan keadaan yg minim. Tetap optimis dengan keadaan, dan bertanggungjawab terhadap pekerjaan.

sysadmin

Bagikan saja, itu tidak berat

Troubleshooting server error di tengah malam ( pengalaman dan pengamalan )

Tanggal 1 mei kemarin, tepatnya pukul 22.00 wib atau jam 10 malam, saya harus starter dan gas motor supra butut saya. Ya, menuju kantor. Padahal itu sudah malam dan hari libur nasional.

Hal ini terjadi setelah saya dapat pesan singkat, bahwa layanan *sensor* down dan tidak dapat diakses publik. Awalnya saya coba melakukan remote, tapi tidak bisa. Dan saya menduga server mengalami down.

Sesampainya dikantor, dugaan saya benar, dua keping harddisk server mengalami crash. Karena ini barang warisan, jadi tidak ada sistem mirror. Tapi untungnya saya sempat melakukan backup menggunakan script. Setelah cek semua dan melapor kepada atasan, kemudian saya kembali kerumah pukul 12 malam. Padahal, saya harus terbang ke Denpasar jam 8 pagi.

Sesampainya dirumah, malahan asam lambung saya kambuh, saya menahan penyakit itu sampai jam 6 pagi. Dan menghubungi rekan saya, bahwa saya batal ke Denpasar.

Walau batal ke Denpasar, tapi ada hikmahnya. Saya bisa konsentrasi untuk menghidupkan kembali layanan yang down. Karena layanan itu digunakan di penjuru Indonesia, maka akan menjadi lucu kalau downnya berlama-lama.

Pelajaran buat saya, mirror dan backup itu sangat penting dan memang harus segera dibangun untuk High Avaibility yang bagus.

 server errorhdd crashgagal terbang
Bagikan saja, itu tidak berat

cara mudah membuat virtual server di proxmox

halo, catatan kali ini tentang cara mudah membuat virtual server di proxmox

disini, saya asumsikan kalian sudah login dan mendapati tampilan awal dari proxmox.

ada dua metode untuk membuat virtual server di proxmox.

  1. create VM : adalah membuat virtual server manual, yaitu instalasi OS server dengan cara instalasi seperti biasanya.
  2. create CT : menggunakan container. container adalah image server linux yang sudah terinstall. jadi tinggal di input saja ke virtual server. tidak perlu repot install dari awal. dan ini yang saya gunakan. kalau ada yang susah, kenapa harus mudah 😀 😀

projika di klik Create VM, akan muncul seperti ini :

pro2dan jika di klik Create CT akan muncul seperti ini :

pro3nah, list OS yang kuning-kuning itu dari mana ? oke akan saya jelaskan dari mana asal muasalnya.

yaitu kita harus menambahkan sendiri pada sever proxmox kita melalui upload. La, itu kok listnya cuma dua mas ? mau berapa aja juga bisa, tinggal mau kita saja. kalau saya maunya dua, situ mau apa ? server-server saya, hehehehe

jadi cara menambahkannya seperti ini :

pro4untuk menu upload , ada yang namanya upload iso ( iso yaitu file OS yang akan digunakan jika ingin membuat virtual server secara manual ) , ada juga menu upload container ( nah, ini yang asik. kita bisa membuat container sendiri yang kita kustom untuk kita upload diserver proxmox )

ada juga menu template, dimana template di sediakan oleh website proxmox, jadi kita tinggal download ke server proxmox kita. begini tampilannya :

pro5sangat lengkap. kurang mudah apa coba. hehehe..

sekian tulisan dari saya tentang cara mudah membuat virtual server di proxmox

untuk instalasinya, akan saya bahas di lain artikel.

Bagikan saja, itu tidak berat