Pada beberapa distribusi Linux, port 3306 terbuka setelah Anda menginstal MySQL. Artikel ini menjelaskan dua metode untuk membatasi atau memblokir akses ke port 3306 di server yang tidak dikelola.
Informasi dalam artikel ini hanya berlaku untuk produk yang tidak dikelola. Anda harus memiliki akses root ke server untuk mengikuti prosedur yang dijelaskan di bawah ini.Metode #1:Nonaktifkan jaringan MySQL
Jika Anda tidak perlu mengakses MySQL dari komputer eksternal, Anda dapat menonaktifkan jaringan MySQL.
Ikuti prosedur yang sesuai di bawah ini untuk distribusi Linux Anda.
Bahkan dengan jaringan MySQL dinonaktifkan, Anda masih dapat mengakses MySQL dengan aman dari komputer jarak jauh jika perlu. Untuk melakukan ini, Anda dapat mengonfigurasi terowongan SSH. Untuk informasi tentang cara melakukannya, silakan lihat artikel ini.CentOS dan Fedora
Untuk menonaktifkan jaringan MySQL di CentOS dan Fedora, ikuti langkah-langkah berikut:
- Masuk ke server Anda menggunakan SSH.
- Pada prompt perintah, gunakan editor teks pilihan Anda untuk membuka /etc/my.cnf berkas.
- Temukan baris berikut di my.cnf file:
#skip-networking
Jika baris ini tidak ada di my.cnf file, tambahkan. -
Hapus # tanda di awal baris sehingga terlihat seperti berikut:
skip-networking
- Simpan perubahan Anda ke /etc/my.cnf file, lalu keluar dari editor teks.
-
Ketik perintah berikut untuk me-restart layanan MySQL:
service mysqld restart
Port 3306 sekarang ditutup di server.
Debian dan Ubuntu
Secara default, MySQL di Debian dan Ubuntu dikonfigurasi untuk hanya menggunakan localhost antarmuka (alamat IP 127.0.0.1) untuk jaringan. Ini berarti port 3306 tertutup untuk koneksi eksternal. Untuk mengonfirmasi bahwa ini adalah konfigurasi di server Anda, ikuti langkah-langkah berikut:
- Masuk ke server Anda menggunakan SSH.
- Pada prompt perintah, gunakan editor teks pilihan Anda untuk membuka /etc/mysql/my.cnf berkas.
- Temukan MySQL mengikat-alamat baris di my.cnf mengajukan. Seharusnya terlihat seperti berikut:
bind-address = 127.0.0.1
Jika MySQL mengikat-alamat baris disetel ke 0.0.0.0 (atau tanpa alamat sama sekali), maka koneksi akan terbuka di semua antarmuka. - Jika Anda membuat perubahan apa pun pada /etc/my.cnf file, simpan, lalu keluar dari editor teks.
-
Untuk me-restart layanan MySQL, ketik perintah berikut:
service mysql restart
Port 3306 sekarang ditutup di server.
Metode #2:Konfigurasi aturan firewall
Anda dapat menggunakan iptables untuk membuat aturan firewall yang membatasi akses ke port 3306. Keuntungan metode ini adalah Anda dapat secara selektif memberikan atau menolak akses ke port 3306 berdasarkan alamat IP atau kriteria lainnya.
Misalnya, untuk memblokir akses eksternal ke port 3306 sepenuhnya, ketik perintah berikut:
iptables -A INPUT -p tcp --dport 3306 -j DROP
Demikian pula, untuk memberikan akses ke alamat IP tertentu dan memblokir semua yang lain, ketik perintah berikut. Ganti xxx.xxx.xxx.xxx dengan alamat IP yang ingin Anda beri akses:
iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP
Anda dapat memberikan akses MySQL ke alamat IP tambahan dengan memasukkan aturan di INPUT rantai sebelum DROP aturan. Misalnya:
iptables -I INPUT 1 -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT