İnternet tabanlı geliştirdiğimiz yazılımlarda “Test Ortamı” oluşturmak başlı başına dert. Eğer kullandığınız geliştirme araçları özel konfigürasyon gerektiriyorsa yazılım kadar sistem tarafı da yorucu olabiliyor.
PHP uygulamalarında genellikle MySQL kullanıyorum. Ancak bazı durumlarda sunucu tarafında hem servis tabanlı port kısıtlaması hem de güvenlik duvarı tabanlı kısıtlamalar olabiliyor.
Bu durumda Remote MySQL’u Local’miş gibi kullanmak en problemsiz çözüm oluyor. Normal şartlarda sanal sunucu ve sunucu kullanırken ssh erişiminiz olduğu için port yönlendirmesi yapabiliyorsunuz. Ancak hosting sahipleri bu durumda port yönlendirmesi yapamıyorlar.
Servis sağlayıcınız temel portları açık bırakıp, MySQL bağlantı portunu kapatmışsa mevcut portlardan birini feda etmeniz gerekebiliyor
Bugün benzer bir işlemde, sunucu üzerinde tanımlı 8080 portunun kullanılmadığını gördüğüm için dışarıdan gelen 8080 isteklerini sunucu içindeki 3306 portuna yönlendirdim. Bu durumda MySQL portunu dışarıya açmadığım için herhangi bir güvenlik sorunu da yaşamayacağımı düşündüm.
Iptables yardımı ile şu şekilde yönlendirme yaptım;
1 2 | iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 123.123.123.123:3306 iptables -A INPUT -i eth0 -p tcp -m tcp --dport 8080 -j ACCEPT |
Birinci satırda gördüğünüz gibi 8080 portundan gelen istekler ip adresindeki 3306 portuna iletiliyor. İkinci satırda ise 8080 portundan gelen istekleri onaylayıp, izin veriyorum.
Uyarı: Bu yöntem sadece 3306 portuna izin vermeyen ancak farklı portları açık bırakan ISP’lerde konumlanan sunucuların MySQL portunu dışarıya açmak için kullanılan bir yöntemdir. Tamamiyle güvenli olduğunu savunmuyorum. Standart port üzerinde olmadığı için “Güvenli” kelimesini kullandım.








