(←Membuat halaman berisi 'Halaman ini kami buat karena ada banyak user yang mempertanyakan mengapa kami menginstruksikan user untuk menggunakan mode 777. ==Ringkasan== Pada sistem {{indogloba...') |
|||
(5 revisi antara oleh satu pengguna tak ditampilkan) | |||
Baris 3: | Baris 3: | ||
==Ringkasan== | ==Ringkasan== | ||
− | Pada sistem {{indoglobal | + | Pada sistem {{indoglobal}} tidak masalah jika file/directory diberi mode 777. User lain tetap tak akan dapat mengakses file/directory tersebut. |
==Penjelasan== | ==Penjelasan== | ||
− | + | Ada bermacam-macam konfigurasi hosting. Pada kebanyakan hosting lain script biasanya dijalankan dengan username sama dengan pemilik script. Jadi jika username adalah 'user', script juga dijalankan sebagai 'user'. Jadi dengan permission 755 sudah cukup untuk bisa melakukan baca tulis, dan biasanya tanpa perlu melakukan perubahan permission pun script sudah bisa melakukan baca tulis. | |
+ | |||
+ | Kelemahannya adalah jika ada celah keamanan di script (misalnya Wordpress), penyerang akan memiliki akses untuk memodifikasi instalasi Wordpress dan memasang backdoor, trojan dan sebagainya. Oleh karena itu pada sistem kami, kami memikirkan bagaimana masalah ini bisa diminimalkan. | ||
+ | |||
+ | Pada sistem kami, script dijalankan dengan username www yang khusus dibuat untuk akun yang bersangkutan. Contohnya, jika user anda adalah u777xxx, maka user www anda adalah u777xxx_www. User ini hanya menjalankan script milik u777xxx. Sedangkan user lain memiliki username www-nya masing-masing yang berbeda satu sama lainnya. Ini alasannya harus menggunakan mode 777 untuk folder dan minimal 666 untuk file supaya bisa dibaca tulis. | ||
+ | |||
+ | Di sistem {{indoglobal}}, tidak ada kasus dimana user bisa menjalankan script sebagai user 'apache', 'www' atau 'nobody'. Dan juga tidak ada kasus dimana user bisa menjalankan script sebagai user www milik pengguna lain. | ||
+ | |||
+ | User lain tetap tidak bisa membaca atau memodifikasi file yang anda miliki karena permission yang ada di home directory anda. Home directory masing-masing user diberi permission 750 (dengan sistem User Private Group (UPG), yaitu masing-masing user memiliki grup tersendiri). Karena itu user lain sama sekali tidak bisa masuk ke home directory anda. Di hosting lain, permission home directory biasanya adalah 755 atau 751, sehingga paling tidak user lain memiliki akses untuk masuk ke home directory orang lain. Ini sebabnya permission 777 berbahaya pada sistem tersebut. User akan bisa dengan mudah memodifikasi file milik user lain. | ||
+ | |||
+ | Sedangkan user www 'u777xxx_www' (untuk menjalankan script) dan 'apache' (untuk mengakses file static, misalnya image dsb) di sistem kami diberi akses melalui ACL pada home directory. Jadi user-user khusus ini diberi akses secara spesifik tanpa harus memberikan akses ke seluruh user lain. | ||
+ | |||
+ | Masalah keamanan baru akan terjadi jika user dengan sengaja mengubah permission home directory menjadi misalnya 755. | ||
+ | |||
+ | Dengan skema seperti ini, satu-satunya serangan yang memungkinkan adalah symlink attack. Namun hal ini tidak dapat dicegah dengan permission. Sistem {{indoglobal}} menggunakan web server Apache yang sudah dimodifikasi untuk mencegah symlink attack. | ||
+ | |||
+ | ==Alternatif Dari chmod 777== | ||
+ | |||
+ | Alternatif dari chmod 777 yang benar adalah UNIX ACL. Contoh: | ||
+ | |||
+ | <source lang="bash"> | ||
+ | setfacl -m u:u777xxx_www:rwx namafile | ||
+ | </source> | ||
+ | |||
+ | Perintah tersebut akan memberi akses baca tulis file 'namafile' kepada u777xxx_www (user www dari pengguna u777xxx). Masalahnya, cara ini hanya bisa dilakukan di shell, dan praktis tidak ada cara lain yang user friendly. Sedangkan tidak semua pengguna kami mahir menggunakan shell. | ||
[[Kategori:Web]] | [[Kategori:Web]] | ||
[[Kategori:Pengaturan & Upload]] | [[Kategori:Pengaturan & Upload]] |
Halaman ini kami buat karena ada banyak user yang mempertanyakan mengapa kami menginstruksikan user untuk menggunakan mode 777.
Pada sistem indoglobal.com tidak masalah jika file/directory diberi mode 777. User lain tetap tak akan dapat mengakses file/directory tersebut.
Ada bermacam-macam konfigurasi hosting. Pada kebanyakan hosting lain script biasanya dijalankan dengan username sama dengan pemilik script. Jadi jika username adalah 'user', script juga dijalankan sebagai 'user'. Jadi dengan permission 755 sudah cukup untuk bisa melakukan baca tulis, dan biasanya tanpa perlu melakukan perubahan permission pun script sudah bisa melakukan baca tulis.
Kelemahannya adalah jika ada celah keamanan di script (misalnya Wordpress), penyerang akan memiliki akses untuk memodifikasi instalasi Wordpress dan memasang backdoor, trojan dan sebagainya. Oleh karena itu pada sistem kami, kami memikirkan bagaimana masalah ini bisa diminimalkan.
Pada sistem kami, script dijalankan dengan username www yang khusus dibuat untuk akun yang bersangkutan. Contohnya, jika user anda adalah u777xxx, maka user www anda adalah u777xxx_www. User ini hanya menjalankan script milik u777xxx. Sedangkan user lain memiliki username www-nya masing-masing yang berbeda satu sama lainnya. Ini alasannya harus menggunakan mode 777 untuk folder dan minimal 666 untuk file supaya bisa dibaca tulis.
Di sistem indoglobal.com, tidak ada kasus dimana user bisa menjalankan script sebagai user 'apache', 'www' atau 'nobody'. Dan juga tidak ada kasus dimana user bisa menjalankan script sebagai user www milik pengguna lain.
User lain tetap tidak bisa membaca atau memodifikasi file yang anda miliki karena permission yang ada di home directory anda. Home directory masing-masing user diberi permission 750 (dengan sistem User Private Group (UPG), yaitu masing-masing user memiliki grup tersendiri). Karena itu user lain sama sekali tidak bisa masuk ke home directory anda. Di hosting lain, permission home directory biasanya adalah 755 atau 751, sehingga paling tidak user lain memiliki akses untuk masuk ke home directory orang lain. Ini sebabnya permission 777 berbahaya pada sistem tersebut. User akan bisa dengan mudah memodifikasi file milik user lain.
Sedangkan user www 'u777xxx_www' (untuk menjalankan script) dan 'apache' (untuk mengakses file static, misalnya image dsb) di sistem kami diberi akses melalui ACL pada home directory. Jadi user-user khusus ini diberi akses secara spesifik tanpa harus memberikan akses ke seluruh user lain.
Masalah keamanan baru akan terjadi jika user dengan sengaja mengubah permission home directory menjadi misalnya 755.
Dengan skema seperti ini, satu-satunya serangan yang memungkinkan adalah symlink attack. Namun hal ini tidak dapat dicegah dengan permission. Sistem indoglobal.com menggunakan web server Apache yang sudah dimodifikasi untuk mencegah symlink attack.
Alternatif dari chmod 777 yang benar adalah UNIX ACL. Contoh:
setfacl -m u:u777xxx_www:rwx namafile
Perintah tersebut akan memberi akses baca tulis file 'namafile' kepada u777xxx_www (user www dari pengguna u777xxx). Masalahnya, cara ini hanya bisa dilakukan di shell, dan praktis tidak ada cara lain yang user friendly. Sedangkan tidak semua pengguna kami mahir menggunakan shell.
Sosial
Facebook
Twitter
Google Plus
Temukan kami di Google+