Github Repo'su burada !
Dünyada olup biten her şeyle birlikte, ben de dahil olmak üzere birçok insan evde çok daha fazla zaman geçiriyor. Bu nedenle, bir süredir yapmak istediğim bir projeyle başlayarak, son birkaç haftayı ev laboratuvarımı yükseltmek için harcamak zorunda kaldım: kendi kendine bir parola kasası barındırma! Özellikle LastPass gibi ticari özelliklerle karşılaştırılabilir veya daha iyi özellikleri artıran açık kaynaklı bir kasa olan Bitwarden.
Resmi Bitwarden kendi kendine barındırılan sunucusu şu adreste bulunur: https://github.com/bitwarden/server, ancak büyük bir MSSQL veritabanı kullanma gerekliliği ve bazı ek özelliklerin bir ödeme duvarının arkasında kilitlenmiş olması nedeniyle bu sürümü kullanmamayı seçiyorum. Bunun yerine kullanmayı seçiyorumhttps://github.com/dani-garcia/bitwarden_rshangi yazma sırasında 5 gün önce bir güncelleme vardı. Bu Rust tabanlı uygulama, daha hafif bir arka uç kullanır ve daha da önemlisi, bu kasayı bir Raspberry Pi üzerinde çalıştırmanıza olanak tanır.
Bitwarden ve Nginx'i kurmak için, biri gerçek Bitwarden sunucusu için diğeri Nginx ters proxy için olmak üzere iki ayrı kapsayıcı oluşturmak için docker-compose kullandım, böylece SSL'ye sahip olabilirim. Ek olarak, parola veritabanının yedeğini alacak ve her 5 dakikada bir ayrı kapsayıcısında saklayacak bir yedekleme kabı ekledim.
Docker-compose dosyası düz ileridir, yalnızca üç kapsayıcıyı döndürür, birkaç cilt ekler ve doğru bağlantı noktalarının kurulduğundan emin olur. Mevcut ana dal, Ubuntu 18.04 LTS üzerinde test edilmiş herhangi bir x86 sistemine kurulacak şekilde ayarlanmıştır. Raspberry Pi'de kullanmak için dosyada belirtilen iki konteyner etiketini değiştirmeniz yeterlidir.
Ana bilgisayar tarafında birimler için 3 dosyaya ihtiyacınız olacak: Nginx yapılandırması, ssl sertifikası ve ssl özel anahtarı. SSL dosyalarını daha sonra oluşturacağız, bu yüzden şimdilik Nginx yapılandırmasını gözden geçirelim.
Bu yapılandırma, HTTPS kullandığımızdan emin olmak için herhangi bir isteği 80 numaralı bağlantı noktasına 443'e yönlendirir ve ardından belirli SSL sertifikalarıyla HTTPS bağlantısını sonlandırır ve açık metni işlenecek Bitwarden kapsayıcısına iletir.
Bu nedenle, bu çaba için karşılaştığım asıl sorun, iOS Bitwarden uygulamasının kendinden imzalı sertifikaları sevmemesiydi. Ve LetsEncrypt gibi bir şey yapmak için kasamı genel internete ifşa etmek istemediğimden, sonraki en iyi şey kendi kişisel CA'm olmaktı ki bu son derece kolaydı. Git deposunun içinde, setup.sh'nin bir parçası olarak otomatik olarak çalışacak olan create_ssl.sh dosyası vardır .
Bu komut dosyası, hem kök düzeyinde bir CA hem de myCA.crt ve myCA.key adlı anahtar oluşturacak ve ayrıca bu CA'ya dayalı olarak Bitwarden sunucusu için gereken sertifikaları oluşturacaktır. Hepsi oluşturulduktan sonra, onları otomatik olarak ./data/ssl/ klasörüne kopyalayacaktır, bu Nginx konteynerinin onları çekeceği yerdir (Eğer kendi sertifikalarınız varsa, onları bitwarden adıyla o dosyaya yükleyin. crt ve bitwarden.key).
İstemci tarafında, bu örneğe bağlanmak istediğiniz her istemciye kök düzeyinde CA ( myCA.crt ) yüklemeniz gerekir . İşin güzel yanı, bu kök CA'yı oluşturup yükledikten sonra, HTTPS eklediğiniz diğer projelere (aynı CA'yı kullandığınızdan emin olarak) otomatik olarak tamamen güvenilir olacaktır.
İOS'a yüklerken karşılaştığım bir sorun , sertifikayı yükledikten sonra ona tam güven izinleri verdiğinizden emin olmak , bunun için tam adımlar README içinde . Bu bağlantıyı temel olarak gerekli olan çeşitli SSL sertifikalarını oluşturmak için referans olarak kullandım .
git clone https://github.com/JulianRunnels/Bitwarden_Self_Host.git cd Bitwarden_Self_host chmod +x ./setup.sh
1. Docker/docker-compose kurulu değil, tam bir özel CA ve istemci sertifikası oluşturmak istiyorsunuz:
sudo ./setup.sh
2. Docker/docker-compose kurulu, tam bir özel CA ve istemci sertifikası oluşturmak istiyorsunuz:
sudo ./create_ssl.sh
3. Docker yüklemek veya sertifika oluşturmak istemeyin, sadece kapsayıcıları döndürün:
sudo docker-compose up -d
4. Oluşturulan kök CA'yı istemci cihazlara aktarın
5. Docker'ları "sudo docker-compose -d" ile çalıştırın
6. Kasanıza https://hostname adresinden erişin
1. Tarayıcı eklentisindeki veya web kasasındaki Ayarlar altında, Kasayı Dışa Aktar seçeneğini belirleyin.
2. Formatı .json olarak tutun ve dışa aktarmayı indirmek için şifrenizi girin
3. BU İHRACAT NET METİNDİR, GÜVENLİ KANALLARA GÖNDERMEYİN VE KULLANIMDAN SONRA HEMEN SİLMEYİN
4. Mevcut örnekten çıkış yapın
5. Tekrar oturum açmadan önce sol üst köşedeki Ayarlar dişli çarkına tıklayın.
6. Döndürdüğünüz kasa örneği için ana bilgisayar adını girin
7. Yeni bir kullanıcı oluşturun (mevcut kurulumunuzdaki kullanıcı ile aynı olabilir)
8. İçe aktarmak için web kasası görünümünde oturum açmanız gerekir, bu nedenle şuraya gidin: https://hostname ve oluşturulan kullanıcıyla orada oturum açın
9. Araçlar -> Verileri İçe Aktar altında json'u seçin ve dışa aktardığınız dosyayı seçin ve İçe Aktar'ı tıklayın.
Dahili bir parola kasasına sahip olmak her ne kadar iyi olsa da, evin dışındayken hesaplara erişebilmek de aynı derecede önemlidir.
Erişimim için PiHole, Unbound ve daha da önemlisi PiVPN çalıştıran bir Raspberry Pi'm var, bu da tüm yerel LAN isteklerini ve DNS isteklerini ev ağıma geri göndermek için bölünmüş bir tünel VPN oluşturmama izin veriyor. Bu, telefonum ve harici cihazlarım gibi şeyler için bu VPN'i kullandığım sürece kasama normal şekilde erişebileceğim anlamına geliyor.
PiVPN kurulumu için iyi bir rehber burada . PiPVN'ye veya herhangi bir OpenVPN tabanlı çözüme sahip olduğunuzda, bölünmüş bir tüneli etkinleştirebilirsiniz, böylece her şeyi yönlendirmek yerine yalnızca LAN tabanlı trafik ev ağınıza geri gönderilir. Bölünmüş bir tüneli etkinleştirmek için:
sudo vim /etc/openvpn/server.conf
#push "redirect-gateway def1"
push "route 192.168.1.0 255.255.255.0"(192 değerini kişisel özel ip aralığınıza değiştirin)
Açık kaynaklı yazılım paketlerinde (log4j olarak) tespit edilen istismarlar, endüstriyi uygulamalardaki güvenlik açıklarını ve zayıflıkları izlemek, tespit etmek, önlemek ve onarmak için bir çözüm bulmaya yöneltti. Bu ihtiyaç, tüm yazılım geliştirme yaşam döngüsü ile ilgilidir ve hem kendi geliştirdiği hem de üçüncü taraf yazılım bileşenlerini içerir.
Teknoloji dünyasında, işletmeler sürekli olarak siber suçluların şeytani faaliyetlerinin tuzağına düşme riski altındadır. Endişe verici derecede sık hale gelen böyle bir taktik, kimlik bilgilerini doldurmaktır.
Kasım 2020'nin başlarında SalesForce, açıklanamayacak şekilde JARM adlı yeni bir aktif TLS parmak izi alma aracını duyurdu. JARM'ın temeli, bir hedef sunucu özel olarak hazırlanmış çeşitli farklı TCP "İstemci merhaba" paketleri kullanılarak tarandığında, elde edilen yanıtların birleştirilip, paylaşılan veya benzer bir uygulama veya sunucunun göstergesi olan bir parmak izi sağlamak için karma hale getirilebilmesidir. yığını.
Harika geliştiriciler yapan teknik olmayan şeyler Bir süredir bu makaleyi yazmayı erteliyorum - yazmak için hiç nitelikli hissetmedim. Bugün onu yazma zamanının geldiğini düşündüm.
Teknoloji endüstrisindeki bir pozisyon için mülakat yaparken, herhangi bir teklif değerlendirilmeden önce genellikle en az üç tur mülakattan geçeceksiniz. Mermiler genellikle şuna benzer: Eğer öyle düşünüyorsan, yanılıyorsun.
Pragmatik Programcı ilk olarak 1999'da yayınlandı ve o zamandan beri tüm zamanların en iyi programlama kitabı seçildi. Yazarlar Andy Hunt ve David Thomas, Agile Manifesto'nun orijinal yazarları arasındaydı ve bazı ciddi referanslara sahipler.