• Gönderilme: 2019-06-02
  • Yazar: idk

Bu blog yazısı, herkese açık bir İnternet hizmetinin yansısını eepSite olarak çalıştırmak için genel bir rehber olarak düşünüldü. Temel I2PTunnel tünelleri hakkında önceki blog yazısının ayrıntılarına giriyor.

Ne yazık ki, var olan bir web sitesini bir eepSite olarak sunmanın tüm olası biçimlerini tamamen kapsamak olanaksız. Sunucu tarafında çok çeşitli yazılımlar var ve herhangi bir her yazılımın kurulumunda olabilecek farklılıklardan bahsetmeye gerek bile yok, Bunun yerine, bir hizmeti eepWeb veya diğer gizli hizmetlere dağıtmak için genel hazırlanma sürecini olabildiğince belirli olarak anlatmayı deneyeceğim.

Bu rehberin çoğu okuyucuyu sohbete katılan biri olarak ele alacak. Özellikle gerçekten ciddiysem okuyucuya doğrudan hitap edeceğim ("bir" yerine "siz" kullanarak) ve bölümlere sık sık düşündüğüm soruları okuyucu soruyormuş gibi başlayacağım. Ne de olsa bu durum, bir yöneticinin, diğer herhangi bir hizmeti barındırırken olduğu gibi, kendisinin "katılması" gereken bir "süreç".

SORUMLULUK REDDİ:

Harika olsa da, web sitelerini barındırmak için kullanılabilecek her tür yazılım için özel yönergeler vermem olanaksız. Bu nedenle, bu eğitim, yazar tarafından bazı varsayımlar yapılarak, okuyucu tarafında eleştirel düşünmenin ve sağduyunun bulunduğu düşünülerek yazıldı. Açık olmak gerekirse, Bu eğitimi izleyen kişinin-zaten gerçek bir kimliğe veya **kuruluşa bağlanabilen açık bir web hizmeti işlettiği ve dolayısıyla yalnızca anonim erişim sunmak istediği ve kendisini anonimleştirmekle ilgilenmediği düşünülüyor.

System Message: WARNING/2 (Blog, line 30); backlink

Inline strong start-string without end-string.

Bu nedenle, bir sunucudan diğerine olan bir bağlantıyı anonimleştirmek için herhangi bir işlem yapılmayacak. Sunucudan sunucuya bağlantılar kuran yeni, bağlantı kurulamayan gizli bir hizmet çalıştırmak istiyorsanız, ek işlemler yapmanız gerekir ve bunlar başka bir eğitimde anlatılacak.

Bununla birlikte: Herkese açık İnternet üzerinde kullanılamayan yepyeni bir hizmetin hiçbir zaman sunucudan sunucuya bağlantı kurmayacağından ve istemcilere verilen yanıtlarda sunucu üst verilerini sızdırmayacağından emin olabilirseniz, bu şekilde yapılandırılmış hizmetler anonim olacaktır.

Birinci işlem: Sunucunuzu hazırlayın

Birinci adım: Hangi yazılımı çalıştırdığınızı belirleyin

Uygulamada, web hizmetinizde güvenilirliği ve güvenliği artırmak için bir çok şey kullanılıyor olabilir. Bunlar, vekil sunucular, ters vekil sunucular, kapsayıcılar, tüneller, saldırı algılama sistemleri, hız sınırlayıcılar, yük dengeleyiciler gibi şeyler olabilir. Başladığınızda, dağıtımınızı gözden geçirmeli ve hangi yazılımı ve ne için kullanacağınızı belirlemelisiniz.

Yazılımınızı incelerken kendinize şu soruları sorun

Bu sorular, yazılım yığınınızın hangi bölümlerinin I2P eepSite ilgili olduğunu değerlendirmenize yardımcı olacak.

Bu yazılım IP adresleri ile çalışıyor mu?

Göndericinin IP adresine bağlı olarak trafiğin davranışını değiştiren bir yazılım kullanıyorsanız, bunlar büyük olasılıkla I2P ile çalışmayacak ya da karmaşık veya beklenmedik şekillerde çalışacaktır. Bunun nedeni, adresin genellikle yerel sunucu veya en azından I2P yönelticinizin çalıştığı sunucu olmasıdır. IP adreslerine dayalı işler yapan yazılımlar Fail2Ban, iptables gibi uygulamalar olabilir.

Bu yazılım, trafiği ek üst verilerle "Etiketleyerek" çalışır mı?

Bazı yazılımlar, yönettiği trafiğe bilgi eklemek için yapılandırılabilir. Açıkçası, bu bilgi tanımlayıcı ise, I2P ağını kullanan hizmetler zincirinin bir parçası olmamalıdır.

Bu yazılım çalışırken uzak bir kaynakla iletişim kuruyor mu? Bu davranışı ne tetikliyor?

Bazı yazılımlar, saldırıları önlemek için kullanılabilecek güncel kuralları ve engelleme listelerini bulmak için uzak kaynaklardan da faydalanabilir. Bunlardan bazıları, I2P ağını kullanan hizmetin bir parçası olarak faydalı olabilir. Ancak kuralların uygulanabilir olduğundan ve normal bir istemci isteği sonucunda bir kural güncellemesinin tetiklenemeyeceğinden emin olmalısınız. Bu durum, üçüncü bir tarafla bir I2P iletişiminin kurulma zamanını ortaya çıkarmak için kullanılabilecek bir sunucudan sunucuya iletişim oluşturacaktır.

İkinci adım: Hangi bağlantı noktasının I2P ağına iletileceğini belirleyin ve isteğinize bağlı olarak TLS sertifikanızı ayarlayın

System Message: WARNING/2 (Blog, line 97)

Title underline too short.

İkinci adım: Hangi bağlantı noktasının I2P ağına iletileceğini belirleyin ve isteğinize bağlı olarak TLS sertifikanızı ayarlayın
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Artık hizmetinizi I2P ağına iletmek için gerek duyacağınız tüm bilgileri topladınız. Sitenizi I2P için kullanılabilir hale getirmek istediğiniz noktayı seçtikten sonra iletmek istediğiniz bağlantı noktasını not etmelisiniz. Basit senaryolarda, bu yalnızca 80 veya 8080 numaralı bağlantı noktası olacaktır. Daha karmaşık senaryolarda, bu bir ters vekil sunucu veya bunun gibi bir şey olabilir. Bağlantı noktasını not edin.

Hem herkese açık İnternet hem de eepSite için ortak kimlik oluşturmak

Gizli bir hizmet sunarak kullanıcılarınıza gelişmiş gizlilik sağlamak isteyen anonim olmayan bir kuruluşsanız, sitenizin sürümleri arasında ortak bir kimlik oluşturmak isteyebilirsiniz. Ancak herkese açık İnternet TLS sertifikalarına .i2p etki alanları ekleyemediğimiz için bunu başka bir şekilde yapmamız gerekiyor. Bunun için, HTTPS değil HTTP bağlantı noktasını iletiyor olsanız bile, son adımda kullanmak üzere TLS sertifikanızın konumunu not edin.

İkinci işlem: Hizmetinizi bir eepSite hizmetine iletin

Tebrikler! En zor kısmı tamamladınız. Bundan sonra, vermeniz gereken kararlar ve bunların doğuracağı sonuçlar çok daha basit ve hesaplanması kolay. I2P gibi şifrelenmiş güvenli bir ağ katmanının güzelliği budur!

Üçüncü adım: .i2p tünellerinizi ve adreslerinizi oluşturun

eepSites için bir HTTP sunucu tüneli oluşturmanız gerekir. Bu tünel, hız sınırlaması, süzme ve istemcinin sunucuya hedefini belirlemek için üst bilgilerin katılması gibi HTTP hizmetleri barındırmaya özel bazı özelliklere sahip bir I2P hedefidir. Bu özellikler, diğer pek çok şeyin yanında, duruma göre yük dengeleme ve hız sınırlama açısından bağlantıların yöneltilmesinde esneklik sağlar. Bu seçenekleri ve birinci adımda düşündüğünüz uygulamalarla nasıl ilişkili olduklarını keşfedin. Kurulum çok kolay olsa da, büyük siteler bu özelliklerden yararlanabilir.

Uygulamanız için bir HTTP tüneli oluşturun

Daha önce bir ters vekil sunucu veya SSH tüneli yapılandırdıysanız, buradaki genel fikir size çok tanıdık gelecektir. I2PTunnel, özünde, yalnızca sunuculardan I2P ağına bağlantı noktaları iletir. Bunu web arayüzünü kullanarak ayarlamak için I2PTunnel yapılandırma sayfasına gidin.

Sayfanın "I2P gizli hizmetleri" bölümünün altında, açılır menüden bir HTTP hizmeti seçin ve "Oluştur" üzerine tıklayın.

config stuff

Böylece baştan sona keşfetmek üzere olduğumuz ayrıntılı tünel yapılandırma sayfasına gideceksiniz. Öncelikle, en önemli ayarlar tünel adı ve hedef sunucu:bağlantı noktasıdır. Hedef sunucu:bağlantı noktası trafiği ilettiğiniz hizmetin adresini yazdığınız yer I2P. Bunu yapılandırdıktan sonra web siteniz i2p ağında kullanılabilir olur. Bununla birlikte, büyük olasılıkla geliştirebileceğimiz birkaç şey var.

host stuff

Ardından, eepSite için kullanmak üzere bir sunucu adı seçmek isteyebilirsiniz. Bu sunucu adının evrensel olarak benzersiz olması gerekmez, şimdilik yalnızca yerel olarak kullanılacaktır. Daha sonra bir adres yardımcısında yayınlayacağız. **Yerel hedef alanı henüz Base64 hedefinizle doldurulmamışsa, aşağıya doğru kaydırmanız, tünel yapılandırmasını kaydetmeniz ve tünel yapılandırmasına geri dönmeniz gerekir.

System Message: WARNING/2 (Blog, line 164); backlink

Inline strong start-string without end-string.

key stuff

Yapılandırma sayfasının biraz altında tünel seçenekleri bulunur. Anonim olması amaçlanmayan, bunun yerine alternatif bir ağ geçidi aracılığıyla başkalarına anonim erişim sağlayan bir siteniz olduğundan, tünelin I2P ağında kullandığı durak sayısını azaltmak iyi olabilir.

tunnel stuff

Sonraki, "Şifrelenmiş kiralama kümesi" (EncryptedLeaseSet) seçenekleridir. Siteniz anonim olmadığı için bunları varsayılan değerlerinde bırakabilirsiniz. Büyük olasılıkla körleme veya "Şifrelenmiş kiralama kümeleri" (EncryptedLeaseSets) gibi özelliklere gerek duyulmayacak. "Şifrelenmiş kiralama kümelerini" (EncryptedLeaseSets) seçecek olsaydınız, önceden bir anahtar paylaşmadıkça kimse size erişemezdi.

leaseset stuff

Sonraki birkaç bölüm, özellikle yüksek trafikli bir site işletiyorsanız veya DDOS saldırılarına maruz kalıyorsanız sizin için yararlı olabilir. Buradan çeşitli bağlantı sınırlamalarını yapılandırabilirsiniz.

rate limiting stuff

Bundan sonra, bağlantıları istemci özelliklerine göre süzmenin birkaç yolu daha vardır. İlk olarak, I2P.to ve benzeri gibi giriş vekil sunucuları aracılığıyla erişimi engelleyebilirsiniz. Halihazırda herkesin erişebileceği İnternet üzerinde bir varlığınız olduğundan, yalnızca I2P kullanıcılarını eepSite hizmetinizi kullanmaya yönlendirmek istiyorsanız bunu değiştirmek daha iyi olabilir. Ayrıca belirli kullanıcı uygulamarının erişimini de engelleyebilirsiniz. Örneğin örümcek ağlarını önlemek istiyorsanız wget engellemesi yardımcı olabilir. Son olarak ve özellikle Fail2Ban kullanıcılarının ilgisini çeken "Benzersiz istemci yerel adresi", tüm istemcilere hepsi için 127.0.0.1 sunucu adresini vermek yerine her istemciye kendi yerel IP adresini verecektir.

coarse blocking stuff

Büyük olasılıkla sonraki birkaç seçeneği varsayılan değerlerinde bırakabilirsiniz.

Reduced tunnel stuff

Son olarak, gelişmiş bir süzgeç tanımı yapabilirsiniz. Süzgeç yazmak, bu belgeyi hazırlama amacımın dışına çıkıyor. Ayrıntılı bilgi almak için şimdilik biçim belirtimine bakın.

granular blocking stuff

Birden Çok Barındırma Uygulaması

I2P ağında yapılabilecek ilginç bir şey, aynı siteyi aynı anda birden fazla sunucuda saydam bir şekilde barındırmaktır ve buna "Birden çok barındırma" denir. Uygulamanızda birden çok barındırma kullanmak için tünel menüsüne dönmeniz ve özel anahtar dosyanızın konumunu kendi, paylaşılmayan konumunuz ile değiştirmeniz gerekecektir.

multihoming key stuff

İşlemi tamamladıktan sonra, yeni birden çok bağlantılı hizmetiniz için yeni anahtar dosyasını bir depolama aygıtına kopyalayın. Artık herhangi bir I2P yönelticide aynı anahtarlarla hizmet/tünel yapılandırmanızı yeniden üretebilir ve hizmetinizin yedekliliğini artırabilirsiniz.

Dördüncü adım: eepSite tanıtma ve doğrulama

Var olan bir herkese açık İnternet hizmetinin anonim olarak erişilebilen bir kopyasını çalıştırdığınız için, eepSite adresinizi dağıtmak için tanınmış ve saygın bir yetkili tarafından imzalanmış bir TLS Sertifikası gibi bazı güvenilirlik biçimlerinden yararlanmak isteyeceksiniz. Buna diyebilecek bir şey yok mükemmel olmayan bir dünyada yaşıyoruz.

.b32.i2p bağlantınızı herkese açık İnternet sayfanıza ekleyin

Var olan bir siteyi kullanarak bağlantıyı dağıtmanın ve eepSite ile bağlantı kurmanın en basit yolu, "Base32" adı verilen bir adresi yayınlamaktır. Base32 adresi, I2P hedefinizin ortak anahtarının karma değeridir. Bu nedenle güvenilir bir kaynak tarafından sağlanıyorsa sahte olamaz. Bir gizli hizmetin herkese açık İnternet üzerinde bir sitesi varsa, güvenilir kaynak olarak bu site kullanılabilir.

Base32 adresiniz i2ptunnel yapılandırma sayfasında şöyle görüntülenir:

base32 stuff

Kullanıcılarınız bu bağlantıyı kopyalayıp doğrudan kendi I2P tarayıcılarına yapıştırabilir. Başka bir yapılandırma gerekmeden çalışır.

Herkese açık İnternet sayfanızdan bir "Adres yardımcısı" bağlantısını dağıtmak

Ayrıca I2P "Adres defteri" özelliğinden yararlanarak potansiyel kullanıcılarınıza önerebileceğiniz insan tarafından okunabilir bir bağlantı yayınlayabilirsiniz. Böylece, şifrelenerek güvence altına alınmış kimliğinize insan tarafından okunabilir bir etki alanı adı atayabilirsiniz. Bunun için, önermek istediğiniz etki alanı adı, ardına bir bölü karakteri, ardına ?i2paddresshelper= ve ardına yeni oluşturduğunuz tünelin yerel hedefini ekleyerek oluşturduğunuz bağlantı dizgesini yayınlayabilirsiniz. Şuradan görebilirsiniz:

local destination stuff

Örnek bir site için böyle bir bağlantı adresi şöyle olur

http://mirror.i2p/?i2paddresshelper=HGPghWp0cEIjgjzqKQg~brL0TXkvV6IqyyEvQxOmVIecPIY~qFD0xYCwLFxTv2Hmi781ngqGo5OImRSeI-4cy167Pb1d0sTArtm6csq~HL8nj~UDP28q1DZFgR4mXX6VJMp7XJR~Mvjfzj0x7-JVaoMhrOKDE0P~tplH5Uik3xbS1rq3VF5vILx9lvkmSyZnu4bD7jk-h-na49gpk1Yx4znP0V3Mi9C6AAEzB4GexiSBxbFJyXFlO3byi-ca-jHqiMqtVE183TbXQNGPBI6FO-iBwYcFtIkWC0cBMneqj~kl3nXEn8RrO-yd-060oueyaza8NyN4FfSTHS5F1r9rru0ntX7GLg1k3QO7fTVhly0q2B0gZqnaHP808aTGD7OFuX69wT40uF3UWPmhsSE-M9AUYbYR64OFmk0jS70qnIApzWrjoye7K3KSaJuyVUQ1sD94aqRUKRKM2QCill6f8XmIyaCv02GkzEJxngBx009OwaDIvmEdOGpLJJLXw7QQBQAEAAcAAA==

Önermek ifadesini kullanıyorum çünkü böyle bir bağlantı ziyaret edildiğinde I2P, bu insan tarafından okunabilir adı kullanıcının yerel adres defterine eklemek için kullanıcının onayını ister. Bu durum, bu etki alanının I2P ağındaki tüm ziyaretçiler tarafından evrensel olarak kabul edilmesi beklentisi olmadığı anlamına gelir, ancak base32 adresleri söz konusu olduğunda bunun tersi geçerlidir.

Bir adres yardımcısı hizmetine kaydolmak

Bununla birlikte, yeni adresleri keşfetmek için herkese açık adres aboneliği akışları ve no.i2p, inr.i2p ve stats.i2p gibi insan tarafından okunabilen özel hizmetler vardır. Bunlar bazen adres yardımcıları veya Jump hizmetleri olarak bilinir ve otomatik olarak abone olunabilir. Böylece, özellikle I2P ağından çıkmadan veya herkese açık İnternet hizmetinizi ziyaret etmeden adresi almak isteyen hizmet kullanıcılarına kolaylık sağlanabilir.

Ayrıca şunlara bakabilirsiniz:

Tor gizli hizmetleri barındırmayla ilgili güvenlik sorunlarının çoğu, I2P için de geçerlidir. Bu kaynakların yanında Tor kaynaklarından da yararlanmanız önerilir:

Clearnet Web Sites announcing Public Services: