Ubuntu 16.04 / phpMyAdmin / Cara Membuatnya Hanya Dapat Diakses dari IP Tertentu
Untuk membatasi alamat IP yang dapat mengakses phpMyAdmin di Apache 2.4, gunakan Require ip dalam pengaturan akses direktori phpMyAdmin. Tentukan alamat yang diperbolehkan, periksa sintaks konfigurasi, dan kemudian muat ulang Apache. Akses kemudian hanya akan diizinkan untuk alamat yang ditentukan pada jalur di mana pengaturan diaplikasikan.
Ruang lingkup penerapan dan prasyarat
Artikel ini menggunakan contoh phpMyAdmin yang diinstal dari paket pada Ubuntu, disajikan langsung oleh Apache 2.4, di mana direktori /usr/share/phpmyadmin digunakan dalam konfigurasinya. Metode instalasi, host virtual, alias, dan lokasi file konfigurasi bervariasi tergantung pada lingkungannya. Jangan menerapkan contoh ini begitu saja untuk setup yang menggunakan Nginx, kontainer, atau proxy terpisah.
Dukungan keamanan standar untuk Ubuntu 16.04 LTS berakhir pada April 2021, dan dukungan Ubuntu Pro berakhir pada Mei 2026. Periksa kondisi untuk dukungan Legacy tambahan dan rencanakan untuk bermigrasi ke versi yang didukung. Anda dapat memeriksa jadwal rinci pada Jadwal Pemeliharaan Keamanan Ubuntu.
Jika pengaturan diterapkan dengan salah, bahkan administrator mungkin tidak dapat mengakses sistem. Sebelum melakukan perubahan, amankan akses konsol atau SSH ke server, dan verifikasi alamat IP aktual dari administrator yang diizinkan mengakses serta jalur yang digunakan oleh phpMyAdmin. Saat mengakses melalui internet, umumnya IP publik yang terlihat oleh server yang dibutuhkan, bukan IP privat dari PC manajemen. Alamat yang terlihat oleh server dapat bervariasi tergantung pada penggunaan VPN, proxy, NAT, dan IPv6.
Pemeriksaan dan Cadangan Konfigurasi Apache Saat Ini
Periksa alias dan pengaturan direktori phpMyAdmin pada versi Apache dan konfigurasi yang aktif. Jika file-file berikut tidak ada, temukan file konfigurasi yang sebenarnya sesuai dengan metode instalasi. Hasil pencarian berikut mungkin termasuk pengaturan yang tidak aktif, jadi verifikasi juga pengaturan aktif dan virtual host.
apache2 -v
sudo apache2ctl -S
sudo grep -R -n -i phpmyadmin /etc/apache2/conf-enabled /etc/apache2/sites-enabled
Jika konfigurasi paket ada di /etc/apache2/conf-available/phpmyadmin.conf dan konfigurasi tersebut aktif, lakukan backup sebelum melakukan perubahan. Jika file backup di bawah ini sudah ada, beri nama yang berbeda agar tidak menimpanya.
sudo cp -a /etc/apache2/conf-available/phpmyadmin.conf /etc/apache2/conf-available/phpmyadmin.conf.before-ip-restriction
Buka file konfigurasi yang sebenarnya dengan editor teks dan temukan bagian <Directory /usr/share/phpmyadmin>. Misalnya, Anda dapat mengeditnya dengan perintah berikut.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Mengatur alamat IP yang diizinkan
Setelah memeriksa aturan izin akses di bagian direktori phpMyAdmin yang ada, tetapkan aturan persetujuan yang berlaku untuk bagian tersebut sebagai berikut. Alamat-alamat di bawah ini adalah contoh untuk tujuan penjelasan, jadi pastikan untuk menggantinya dengan alamat administrator yang sebenarnya. Pertahankan pengolahan PHP yang ada atau pengaturan lain yang diperlukan di bagian asli.
<Directory /usr/share/phpmyadmin>
Require ip 192.0.2.10
</Directory>
Blok di atas adalah contoh yang menunjukkan bagian kontrol akses. Jangan menghapus seluruh bagian direktori yang ada dan menempelkannya begitu saja. Jika Anda menempatkan Require all granted dan Require ip berdampingan dalam bagian yang sama, akses mungkin diizinkan jika salah satu diperbolehkan, jadi tinjau aturan persetujuan yang ada untuk memastikan pembatasan yang dimaksud benar-benar diterapkan. Bagian Directory atau Location lainnya atau pengaturan autentikasi juga dapat memengaruhi hasil, jadi periksa seluruh konfigurasi.
Jika ada beberapa alamat, Anda dapat mencantumkannya dipisahkan oleh spasi. Misalnya, aturan berikut memungkinkan akses jika sesuai dengan salah satu dari dua alamat. Jika Anda menentukan rentang jaringan, seluruh rentang akan diizinkan, jadi tentukan hanya rentang yang diperlukan. Alamat IPv6 dan notasi CIDR juga didukung.
Require ip 192.0.2.10 198.51.100.25
Direktif Order, Deny, dan Allow adalah sintaks warisan yang didukung untuk kompatibilitas di Apache 2.4. Hindari mencampur aturan lama dan baru secara sembarangan; tinjau konfigurasi yang ada dan persyaratan otentikasi lainnya sebelum bermigrasi ke sintaks saat ini. Lihat panduan kontrol akses dan dokumentasi Require ip untuk format alamat dan lingkup.
Pemeriksaan sintaks, penerapan, dan verifikasi koneksi
- Setelah menyimpan file, periksa sintaks dari seluruh konfigurasi Apache dengan perintah berikut. Jika
Syntax OKtidak muncul, periksa dan koreksi file serta baris yang mengalami kesalahan. Pemeriksaan sintaks tidak menjamin bahwa kebijakan akses akan berfungsi sesuai yang diinginkan.
sudo apache2ctl configtest
- Jika pemeriksaan sintaks berhasil, muat ulang konfigurasi dan periksa status layanan. Nama layanan mungkin berbeda tergantung pada distribusi.
sudo systemctl reload apache2
sudo systemctl status apache2
- Akses phpMyAdmin dari jaringan yang diizinkan menggunakan alamat yang ada. Jika Anda lulus kontrol akses, layar masuk mungkin muncul, tetapi login database terpisah diperlukan.
- Periksa alamat yang sama dari jaringan terpisah yang tidak termasuk dalam daftar izinkan. Jika aturan Apache yang relevan berlaku dan tidak ada kesalahan lain, biasanya
403 Forbiddenditampilkan. Jika alamat yang diizinkan diblokir atau alamat yang tidak diizinkan dapat membuka halaman, periksa log server, bagian konfigurasi yang berlaku, proxy, dan alamat IP.
Lingkungan Proxy dan Keamanan Tambahan
Jika Apache berada di belakang reverse proxy atau load balancer, Apache mungkin akan melihat IP proxy, bukan IP pengguna sebenarnya. Dalam kondisi ini, mengizinkan alamat proxy bisa memberikan akses ke lebih banyak pengguna daripada yang dimaksudkan, jadi berhati-hatilah. Untuk menggunakan alamat klien sebenarnya, perlu mengonfigurasi hanya proxy yang tepercaya. Jangan sembarangan mempercayai header yang dikirim oleh klien apa pun; setelah memeriksa dokumentasi Apache mod_remoteip , konfigurasikan sesuai dengan pengaturan jaringan Anda.
Pembatasan IP tidak menggantikan login phpMyAdmin atau manajemen izin basis data. Gunakan HTTPS dan batasi izin akun sesuai ruang lingkup yang diperlukan. Jika IP publik sering berubah di lingkungan Anda, daripada sembarangan mengizinkan rentang alamat yang luas, pertimbangkan jalur akses seperti VPN.
Masalah Koneksi dan Mengembalikan Pengaturan
Jika akses diblokir, periksa IP publik admin saat ini, rute IPv4 dan IPv6, apakah file konfigurasi aktif, dan apakah aturan persetujuan dari zona lain diterapkan. Lokasi log kesalahan Apache tergantung pada konfigurasi, dan dalam pengaturan default Ubuntu, Anda dapat memeriksa /var/log/apache2/error.log. Hati-hati saat membagikan log, karena mungkin mengandung informasi sensitif.
Jika Anda perlu mengembalikan perubahan, pertama bandingkan untuk memastikan tidak ada orang lain yang telah memodifikasi file sejak cadangan, kembalikan file cadangan ke jalurnya semula, lalu jalankan pemeriksaan sintaks dan muat ulang. Mengembalikan ke konfigurasi sebelumnya mungkin memungkinkan akses yang sebelumnya diizinkan kembali, jadi periksa ruang lingkup akses setelah pemulihan.
sudo cp -a /etc/apache2/conf-available/phpmyadmin.conf.before-ip-restriction /etc/apache2/conf-available/phpmyadmin.conf
sudo apache2ctl configtest && sudo systemctl reload apache2
Jika pemeriksaan sintaks menghasilkan kesalahan, jangan memuat ulang; perbaiki konfigurasinya saja. Juga pastikan bahwa login dan pembatasan akses yang dimaksud dipertahankan di lingkungan yang diizinkan maupun yang tidak diizinkan.




