Keamanan pada data center merupakan hal yang mendasar untuk diterapkan. Eksistensi data dalam server menjadi tanggung jawab bagi pengelola untuk menjaganya agar tetap aman, tidak rusak ataupun hilang. Berikut beberapa perangkat keamanan yang digunakan data center yang sering kita jumpai.

Kita juga akan membahas beberapa praktik keamanan dasar yang terbaik untuk dikonfigurasi sebelumnya atau saat Anda menyiapkan aplikasi Anda.

 

SSH KEYS

Kunci SSH adalah sepasang kunci kriptografi yang dapat digunakan untuk mengotentikasi ke server SSH sebagai alternatif untuk login berbasis kata sandi. Pasangan kunci pribadi dan publik dibuat sebelum otentikasi. Kunci pribadi dirahasiakan dan dilindungi oleh pengguna, sedangkan kunci publik dapat dibagi dengan siapa saja.

Untuk mengkonfigurasi otentikasi kunci SSH, Anda harus memasukkan kunci publik pengguna ke server dalam direktori khusus. Saat pengguna terhubung ke server, server akan meminta bukti bahwa klien memiliki kunci pribadi terkait. Klien SSH akan menggunakan kunci privat untuk merespons dengan cara yang membuktikan kepemilikan kunci pribadi. Server kemudian akan membiarkan klien terhubung tanpa password. Untuk mempelajari lebih lanjut tentang bagaimana kunci SSH bekerja, lihat artikel kami di sini.

Dengan SSH, semua jenis otentikasi, termasuk otentikasi kata sandi, benar-benar dienkripsi. Namun, bila login berbasis password diperbolehkan, pengguna jahat dapat berulang kali mencoba mengakses server. Dengan daya komputasi modern, adalah mungkin untuk masuk ke server dengan mengotomatisasi upaya ini dan mencoba kombinasi setelah kombinasi sampai ditemukan kata kunci yang tepat.

Menyiapkan otentikasi kunci SSH memungkinkan Anda untuk menonaktifkan otentikasi berbasis kata sandi. Kunci SSH pada umumnya memiliki lebih banyak bit data daripada kata kunci, yang berarti ada kemungkinan kombinasi yang lebih mungkin diserang oleh penyerang. Banyak algoritma kunci SSH dianggap tidak dapat dipecahkan oleh perangkat keras komputasi modern hanya karena mereka memerlukan terlalu banyak waktu untuk bisa melewati kemungkinan kecocokan.

 

Firewall

Firewall adalah perangkat lunak (atau perangkat keras) yang mengendalikan layanan apa yang terpapar pada jaringan. Ini berarti memblokir atau membatasi akses ke setiap pelabuhan kecuali yang harus tersedia untuk umum.

Pada server biasa, beberapa layanan mungkin berjalan secara default. Ini dapat dikategorikan ke dalam kelompok berikut:

·        Pelayanan publik yang bisa diakses oleh siapapun di internet, sering anonim. Contoh bagus dari ini adalah server web yang memungkinkan akses ke situs Anda.

·        Layanan pribadi yang hanya boleh diakses oleh sekelompok akun resmi yang dipilih atau dari lokasi tertentu. Contoh dari ini mungkin merupakan panel kontrol database.

·        Layanan internal yang harus bisa diakses hanya dari dalam server itu sendiri, tanpa memaparkan layanan ke dunia luar. Misalnya, ini mungkin database yang hanya menerima koneksi lokal.

Firewall dapat memastikan bahwa akses ke perangkat lunak Anda dibatasi sesuai dengan kategori di atas. Pelayanan publik dapat dibiarkan terbuka dan tersedia untuk semua orang dan layanan pribadi dapat dibatasi berdasarkan kriteria yang berbeda. Layanan internal dapat dilakukan sepenuhnya tidak dapat diakses oleh dunia luar. Untuk port yang tidak digunakan, akses diblokir seluruhnya di sebagian besar konfigurasi.

 

VPNs and Private Networking

Jaringan pribadi adalah jaringan yang hanya tersedia untuk server atau pengguna tertentu. Misalnya, di DigitalOcean, jaringan pribadi tersedia di beberapa daerah sebagai jaringan luas data center.

A VPN, atau jaringan pribadi virtual, adalah cara untuk membuat koneksi aman antara komputer jarak jauh dan menghadirkan koneksi seolah-olah merupakan jaringan pribadi lokal. Ini menyediakan cara untuk mengkonfigurasi layanan Anda seolah-olah berada di jaringan pribadi dan menghubungkan server jauh melalui koneksi aman.

Memanfaatkan pribadi bukan jaringan publik untuk komunikasi internal hampir selalu lebih baik mengingat pilihan antara keduanya. Namun, karena pengguna lain di dalam pusat data dapat mengakses jaringan yang sama, Anda tetap harus menerapkan langkah-langkah tambahan untuk mengamankan komunikasi antara server Anda.

Menggunakan VPN adalah, secara efektif, cara untuk memetakan jaringan pribadi yang hanya bisa dilihat oleh server Anda. Komunikasi akan sepenuhnya pribadi dan aman. Aplikasi lain dapat dikonfigurasi untuk melewati lalu lintas mereka melalui antarmuka virtual yang ditampilkan perangkat lunak VPN. Dengan cara ini, hanya layanan yang dimaksudkan untuk dapat dikonsumsi oleh klien di internet umum yang perlu terpapar di jaringan publik.

 

Public Key Infpastructure and SSL/TLS Encryption

Infrastruktur kunci publik, atau PKI, pengacu pada sistem yang dirancang untuk membuat, mengelola, dan memvalidasi sertifikat untuk mengidentifikasi individu dan mengenkripsi komunikasi. Sertifikat SSL atau TLS dapat digunakan untuk mengotentikasi entitas yang berbeda satu sama lain. Setelah otentikasi, mereka juga dapat digunakan untuk komunikasi terenkripsi yang telah ada.

Menetapkan otoritas sertifikat dan sertifikat pengelolaan untuk server Anda memungkinkan setiap entitas dalam infrastruktur Anda memvalidasi identitas anggota lainnya dan mengenkripsi lalu lintas mereka. Hal ini dapat mencegah serangan man-in-the-middle dimana penyerang meniru server di infrastruktur Anda untuk mencegah lalu lintas.

Setiap server dapat dikonfigurasi untuk mempercayai otoritas sertifikat terpusat. Setelah itu, sertifikat apa pun yang bisa ditandatangani oleh tanda otoritas secara implisit. Jika aplikasi dan protokol yang Anda gunakan untuk mengkomunikasikan dukungan enkripsi TLS / SSL, ini adalah cara mengenkripsi sistem Anda tanpa overhead terowongan VPN (yang juga sering menggunakan SSL secara internal).

 

Service Auditing

Sampai sekarang, kami telah membahas beberapa teknologi yang dapat Anda terapkan untuk meningkatkan keamanan Anda. Namun, sebagian besar keamanan menganalisis sistem Anda, memahami permukaan serangan yang tersedia, dan mengunci komponen sebaik mungkin.

Audit layanan adalah proses untuk menemukan layanan apa yang berjalan di server di infrastruktur Anda. Seringkali, sistem operasi default dikonfigurasi untuk menjalankan layanan tertentu saat boot. Menginstal perangkat lunak tambahan terkadang dapat menarik dependensi yang juga dimulai secara otomatis.

Audit layanan adalah cara untuk mengetahui layanan apa yang sedang berjalan di sistem Anda, port mana yang mereka gunakan untuk komunikasi, dan protokol apa yang diterima. Informasi ini dapat membantu Anda mengkonfigurasi pengaturan firewall Anda.

Melakukan audit layanan dasar sangat sederhana. Anda dapat mengetahui layanan mana yang mendengarkan port pada setiap antarmuka dengan menggunakan perintah netstat. Contoh sederhana yang menunjukkan nama program, PID, dan alamat yang digunakan untuk mendengarkan lalu lintas TCP dan UDP adalah:

sudo netstat -plunt

Anda akan melihat output yang terlihat seperti ini:

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      887/sshd       

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      919/nginx      

tcp6       0      0 :::22                   :::*                    LISTEN      887/sshd       

tcp6       0      0 :::80                   :::*                    LISTEN      919/nginx

Kolom utama yang perlu Anda perhatikan adalah nama Proto, Local Address, dan PID / Program. Jika alamatnya adalah 0.0.0.0, maka layanan tersebut menerima koneksi pada semua interface.

 

File Auditing dan Intrusion Detection Systems

Pengauditan file adalah proses membandingkan sistem saat ini dengan catatan karakteristik file dan file dari sistem Anda saat keadaannya diketahui-baik. Ini digunakan untuk mendeteksi perubahan pada sistem yang mungkin telah diotorisasi.

Sistem deteksi intrusi, atau IDS, adalah perangkat lunak yang memonitor sistem atau jaringan untuk aktivitas yang tidak sah. Banyak implementasi IDS berbasis host menggunakan audit file sebagai metode untuk memeriksa apakah sistem telah berubah.

Serupa dengan audit tingkat layanan di atas, jika Anda serius dalam memastikan sistem yang aman, sangat berguna untuk dapat melakukan audit tingkat file pada sistem Anda. Hal ini dapat dilakukan secara berkala oleh administrator atau sebagai bagian dari proses otomatis dalam IDS.

Strategi ini adalah beberapa cara untuk benar-benar yakin bahwa filesystem Anda belum diubah oleh beberapa pengguna atau proses. Karena berbagai alasan, penyusup sering ingin tetap tersembunyi sehingga mereka dapat terus mengeksploitasi server untuk jangka waktu yang lama. Mereka mungkin mengganti binari dengan versi yang dikompromikan. Melakukan audit terhadap filesystem akan memberi tahu Anda jika ada file yang telah diubah, memungkinkan Anda untuk percaya diri dalam integritas lingkungan server Anda. 

Isolated Execution Environments

Mengisolasi lingkungan eksekusi mengacu pada metode di mana komponen individual dijalankan di dalam ruang khusus mereka sendir

Ini bisa berarti memisahkan komponen aplikasi diskrit Anda ke server mereka sendiri atau mungkin merujuk pada konfigurasi layanan Anda untuk beroperasi di lingkungan chroot atau kontainer. Tingkat isolasi sangat bergantung pada persyaratan aplikasi dan kenyataan infrastruktur Anda.

Mengisolasi proses Anda ke dalam lingkungan eksekusi individu meningkatkan kemampuan Anda untuk mengisolasi masalah keamanan yang mungkin timbul. Serupa dengan bagaimana bulkheads dan kompartemen dapat membantu mengatasi pelanggaran lambung kapal, memisahkan komponen individual Anda dapat membatasi akses penyusup ke bagian lain dari infrastruktur Anda. 

Kesimpulan

Strategi yang diuraikan di atas hanyalah beberapa penyempurnaan yang dapat Anda lakukan untuk meningkatkan keamanan sistem Anda. Penting untuk disadari, meski lebih baik terlambat daripada sebelumnya, tindakan pengamanan mengurangi keefektifannya semakin lama Anda menunggu untuk menerapkannya. Keamanan tidak bisa menjadi renungan dan harus diimplementasikan sejak awal bersamaan dengan layanan dan aplikasi yang Anda berikan.