1. Halo Guest, pastikan Anda selalu menaati peraturan forum sebelum mengirimkan post atau thread baru.

[INFO] Bagaimana Cara Mengamankan Unmanaged VPS, agar Aman

Discussion in 'Hosting & Domain' started by hardinalz, Sep 24, 2014.

  1. hardinalz

    hardinalz Super Hero

    Joined:
    Mar 8, 2010
    Messages:
    2,395
    Likes Received:
    1,420
    Location:
    /var/www/html
    Bagi temen2 yang baru banget nyicip dan beli VPS, hal yang paling ditakutin adalah gimana agar VPS kita aman dari serangan hacker. Itu pun yang saya alami saat pertama kali beli VPS. Jadi saya Googling deh gimana cara agar VPS kita aman.

    Seperti trit saya sebelumnya tentang cara install Wordpress di Unmanaged VPS menggunakan Nginx, MariaDB dan PHP-FPM, format yang akan saya sampaikan dalam bentuk QA.

    Saya bukan pakar dalam hal ini, kalau ada mastah yang mau nambahin silahkan.

    Q: Bro, ane baru aja beli VPS, trs install Wordpress kaya yang trit agan kemaren. Ane khawatir VPS ane ada yang ngejahilin. Ada tips untuk ngamanin VPS ngga nih?
    A: Ada.

    Q: Gimana caranya?
    A: Ada beberapa langkah bro.

    Q: Bisa diceritain ngga secara garis besarnya gimana?
    A: Seperti kita ketahui, untuk login ke VPS diperlukan 2 hal: username dan password. Sementara itu, kekuatan yang paling berkuasa di OS Linux adalah username root. Semua distro Linux, pasti memiliki username ini, dan semua hacker tau itu. Jadi dari dua hal yang saya sebut di atas (username + password) tinggal 1 yang perlu dicari, yaitu password. Dan password ini bisa dibobol pake metoda bernama Brute Force Attack.

    Q: Metoda apa itu?
    A: Itu metode umum yang digunakan untuk bobol password dan cukup ampuh. Saya juga detailnya ngga tau persis, tapi, mengerikan lah intinya.

    Q: Jadi password saya bisa dibobol?
    A: Sangat bisa, apalagi kalo password nya gampang diingat, misalnya admin123, mypassword, 123456, dll.

    Q: Ada cara untuk mencegah Brute Force Attack?
    A: Ada gan, bisa install program bernama fail2ban ato setting IPTables kalo mau lebih aman, tapi yang IPTables ane masih belum ngerti.

    Q: Lah katanya mastah?
    A: Mastah apaan, ini juga hasil Googling.

    Q: OK, berarti nanti saya install fail2ban. Selain itu saya mau ganti password nya biar susah. Btw, ada tool ngga buat generate password susah?
    A: Ada, kunjungi _https://strongpasswordgenerator.com/ . Agan bisa generate password yang kompleks.

    Q: Ok, nanti ke TKP. Lanjutin donk!
    A: Baik. Seperti yang saya jelaskan, bahwa butuh dua hal agar seseorang bisa login ke VPS, yaitu username + password. Username udah diketahui, yaitu root, password pun bisa dibobol. Nah langkah pencegahan pertama agar seseorang ngga bisa masuk, yaitu dengan mencegah root tidak dapat login.

    Q: Ini teh kumaha? Kalo root tidak dapat login trs kita manage VPS nya gmn? Login nya gimana?
    A: Tenang. Kita akan bikin username baru yang memiliki kekuatan sebesar root.

    Q: Wah emang bisa? Nanti username nya apa?
    A: Username bisa apa aja. Dan username ini, jangan sampe diketahui orang lain. Kalau sampe diketahui, sama aja boong karena penjahat tinggal ngebobol password

    Q: Oh... gitu. Selain disable root biar ngga bisa login, ada cara lain ngga?
    A: Ada, dengan cara merubah Port Akses SSH.

    Q: Maksudnya? Port? Apa itu Port?
    A: Port itu diibaratin pintu depan rumah agan. Kalo agan masuk rumah kan ada pintu depan. Di VPS juga sama. Saat login via SSH, maka pintu gerbangnya melalui suatu port. Dan port yang digunakan adalah Port nomor 22. Kita bisa ubah Port 22 ini ke angka yang lain agar orang ngga bisa masuk (pintu rumahnya ditutup).

    Q: Nanti kalo pintu nya ditutup gimana?
    A: Tenang aja, masih banyak pintu2 lain yang bisa kita buka. Sekedar info aja, sepengetahuan saya di Linux itu terdapat 65ribu Port/pintu. Ada pintu khusus untuk situs yaitu port 80, ada yang khusus untuk FTP port 21, ada untuk email2an Port 110, ada untuk VNC Port 1, dan masih banyak lagi. Dan yang lebih banyaknya adalah yang ngga kepake.

    Q: Ooohh. Trs? Ada cara lagi selain anak 2 cara di atas?
    A: Sebenernya 2 cara di atas udah cukup ampuh. Tapi kalo mau tau cara lain ya masih ada, dengan bantuan private/public key.

    Q: Cara apa lagi itu?
    A: Ini mirip gembok dan anak kunci. Kita buat dua buah file, yang satu file gembok yang satu file anak kunci, trs Gembok nya kita simpen di VPS, ngegembok VPS kita, dan anak kunci nya kita simpen di SSH Client. Dengan gembok dan anak kunci ini, kita tidak perlu lagi masukin password saat login.

    Q: Kok password nya ngga dimasukin lagi?
    A: Ya betul dan ini yang unik. Karena kita ngga perlu password, maka kita akan setting agar seseorang tidak dapat login pake password meskipun password yang dimasukin betul. Mau berkali2 dia masukin username + password, meskipun betul, dia tetep ngga akan bisa login. Jadi nanti kita hanya bisa login pake anak kunci ini. Makanya anak kunci nya harus bener2 di simpen di tempat aman.

    Q: Wah ngeri juga ya kalo anak kunci nya hilang. Ada saran agar aman?
    A: Anak kunci nantinya bisa disimpen di tempat aman, misalnya disimpen di DropBox, di email, dll, di print juga bisa.

    Q: Ok, mas. Cukup pencerahannya. Siap praktek nih.
    A: OK, Nanti kita lanjutin ya, ini sudah jam 4 pagi, abis subuh saya tidur, baru bangun nanti siang, belum siangnya posting artikel.

    Q: Yaaaahh nunggu lagi.
    A: Sabarr.. udah cape banget soalnya.

    Q: Sip deh.
     
  2. hardinalz

    hardinalz Super Hero

    Joined:
    Mar 8, 2010
    Messages:
    2,395
    Likes Received:
    1,420
    Location:
    /var/www/html
    Q: Sekarang udh ON lagi nih kayanya, bisa lanjut mas?
    A: Ayo kita lanjut. Jadi sesuai yang saya ceritakan kemarin, ada beberapa cara agar mengamankan VPS kita. Kita lakukan step by step.

    Q: Siap gan. Ini apa yang perlu disiapkan?
    A: Tidak ada yang perlu disiapkan, yang penting agan ngerti cara ngedit file di Linux, kalau ngga tau caranya, bisa liat trit saya kemarin, di situ sedikit dijelaskan mengenai Linux dan cara edit sebuah file. Untuk yang baru beli VPS, kayanya jelas banget tutorial nya.

    Q: Oh, materi kemaren ane udah ngelotok gan, hapal banget.
    A: Good. Sekarang kita mulai, pertama kita buat user baru. Misalnya user baru yang akan kita buat bernama ‘aman’ , maka perintahnya adalah adduser aman dan kita harus kasih password si aman ini. Kalo di Distro Debian 7 kaya punya saya, password nya bisa kita masukan saat bikin user baru ini, kalo di distro lain ane ngga tau bisa ngga.

    Kalau memang tidak langsung minta password, kita bisa eksekusi perintah passwd<spasi>userbaru untuk masukin password. Jadi kalo dalam praktek ini jadinya passwd aman. Nanti kita akan diminta masukin password untuk si aman. Kalau di Debian nanti nya kaya gini:

    [​IMG]

    Q: Selesai gan. Lalu?
    A: Kita akan daptarkan si aman agar memiliki kekuatan seperti root. Si aman akan kita daptar kan ke dalam suatu file bernama sudoers yang berada di Folder /etc. Untuk proses pendaftaran, jalankan perintah visudo. Tapi sebelum itu, kita atur agar editor yang dipakai untuk ngedit sudoers adalah vi dengan perintah update-alternatives --config editor lalu pilih vi.

    [​IMG]


    Baru jalankan visudo

    [​IMG]

    Nanti akan muncul file seperti ini

    [​IMG]

    Kita daftarkan/tambahkan si aman agar punya kekuatan seperti root. Caranya dengan menambahkan kode aman ALL=(ALL:ALL) ALL pada baris 21 seperti ini.

    [​IMG]

    Kalau sudah, save.

    Q: Sudah gan, berarti si aman udah terdaftar memiliki kekuatan penuh.
    A: Iya mas sudah. Selanjutnya kita akan buat gembok dan anak kunci agar VPS hanya bisa diakses dengan cara ini. Agan harus log out dulu dari VPS dan masuk sebagai aman.

    Q: OK, saya exit dari root ya trs masuk sebagai aman.
    A: Mana saya liat?

    Q: Oh iya, ngga tau caranya gimana?
    A: Kalau pake Xshell tambah New Connection aja, caranya da di trit saya yang lalu.

    Q: Oh, gampang itu mah, ane bisa. Sebentar....
    A: Sudah belum?

    Q: Sudah gan, ini hasilnya:

    [​IMG]

    A: Bagus. Loh agan kok ada 2 tab? Itu root sama aman kan yang login? Nanti root nya log out ya!

    Q: Iya mas, tadi lupa yang root ngga di log out jadinya ada 2 user sekarang yang login ke VPS. Nanti saya log out. Lanjut...
    A: Baik. Sekarang akan buat gembok + anak kuncinya. Ada berbagai macam cara buat gembok dan anak kunci ini, cara termudah dengan memanfaatkan Xshell, karena di Xshell ini, pada menu Tools, dilengkapi dengan pembuatan gembok ini. Tapi berhubung banyak teman2 yang ngga pake Xshell tutorial itu ngga saya share. Jadi kita akan buat gembok + anak kunci nya di server VPS kita. Caranya dengan menjalankan perintah ssh-keygen -b 2048 -t rsa

    [​IMG]

    Q: Sudah mas.
    A: Ganti permission direktori/folder .ssh jadi 700 dengan perintah chmod 700 .ssh . Setelah itu rename file bernama id_rsa.pub yang ada di direktori .ssh menjadi authorized_keys . Perintahnya mv .ssh/id_rsa.pub .ssh/authorized_keys .

    Berarti sekarang file id_rsa.pub sudah berganti nama menjadi authorized_keys. File ini adalah gembok kita. Kita chmod lagi menjadi 600 dengan perintah chmod 600 .ssh/authorized_keys .

    Kalau discreenshot, jadi nya seperti ini:

    [​IMG]
     
    Last edited: Sep 25, 2014
  3. hardinalz

    hardinalz Super Hero

    Joined:
    Mar 8, 2010
    Messages:
    2,395
    Likes Received:
    1,420
    Location:
    /var/www/html
    Q: Mas, itu chmod chmod apaan?
    A: Ngga tau, Googling aja. Lanjut ya.. Di atas kan kita sudah punya gembok, berarti kita harus punya anak kunci. Anak kuncinya ini dibuat berbarengan saat pembuatan gembok dan anak kunci ini bernama id_rsa . Sekarang kita akan copy isi file id_rsa ini dan paste ke komputer kita, simpan aja di Notepad. Cara ngebaca isi file id_rsa dengan perintah cat .ssh/id_rsa . Kalau di screenshot seperti ini:

    [​IMG]

    [​IMG]

    Paste isinya ke notepad lalu save dengan nama bebas, misalnya kunci_vps_digital_ocean seperti ini:

    [​IMG]

    Selanjutnya kita hapus file anak kunci yang ada di VPS, jadi pastikan file anak kunci sudah di save di komputer kita. Kalo perlu segera amankan di tempat aman, misalnya di upload ke DropBox. Apus file anak kunci dengan perintah rm -f .ssh/id.rsa

    [​IMG]

    Q: Siap udh diapus.
    A: exit/log out dari Xshell kalo udah diapus.

    Q: OK, gan sudah disconnect. Kok malah disconnect, ini ngapain sekarang?
    A: Setelah ngebikin gembok dan anak kunci ini, kita harus uji dulu bener ngga nih gembok dan anak kunci yang kita buat memang klop. Ini akan saya tunjukan di Xshell, kalo yang make PuTTY file anak kunci harus di konversi dulu pake PuTTYgen agar ngikutin standar PuTTY, tutorial nya ada di bawah, keep reading!

    Q: OK, ayo lanjut gan, gimana?
    A: Buka profil si aman di Xshell, masuk ke bagian Authentication dan ikuti seperti ini

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    Q: Wow, itu artinya berhasil ya gan?
    A: Ya berhasil. Gembok + Anak kunci klop. Selanjutnya kita akan ganti port default SSH, lalu kita akan buat root ngga bisa login, trs kita buat VPS ini hanya bisa diakses lewat metoda gembok dan anak kunci ini, jadi meskipun kita login dengan mengisi username + password yang sesuai, maka VPS menolak.

    Q: Oh siap2, saya mah ngikut aja.
    A: Edit sebuah file bernama sshd_config yang ada di folder /etc/ssh/ jadi perintahnya sudo vi /etc/ssh/sshd_config

    Q: Sebentar mas, kok ada kode sudo, kan kalo kita ngedit biasanya hanya vi<spasi>namafile?
    A: Oh iya lupa. Jadi begini, karena kita sekarang login bukan sebagai root tapi si aman, maka kalau kita mau install program atau edit file2 penting, pokoknya yang berhubungan langsung dengan sistem, maka harus ditambahkan kata sudo di depannya. Saya ngga akan ngejelasi lebih lanjut, intinya gitu.

    A: Oh, sip sip. Lanjut...
    Q: Jadi jalankan perintah vi /etc/ssh/sshd_config , nanti VPS akan minta password username baru ini, kalau dalam praktek ini berarti password si aman dan ini hanya diminta sekali tiap kali kita login. Kalo di Debian 7 tampilnya seperti ini:

    [​IMG]

    [​IMG]

    Menuju ke baris 5, pada bagian Port, ganti dari 22 menjadi angka acak, rentang angka yang dimaksud disarankan antara 10000 s.d. 65000, takutnya kalau ngambil Port di bawah 10000 ada service yang make Port itu. Dalam contoh ini saya ganti ke angka 44837 (HARAP DIINGAT PORT INI JANGAN SAMPE LUPA!!!)

    [​IMG]

    Kita ke baris 27 untuk mengganti kode PermitRootLogin yes menjadi PermitRootLogin no . Juga kita tambahkan kode baru di baris 28 dan 29 isinya masing2 adalah AllowGroups<spasi>user_baru dan AllowUsers<spasi>user_baru atau kalau dipraktekin jadi AllowGroups aman dan AllowUsers aman seperti ini

    [​IMG]


    Kita loncat ke baris nomor 53. Disana sudah ada kode #PasswordAuthentication yes. Kita hapus tanda pagar dan ganti yes jadi no. Sehingga seperti ini:

    [​IMG]

    Kalau sudah, save!

    Q: Sudah mas, sudah saya save.
    A: Kita harus restart service SSH ini dengan perintah sudo service ssh restart

    [​IMG]

    Lalu exit/log out.

    Q: Sip, sudah mas, sudah saya exit / logout
    A: Bagus. Sekarang kita akan uji root untuk login yang memang root tidak akan bisa login karena sudah kita disable. Meskipun kita masukin password root dengan benar, tetap root tidak akan bisa login. Ini berlaku juga untuk si aman. Untuk bukti yang ini saya kasih screenshot lewat PuTTY:

    Untuk root

    [​IMG]

    Untuk aman

    [​IMG]

    Jadi satu2 nya cara untuk login ke VPS adalah melalui metode gembok + anak kunci.

    Q: Ok mas, saya coba, kok ga bisa bisa ya?
    A: Di Xshell, sudah diganti belum port nya?

    Q: Port apa ya?
    A: Tadi kan kita ganti Port default nya dari 22 ke 44837, yang saya suruh ingat2.

    Q: Oh iya2, jadi gantinya dimana?
    A: Di Xshell di bagian ini:

    [​IMG]

    Q: Oh, sudah mas, barusan diganti dan berhasil log in. Ini juga saya mau update.

    [​IMG]

    A: Good. Berarti proses mengamankan VPS sudah selesai.

    A: Oh sudah selesai. Katanya ada yang nginstall fail2ban?
    Q: Untuk sementara ini aja dulu saya keburu ngantuk. Metode ini juga setahu saya aman. Fail2Ban biar saya bahas di lain kesempatan tapi tidak dalam waktu dekat. Atau kalo ada member lain yang mau share (termasuk setting IPTables) saya malah seneng.

    Q: Wah, ya sudah lah kalo gitu, ini juga sudah mantap. Materi apa lagi yang akan di share?
    A: Hmm apa ya, tunggu aja, nanti kalo mood nulis nya lagi baik, akan saya share materi baru.

    Q: Ok mas, thanks share-nya.
    A: Sama2 mudah2 an ada manfaatnya.

    ======
    TIPS: Sebai info. Seperti kita tahu bahwa saat ini root sudah tidak bisa login lewat SSH. Jika agan mau login sebagai root caranya adalah agan harus login dulu sebagai aman, nanti jalankan perintah sudo -s , masukkan password, maka kita sudah menjadi sebagai root.

    Keuntungannya kita ngga perlu lagi nulis kata sudo di saat mau nginstall sesuatu, langung aja masukan perintahnya

    Seperti ini:

    [​IMG]

    Salam
    hardinalz

    ===

    Update

     
    Last edited: Sep 29, 2014
  4. whitetrader

    whitetrader Super Hero

    Joined:
    Mar 10, 2013
    Messages:
    1,492
    Likes Received:
    67
    mantap sharenya :) ditunggu lanjutannya
     
  5. aldhy

    aldhy Hosting Group _ ▂ ▃ ▅ ▆ █

    Joined:
    Mar 17, 2013
    Messages:
    1,731
    Likes Received:
    104
    Location:
    Cirebon
    yaps, benar banget...
    mengamankan root cara sederhananya bisa ganti port sshnya dan login pakai private key... sekalian juga vpsnya dipasangkan firewall biar lebih aman :D

    ditunggu lanjutannya :)
     
  6. Arsus

    Arsus Hero

    Joined:
    Mar 27, 2012
    Messages:
    613
    Likes Received:
    11
    Location:
    -_-
    Mantap om, nunggu episode berikutnya :)
     
  7. axixu

    axixu Ads.id Fan

    Joined:
    Nov 30, 2010
    Messages:
    138
    Likes Received:
    1
    untuk mysql port 3306nya bisa di close, koneknya pki ssh tunnel.
     
  8. jokokendil

    jokokendil Hero

    Joined:
    Sep 5, 2010
    Messages:
    528
    Likes Received:
    164
    Location:
    Kudus, Jawa Tengah
    port mysql 3306 klo di close nanti web server localhostnya masih bisa akses gan? cara nutupnya gimana.
     
  9. iidbae

    iidbae Super Hero

    Joined:
    Nov 12, 2012
    Messages:
    2,314
    Likes Received:
    168
    Location:
    Pusdai-Bandung
    Mantap.... :ok:
    Beberapa hari ini kayaknya lagi semangat nulis. :)
    Kemaren saya sudah ada bayangan soal VPS, Trus ada lagi yang nuils soal PBN. Sekrang tambah lagi.
    Tinggal prakteknya saja nih. :)
    Ayo rame-rame kasih TS cendol :D
     
  10. pluto01

    pluto01 Super Hero

    Joined:
    Jun 17, 2013
    Messages:
    1,318
    Likes Received:
    72
    Location:
    Pekanbaru - Riau
    Thanks sharednya mastah hardinalz sangat bermanfaat untuk para newbie seperti ane,
    jadi kurang lebih garis besarnya jika disimpulkan pembeicaraan mastah di atas seperti ini:
    1. Rubah dan disabled login dari luar user default root dan buat user baru dgn hak akses selevel dgn root,
    2. Rubah port default ssh (dan port yg dianggap krusial lainnya)
    3. Gunakan type password yang kuat dgn kombinasi,
    4. Gunakan Authenticating openssh key
    5. Gunakan anti Brute Force Attack bisa dgn install plugin tambahan atau dgn iptables
    6. Jika diperlukan bisa menggunakan port knocking,
    7. Berhati2 menggunakan yg berlevel nulled pada server tersebut baik dalam bentuk module/plugin/cms/dll karena bisa2 ada backdoornya
    8. Tetap memantau secara berkala log aktifitas dari servernya dan jika ada merasa ada aneh coba dicari tahu
     
    hardinalz likes this.
  11. axixu

    axixu Ads.id Fan

    Joined:
    Nov 30, 2010
    Messages:
    138
    Likes Received:
    1
    yg diclose akses dari luar, web tetap pki localhost aksesnya. Efeknya brute force login ke 3306 tidak bisa.
     
  12. poseidon

    poseidon Ads.id Fan

    Joined:
    Sep 8, 2012
    Messages:
    148
    Likes Received:
    1
    Wah ini trit sambungan yang kemaren.... Wajib dipantau nih!!
    Thanks suhu.. :)
     
  13. hardinalz

    hardinalz Super Hero

    Joined:
    Mar 8, 2010
    Messages:
    2,395
    Likes Received:
    1,420
    Location:
    /var/www/html
    Wah tips no. 5 dst... makanannya para mastah hosting (kaya agan), ane mah ngga ngerti. Mudah2 an ilmunya bisa saya serap. :)
     
    Last edited: Sep 25, 2014
  14. SimpleHost

    SimpleHost Ads.id Starter

    Joined:
    Sep 27, 2014
    Messages:
    68
    Likes Received:
    8
    Mantap juga tips-tips nya. Saya juga biasanya tidak menggunakan ownership yang sama untuk direktori root dari web dengan userid webservernya (www-data atau httpd)
     
  15. uwanz

    uwanz Super Hero

    Joined:
    Jan 3, 2009
    Messages:
    848
    Likes Received:
    3
    Location:
    disini aja dari tadi...
    tritnya sangat bermanfaat buat ane gan...
    thanks a lot
     
  16. kakaceria

    kakaceria Ads.id Fan

    Joined:
    Jan 2, 2010
    Messages:
    184
    Likes Received:
    5
    nunggu lanjutan... jadi pengen beli vps...
     
  17. masykur

    masykur Ads.id Fan

    Joined:
    Aug 15, 2012
    Messages:
    228
    Likes Received:
    56
    selain beberapa tips diatas, kalau saya pakai cloudflare disemua website saya yg pakai vps karena :
    - ip vps gak ketahuan, yang terlihat adalah ip milik cloudflare, sehingga lebih aman
    - ada fasilitas block ip yang mencurigakan, apalagi sampai ddos, lumayan bisa kecegah kalau pakai cloudflare
    - mudah setting dan pakainya buat newbie kaya saya
     
  18. dadada

    dadada Super Hero

    Joined:
    Dec 10, 2013
    Messages:
    2,514
    Likes Received:
    999
    Gan, kalau pakai metode kunci anak kunci, apakah masih bisa akses server menggunakan FTP client seperti filezilla?... thx b4
     
  19. hardinalz

    hardinalz Super Hero

    Joined:
    Mar 8, 2010
    Messages:
    2,395
    Likes Received:
    1,420
    Location:
    /var/www/html
    Oia, saya lupa belum saya info.

    Masih bisa mas, nanti si anak kunci harus dikonversi dulu pake PuTTYgen karena FileZilla hanya bisa buka file anak kunci ngikut standar PuTTY (bukan Xshell).

    Caranya, download PuTTYgen lalu:

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    Kalau sudah baru ke bagian FileZilla

    [​IMG]
     
    Last edited: Sep 29, 2014
  20. ganteng007

    ganteng007 Hero

    Joined:
    Oct 25, 2007
    Messages:
    535
    Likes Received:
    87
    cloudflare kayaknya gak rekomen deh.. ane sering tuh akses web tp yg muncul cloudflare mulu krn cloudflare gagal koneksi ke web kita. Aman2 sih aman, tp kalo kebanyakan koneksi terputus dan web cloudflare yg muncul bikin pengunjung kabur juga
     

Share This Page