Friday, May 30, 2025

Inkscape'te EPS Dosyası Açmak İçin Ghostscript Kurulumu.

EPS (Encapsulated PostScript) dosyası bir grafik formatıdır. Ancak Inkscape gibi modern yazılımlar bu dosya türünü açmak için arka planda Ghostscript adlı ek bir yazılımı kullanır. Eğer sistemde Ghostscript kurulu değilse EPS dosyalarını açamaz. Bu yazıda, Windows ortamında Ghostscript kurulumu ve Inkscape ile EPS dosyasını nasıl açabileceğini işliyoruz.

1. Ghostscript Nedir? Ghostscript, PostScript (PS) ve EPS dosyalarını okuyan, yorumlayan ve rasterlaştıren açık kaynaklı bir yazılımdır. Inkscape, EPS dosyasını içeri aktarabilmek için arka planda Ghostscript'i kullanır.

2. Ghostscript Kurulumu

  1. Ghostscript'in en güncel sürümünü indirin: https://ghostscript.com/download/gsdnld.html

  2. Varsayılan kurulum dizini: C:\Program Files\gs\gs10.05.1\

  3. Aşağıdaki dizinleri sistem PATH ortam değişkenine ekleyin:

    • C:\Program Files\gs\gs10.05.1\bin

    • C:\Program Files\gs\gs10.05.1\lib

PATH Ortam Değişkeni Nasıl Eklenir?

  • Bu Bilgisayar > Özellikler > Gelişmiş Sistem Ayarları > Ortam Değişkenleri > Sistem Değişkenleri > Path > Düzenle > Yeni


3. Ghostscript Kurulumunun Doğrulanması Komut İsteminde (CMD) şunu yazın:

gswin64c --version

Bu komut, yüklü sürümü gösteriyorsa her şey hazırdır.

4. Inkscape ile EPS Dosyası Açmak

  1. Inkscape'i çalıştırın

  2. File > Open ile EPS dosyasını seçin

  3. Ghostscript çağrılır ve EPS dosyası SVG gibi düzenlenebilir hale gelir

İPUCU:

  • EPS dosyasının adında Türkçe karakter veya boşluk olmaması import sırasında hata olasılığını azaltır.

  • Microsoft Store sürümü yerine MSI kurulumlu sürüm kullanın.


5. EPS Alternatifi: PDF'ye Dönüştürmek EPS dosyasını çevirmek için Ghostscript kullanabilirsiniz:

gswin64c -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=output.pdf input.eps

PDF dosyası Inkscape'e import edilerek kolayca SVG'ye dönüştürülebilir.


Sonuç Ghostscript kurulduktan sonra Inkscape, EPS dosyalarını sorunsuz şekilde açabilir. Bu sayede karmaşık vektör setlerini kolayca seçebilir, İkonları SVG formatında düzenleyebilir ve animasyonlu gösterimler için hazır hale getirebilirsiniz.

Elektron Volt, Enerji Taşınımı ve Newton Sarkacı Benzetmesi

Elektron Volt, Elektronun Hızı ve Gerçek Enerji Taşınımı

Elektron volt (eV), bir elektronun 1 voltluk potansiyel farkı boyunca hareket ettiğinde kazandığı enerjidir. Enerji birimi olarak, mikroskobik düzeyde müthiş pratik bir araçtır.

1 eV ≈ 1.602 × 10−19 joule

Mesafe Değil Voltaj Belirleyicidir

Bir elektron 10 cm'lik bir telde ya da 1 km'lik bir kabloda hareket etsin, eğer iki uç arasında 1 voltluk potansiyel fark varsa, elektron yine 1 eV enerji kazanır. Yani:

E = q × V = (1.6 × 10−19 C) × (1 V) = 1.6 × 10−19 J = 1 eV

Elektron Ne Kadar Hızlanır?

Kinetik enerji ile hız arasındaki ilişki:

E = (1/2)mv² → v = √(2E/m)

1 eV alan bir elektronun hızı yaklaşık:

v ≈ 5.93 × 105 m/s

Drift Hızı Başka, Hız Başka

Elektronlar iletken içinde çok yavaş ilerler (drift hızı). Örneğin 1 A akım geçen bir mm²'lik telde:

vd ≈ 70 µm/s

Yani saniyede sadece saç teli kadar yol alır. Buna rağmen lambayı açtığında ışık anında yanar. Neden?

Newton Sarkacı Benzetmesi

Bu olay, Newton sarkacına çok benzer:

  • Bir uçtaki top hareket eder, ortadakiler yerinde durur, son top anında fırlar.
  • Enerji taşıyıcısı madde değil, etkidir.
Aynı şekilde elektrik akımında da enerji, elektronların birbirini dürtmesiyle iletilmez; bir etki zinciri olarak yayılır.

Gerçek Enerji Taşıyıcısı: Poynting Vektörü

Enerjinin nasıl, nereden aktığını tanımlar:

S = E x B
  • E: Elektrik alan
  • B: Manyetik alan
  • S: Enerjinin yönü ve yoğunluğu (Watt/m²)

Ve işte çarpıcı gerçek:

Elektrik devrelerinde enerji, telin içinden değil, telin dışındaki boşluktan akar.

Elektronlar içeride yavaşça hareket eder ama telin dışını saran E ve B alanları sayesinde, enerji dışarıdan akar — tıpkı görünmeyen bir “yağ gibi”.

O Zaman Elektronlar Ne İşe Yarıyor?

Elektronlar aslında enerji taşımaz. Onlar, enerji taşıyan alanların oluşması için gereken “akım” kaynağıdır. Yani:

  • Elektron akışı → manyetik alan oluşturur (B)
  • Potansiyel farkı → elektrik alan oluşturur (E)
  • Bunların etkileşimiyle oluşan S = E × B → enerjiyi taşır

Sonuç

Elektrik akımı, sadece elektronların yavaş hareketi değil; alanların etkileşimiyle enerjinin kablonun dışından taşınmasıdır.

Elektronlar orada ama enerjiyi taşıyanlar onlar değil, onları çevreleyen alanlar.


PowerShell ile Web Sunucusu Loglarından Saldırgan IP Engelleme

Sunucunuzun erişim loglarını incelerken bazı IP'lerin sürekli olarak phpMyAdmin, sqladmin veya cgi-bin gibi yolları taradığını mı fark ettiniz? Bu yazıda, saldırgan davranışlar sergileyen IP adreslerini loglardan otomatik olarak ayıklayan ve Windows Güvenlik Duvarı'nda engelleyen bir PowerShell scripti paylaşıyorum.

Adım 1 – Log Dosyasını Hazırla

Öncelikle Apache/Nginx gibi bir sunucudan alınmış bir erişim logunuz olmalı. Örnek format:


45.131.155.254 - - [29/May/2025:01:01:46 +0300] "GET / HTTP/1.1" 200 5795 "-" "Mozilla/5.0"

Bu dosyayı örneğin C:\loglar\access.log yoluna yerleştirelim.

Adım 2 – PowerShell Scripti

Yeni bir PowerShell scripti oluşturun:

# Kaydet: block-malicious-ips.ps1

$logFile = "C:\loglar\access.log"
$logLines = Get-Content $logFile
$ipRegex = '(\d{1,3}\.){3}\d{1,3}'

# Şüpheli istekleri filtrele
$suspiciousPatterns = @(
    "/phpmyadmin", "/sqladmin", "/mysql", "/db/php", "/cgi-bin", "/PMA",
    "/MyAdmin", "Sakura.sh", "/Management.asp", "/authLogin.cgi"
)

$badIps = @{}

foreach ($line in $logLines) {
    foreach ($pattern in $suspiciousPatterns) {
        if ($line -match $pattern -and $line -match $ipRegex) {
            $ip = ($line -match $ipRegex) | Out-Null; $matches[0]
            if (-not $badIps.ContainsKey($ip)) {
                $badIps[$ip] = 1
            } else {
                $badIps[$ip] += 1
            }
        }
    }
}

# Engelle
foreach ($ip in $badIps.Keys) {
    Write-Output "Engelleniyor: $ip"
    New-NetFirewallRule -DisplayName "Block $ip" -Direction Inbound -RemoteAddress $ip -Action Block -Profile Any -Enabled True
}

Adım 3 – Scripti Çalıştırma

  1. PowerShell’i Yönetici olarak açın.
  2. Script dosyasının bulunduğu klasöre gidin:
    cd C:\loglar
  3. Scripti çalıştırın:
    Set-ExecutionPolicy RemoteSigned -Scope Process
    .\block-malicious-ips.ps1

İsteğe Bağlı: BAT Dosyası ile Çalıştırmak

Scripti çift tıklamayla başlatmak için aşağıdaki gibi bir .bat dosyası oluşturabilirsiniz:

@echo off
powershell -ExecutionPolicy Bypass -File "C:\loglar\block-malicious-ips.ps1"
pause

Sonuç

Bu PowerShell çözümü ile şüpheli IP'leri loglardan ayıklayıp otomatik olarak Windows güvenlik duvarında engelleyebilirsiniz. Script, özellikle küçük çaplı web sunucuları veya kişisel sistemler için pratik bir güvenlik önlemi sunar.

Tuesday, May 27, 2025

Statik IP ve DHCP IP Çakışmaları: Neden Olur, Nasıl Önlenir?

Ağ yöneticileri ve teknik kullanıcılar için "IP çakışması" sinir bozucu bir sorundur. Özellikle aynı yerel ağda hem statik IP atanmış cihazlar hem de DHCP sunucusu tarafından IP dağıtılan cihazlar varsa bu risk daha da büyür. Bu yazıda şu sorunun cevabını detaylıca ele alacağız:

"Statik IP verdim ama modem başka bir cihaza da aynı IP'yi verdi, nasıl olur?"


DHCP Sunucusu Statik IP'yi Nasıl Görür?

❗ Görmez.

Evet, DHCP sunucusu yalnızca kendi üzerinden IP talep eden cihazları tanır. Bir cihaza manuel olarak (statik) 192.168.1.102 verildiğinde bu cihaz DHCP'den IP istemediyse, DHCP sunucusunun ondan haberi yoktur.

Bu durumda DHCP sunucusu 192.168.1.102 adresini "boşta" sanabilir ve başka bir cihaza da aynı IP'yi kiralayabilir.


IP Çakışması Nasıl Oluşur?

Senaryo:

  • PC'ye manuel olarak 192.168.1.102 atanır

  • PC kapanır veya ağdan çıkar

  • DHCP havuzunda 192.168.1.100–192.168.1.150 arası aktif

  • DHCP, boşta zannettiği 192.168.1.102'yi başka bir cihaza verir

  • PC yeniden açılır → IP çakışması oluşur

DHCP sunucusu bu IP'nin zaten başka bir cihaza verildiğini bilemez çünkü ona hiç sorulmadı.


DHCP Lease Süresi de Etkili midir?

Evet. IP adresleri belirli bir "kiralama süresi (lease time)" ile dağıtılır.

  • Eğer cihaz bu süre boyunca yeniden bağlanmazsa,

  • DHCP sunucusu bu IP'yi tekrar kullanılabilir sayar.

Ancak bu yalnızca DHCP üzerinden IP almış cihazlar için geçerlidir. Statik IP alanlar lease tablosuna hiç girmez.


Statik IP Kullanırken Yapılmaması Gerekenler

  • DHCP havuzu içinden rastgele bir IP seçip statik vermek ❌

  • Statik IP verdikten sonra modem DHCP'sine haber vermemek ❌

  • Aynı IP'yi birden fazla cihazda statik olarak kullanmak ❌


Doğru Yaklaşım Nedir?

✅ Yöntem 1: DHCP Rezervasyonu (Önerilen)

  • Modem arayüzüne girilir

  • Cihaza ait MAC adresini seçilir

  • "IP Rezervasyonu" tanımlanır (örneğin: 192.168.1.113)

  • Artık cihaz her bağlandığında otomatik olarak bu IP’yi alır

  • Ağ içinde çakışma riski sıfırlanır

✅ Yöntem 2: DHCP aralığı dışından Statik IP vermek

  • Örneğin DHCP aralığı 192.168.1.100–192.168.1.150 olsun

  • 192.168.1.200 gibi bir IP'yi elle verince DHCP o IP'ye karışmaz.


DHCP Sunucusu IP Pingleyerek Tespit Eder mi?

Bazı gelişmiş DHCP sunucuları IP’yi atamadan önce "bu IP kullanılıyor mu?" diye ping atabilir:

arping 192.168.1.102

Ancak:

  • Bu çoğu modem/router’da yoktur

  • Cihaz kapalıysa veya ICMP yanıtı vermiyorsa yine işe yaramaz


Sonuç

DurumSonuç
Statik IP verildi,                             DHCP bilmezÇakışma olabilir
Lease süresi dolduIP tekrar kullanılabilir
DHCP rezervasyonu yapıldıGüvenli, çakışma yaşanmaz

DHCP'nin doğası gereği sadece istekte bulunan cihazları takip etmesi, ağda statik IP kullanımında dikkatli olunmasını zorunlu kılar.

En güvenli yol: IP'yi elle değil, DHCP rezervasyonu ile sabitlemek.


Ekstra Not: Windows Ağ Ayarında

Statik IP yerine DHCP seçip modemde rezervasyon yapılırsa:

  • IP otomatik gelir

  • DNS ve gateway otomatik doğru olur

  • Manüel girişe gerek kalmaz

Modern ağlarda bu yöntem en sağlam ve sürdürülebilir çözümdür. 🧠🔐

Monday, May 26, 2025

Windows + Nginx: Sade ve Guvenli Firewall Yapilandirmasi

1. Başlangıç Durumu

Windows'un varsayılan güvenlik duvarı:

  • Profil tabanlı (Private/Public/Domain) çalışır.
  • Gelen bağlantılar Block, giden bağlantılar Allow şeklindedir.
  • Yüzlerce "Network Discovery", "Remote Assistance" vb. kural aktif olabilir.

Bu karmaşa dış dünyaya açık kalan portların gözden kaçmasına neden olabilir.

2. Amacımız Nedir?

Servis Durum Açıklama
HTTP (port 80) ✅ Açık Her IP'den erişilsin
SMB (445/139) ✅ Sadece LAN 192.168.1.0/24 ağından erişilsin
UPnP, SSDP, mDNS ❌ Kapalı Güvenlik zaafiyetleri nedeniyle
Diğer tüm servisler ❌ Kapalı Tanımlanmadıkça bloklanacak

3. Kuralları Script ile Tanımlama

firewall_rule_set.ps1 Scripti

# 1. HTTP (80) tüm profillerde açık
New-NetFirewallRule -DisplayName "Allow HTTP on All" `
    -Direction Inbound `
    -Protocol TCP `
    -LocalPort 80 `
    -Profile Any `
    -Action Allow

# 2. SMB sadece LAN'dan
New-NetFirewallRule -DisplayName "Allow SMB from LAN only" `
    -Direction Inbound `
    -Protocol TCP `
    -LocalPort 445,139 `
    -RemoteAddress 192.168.1.0/24 `
    -Action Allow

# 3. SMB dış IP'lere kapalı
New-NetFirewallRule -DisplayName "Block SMB from Others" `
    -Direction Inbound `
    -Protocol TCP `
    -LocalPort 445,139 `
    -RemoteAddress Any `
    -Action Block

# 4. UPnP ve SSDP kapalı
New-NetFirewallRule -DisplayName "Block UPnP" `
    -Direction Inbound `
    -Protocol TCP `
    -LocalPort 2869 `
    -Action Block

New-NetFirewallRule -DisplayName "Block SSDP" `
    -Direction Inbound `
    -Protocol UDP `
    -LocalPort 1900 `
    -Action Block

Scripti Çalıştırma

  1. PowerShell'i Yönetici olarak açın.
  2. Güvenlik politikasını geçerli kılmak için:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  1. Scripti çalıştırın:
powershell -ExecutionPolicy Bypass -File "firewall_rule_set.ps1"

4. Nginx Loglarını Temizleme ve Takip Etme

Logları sıfırla:

Clear-Content "C:\nginx\logs\access.log"
Clear-Content "C:\nginx\logs\error.log"

Anlık log takibi:

Get-Content "C:\nginx\logs\access.log" -Wait

Gelen istekleri, IP adreslerini ve durum kodlarını gerçek zamanlı izleyebilirsiniz.

5. Kötü Niyetli IP'leri Engelleme

Loglarda aşağıdakiler görülürse:

  • GET /login.rsp gibi zaafiyet denemeleri
  • User-Agent: sqlmap, Hello World, curl vb. bot imzaları
  • Kara liste IP'lerden gelen bağlantılar

Engellemek için:

New-NetFirewallRule -DisplayName "Block malicious IP 196.251.81.93" `
  -Direction Inbound `
  -RemoteAddress 196.251.81.93 `
  -Action Block

(Opsiyonel) Nginx'te engelleme:

server {
    deny 196.251.81.93;
}

6. Otomatik IP Analizi (PowerShell)

$log = "C:\nginx\logs\access.log"
$loglines = Get-Content $log -Tail 100

$blocklist = @()
foreach ($line in $loglines) {
    if ($line -match "login\.rsp" -or $line -match "Hello World" -or $line -match "sqlmap" -or $line -match "curl") {
        if ($line -match "^(\d+\.\d+\.\d+\.\d+)") {
            $ip = $matches[1]
            if (-not ($blocklist -contains $ip)) {
                $blocklist += $ip
                Write-Host "Engelleniyor: $ip"
                New-NetFirewallRule -DisplayName "AutoBlock $ip" -Direction Inbound -RemoteAddress $ip -Action Block
            }
        }
    }
}
Bu script tekrar çalıştırıldığında sadece yeni IP’leri ekler. Görev Zamanlayıcı ile otomatikleştirilebilir.

7. Durum Kontrolleri

Aktif ağ profili:

Get-NetConnectionProfile | Format-Table Name, InterfaceAlias, NetworkCategory

Aktif kurallar özeti:

Get-NetFirewallRule -Enabled True | Format-Table DisplayName, Direction, Action, Profile, LocalPort, Protocol -AutoSize

Dinlenen portlar:

Get-NetTCPConnection -State Listen | Sort-Object LocalPort | Format-Table LocalAddress, LocalPort, OwningProcess

8. Sonuç

  • Sadece tanımlı servisler aktif olur
  • Minimum port dışa açıktır
  • Loglar temiz ve okunabilirdir
  • Profil bazlı karmaşa ortadan kalkar
  • Saldırgan IP'ler anında engellenebilir
  • Otomatik analiz ile sürekli güvenlik sağlanır

Güvenli, sade ve kontrollü bir Windows + nginx ortamı! 🛡️

Monday, May 19, 2025

Windows'ta Kayıp "New → Text Document" Sorunu ve Çözümü

Bazı Windows sistemlerinde sağ tık → New (Yeni) menüsünde "Text Document" (Metin Belgesi) seçeneği kaybolabiliyor. Bu sorun, özellikle Notepad++ gibi üçüncü parti yazılımlar yüklendikten sonra veya yanlış registry düzenlemeleri sonrasında ortaya çıkabiliyor. Bu yazıda bu problemi nasıl teşhis edip, sistemsel olarak kalıcı bir şekilde çözebileceğinizi anlatıyorum.

Sorunun Belirtileri

  • Sağ tık menüsünde "New → Text Document" seçeneği görünmüyor.

  • .txt dosyasına çift tıklayınca "yetki hatası" veya "uygulama ilişkilendirme" hatası geliyor.

  • assoc ve ftype komutları boş veya bozulmuş çıkıyor.

Adım Adım Çözüm

1. Komut Satırıyla File Association'ı Düzeltme

Admin haklarıyla CMD açıp aşağıdaki komutları girin:

assoc .txt=txtfile
ftype txtfile="%SystemRoot%\system32\NOTEPAD.EXE" "%1"

Bu komutlar .txt uzantısını "txtfile" sınıfına bağlar ve bu sınıfın Notepad ile açılmasını sağlar.

2. Registry Anahtarını Temizle ve Düzelt

regedit ile şu konuma gidin:

HKEY_CLASSES_ROOT\.txt

Bu anahtarın içinde şu şekilde görünmelidir:

  • (Default) değeri: txtfile

Eğer alt klasörler varsa (ShellNew, OpenWithProgids, vs) ve bozuklarsa, tamamını silin. Sadece yukarıdaki (Default) anahtarı kalmalı.

Not: Bozulmuş ShellNew anahtarı, "New → Text Document" menüsünün görünmemesine neden olur.

3. Yeniden Başlat

Registry düzenlemelerinin ardından sisteminizi yeniden başlatın. Artık:

  • .txt dosyaları Notepad ile açılır.

  • Sağ tık → New menüsünde "Text Document" seçeneği geri gelir.

Sonuç

Bu işlem, bozuk file association durumlarında %100 çalışan bir çözümdür. assoc, ftype ve registry düzeltmeleri birlikte ele alındığında, Windows'taki tüm metin dosyası işleyişi normale döner.

İlgili .reg Yedeği (Opsiyonel)

Aşağıdaki gibi bir .reg dosyası oluşturup saklayabilirsiniz:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.txt]
@="txtfile"