Kategoriler
Proxy Manager

Nginx Proxy Manager’da Yeni Host Çalışmıyor mu? Sorun Docker ulimit Ayarı Olabilir

Geçtiğimiz günlerde Nginx Proxy Manager kullanırken oldukça ilginç bir sorunla karşılaştım. İlk bakışta Cloudflare, DNS veya Plesk kaynaklı gibi görünen bu problem, aslında Docker’ın varsayılan ulimit değerinden kaynaklanıyordu.

Sunucumda yaklaşık 255 adet Proxy Host tanımı bulunuyordu. Yeni bir host eklediğimde, siteye hiçbir şekilde erişemiyordum. Daha da ilginç olanı, mevcut hostlarda yaptığım değişiklikler de uygulanmıyordu.

Belirtiler

Karşılaştığım sorunlar şunlardı:

  • Yeni eklenen Proxy Host çalışmıyordu.
  • Mevcut bir hostu Disable edip tekrar Enable yaptığımda değişiklik uygulanmıyordu.
  • SSL veya yönlendirme değişiklikleri aktif olmuyordu.
  • Docker container yeniden başlatıldığında ise tüm değişiklikler sorunsuz şekilde çalışıyordu.

Bu nedenle ilk etapta sorunu şu bileşenlerde aradım:

  • DNS kayıtları
  • Cloudflare
  • Plesk
  • SSL sertifikaları
  • Nginx Proxy Manager yapılandırması
  • Docker network ayarları

Her şey normal görünüyordu.

Docker Restart Neden Sorunu Çözüyordu?

İşin kafa karıştıran kısmı buydu.

Her yeni host eklediğimde veya bir host üzerinde değişiklik yaptığımda, Docker container’ını yeniden başlatırsam sorun ortadan kalkıyordu.

Bu durum, Nginx Proxy Manager’ın konfigürasyonu okuyamadığını değil, yeni yapılandırmaları uygulayamadığını düşündürdü.

Araştırmayı Docker container limitleri üzerine yoğunlaştırdım.

Asıl Sorun: ulimit nofile

Container içerisindeki nofile limitini kontrol ettiğimde varsayılan değerin 1024 olduğunu gördüm.

ulimit -n

1024

Bu değeri test amacıyla 65536’ya yükselttim.

services:
  npm:
    image: jc21/nginx-proxy-manager:latest

    ulimits:
      nofile:
        soft: 65536
        hard: 65536

Container yeniden oluşturulduktan sonra sorun tamamen ortadan kalktı.

  • Yeni hostlar sorunsuz çalışmaya başladı.
  • Enable/Disable işlemleri anında uygulanmaya başladı.
  • Docker restart ihtiyacı ortadan kalktı.

Neden Böyle Oluyor?

Linux sistemlerde her açık dosya veya ağ bağlantısı bir File Descriptor kullanır.

Nginx ise birçok işlem için File Descriptor tüketir:

  • Dinlenen portlar
  • Proxy bağlantıları
  • SSL sertifikaları
  • Log dosyaları
  • Socket bağlantıları
  • Konfigürasyon dosyaları

Host sayısı arttıkça ve aktif bağlantılar çoğaldıkça kullanılan descriptor sayısı da artar.

Container içerisindeki limit 1024 olduğunda, belirli bir noktadan sonra Nginx yeni işlemler için gerekli descriptor’ları alamaz. Ancak çoğu zaman tamamen çökmez.

Bunun yerine sessizce şu belirtiler ortaya çıkabilir:

  • Yeni Proxy Host çalışmaz.
  • Yapılan değişiklikler uygulanmaz.
  • Enable/Disable işlemleri etkisiz kalır.
  • Bazı siteler yanıt vermez.
  • Docker restart sonrası her şey geçici olarak düzelir.

Benim yaşadığım senaryoda yaklaşık 255 Proxy Host bulunuyordu ve bu davranışın ortaya çıkması oldukça mantıklı görünüyordu.

Çözüm

Docker Compose dosyasında nofile limitini yükseltmek yeterli oldu.

ulimits:
  nofile:
    soft: 65536
    hard: 65536

Ardından container’ı yeniden oluşturmak gerekiyor.

docker compose down
docker compose up -d

Sonuç

Eğer Nginx Proxy Manager kullanıyorsanız ve:

  • Yeni eklediğiniz host çalışmıyorsa,
  • Enable/Disable işlemleri uygulanmıyorsa,
  • Yapılan değişiklikler aktif olmuyorsa,
  • Sorun yalnızca Docker yeniden başlatıldığında düzeliyorsa,

Cloudflare, DNS veya Plesk tarafında saatler harcamadan önce Docker container içindeki ulimit nofile değerini kontrol etmenizi öneririm.

Benim için sorunun kaynağı Nginx Proxy Manager, Cloudflare veya Plesk değildi. Asıl problem, Docker container’ının varsayılan 1024 File Descriptor limitiymiş.

Bazen en karmaşık görünen sorunların arkasında, yıllardır hiç dokunmadığımız varsayılan bir ayar yatabiliyor.

Kategoriler
Windows

Office LTSC (2016, 2019, 2021) Kurulum Rehberi (Oturum Açmadan)

Adım 1: Office Dağıtım Aracı’nı (ODT) Hazırlayın

Bu adım tüm sürümler için aynıdır.

  1. İndirin: Microsoft’un resmi sitesinden Office Deployment Tool‘u indirin.
  2. Klasör Oluşturun: C:\OfficeKurulum adında bir klasör oluşturun.
  3. Dosyaları Çıkarın: İndirdiğiniz .exe dosyasını çalıştırın ve dosyaları C:\OfficeKurulum klasörünün içine çıkarın.
  4. Bu klasörde setup.exe ve sizin configuration-Office365-x64.xml dosyanız (veya oluşturduğunuz dosya) olmalıdır.

Adım 2: configuration-Office365-x64.xml Dosyasını Düzenleyin

Bu en önemli adımdır. Hangi sürümü kurmak istiyorsanız, o sürüme ait kodu configuration-Office365-x64.xml dosyanızın içine (Not Defteri ile açarak) yapıştırın.

Önemli: PIDKEY="XXXXX..." yazan yere kuracağınız sürüme ait kendi 25 haneli ürün anahtarınızı girmelisiniz.


📦 Sürüm 1: Office LTSC Professional Plus 2021 için XML Kodu

 

XML

<Configuration>
  <Add OfficeClientEdition="64" Channel="PerpetualVL2021">
    <Product ID="ProPlus2021Volume" PIDKEY="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX">
      <Language ID="tr-tr" />
    </Product>
  </Add>
  <RemoveMSI />
  <Display Level="Full" AcceptEULA="TRUE" />
  <Property Name="AUTOACTIVATE" Value="1" />
</Configuration>

 

📦 Sürüm 2: Office Professional Plus 2019 için XML Kodu

 

(LTSC 2021’den farkı Channel="PerpetualVL2019" ve Product ID="ProPlus2019Volume" olmasıdır.)

XML

<Configuration>
  <Add OfficeClientEdition="64" Channel="PerpetualVL2019">
    <Product ID="ProPlus2019Volume" PIDKEY="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX">
      <Language ID="tr-tr" />
    </Product>
  </Add>
  <RemoveMSI />
  <Display Level="Full" AcceptEULA="TRUE" />
  <Property Name="AUTOACTIVATE" Value="1" />
</Configuration>

 

📦 Sürüm 3: Office Professional Plus 2016 için XML Kodu

 

(Farkı Channel="PerpetualVL2016" ve Product ID="ProPlus2016Volume" olmasıdır.)

XML

<Configuration>
  <Add OfficeClientEdition="64" Channel="PerpetualVL2016">
    <Product ID="ProPlus2016Volume" PIDKEY="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX">
      <Language ID="tr-tr" />
    </Product>
  </Add>
  <RemoveMSI />
  <Display Level="Full" AcceptEULA="TRUE" />
  <Property Name="AUTOACTIVATE" Value="1" />
</Configuration>

 

Adım 3: Kurulum Dosyalarını İndirin (Tümü için Aynı Komut)

 

  1. Komut İstemi’ni (CMD) Yönetici Olarak Açın.
  2. Oluşturduğunuz klasöre gidin:
    cd C:\OfficeKurulum
    
  3. İndirmeyi başlatmak için (XML dosyanızın adını kullanarak) şu komutu girin:
    setup.exe /download configuration-Office365-x64.xml
    
  4. İşlem bittiğinde komut satırı hazır hale gelene kadar bekleyin (5-15 dk sürebilir).

 

Adım 4: Office’i Yükleyin (Tümü için Aynı Komut)

 

  1. Dosyalar indikten sonra, Yönetici Komut İstemi penceresinde şu komutu girin:
    setup.exe /configure configuration-Office365-x64.xml
    

 

Özetle

 

  1. C:\OfficeKurulum klasörüne setup.exe‘yi atın.
  2. configuration-Office365-x64.xml dosyanızı oluşturun.
  3. Hangi sürümü istiyorsanız (2016, 2019 veya 2021), yukarıdaki ilgili XML kodunu bu dosyanın içine yapıştırın.
  4. Ürün anahtarınızı (PIDKEY) dosyaya ekleyin ve kaydedin.
  5. Adım 3 (/download) ve Adım 4 (/configure) komutlarını çalıştırın.

Bu yöntemle, XML dosyanız neyi belirtiyorsa o sürüm kurulacaktır.

Kategoriler
Firewall Yazılar

Ubuntu 24.04 Üzerinde Samba Kurulumu ve Kullanıcı Yetkilendirme

Ubuntu 24.04 Üzerinde Samba Kurulumu ve Kullanıcı Yetkilendirme Dokümanı

Bu dokümanda, Ubuntu 24.04 sunucusu üzerinde Samba servisinin kurulumu, yapılandırılması ve bir kullanıcıya belirli bir paylaşıma erişim yetkisi verilmesi adım adım anlatılmıştır. Yapılandırma, örnek bir dosya paylaşımı (örneğin 5651 logları için) içermektedir.

1. Sistem Güncelleme ve Gerekli Paketlerin Kurulumu

sudo apt update && sudo apt upgrade -y
sudo apt install samba -y

2. Paylaşım Dizininin Oluşturulması

sudo mkdir -p /srv/samba/share5651
sudo chown root:root /srv/samba/share5651
sudo chmod 755 /srv/samba/share5651

3. Samba Kullanıcısının Oluşturulması

sudo adduser berqlog
sudo smbpasswd -a berqlog

Not: Kullanıcı şifresi girilirken hem sistem hem de Samba parolası olarak ayarlandığından emin olun.

4. Samba Konfigürasyon Dosyasının Düzenlenmesi

Aşağıdaki içerik ile /etc/samba/smb.conf dosyasını düzenleyin:

[global]
    workgroup = WORKGROUP
    netbios name = FIRMA_ADI_SMB
    server string = Firma Log Sunucusu
    security = user
    map to guest = Bad User
    dns proxy = no
    server min protocol = NT1
    ntlm auth = yes
    log file = /var/log/samba/log.%m
    max log size = 1000
    logging = file
    panic action = /usr/share/samba/panic-action %d
    server role = standalone server
    obey pam restrictions = yes
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    pam password change = yes
    usershare allow guests = no
    idmap config * : backend = tdb

[share5651]
    path = /srv/samba/share5651
    read only = no
    valid users = berqlog
    create mask = 0644
    directory mask = 0755
    browseable = yes
    guest ok = no

5. Yapılandırma Testi

testparm

Yapılandırma hatası olmadığından emin olun.

6. Samba Servisini Yeniden Başlatma

sudo systemctl restart smbd
sudo systemctl enable smbd

7. Güvenlik Duvarı (Varsa) Ayarları

sudo ufw allow 'Samba'

8. Paylaşım Erişimi

Windows üzerinden erişmek için:

\<ubuntu_ip_adresi>\share5651

Kullanıcı adı: berqlog, Parola: Kurulumda belirlenen şifre.

9. Log ve Sorun Giderme

Log dosyaları:

/var/log/samba/log.smbd
/var/log/samba/log.nmbd
/var/log/samba/log.<client_ip_or_name>

Ekstra Notlar:

  • ntlm auth = yes parametresi, eski Windows istemciler için kimlik doğrulama uyumluluğu sağlar.
  • server min protocol = NT1, eski Windows sürümleriyle uyum sağlamak için eklenmiştir. Modern istemcilerde bu ayar güvenlik nedeniyle SMB2 veya daha yüksek bir protokole yükseltilmelidir.

Bu yapılandırma, temel dosya paylaşımı ve kullanıcı yetkilendirme ihtiyaçlarını karşılamaktadır. Daha gelişmiş senaryolar için ACL, audit modülü veya domain entegrasyonu gibi ek yapılandırmalar gerekebilir.

Kategoriler
Azure Yazılar

Azure Identity and Access Management (AIM) nedir?

Image by creativearton Freepik

Bulut bilişimin yaygınlaşmasıyla birlikte, kuruluşlar kimlik ve erişim yönetimi (IAM) için sağlam ve güvenli çözümlere ihtiyaç duymaktadır. Azure Identity and Access Management (AIM), Azure kaynaklarınıza erişimi ve kimlikleri yönetmenizi sağlayan bir platformdur. AIM, Azure RBAC, Azure AD ve Azure MFA gibi çeşitli Azure IAM hizmetlerini tek bir platformda birleştirir.

AIM’nin Temel Özellikleri:

  • Merkezi kimlik yönetimi: AIM, tüm Azure kaynaklarınız için tek bir kimlik deposu sağlar.
  • Kolay erişim yönetimi: AIM, Azure RBAC ile Azure kaynaklarına erişimi kolayca yönetmenizi sağlar.
  • Geliştirilmiş güvenlik: AIM, Azure AD ve Azure MFA ile Azure kaynaklarınızı yetkisiz erişime karşı korumanıza yardımcı olur.
  • Uyumluluk: AIM, erişim denetimlerini denetlemenize ve uyumluluk gereksinimlerini karşılamanıza yardımcı olur.

AIM’nin Kullanım Alanları:

  • Azure kaynaklarına erişimi yönetme: AIM, Azure RBAC ile Azure kaynaklarına erişimi kolayca yönetmenizi sağlar.
  • Kimlikleri yönetme: AIM, Azure AD ile tüm Azure kaynaklarınız için tek bir kimlik deposu sağlar.
  • Güvenliği geliştirme: AIM, Azure AD ve Azure MFA ile Azure kaynaklarınızı yetkisiz erişime karşı korumanıza yardımcı olur.
  • Uyumluluğu sağlama: AIM, erişim denetimlerini denetlemenize ve uyumluluk gereksinimlerini karşılamanıza yardımcı olur.

AIM’nin Faydaları:

  • Basitleştirilmiş IAM yönetimi: AIM, Azure IAM hizmetlerini tek bir platformda birleştirerek IAM yönetimini basitleştirir.
  • Artırılmış güvenlik: AIM, Azure AD ve Azure MFA ile Azure kaynaklarınızı yetkisiz erişime karşı korumanıza yardımcı olur.
  • Geliştirilmiş uyumluluk: AIM, erişim denetimlerini denetlemenize ve uyumluluk gereksinimlerini karşılamanıza yardımcı olur.

Teknik Detaylar:

  • Azure RBAC: Azure RBAC, Azure kaynaklarına erişimi yönetmenizi sağlayan bir yetkilendirme sistemidir. Roller, belirli izinler kümelerine sahip önceden tanımlanmış izinlerdir. Kapsam, bir abonelik, kaynak grubu veya tek bir kaynak olabilir.
  • Azure AD: Azure AD, kuruluşunuzdaki kullanıcıları ve grupları yönetmenizi sağlayan bir kimlik hizmetidir. Azure AD, kullanıcı kimlik doğrulaması, tek oturum açma ve çok faktörlü kimlik doğrulama gibi özellikler sunar.
  • Azure MFA: Azure MFA, bir kullanıcının kimliğini doğrulamak için ek bir kimlik doğrulama faktörü eklemenizi sağlayan bir güvenlik hizmetidir. Azure MFA, SMS, parola uygulama kodları veya telefon görüşmeleri gibi çeşitli kimlik doğrulama yöntemleri sunar.

AIM ile Güvenli ve Uyumlu Bir IAM Ortamı Oluşturma:

AIM, Azure kaynaklarınızı korumak ve uyumluluk gereksinimlerini karşılamak için güçlü bir araçtır. AIM’yi kullanarak, aşağıdakileri yapabilirsiniz:

  • Güçlü kimlik doğrulama ve yetkilendirme kullanın: Azure AD ve Azure MFA ile kullanıcı kimlik doğrulamasını ve yetkilendirmeyi sağlayın.
  • Erişimi en aza indirin: Kullanıcılara yalnızca ihtiyaç duydukları erişimi verin.
  • Uyumluluğu sağlayın: Erişim denetimlerini denetleyin ve uyumluluk gereksinimlerini karşılayın.

Sonuç:

AIM, Azure kaynaklarınız için kapsamlı bir IAM çözümü sunar. AIM’yi kullanarak, Azure kaynaklarınızı korumak, IAM yönetimini basitleştirmek ve uyumluluk gereksinimlerini karşılamak için güçlü bir araç edinebilirsiniz.


Herhangi bir sorunuz veya eklemek istediğiniz detaylar varsa bana yazmaktan çekinmeyin.

Kategoriler
Yazılar

Yazmak Üzerine: Teknolojinin Gölgesinde Kalem ve Bilgisayar

Image by Freepik
Söz uçar, yazı kalır. Bu atasözü, yazının önemini ve kalıcılığını vurgulayan bir bilgelik örneğidir. Teknolojinin hızla gelişmesi ve dijitalleşmenin hayatımızdaki yeri arttıkça, yazının rolü ve işlevi de dönüşüm yaşıyor. Peki, bu değişimin gölgesinde kalem ve bilgisayar arasında nasıl bir ilişki var?

Bilgisayarın Avantajları:

Bilgisayar, yazma eylemini kolaylaştıran ve hızlandıran birçok araç sunar. Yazım hatalarını otomatik olarak düzelten programlar, kelime ve dilbilgisi önerileri, metin düzenleme seçenekleri gibi özellikler yazma sürecini daha pratik hale getirir. Ayrıca, internet bağlantısı sayesinde bilgiye erişim kolaylaşır ve araştırma yapmak daha az zaman alır.

Kalemin Gücü:

Bilgisayarın sunduğu tüm bu avantajlara rağmen, kalemin kendine özgü bir gücü ve etkisi vardır. Elle yazmak, düşüncelerin daha net bir şekilde organize edilmesine ve kelimelerin duygusal etkisinin artmasına yardımcı olur. Kalemle yazılan metinlerde, yazarın duygu ve düşünceleri daha somut ve samimi bir şekilde hissedilir.

Teknoloji ve Yazının İttifakı:

Teknolojinin gelişmesi, yazının sadece kağıt üzerinde kalmadığını, dijital platformlarda da yaygınlaşmasını sağladı. Bloglar, sosyal medya platformları ve e-kitaplar gibi yeni mecralar, yazarlara daha geniş kitlelere ulaşma imkanı sunuyor.

Image by Freepik
Image by Freepik

Yazının Kalıcı Gücü:

Bilgisayarlar ve dijital araçlar ne kadar gelişirse gelişsin, yazının asıl gücü ve değeri kalıcılığında yatar. Yazılı metinler, geçmişten gelen bilgileri ve deneyimleri aktarmak, fikirleri ve düşünceleri paylaşmak için en önemli araçlardan biridir.

Sonuç:

Teknolojinin gölgesinde kalem ve bilgisayar, yazma eyleminin farklı yönlerini temsil ediyor. Bilgisayar, pratiklik ve hız sunarken, kalem duygu ve samimiyetin aracı olarak öne çıkıyor. Önemli olan, her iki aracın da sunduğu imkanları bilinçli bir şekilde kullanarak yazının gücünü ve kalıcılığını korumak.

Yazının Geleceği:

Teknolojinin gelişmesi ve yeni araçların ortaya çıkmasıyla birlikte, yazının biçimleri ve işlevleri de değişmeye devam edecek. Önemli olan, bu değişimlere ayak uydururken yazının temel değerlerini ve asıl amacını göz ardı etmemek. Yazmak, sadece bilgi aktarmak veya fikirleri paylaşmak için değil, aynı zamanda kendimizi ifade etmek ve dünyayı anlamlandırmak için de önemli bir araçtır.