PostgreSQL adalah sistem database terbuka yang telah berkembang selama 15 tahun dan dapat berjalan pada berbagai platform. PostgreSQL memiliki kapasitas yang besar dan fitur keamanan yang kuat. Langkah-langkah keamanan penting untuk PostgreSQL meliputi pengaturan hak akses pengguna, konfigurasi otentikasi, dan pengelolaan hak akses database.
2. PostgreSQL
Sekilas
PostgreSQL adalah opensource object-relational database system. Database
engine ini telah berkembang sebagai opensource project yang aktif
selama 15 tahun. Database engine ini bisa berjalan dalam varian
platform yang sangat luas dari Linux (dan variannya), UNIX (AIX,
BSD, HP-UX, SGI IRIX, Mac OSX, Solaris, True64), dan Windows.
Dalam hal data type, bisa dikatakan PostgreSQL adalah database
opensource yang paling lengkap type datanya. PostgreSQL comply
dengan SQL-ANSI:2008.
Menurut kapasitasnya PostgreSQL bisa digambarkan sebagai berikut:
Maximum
Maximum
Maximum
Maximum
Maximum
Maximum
Maximum
database size
Table Size
Row Size
Field Size
Rows per Table
Column per Table
Indexes per Table
:
:
:
:
:
:
:
unlimited
32 GB
1.6 TB
1 GB
Unlimited
250 – 1600
Unlimited
CURRENT Version Release 9.2.x
Powerpoint Templates
Page 2
3. PostgreSQL
Gambaran Fisik: physical storage
Data yang tersimpan pada PostgreSQL akan tersimpan pada $PGDATA dengan
nama direktory bebas yang akan dikenali melalui parameter ‘ -D ’
pada saat menjalankan wrapper server ‘ pg_ctl ’. Struktur yang ada
di bawab $PGDATA adalah sebagai berikut:
Sumber:http://www.postgresql.org/docs/9.1/static/storage-file-layout.html
Powerpoint Templates
Page 3
4. PostgreSQL
Gambaran Fisik: konfigurasi
Ada 2 file konfigurasi penting yang mengontrol engine postgreSQL, yakni
pg_hba.conf dan postgresql.conf.
Kedua file ini secara default bisa
diketemukan di bawah $PGDATA, meskipun pada beberapa distro linux
dilepaskan ke direktori lain.
• Pg_hba.conf adalah flle yang mengatur client authentication.
Clent
authentication melalui pg_hba.conf ini melengkapi authentication internal
pstgresql.
• Dengan pg_hba.conf, authentication diperkuat dengan memberikan
parameter user, database, alamat ip yang sah untuk mengakses.
• Pg_hba.conf memberikan direction bagaimana postgresql engine melakukan
authenctication.
• Yang harus diperhatikan adalah bila ada direction ‘trust’ untuk authentication
yang akan mendirect agar postgresql tidak lagi mempedulikan password dari
user yang melakukan akses.
• Postgresql.conf adalah file yang digunakan untuk mencatat parameterparameter yang digunakan untuk menjalankan postgresql engine. Dengan file
ini pula parameter tuning di level engine dilakukan.
Powerpoint Templates
Page 4
5. PostgreSQL
Security Features Matrix
PostgreSQL telah dilengkapi dengan fitur security yang berkembang terus
semenjak versi 8.1. Bagian yang di tandai warna kuning adalah yang
saat ini dipergunakan.
Sumber: http://www.postgresql.org/about/featurematix/#security
Powerpoint Templates
Page 5
6. PostgreSQL
Langkah Pengamanan
Hal-hal yang perlu diperhatikan dalam melakukan pengamanan data untuk database yang
dijalankan dengan PostgreSQL
dalam sistem operasi Linux/Unix dengan
pemilik dan operator sebagai pihak yang berbeda adalah:
User Operator, Operating system user yang menjalankan service postgresql
(postgres)
User ini bisa melakukan start, restart, dan reload yang umum dilakukan untuk
mengimplementasikan perubahan konfigurasi. User ini harus mempunyai
kepemilikan terhadap $PGDATA. User ini dapat diberikan kepada operator,
namun bila ini adalah ‘postgres’ atau user lain yang juga terdaftar pada
database engine, maka dia tidak boleh menggunakan ‘trust’ authentication
untuk localhost dan password level database engine harus berbeda dengan
operating system.
Superuser level operating system (root)
Operating system user dengan level superuser bisa masuk sebagai user yang
menjalankan service postgresql dengan command ‘su –l postgres –c …..’
dimana ‘-c’ adalah command untuk mengoperasikan service postgresql. User
ini tidak dapat diberikan kepada operator.
Penempatan…..
Powerpoint Templates
Page 6
7. PostgreSQL
Langkah Pengamanan
Penempatan pg_hba.conf dan postgresql.conf dan pembatasan baca/tulisnya
Pg_hba.conf harus dimiliki oleh ‘root’ tetapi boleh dibaca oleh yang lain sehingga hanya
root yang bisa melakukan modifikasi terhadap pg_hba.conf namun user
operator yang digunakan dalam menjalan service bisa membaca contentnya .
Berikan attribute 645 (write by root, read by root, read by other, execute
search by other) pada file pg_hba.conf.
Postgresql.conf, karena sifatnya dapat diberikan kepemilikannya kepada user operator
sehingga operator dan fungsi DBA bisa mengimplementasikan parameter tuning
level engine.
Implementasi ‘sudoers’
sudoers adalah fasilitas pada operating system linux yang memungkinkan seorang user
menjalankan aplikasi sebagai user lain yang dalam hal ini umumnya adalah
superuser atau root. Tidak boleh ada operating system user yang dikuasakan
kepada operator yang masuk sebagai sudoers.
Powerpoint Templates
Page 7
8. PostgreSQL
Langkah Pengamanan
Superuser level engine dan Operator user level engine.
Superuser pada level engine secara default adalah postgres yang secara default juga
merupakan operator user pada level OS. Implementasi pengamanannya bisa
dilakukan dengan
Memberikan password pada user postgres tersebut dan merubah authentication nya dari
‘trust’ menjadi md5 atau mekanisme lain selain trust.
Contoh penambahan operuser:
-->ALTER USER postgres WITH PASSWORD ‘newpassword’;
Membuat user pada level engine pada group sesuai database owner yang akan dimaintain
dan revoke seluruh grant terhadap database yang akan dimaintain.
-->CREATE USER operuser IN GROUP postgres PASSWORD ‘operpassword’;
-->ALTER USER operuser NOSUPERUSER NOCREATEDB NOCREATEROLE NOCREATEUSER
NOINHERIT;
-->REVOKE ALL ON DATABASE maintaineddb FROM operuser;
Powerpoint Templates
Page 8
10. PostgreSQL
Langkah Pengamanan
Contoh perubahan content file pg_hba.conf. Highlight merah, default value
diremove atau di-comment, tambah 2 entry untuk postgres dan
operuser. Karena aksesnya lokal, operuser bisa menggunakan trust
maupun mekanisme lainnya.
Powerpoint Templates
Page 10