Saya memiliki server yang tidak mengizinkan koneksi ke mysql dari sumber eksternal - semua basis data dan koneksi saya berlangsung di localhost. Kebijakan default iptables adalah untuk menjatuhkan koneksi untuk setiap port yang tidak saya tentukan (saat ini saya tidak memiliki port 3306 yang ditentukan dalam aturan iptable saya, sehingga semua koneksi ke port ini terputus).
Tidak apa-apa, tapi sekarang saya ingin terhubung ke database mysql yang terletak di luar Amazon RDS.
Port 3306 dapat dibuka hingga dunia luar sebagai berikut:
iptables -t filter -A INPUT -p tcp --sport 3306 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
Ini memungkinkan saya untuk terhubung ke database di Amazon RDS, namun juga memungkinkan koneksi jarak jauh ke database di server saya.
Apa yang harus saya lakukan untuk memungkinkan server saya terhubung ke database di Amazon, tetapi membatasi koneksi eksternal ke database di server saya?
Juga ingat bahwa alamat IP saya contoh Amazon RDS dapat berubah secara berkala saya percaya.
Jawaban:
Manfaatkan mesin negara:
atau dalam versi iptables yang lebih baru
Inilah yang dilakukan oleh mesin keadaan: memungkinkan lalu lintas yang memenuhi berbagai kriteria (misalnya, protokol, port sumber) tetapi juga merupakan bagian dari koneksi yang ada (karena mendefinisikan koneksi ). Hasilnya adalah bahwa
TCP SYN
paket keluar ke alamat IP eksternal tertentu pada port tujuan 3306, dari port ephmeral lokal, akan membuat entri tabel keadaan untuk kombinasi tertentu dari alamat IP dan nomor port, dan hanya mengembalikan lalu lintas dengan kombinasi yang sama dari alamat dan port akan diizinkan melalui, dan hanya selama durasi koneksi itu.sumber