[Nasıl] Ubuntu 14.04 Nginx Sunucu için Btsync Kurulumu

Başlatan burk, 09 Eylül 2014 - 00:25:37

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

burk

Bu yazılımı kendim denemedim ancak sorun çıkarsa elbette bu başlık altından çözmeye çalışırız. Çevirinin orjinal metnini görmek için şurayı tıklayın.

Sunucular ve yerel makineler arasında dosya ve klasör eşitleme yönetmi, ağda bulunan bilgisayarlarda sorun yaşandığı zaman oldukça yaygın ihtiyacı hissedilen bir yöntemdir. Bu yöntemlerden biri de dosya ve içeriklerini otomatik olarak eşitlemeyi sağlayan teknolojisi ile BitTorrent Sync'tir. Bu yazılım BitTorrent protokolünü kullanarak, dosya paylaşımında  bir eşitleme aracı olarak yaygın bir yer edinmiştir.

BitTorrent Sync aracılığıyla yapılan işlemler baştan uca otomatik olarak oluşturulmuş benzersiz bir parola ile şifrelenirler. Yani BitTorrent genel hizmet için bir dosya paylaşım aracı olarak kullanılıyorken gizli BitTorrent protokolü sayesinde eşitleme işlemini güvenli bir biçimde yapar.

Bu anlatımda iki tane Ubuntu 14.04 sunucu arasında BitTorrent kurulumu, paylaşılan klasörlerin ayarlanması, sunucu yönetiminde web arayüzü için SSL şifrelemenin gerçekleştirilmesi ve kullanımının nasıl yapılacağı anlatılacaktır.

BitTorrent Sync Kurulumu

İlk olarak BitTorrent Sync yazılımı, birini diğerinden kopyalayarak iki sunucuya da kurulmalıdır. Bu anlatımdaki birçok prosedür sunucular arasında kopyala-yapıştır yöntemi kullanılarak yapılacaktır, bu sebeple her bir komutu doğru sırayla makinelere girdiğinizden emin olunuz.

Ubuntu'nun varsayılan depolarında BitTorrent Sync paketi bulunmamaktadır.  Bu yüzden iyi bilinen Leo Moll (tuxpoldo olarak da bilinir) tarafından oluşturulan bir PPA (personal package archive-kişisel paket arşivi) kullanılarak güncel bir program kurulumu yapılacaktır.

Her iki sunucuya birden bu PPA'yı ekleyin:
sudo add-apt-repository ppa:tuxpoldo/btsync

Şimdi yerel paket indeksini güncelleyelim ki sistem tebi bir yazılımın kurulmaya uygun olduğunu makine algılayabilsin. Ondan sonra BitTorrent Sync'i kuralım ve web arayüzü için nginx'e SSL şifresini ekleyelim.
sudo apt-get update
sudo apt-get install btsync nginx

Kurulum için onay verdiğinizde size birkaç soru soran bildirim alanlarının açıldığını göreceksiniz. Şimdilik tüm bunları sadece enter tuşuna basarak geçin, daha sonra yeri geldikçe biz daha ayrıntılı ayarları tekrar düzenleyeceğiz.

BitTorrent Sync Ayarlamaları

Kurulumdan sonra ayarlamaları yapabilmek için konfigrasyon dosyasını çalıştıracağız. Bu kısımda genel ayarları açıp ihtiyaçlarımız için düzenleme yapacağız.
sudo dpkg-reconfigure btsync

Bu komutla gelen bilgi alanlarını ta ki aşağıdaki kısım gelene kadar enter tuşu ile geçin:
Web Arayüzü Bind IP Adresi: 127.0.0.1
Web Arayüzü Erişimi için Kullanıcı Adı: Ne isterseniz bırakın
Web Arayüzü Erişimi için Şifre: Ne isterseniz bırakın, biz anlatım için basit birini kullanacağız.
Arka plan süreci için Umask Değeri: 002

Gördüğünüz üzere birçok ana ayar varsayılan olarak kabul edilebilir. Sadece yukarıdaki seçimler oldukça önemli, eğer bu kısımı doğru ayarlayamazsanız aynı komutu vererek tekrar yapmaya çalışın.

BitTorrent Sync Web Arayüzü için SSL Ayarlaması

Öncelikle nginx web sunucusunu SSL ile yükleyeceğiz.

Sizin de farkettiğiniz üzere biz web arayüzünü sadece yerel arayüz (127.0.0.1) için  ulaşılabilir kıldık. Bu normalde uzaktaki sunucuda BitTorrent Sync çalıştığında ona erişemeyeceğimiz anlamına gelir.

Erişimi BitTorrent Sync şifreliyor olsa bile bu şekilde kısıtlamamızın sebebi web arayüzü trafiğinde düpedüz metin tabanlı iletim yapıyor olmasıdır. Bu yapı makinelerimiz arasındaki iletişimi başka bir kişinin dinleyebilmesine olanak sağlayabilir.

Bu yüzden nginx'e SSL kuracağız ki  BitTorrent web arayüzüne proxy bağlantıları SSL aracılığıyla yapabilelim. Bu sayede uzaktan bağlantı güvenli hale gelecektir.

Tüm bu adamları diğer sunucu için de yapmayı unutmayın!

SSL Sertifikası ve Anahtarı Üretmek

Öncelikle SSL sertifika ve anahtarlarımızı saklayacağımız bir ssl dizini oluşturacağız. Bunu da nginx konfigrasyın dizini altında yapacağız:
sudo mkdir /etc/nginx/ssl

Şimdi aşağıdaki komuta SSL sertifika ve anahtarımızı üretebiliriz:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

Bu komut sonrasında sertifika için sizden bazı boşlukları doldurmanızı istemiş olmalı, bu kısımları istediğiniz gibi doldurabilirsiniz ancak:

Common Name (e.g. server FQDN or YOUR name) []:

kısmına geldiğinizde bu kısmı alan adınız veya sunucunun IP adresi ile doldurmanız gerekir.

SSL Aracılığıyla Şifreleme için Nginx Ayarlaması ve BitTorrent Sync'e Geçiş

Artık uzaktan erişen kullanıcılar için nginx sunucumuzu SSL sertifikasıyla korumak üzere ayarlamalar yapabiliriz. Bu işlem BitTorrent Sync web arayüzü ile yerel arayüz arasında kod oluşturacak.

Nginx sunucu blok dosyasını gelecekte ihtiyaç duyabilirsiniz diye boş bırakacağız. BitTorrent Sync "8888" portunu varsayılan olarak kullandığından beri bu portu SSL arayüzü için de kullanıyoruz.

Sudo yetkisini verip editörünüzü kullanarak yeni sunucu blok dosyasını oluşturun:
server {
    listen server_domain_or_IP:8888 ssl;
    server_name server_domain_or_IP;

    access_log /var/log/nginx/access.log;

    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    location / {
        proxy_pass http://127.0.0.1:8888;
    }
}


İlk iki kısımda kendi alan adınızı veya sunucu IP'nizi yazdığınızdan emin olun. Bu yapılan işlem nginx'e BitTorrent Sync web arayüzü ile kullanmakta olduğu yerel arayüzün aynı portla bağnaması gerektiğini anlatacak. Bundaki fark ngnix'in açık adress ve SSL'e ihtiyaç duyacak olmasıdır.

Şimdi bir SSL sertifikası oluşturacağız ki sunucu SSL sertifikasıyla, kullanıcı ile oluşan trafiği şifreleyebilsin.

Dosyayı kaydedip kapattıktan sonra bağlantısını yaparak çalışır hale getirelim:
sudo ln -s /etc/nginx/sites-available/btsync /etc/nginx/sites-enabled/

Ve sunucuyu yeniden başlatalım:
sudo service nginx restart

Tüm bu işlemleri diğer sunucu için de yaptığınızdan emin olun.

Paylaşım Klasörü Oluşturma

Web arayüzü kullanmaya başlamadan önce eşitlendirmek istediğimiz dizinleri oluşturmamız gerekir. BitTorrent Sync'in uzaktaki sunucudan eş dosya yaratma yöntemi sebebiyle konfigrasyonun bu kısmı oldukça önemli.

Öncelikle her iki sunucuda da /shared klasörünü eşitleyeceğiz, bunu oluşturmak için:
sudo mkdir /shared

Dizini oluşturduktan sonra root kullanıcımızın yetkilerini ve aynı zamanda "btsync" grup sahipliğini dizine verceğiz. ("btsync" grubu kurulum sırasında oluşturulur.)
sudo chown root:btsync /shared

Grup ve kullanıcı izinleri konusunda birçok farklı yöntem olsa da en az izini vermesi açısından biz yukarıdaki komutu kullandık. 

Sahiplikleri devrettikten sonra bir de izinleri ayarlamamız gerekiyor. Bunun için ilgili dizinde setgid kullanacağız ki btsync grubu için bu dizin altında oluşturulan tüm alt dizinler için de sahiplik verilebilsin. Bunu doğru yapmak için grubun yazma izinlerini de vermemiz gerekiyor:
sudo chmod 2775 /shared

Bu işlem sonunda  kurulum sırasında oluşturduğumuz kullanıcıyı da btsync grubuna alacağız ki paylaşım ve eşitleme yapılan tüm dizinler için bu atanmış kullanıcı erişim ve değişim yapabilsin. Bunun için:
sudo usermod -a -G btsync your_user

Bu noktada ilgili değişikliklerin kaydedilmesi için hesabınızdan çıkıp tekrar girmeniz gerekiyor. Bunun için exit komutunu kullanın.

BitTorrent Sync Web Arayüzüne Erişim

Gerekli düzenlemeleri yaptıktan sonra işlemleri tamamlamak için web arayüzüne yönetici hesabıyla bağlanmamız gerekiyor.

Öncelikle web tarayıcı üzerinden her iki sunucunuzun arayüzüne bağlanmak için "https" protokolünü   kullanarak "8888" portunu üzerinden erişmeniz lazım.
https://server_domain_or_IP:8888

Bunu yaptığınızda karşınıza şöyle bir resim çıkacak:



Bu resmin anlamı web tarayıcınızın sizin imzanızı taşıyan SSL sertifikasını tanımadığdır. Gerçek bir tehlike olmadığı için yine de devam et tuşuna basıp sayfayı görüntüleyebilirsiniz.

Açılan sayfada web arayüzü için kullanıcı adı ve şifre alanlarının doldurulmasını isteyecek, biz bu örnekte admin ve 12345 ile gerekli kısımları dolduruyoruz ancak sizinki mutlaka daha güvenli ve size özel olsun.

Gerekli bilgileri girdikten sonra karşınıza BitTorrent Sync Web'in arayüzü çıkacaktır.



İlk Sunucuya Paylaşılan Dizinin Eklenmesi

Paylaşımı başlatmak için sağ üst köşede bulunan "Dosya Ekle" tuşunu kullanarak açtığınız listeden /shared dizinini bulup ekleyin.



"Secret" alanı içinse "Generate" tuşunu kullanarak bu dizin için bir şifre oluşturun.



Bu işlemleri tamamladıktan sonra  aşağıdaki gibi bir buton karşınıza çıkacak.



"Secret/QR" tuşuna bastığınzda /shared klasörü ile ilgili diğer BitTorrent Sync paylaşım seçeneklerini göreceksiniz. Bu seçenekler arasında tam erişim ( okuma ve yazma izni) veya sadece okuma izni gibi seçeneker var. Bu anlatım için biz tam yetki vereceğiz.

Bunun için oluşturduğunuz "Tam Erişim" kodunu bu arayüzden kopyalayıp ikinci sunucunuz için de ayarlamanız gerekiyor.

İkinci Sunucuya Paylaşım Klasörü ve Erişim Kodunu Eklemek

Bunun için ilk sunucuda yaptıklarımızın hemen hemen aynısını yapacağız.
https://server_domain_or_IP:8888

adresine eriştikten sonra yine aynı uyarı mesajı çıkacak ve klasör ekle seçeneği ile /shared dizinini seçeceğiz ancak bu noktada yeni bir kod üret yerine ilk sunucudan kopyaladğımız kodu Secret kısmına yazacağız.



Gerekli alanları doldurduktan snra "Ekle" tuşunu kullanarak işlemi tamamlıyoruz.

İlk birkaç dakika "Bağlanılan Cihazlar ve Durumlar" kolunu ile eşitleme yaptığımız sunucu ile ilgili bilgiler görüntülenecektir.



Bunun anlamı sunucuların birbiryle iletişime geçtiği ve dizin içeriklerinin eşitlemesinin doğru çalıştığıdır.

BitTorrent Sync Test İşlemi

Artık hangi sunucuda çalıştığımızın önemi yok, hali hazırda ikinci sunucuda olduğumuz için bu sunucuda öncelikle /shared dizinine gideceğiz ve sonrasında da 10 tane örnek dosya oluşturacağız.
cd /shared
touch file{1..10}

Bu noktada dizin içindeki oluşturulan dosyaları kontrol edelim:
ls -l

total 0
-rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file1
-rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file10
-rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file2
-rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file3
. . .

Görüldüğü üzere dosyalar oluşturulmuş ancak web arayüzüne baktığımızda bu değişikliği göremediğini farkedeceksiniz. Bunun sebebi dosyaların hiç veri içermemesidir.

İçinde data değerine sahip dosyalar oluşturmak için aşağıdaki komutu kullanacağız:
for item in /shared/dosya{1..10}; do echo "burada içerik var!" > $item; done

Birkaç saniye sonra eklediğimiz içerik 10 tane dosyanın içinde metin halinde duruyor olacak:
cat /shared/dosya1

burada içerik var!

Aynı zamanda web arayüzünden eşitleme işleminin başladığını da göreceksiniz.



Eğer yukarıdaki resimi görüyorsanız BitTorrent Sync'i başarıyla kurduğunuzu ve yazılımın bir ayna gibi ilgili dizindeki tüm değişiklikleri sunucular arasında eşitleyeceği anlamına gelir.

Sonuç

Tüm bu işlemlerden sonra uzak sunucular veya kullanıcılar arasında güvenli dosya transferi sağlayan bir yazılıma sahip oldunuz. İşin güzel yanı bu ayarlamalar size SSL kullanarak bağlantılarınızı yönetebiliceğiniz bir hizmet aracı sağladı.

Bu yazılım oldukça esnek bir yapıya sahip, oldukça farklı amaçlar için kullanılabilir.  Bazı yararlı özellikleri arasında mobil cihazlar için QR barkodlarını tarayarak kod olarak çevirebilmesi, sadece okuma, okuma ve erişme ve kullanıcılar için tek kullanımlık kodlar oluşturma gibi özellikler var.

Bu yazılım aynı zamanda paylaşılan dizinler içinde gizli bir ./SyncArchive adlı klasör oluşturarak değişen dosyaların eski versiyonlarını da saklıyor. Eğer oran limiti gibi kısıtlamalarınız varsa bu dosyaların başka sistemleri etkilemediğinden emin olduktan sonra kaldırabilirsiniz.