Dokumen tersebut membahas tentang optimasi keamanan server untuk aplikasi web dengan menggunakan PHP. Beberapa poin pentingnya adalah menggunakan SSL untuk enkripsi, membatasi akses remote ke database, mengatur firewall untuk membuka port yang diperlukan, dan mengatur hak akses pengguna untuk meningkatkan keamanan.
4. LINUX SERVER
Penggunaan Linux sebagai web-server sangat umum digunakan karena kebutuhan
minimum requirements yang rendah dan kemampuan mengelola concurrent
connection yang baik
4
5. WINDOWS SERVER
Penggunaan Windows sebagai web-server sebisa mungkin menggunakan OS yang
memang ditujukan untuk hal tersebut. Menggunakan Windows yang bukan untuk
server dapat berdampak pada performa server dalam mengelola concurent
connection dalam satu waktu
5
8. 8
XAMPP is not meant for production use but only for development environments. XAMPP is configured to be
open as possible to allow the developer anything he/she wants. For development environments, this is great
but in a production environment, it could be fatal.
Here a list of missing security in XAMPP:
•The MySQL administrator (root) has no password.
•The MySQL daemon is accessible via network.
•ProFTPD uses the password "lampp" for user "daemon".
•The default users of Mercury and FileZilla are known.
Source : https://www.apachefriends.org/faq_windows.html
XAMPP NOT MEANT FOR PRODUCTION
9. 9
WampServer declare itself as a Windows web development environment.
Comes with fewer functionalities than XAMPP (without FTP Server, Mercury, and
daemon MySQL)
Comes with multiple PHP version, MySQL Version, MariaDB options, and
online/offline switcher, and VirtualHost
Online/Offline Switcher give save enough configuration, but still need security
optimization
WAMP ARE NOT APPROPRIATE FOR PRODUCTION
10. 10
MAMP Pro available for MacOS and Windows
Comes with rich functionalities like LAMP Stack
Have setting to run as production server.
MAMP PRO FORYOUR PRODUCTION SERVER
11. OPTIMIZE WEB SERVER SECURITY
Optimasi dilakukan dalam rangka meningkatkan keamanan dari sisi konfigurasi,
sedangkan apabila ada celah dalam aplikasi maka
WE CAN’T DO ANYTHING ABOUT IT ☺
11
12. 12
Security Enhance
Apache
Robots.txt Use SSL VirtualHost
Run as
Services
Disable Error
Reporting
Production
Mode
Application
SQL Server
NOT USE SA
User
Management
Limit Remote
Connection
OS
Firewall
SISI OPTIMASI SECURITY
14. 14
Search Engine Crawler menggunakan file ini untuk crawler direction
Set it to "disallow / "
Ketika sebuah website tidak di crawl oleh Search Engine, aplikasi
akan lebih sulit dideteksi oleh dunia luar apabila terdapat kegagalan
ROBOTS.TXT
16. 16
Secure Sockets Layer (SSL) adalah standar keamanan teknologi untuk membangun koneksi
terenkripsi dari server ke client (biasanya web server dan brower pengguna atau mail server
ke mail client)
SSL Certificate saat ini seakan menjadi standar baru dalam dunia web. Mengingat keamanan
yang memang penting dan makin bertebarannya wi-fi di banyak ruang publik menjadikan
kebutuhan atas SSL Certificate untuk keamanan akun anda menjadi meningkat.
Dapat Menggunakan SSL Certificate berbayar, Self Signed SSL, atau menggunakan Lets
Encrypt
USE SSL
Rujukan :
https://www.belajararief.com/index.php/tulisan/tekno/192-ssl-certificate
https://www.belajararief.com/index.php/tulisan/tekno/195-ssl-lebih-mudah-dan-murah-dengan-let-s-encrypt
18. 18
Generasi baru Apache menggunakan skema
VirtualHost
Amankan VirtualHost anda dengan konfigurasi yang
sesuai dengan kebutuhan anda (i.e. Force SSL
Connection)
VIRTUALHOST
19. 19
Server biasanya berjalan 24/7
Ketika listrik mati, server akan reboot secara otomatis
Untuk menghindari downtime, jalankan apache pada
server anda sebagai automatic services
RUN APACHE AS A SERVICES
20. 20
Banyak teknik hacking yang menggunakan error reporting sebagai
celah untuk masuk ke aplikasi anda
Disable Error Reporting pada PHP akan memberikan peningkatan
keamanan pada aplikasi anda, hal ini akan memberikan informasi
yang lebih sedikit kepada hacker yang mencoba masuk pada
aplikasi anda
DISABLE ERROR REPORTING
21. 21
FMIS secara default menggunakan setting
PRODUCTION ENVIRONMENT
Apabila dibutuhkan untuk debug maka FMIS dapat
diubah pada setting development yang hanya boleh
dilakukan pada Komputer Lokal
PRODUCTION MODE APPLICATION
26. 26
• sudo apt install mssql-server
LANGKAH INSTALASI PADA LINUX
27. 27
Jangan gunakan user sa untuk aplikasi, gunakan user spesifik selain sa dengan rule yang
memadai
Gunakan satu username/password untuk tiap database, hindari menggunakan satu
user/password untuk semua
Jika anda membutuhkan remote access untuk database, gunakan read-only access
sebagai pendekatan utama. Batasi user yang dapat menggunakan fasilitas remote access.
Ubah Password secara periodik
DELETE ROOT – USER MANAGEMENT – LIMIT REMOTE
CONNECTION
29. 29
• Buka hanya port yang
dibutuhkan FMIS sebagai
webserver,
• Sebagai contoh yaitu port 80
atau 443 (SSL), atau port lain jika
Anda menggunakan costum port
seperti 8080
SETUP FIREWALLWINDOWS CONTOH
30. 30
• Buka hanya port yang
dibutuhkan FMIS sebagai
webserver,
• Sebagai contoh yaitu port 80
atau 443 (SSL), atau port lain jika
Anda menggunakan costum port
seperti 8080
SETUP FIREWALL LINUX DENGAN CONTOH
31. 31
Selalu gunakan firewall
Buka Hanya Port-Port yang dibutuhkan pada server anda (untuk
SSL buka port 433, atau untuk database anda buka port 1433)
Gunakan Hardware tambahan untuk Firewall anda
FIREWALL
32. 32
Ubah FTP Password secara periodic
Dalam format VirtualHost, setiap aplikasi seharusnya
memiliki FTP user dan password terpisah
CHWON dan CHMOD secara hati-hati
FTP SERVER