Saturday, May 31, 2025
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
Ghostscript'in en güncel sürümünü indirin: https://ghostscript.com/download/gsdnld.html
Varsayılan kurulum dizini: C:\Program Files\gs\gs10.05.1\
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
Inkscape'i çalıştırın
File > Open
ile EPS dosyasını seçinGhostscript ç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, 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.
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:
Elektron Ne Kadar Hızlanır?
Kinetik enerji ile hız arasındaki ilişki:
1 eV alan bir elektronun hızı yaklaşık:
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:
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.
Gerçek Enerji Taşıyıcısı: Poynting Vektörü
Enerjinin nasıl, nereden aktığını tanımlar:
- E: Elektrik alan
- B: Manyetik alan
- S: Enerjinin yönü ve yoğunluğu (Watt/m²)
Ve işte çarpıcı gerçek:
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
- PowerShell’i Yönetici olarak açın.
- Script dosyasının bulunduğu klasöre gidin:
cd C:\loglar
- 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ırPC kapanır veya ağdan çıkar
DHCP havuzunda
192.168.1.100–192.168.1.150
arası aktifDHCP, boşta zannettiği
192.168.1.102
'yi başka bir cihaza verirPC 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
olsun192.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ç
Durum | Sonuç |
---|---|
Statik IP verildi, DHCP bilmez | Çakışma olabilir |
Lease süresi doldu | IP 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ılarAllow
ş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
- PowerShell'i Yönetici olarak açın.
- Güvenlik politikasını geçerli kılmak için:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
- 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 denemeleriUser-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
veftype
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"