- Dosya sistemi üzerinden
- SVN protokolü ile
- SSH tüneli kullanarak
- HTTP/HTTPS protokolü üzerinden DAV ek özelliklerini (extensions) kullanmak suretiyle
Yazılım geliştiriciler, versiyon kontrol sunucusu kullanıyorlarsa çoğunlukla bu sunucular üzerindeki ambarlara (repositories) kendi geliştirme ortamlarından (yani uzaktan) erişmek durumundadırlar. Bu durumda her nekadar dosya sistemi üzerinden erişimin de gerektiği durumlar olmasına rağmen genel olarak dosya sistemi üzerinden erişmeleri söz konusu değildir. Dolayısıyla uzaktan erişimi sağlamak üzere SVN sunucularının vermiş oldukları SVN protokolünü kullanmak düşünülebilir. Güvenli yerel alan ağları bulunan yerlerde yeterli görülebilecek olan bu metod, güvensiz ağ ortamlarında veya uzak ağlardan erişim gerektiği durumlarda yetersiz olmaktadır. Bu durumda da
SSH tünelleri üzerinden açık anahtar şifreleme metodları kullanarak hem oturum açılışının hem de transfer edilen verinin güvenliği sağlanmış olacaktır. SVN kullanılan projelerde oldukça popüler olan bu metod, geliştiricilerin bilgisayarlarında SVN istemcisine bütünleşik veya ayrı çalışan bir SSH istemcisi gerektirmektedir. İstemci tarafında bu gereksinimi ortadan kaldırmak için
HTTP protokolünün seçilmesi, bunu güvenli hale getirmek için de
HTTPS kullanılması iyi bir tercih olacaktır. Bu yazımda da HTTPS protokolü üzerinde
DAV ek özelliklerini kullanarak nasıl SVN servisi sunulabileceği anlatmaya çalıştım. Anlatılanlar aşağıdaki yazılımlar kurulu olan bir sistem üzerinde doğrudan uygulanabilir:
- Debian linux dağıtımı
- Apache 2.x Web sunucusu
Apache sunucusuna
dav ve
authz_svn modüllerinin yüklenmesi için
debian'ın
apt-get aracını kullanıyoruz:
apt-get install libapache2-mod-svn
Apache
mods-enabled dizini içinde
dav_svn.load ve
authz_svn.load linklerinin yaratılmış olduğu ve aşağıdaki satırları içerdikleri görülmelidir:
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
Aynı dizin içindeki
dav_svn.conf dosyası SVN servisi ile ilgili ayarları içermek üzere kullanılabilir. Ancak burada söz konusu ayarların aşağıdaki gibi apache'nin HTTPS protokolü üzerinden çalışan virtual host ayar dosyasına konulması tercih edildi:
...
<Location /svn/repo1>
DAV svn
SVNPath /svn/repo1
AuthzSVNAccessFile /svn/repo1/conf/authz
# only authenticated users may access the repository
Require valid-user
# how to authenticate a user
AuthType Basic
AuthName "repo1 - svn ambari"
# Dosya tabali kullanici yonetimi:
AuthUserFile /svn/secret/.htpasswd
</Location>
...
Yukarıdaki ayarlama aşağıdaki kuralları vermektedir:
- SVN ambarına erişim adresi, "https://www.foo.com/svn/repo1" gibi bir HTTPS URL adresi olacaktır.
- Kullanıcı doğrulamasında HTTP basic authentication kullanacak ve kullanıcı/şifre ikilileri /svn/secret/.htpasswd dosyasından alınacaktır.
- SVN erişim yetkileri için SVN ambar dizinindeki authz dosyası kullanılmaya devam edecektir.
Kullanıcı doğrulaması için LDAP servisleri de kullanılabilir. Bunun nasıl yapıldığı ile ilgili olarak
LDAP ve Apache - Kullanıcı Doğrulaması Pratikleri başlıklı yazıya bakılabilir.
Hiç yorum yok:
Yorum Gönder