ServBay Yerel Geliştirme Ortamına Yerel Ağ (LAN) Üzerinden Erişim
Küçük geliştirici ekipleri veya birden fazla cihazda test yapmak isteyen bireysel geliştiriciler için, başka bir cihaz veya ekip üyelerinin bilgisayarındaki ServBay yerel geliştirme ortamına LAN üzerinden erişmek yaygın ve önemli bir ihtiyaçtır. ServBay, temel servislerin büyük kısmına LAN erişimini doğal olarak destekler; ancak bazı servisler için güvenlik ve erişilebilirliği sağlamak adına ek yapılandırmalar gerekebilir.
Bu makale, ServBay üzerinden LAN'da web sitesi ve veritabanı servislerinin nasıl yapılandırılacağını ve erişileceğini ayrıntılı olarak sunar.
Ön Koşullar
ServBay servislerine LAN üzerinden erişim sağlamadan önce aşağıdaki koşulların karşılandığından emin olun:
- Ağ Bağlantısı: ServBay servis sağlayıcı bilgisayarınız (bundan sonra “sunucu”, İngilizcesi ile “host”) ve müşterinin bilgisayarı (“istemci”) aynı yerel ağda olmalıdır.
- Sunucu IP Adresi: Sunucunuzun yerel ağdaki dahili IP adresini bilin. Bu bilgiye sunucu bilgisayarınızın ağ ayarlarından ulaşabilirsiniz.
- Güvenlik Duvarı Yapılandırması: Eğer sunucu işletim sisteminizde güvenlik duvarı açıksa, ServBay’in kullandığı temel portlara (ör: HTTP 80, HTTPS 443, MySQL 3306, PostgreSQL 5432, Redis 6379 vb.) dış bağlantı erişimine izin vermelisiniz. Paylaşmak istediğiniz servisleri seçin ve gerekirse erişim kontrol listeleri (ACL) tanımlayarak yalnızca belirli IP aralıklarından ziyarete izin verin.
Web Sitesi (Website)
ServBay ile yapılandırılan yerel siteler varsayılan olarak genellikle sunucudaki tüm ağ arayüzlerini (0.0.0.0
veya *
) dinleyecek şekilde yapılandırılmıştır, böylece aynı LAN’daki diğer cihazların erişimine açık olurlar. ServBay, web sunucusu olarak Caddy veya Nginx kullanır ve varsayılan ayarları genellikle bu şekildedir.
Yine de istemci cihazında bu web sitesine alan adıyla erişebilmek için, ziyaretçinin kendi sisteminde alan adının doğru şekilde DNS ile çözümlenmiş olması gerekir. Ayrıca, yerel web sitenizde ServBay tarafından oluşturulan SSL sertifikası kullanıyorsanız (şiddetle önerilir), ziyaretçilerin tarayıcı uyarılarını önlemek adına ServBay’in kök sertifikasını kurmaları gerekir.
Aşağıda örnek bir yapılandırma süreci gösterilmiştir:
- Sunucu LAN IP’si:
10.0.0.3
- ServBay Site Alan Adı:
servbay.demo
- Web Site Dizini:
/Applications/ServBay/www/servbay.demo
Alan Adı Çözümlemesi (DNS) Ayarlama
İstemci bilgisayarının, servbay.demo
alan adının 10.0.0.3
sunucu IP’sine karşılık geldiğini bilmesi gerekir. Bunun için iki yaygın yöntem vardır:
İstemci Hosts Dosyasını Düzenleme: Az sayıda istemci için en basit ve doğrudan yöntem.
- İstemci bilgisayarında Hosts dosyasını bulun.
- macOS/Linux:
/etc/hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts
- macOS/Linux:
- Yönetici yetkileriyle Hosts dosyasını açıp sonuna şu satırı ekleyin:
10.0.0.3 servbay.demo
1 - Dosyayı kaydedin. Artık istemci bilgisayarındaki
servbay.demo
sorguları otomatik olarak10.0.0.3
adresine yönlenecektir.
- İstemci bilgisayarında Hosts dosyasını bulun.
LAN DNS Sunucusu Kullanma: Eğer kendi LAN DNS sunucunuz varsa (ör. modem veya router’daki DNS özelliği, özel bir DNS hizmeti)
servbay.demo
için bir A kaydı açıp hedefi10.0.0.3
yapabilirsiniz. Böylece bu DNS sunucusunu kullanan tüm ağdaki cihazlardakiservbay.demo
çözümlemesi sunucuya yönlenecektir.
ServBay Kök Sertifikasını (SSL) Yayma ve Kurma
ServBay, lokal geliştirme için kök sertifika (ServBay User CA) oluşturup, bu sitedeki SSL sertifikalarına imza atar. İstemci cihazların HTTPS bağlantılarında güvenlik uyarısı yaşamamaları için, öncelikle ServBay User CA’yı tanımaları gerekir.
ServBay User CA’yı dışarıya aktararak, LAN’daki ziyaretçilere göndermeli ve onlara kendi işletim sistemi ya da tarayıcılarına bu kök sertifikayı kurmaları için yol göstermelisiniz.
Detaylı dışa aktarma ve kurulum adımlarını ServBay’in SSL Sertifika Yönetimi dokümantasyonunda, özellikle sertifika dışa aktarma ve işletim sistemi/tarayıcıya kurulum bölümlerinde bulabilirsiniz.
Veritabanı
ServBay; MySQL, MariaDB, PostgreSQL ve MongoDB gibi pek çok veritabanını, ayrıca Redis ve Memcached gibi bellek veritabanlarını destekler. Farklı veritabanlarının varsayılan ağ dinleme ve yetkilendirme yapıları değişkendir.
MySQL / MariaDB
ServBay’de MySQL ve MariaDB veritabanlarının varsayılan ayarı, tüm ağ arayüzlerini (0.0.0.0
) dinleyecek şekilde ayarlıdır. Yani LAN’daki cihazlardan bağlantı kabul ederler.
Ancak, MySQL/MariaDB katı kullanıcı yetkilendirme kontrollerine sahiptir. Ağ bağlantısı açık olsa bile, ziyaretçinin bağlandığı IP adresinden erişim yetkisi olan bir kullanıcı adı ve parolası gerekir.
Varsayılan root
kullanıcısı genellikle yalnızca 127.0.0.1
veya localhost
’tan bağlantıya izin verir. LAN erişimi için ya yeni bir veritabanı kullanıcısı oluşturun, ya da mevcut kullanıcının IP’ye göre erişim izinlerini genişletin (ör. belirli LAN IP’si veya `%'’ ile tüm IP’ler).
Örneğin, servbay-demo
adlı bir kullanıcıyı tüm LAN IP’lerinden (%
) bağlantı izniyle ve uygun veritabanı haklarıyla oluşturmak için:
-- root veya yeterli yetkili kullanıcı ile giriş yaptıysanız
CREATE USER 'servbay-demo'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON `your_database_name`.* TO 'servbay-demo'@'%';
FLUSH PRIVILEGES;
2
3
4
Lütfen 'your_strong_password'
ve your_database_name
alanlarını ihtiyacınıza göre değiştirin.
Önemli Uyarı: Her IP’den bağlanabilen (%
) ve geniş yetkili kullanıcılar güvenlik zaafiyeti doğurabilir. Üretim ortamında veya tamamen güvenli olmayan LAN’larda, kullanıcıları yalnızca belirli ve bilinen IP adreslerinden erişime açın (örneğin 'servbay-demo'@'10.0.0.5'
). Dilerseniz VPN ya da daha güvenli bağlantı yöntemleri tercih edin.
ServBay, MySQL ve MariaDB root
şifresini sıfırlamayı destekler; dilerseniz bu özelliği veya istemci araçlarını kullanıcı yetkilerini yönetmek için kullanabilirsiniz.
Redis
ServBay’de Redis’in varsayılan yapısı yalnızca yerel loopback adresini (127.0.0.1
) dinler, yani dış LAN erişimine kapalıdır. Bunun nedeni Redis’in genellikle parola doğrulaması açık olmadan çalışmasıdır.
Redis’i LAN erişimine açmak için Redis’in redis.conf
yapılandırma dosyasını değiştirmeniz gerekir.
Bunu iki şekilde yapabilirsiniz:
1. ServBay Arayüzüyle Yapılandırma
- ServBay’i açın, sol menüden ‘Veritabanı’ → ‘Redis’ bölümüne gidin.
- Sağdaki ayar panelinde ‘Require Password’u işaretleyin ve güçlü bir parola girin.
- ‘Kaydet’ butonuna basın.
2. Manuel olarak redis.conf
düzenleme (Önerilmez)
- ServBay’de Redis yapılandırma dosyasının yolunu bulun (
/Applications/ServBay/etc/redis/redis.conf
gibi). - Bir metin editörü ile
redis.conf
dosyasını açın. bind 127.0.0.1
satırını bulun.- Bunu
bind 0.0.0.0
olarak değiştirin veya başına#
koyarak yoruma alın: (# bind 127.0.0.1
). Bu sayede Redis tüm ağ arayüzlerinde dinleme yapacaktır. - [Çok Önemli]
requirepass
satırını bulun (yoruma alınmış olabilir). Yorumu kaldırın ve güçlü bir parola ayarlayın:Parola ayarlamadan Redis’i LAN/Internet’e açmayın! Büyük güvenlik riski doğar!requirepass your_very_strong_redis_password
1 - Dosyayı kaydedin.
- ServBay arayüzünden Redis servisini yeniden başlatın.
Artık istemci cihazlar, sunucunun LAN IP adresi ve ayarladığınız parola ile Redis’e bağlanabilirler.
PostgreSQL
ServBay’de PostgreSQL’in varsayılan yapılandırması da sadece local loopback adresini (127.0.0.1
) dinler, bu yüzden LAN erişimine kapalıdır.
LAN erişimi açmak için iki ana konfigürasyon dosyasını değiştirmelisiniz: postgresql.conf
ve pg_hba.conf
.
ServBay’de PostgreSQL yapılandırma dosyalarının yerini bulun (örneğin
/Applications/ServBay/etc/postgresql/postgresql.conf
ve/Applications/ServBay/etc/postgresql/pg_hba.conf
).postgresql.conf
ayarını değiştirin:- Metin editöründe
postgresql.conf
dosyasını açın. listen_addresses
satırını bulun (yoruma alınmış olabilir).- Yorumu kaldırıp değeri
'*'
olarak değiştirin – PostgreSQL artık tüm ağ arayüzlerinde dinleme yapacak:listen_addresses = '*'
1 - Dosyayı kaydedin.
- Metin editöründe
pg_hba.conf
ayarı:pg_hba.conf
dosyasını metin editöründe açın. Bu dosyada hangi kullanıcı ve makinelerin hangi veritabanına nasıl bağlanacağı tanımlanır.- Aşağıdaki gibi bir satır ekleyin (ör. LAN IP aralığınızdan bağlantı, parola ile):
# TYPE DATABASE USER ADDRESS METHOD host all all 10.0.0.0/24 md5
1
2TYPE
: TCP/IP bağlantısı içinhost
DATABASE
:all
ile tüm veritabanları. Dilerseniz tek veritabanı belirtebilirsiniz.USER
:all
ile tüm kullanıcılar. Dilerseniz kullanıcıyı sabitleyebilirsiniz.ADDRESS
:10.0.0.0/24
örnek bir IP aralığıdır (10.0.0.1
-10.0.0.254
). Tek IP de belirtebilirsiniz.0.0.0.0/0
ile tüm IPv4 IP’lere izin verilebilir (güvenlik için önerilmez).METHOD
:md5
parola şifreli bağlantı önerilir.trust
(şifresiz güven) asla uzaktan bağlantıda kullanılmamalıdır;password
ise (düz metin) güvensizdir.
- Dosyayı kaydedin.
ServBay’de PostgreSQL servisini yeniden başlatın.
Artık istemci, sunucunun LAN IP’si ve yetkili PostgreSQL kullanıcı adı/parolasıyla PostgreSQL’e bağlanabilir.
ServBay, PostgreSQL’in root
(postgres) şifresini sıfırlamayı destekler; istemci araçlarıyla veya bu özellikle kullanıcı erişimini yönetebilirsiniz.
Memcached
Memcached, yüksek performanslı dağıtık bellek nesne önbelleği sistemidir ve tasarım olarak gömülü doğrulama veya yetkilendirme mekanizması sunmaz.
Bu nedenle, Memcached’i LAN hatta genel ağa doğrudan açmak tavsiye edilmez. Ancak mutlaka açmanız gerekiyorsa, sadece güvenilir sunucu ve hizmetlerin erişebileceği şekilde LAN segmenti, güvenlik duvarı ve kısıtlamalarla bunu güvence altına almalısınız. Varsayılan ayarlarda genellikle sadece local loopback adresi dinlenir. Dinleme adresini Redis’teki gibi ayarlayabilirsiniz fakat şifre koruması olmadığını unutmayın.
Güvenlik Notları
Yerel geliştirme ortamınızı LAN’da paylaşmak ekip içi işbirliği ve çoklu cihaz testini kolaylaştırır; fakat aynı zamanda bazı güvenlik riskleri de getirir. Lütfen aşağıdaki kurallara uyun:
- Güvenlik Duvarı: ServBay sunucunuzda açık portlara erişimi daima güvenlik duvarı ile sınırlandırın. Yalnızca güvenilir LAN IP aralıklarına izin verin.
- Güçlü Parola: Veritabanları (MySQL/MariaDB/PostgreSQL) ve Redis için güçlü parolalar kullanın. Şifreleri düzenli aralıklarla yenileyin.
- En Az Yetki İlkesi: Veritabanı kullanıcılarına yalnızca ihtiyaç duyulan minimum hakları atayın. Uzak bağlantı için günlük kullanımda tam yetkili
root
veyapostgres
hesaplarını kullanmaktan kaçının. - Memcached Güvenliği: Memcached’in yerleşik güvenlik mekanizması olmadığından, LAN’da açarken ekstra dikkatli olun. SSH tünelleme veya başka güvenli bağlantı yöntemleri kullanmayı düşünün.
- İşletim Sistemi Güncelliği: ServBay sunucunuzun işletim sistemi, ServBay uygulaması ve diğer yazılımlarını güncel tutun, güvenlik yamalarını uygulayın.
Bu adımları ve güvenlik önlemlerini uygulayarak, ServBay yerel geliştirme ortamınızı LAN’da paylaşırken daha güvenli ve etkili bir işbirliği sağlayabilirsiniz.