4 Haziran 2014 Çarşamba

WebDAV ile dosya paylaşımı

Versiyonlanması gerekmeyen büyük boyutlu dosyaları versiyon kontrol sunucularında (SVN vb.) tutmak yerine farklı bir dosya paylaşım ortamı kullanmak mantıklı bir tercih olabilir. Apache sunucusu HTTP protokolüne ek özellikler kazandıran WebDAV (Web-based Distributed Authoring and Versioning) protokol standardını desteklemektedir. Bu özellik, Web sunucuları üzerinde interaktif şekidle dosya paylaşım ve düzenleme imkanını bize vermektedir. Sunucuların sunduğu bu desteği kullanabilmek için istemci tarafının da desteği gerekmektedir. Günümüzdeki çoğu işletm sistemi, dosya yöneticilerine bu desteği koymuş durumdadır.

Bu yazıda Debian üzerinde kurulu Apache 2.x Web sunucusu ve Windows 7 istemcisi kullanarak dosya paylaşımı örneklenmiştir.

Güvenlik açısından dikkat edilmesi gerekenler -- DİKKAT --

  • Web üzerinden erişimin sadece HTTPS üzerinden yapılmasına dikkat edilmelidir.
  • Kullanıcılar kısıtlı bir küme olmasına ve belirli bir dizinle sınırlanmış olmasına rağmen dışarıdan sunucu üzerine müdahale izni verilmiş olmaktadır. Bu nedenle paylaşım dizinine zararlı kod yüklenmesi olasıdır. Web sunucu ve genel olarak işletim sistemi üzerinde paylaşım dizinindeki dosyaların çalıştırılamamasını sağlayıcı önlemler ayrıca alınmalıdır.

Apache 2.x üzerinde WebDAV desteğinin etkinleştirilmesi

  • DAV modüllerinin etkinleştirilmesi
  • cd /etc/apache2/mods-enabled
    ln -s ../mods-available/dav.load
    ln -s ../mods-available/dav_fs.conf
    ln -s ../mods-available/dav_fs.load
  • Web sunucu kullanıcısının paylaşım dizine yazabilmesinin sağlanması
  • chown -R www-data:www-data /home/www-data/paylasim
    chmod -R u+rw /home/www-data/paylasim
  • Apache ayar dosyasında örnek ayarlama:
  • Alias /paylasim /home/www-data/paylasim
    <Location /paylasim>
      Dav On
      AuthType Basic
      AuthName "Paylasim"
      AuthUserFile /secrets/.htpasswd
      Require valid-user
      Options Indexes FollowSymLinks
    </Location> 
  • Ayarların aktifleştirilmesi:
  • service apache2 reload

Windows 7 istemci ayarları

  • Basic authentication etkinleştirilmesi için registry içerisinde HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\UseBasicAuth şeklinde DWORD türünde bir değer tanımlanıp içeriğine 0 dışında bir rakam atanmalıdır.
  • Sunucu SSL sertifikası Internet Exporer tarafından güvenilir görünmüyorsa install seçeneği üzerinden güvenilir sertifika havuzuna eklenmelidir.
  • Internet Explorer menü çubuğu üzerinden Tools > Map network drive seçilerek ilgili Web URL'si ağ sürücüsü olarak tanımlanır. Tanımlama esnasında "Reconnect at logon" seçilmemiş, "Connect using different credentials" seçilmiş olmalıdır. Örneğimizde tanımlanacak URL şöyle olabilir:
  • https://sunucumuz/paylasim/
  • Doğrulama bilgileri (kullanıcı adı/şifre) girilerek tanımlama işlemi tamamlanır.

Linkler

28 Şubat 2014 Cuma

Windows ağ paylaşımı iç ağ IP bloğunun değiştirilmesi

Windows işletim sistemleri ağ paylaşım özelliği ile NAT tabanlı bir gateway haline getirilebiliyor. Bu özellik etkinleştirildiğinde Windows iç ağ bloğunu 192.168.137.0/24 şeklinde belirler ve iç tarafta kalan ağı bu adres bloğunu kullanmak zorunda bırakır. Bu durum, örneğin katmanlı NAT (iç ağda başka bir Windows makine üzerinden NAT) uygulaması yapmanız gerektiği durumlarda sağlıklı bir konfigürasyon oluşturulmasını engelleyecektir. Bu sorunu aşmak ve iç tarafta kendi belirleyeceğimiz bir ağ bloğunu kullanabilmek için Windows registry editöründe HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters anahtarı altında ScopeAddress değerinin 192.168.137.1 olan ön tanımlı halinden istediğimiz değere getirilmesi ve bilgisayarın yeniden başlatılması yeterlidir.

24 Şubat 2014 Pazartesi

SVN yansılarının ana ambar haline getirilmesi

Daha önceki yazılarda SVN yansılama işleminden ve bu yöntemin SVN yedeği almakta nasıl kullanılabileceğinden bahsetmiştik. Ana ambardan hizmet alınamaması durumunda yansı alınan hedef ambarın ana ambar haline getirilmesi mümkündür. Burada büyük boyutlu ağ trafiğinden kaçınıyorsak, yeni çalışma dizini oluşturmak yerine hali hazırdaki çalışma dizini kullanmaya devam edebiliriz. Sadece mevcut çalışma dizininin yeni ambara konumlanması gerekiyor. Yapılması gereken işlemler aşağıda sıralanmıştır:
  • Sağlıklı geciş için
    • Öncelikle ana ambar sabitlenmelidir. Yani yazmaya kapatılarak herhangi birinin çalışma dizininde yapacağı değişikliğin ambara uygulanması önlenmelidir.
    • Daha sonra yansı hedefi olan ambarın ana ambarın en güncel yansısı olduğundan emin olunmalıdır. Gerekiyorsa sync işlemi manuel olarak tekrar uygulanır.
  • Çalışma dizininde SVN ambarına yönelik bilgilerin alınması:
    developer1@calisma-makinesi:~/projects/project1$ svn info
    Path: .
    URL: https://ana-ambar/project1
    Repository Root: https://ana-ambar/project1
    Repository UUID: a11a111a-111a-111a-aa11-a1aa11a11aa1
    Revision: 1234
    ...
    
  • Yansı hedef ambarının UUID değerinin ana ambarın UUID değerine eşitlenmesi:
  • svnuser@yeni-ambar:~$ cd /svn-ambarlari/project1
    svnuser@yeni-ambar:/svn-ambarlari/project1$ svnadmin setuuid . a11a111a-111a-111a-aa11-a1aa11a11aa1
    
  • Hali hazırdaki çalışma dizinde yeni ambara konumlanma:
  • developer1@calisma-makinesi:~/projects/project1$ svn switch --relocate https://ana-ambar/project1 https://yeni-ambar/project1
    
Böylece çalışma dizinimiz yeni ambarı kullanacak şekilde ayarlanmış olacaktır.