---
title: 'Uzak Erişim Sertleştirme'
source: 'https://academia.sh/tr/kurslar/sunucu-ve-sertlestirme/uzak-erisim-sertlestirme'
course: 'Sunucu, Ağ ve Sertleştirme'
language: tr
updated: '2026-08-17T18:09:10+00:00'
license: 'CC BY-SA 4.0'
---

# Uzak Erişim Sertleştirme

Parola tabanlı erişimin deneme yüzeyi bir dönem boyunca sayılır, anahtar tabanlıya geçince kapanan ve açılan yüzey ayrı ayrı ölçülür, sıçrama sunucusu eklenince doğrudan erişilebilir makine sayısıyla doğan tek hedef karşılaştırılır.

Önceki ders güvenlik duvarını varsayılan reddede bıraktı: yönetim kabuğu artık yalnız iç ağdan,
yönetim düğümü ayrıca ofis ağından erişilebilir. Kapı daraldı. Kapıdan geçmenin neye bağlı olduğu
ise değişmedi — bağlanan taraf hâlâ bir parola yazıyor ve parola, izin verilen bölgelerdeki her
kaynaktan denenebiliyor. Bu dersin ölçüsü kapının genişliği değil, kapının arkasındaki kilittir.

- **ST7.** Altı makine, üç kabuk hesabı ve beş özne kurgusal bölgesel ölçüm ağına aittir. Gerçek
  bir erişim kurulmuyor; ölçülen şey `node` ile yazılan modeldir.
- **ST8.** Deneme kaydı, tohumu görünür bir üreteçle üretildi; her koşum aynı diziyi verir. Gerçek
  dağılım bölgeye ve döneme göre değişir, sayıların büyüklük sırası değişmez.
- **ST9.** Anahtar dizeleri ve parmak izleri kurgusaldır; gerçek anahtar yazılmadı. Parmak izi
  yalnız aynı anahtarın iki yerde durduğunu göstermek için var.
- **ST10.** Bir makinede yetkili anahtar dosyasını güncellemek dört dakika sayıldı. Gerçekte bu süre
  otomasyona göre değişir; iptalin toplamı yarıçapla orantılı kalır.
- **ST11.** Anahtarın ömrü yok, iptal edilene kadar geçerlidir. Süreli kimlik bilgisi bu dersin
  dışındadır.
- **ST12.** Sıçrama sunucusu tek makine olarak modellendi. İkincisi kullanılabilirlik kalemini
  düşürür, tek hedef kalemini ikiye çıkarır.

## Parola Düzeninin Deneme Yüzeyi

Model üç şey tutuyor: güvenlik duvarının hangi kaynakların ulaşmasına izin verdiği, otuz günlük
dönemde gözlenen parola denemeleri ve anahtar tabanlıya geçildiğinde ortaya çıkacak kopya kümesi.
Deneme kaydı elle yazılmak yerine kendi yazdığımız üreteçle kuruluyor; tohum kodda görünüyor.

```js
// erisim.mjs — uzak erisim ozneleri, anahtar kopyalari ve deneme ureteci; model, gercek erisim degil
export const MAKINE = ['toplayici-1', 'toplayici-2', 'dogrulayici', 'faturalama', 'veri-deposu', 'yonetim'];
export const HESAP = ['isletim', 'dagitim', 'bakim'];   // her makinede acik olan kabuk hesaplari
export const ULASAN = { ic: 90, ofis: 40 };             // guvenlik duvarinin izin verdigi kaynak sayisi
export const PAYLASIM = { isletim: 6, dagitim: 6, bakim: 1 }; // ayni parolayi tasiyan makine sayisi
const TOHUM = 20260401;                                 // uretec tohumu; her kosum ayni diziyi verir
function* uretec(t = TOHUM) {                           // kendi yazdigimiz dogrusal esleme
  let x = t;
  for (;;) { x = (x * 1103515245 + 12345) % 2147483648; yield x / 2147483648; }
}
export function denemeler(n = 400) {                    // otuz gunluk parola denemesi kaydi
  const g = uretec(); const kayit = [];
  const s = (k) => Math.floor(g.next().value * k);
  for (let i = 0; i < n; i += 1) {
    const bolge = g.next().value < 0.7 ? 'ic' : 'ofis';
    const yogun = g.next().value < 0.04;               // kaynaklarin bir bolumu yogun deniyor
    kayit.push({ kaynak: `${bolge}-${s(ULASAN[bolge]) + 1}`, makine: MAKINE[s(6)], hesap: HESAP[s(3)],
      deneme: yogun ? 400 + s(900) : 1 + s(6) });
  }
  return kayit;
}
// Anahtar kopyalari; ozne, kopyanin durdugu yer ve kurgu parmak izi.
export const KOPYA = [
  ['op-a', 'dizustu', 'kz7f-11ac'], ['op-a', 'yedek-arsiv', 'kz7f-11ac'],
  ['op-b', 'dizustu', 'kz7f-2be0'], ['op-c', 'dizustu', 'kz7f-3d41'],
  ['dagitim', 'yapilandirma-araci', 'kz7f-5f92'], ['dagitim', 'tumlesim-kosucusu', 'kz7f-5f92'],
  ['bakim-dis', 'dis-makine', 'kz7f-6a08'],
].map(([ozne, yer, parmak]) => ({ ozne, yer, parmak, ad: `${ozne}/${yer}` }));
// Hangi ozne hangi makinede yetkili (yetkili anahtar dosyalari).
export const YETKI = {
  'op-a': MAKINE, 'op-b': MAKINE, 'op-c': ['yonetim', 'faturalama'],
  'dagitim': MAKINE, 'bakim-dis': ['veri-deposu', 'yonetim'],
};
export const DOKUNUS_DK = 4;                            // bir makinede yetkili anahtar dosyasini guncelleme suresi
export const yaricap = (k, y = YETKI) => y[k.ozne].length;
export const kalem = (y = YETKI) => KOPYA.reduce((a, k) => a + yaricap(k, y), 0);
```

```js
// kosum1.mjs — parola tabanli erisimin deneme yuzeyi otuz gunluk kayittan sayilir
import { MAKINE, HESAP, ULASAN, PAYLASIM, denemeler } from './erisim.mjs';

const kayit = denemeler();
const top = (l) => l.reduce((a, x) => a + x.deneme, 0);
const yogun = kayit.filter((x) => x.deneme >= 100);
const ulasan = ULASAN.ic + ULASAN.ofis;
for (const [ad, v, not = ''] of [
  ['parola denemesi', top(kayit)],
  ['deneyen ayri kaynak', new Set(kayit.map((x) => x.kaynak)).size, `${ulasan} kaynak ulasabiliyor`],
  ['hedef (makine x hesap)', MAKINE.length * HESAP.length],
  ['denenebilir uclu', ulasan * MAKINE.length * HESAP.length, 'ulasan kaynak x hedef'],
  ['yogun kaynak (>=100 deneme)', new Set(yogun.map((x) => x.kaynak)).size, `${top(yogun)} deneme uretiyor`],
  ['denenmemis hedef', MAKINE.length * HESAP.length - new Set(kayit.map((x) => `${x.makine}|${x.hesap}`)).size],
]) console.log(`${ad.padEnd(29)}${String(v).padStart(6)}  ${not}`.trimEnd());
console.log('\ntek parola sizarsa dusen makine:');
for (const h of HESAP) console.log(`  ${h.padEnd(10)} ${PAYLASIM[h]}`);
```

```
parola denemesi               16505
deneyen ayri kaynak             124  130 kaynak ulasabiliyor
hedef (makine x hesap)           18
denenebilir uclu               2340  ulasan kaynak x hedef
yogun kaynak (>=100 deneme)      17  15159 deneme uretiyor
denenmemis hedef                  0

tek parola sizarsa dusen makine:
  isletim    6
  dagitim    6
  bakim      1
```

Güvenlik duvarı dış bölgeyi kapattı, deneme yüzeyi buna rağmen sıfır değil: iç ağdan doksan, ofis
ağından kırk kaynak yönetim kabuğuna ulaşabiliyor. Dönemde bu kaynakların yüz yirmi dördü gerçekten
denedi ve on altı bin beş yüz beş deneme üretti. On yedi yoğun kaynak bunun on beş bin yüz elli
dokuzunu tek başına üretiyor; o on yedisi engellense geri kalan yüz yedi kaynak yerinde durur.
Ölçülmesi gereken sayı denemeyi yapanların sayısı değil, denemeyi yapabileceklerin sayısıdır: yüz
otuz kaynak çarpı on sekiz hedef, yani 2340 üçlü. On sekiz hedefin hepsi dönem içinde en az bir kez
denenmiş.

Alt blok yüzeyin ikinci boyutunu veriyor. İşletim ve dağıtım hesapları altı makinede aynı parolayı
taşıyor, çünkü makineler aynı kurulum adımıyla kuruldu. Tek bir parolanın sızması altı makine
demektir; bakım hesabı makineye özgü olduğu için orada sayı bir. Aynı düzende iki farklı yarıçap
yan yana duruyor ve aradaki fark bir güvenlik kararından değil, kurulum kolaylığından geliyor.

## Anahtar Tabanlı Erişim

```js
// kosum2.mjs — anahtar tabanli erisime gecilir; kapanan yuzey ve acilan yeni yuzey ayri sayilir
import { MAKINE, HESAP, ULASAN, KOPYA, DOKUNUS_DK, denemeler, yaricap, kalem } from './erisim.mjs';

const kayit = denemeler();
console.log(`kapanan  ${kayit.reduce((a, x) => a + x.deneme, 0)} parola denemesi, ` +
  `${new Set(kayit.map((x) => x.kaynak)).size} kaynak -> 0`);
console.log(`acilan   ${KOPYA.length} kopya, ${new Set(KOPYA.map((k) => k.ozne)).size} ozne, ` +
  `${new Set(KOPYA.map((k) => k.parmak)).size} ayri anahtar, omur yok\n`);
console.log('kopya                          yer                  yetkili  iptal dk  ayni anahtari tasiyan yer');
for (const k of KOPYA) {
  const es = KOPYA.filter((x) => x.parmak === k.parmak && x.ad !== k.ad).map((x) => x.yer);
  console.log(`${k.ad.padEnd(30)} ${k.yer.padEnd(20)} ${String(yaricap(k)).padEnd(8)} ` +
    `${String(yaricap(k) * DOKUNUS_DK).padEnd(9)} ${es.join(', ') || '-'}`);
}
const uclu = (ULASAN.ic + ULASAN.ofis) * MAKINE.length * HESAP.length;
const toplam = kayit.reduce((a, x) => a + x.deneme, 0);
console.log('\nduzen                 kapanan deneme  denenebilir uclu  anahtar kalemi');
for (const [ad, kapanan, kalan, ak] of [['yalniz parola', 0, uclu, 0],
  ['parola + anahtar', 0, uclu, kalem()], ['yalniz anahtar', toplam, 0, kalem()]])
  console.log(`${ad.padEnd(21)} ${String(kapanan).padEnd(15)} ${String(kalan).padEnd(17)} ${ak}`);
const yer = [...new Set(KOPYA.map((k) => k.yer))];
console.log(`\n(kopya, makine) kalemi         ${kalem()}`);
console.log(`kopyanin durdugu ayri yer      ${yer.length}   ${yer.join(', ')}`);
console.log(`en genis kopyanin yaricapi     ${Math.max(...KOPYA.map((k) => yaricap(k)))}`);
console.log(`butun kopyalari iptal etmek    ${kalem() * DOKUNUS_DK} dk`);
```

```
kapanan  16505 parola denemesi, 124 kaynak -> 0
acilan   7 kopya, 5 ozne, 5 ayri anahtar, omur yok

kopya                          yer                  yetkili  iptal dk  ayni anahtari tasiyan yer
op-a/dizustu                   dizustu              6        24        yedek-arsiv
op-a/yedek-arsiv               yedek-arsiv          6        24        dizustu
op-b/dizustu                   dizustu              6        24        -
op-c/dizustu                   dizustu              2        8         -
dagitim/yapilandirma-araci     yapilandirma-araci   6        24        tumlesim-kosucusu
dagitim/tumlesim-kosucusu      tumlesim-kosucusu    6        24        yapilandirma-araci
bakim-dis/dis-makine           dis-makine           2        8         -

duzen                 kapanan deneme  denenebilir uclu  anahtar kalemi
yalniz parola         0               2340              0
parola + anahtar      0               2340              34
yalniz anahtar        16505           0                 34

(kopya, makine) kalemi         34
kopyanin durdugu ayri yer      5   dizustu, yedek-arsiv, yapilandirma-araci, tumlesim-kosucusu, dis-makine
en genis kopyanin yaricapi     6
butun kopyalari iptal etmek    136 dk
```

İlk satır kapanan yüzeydir: on altı bin beş yüz beş deneme sıfıra iner ve yüz yirmi dört kaynağın
hiçbiri artık deneyemez. Kapanan şey parola değil, tahmin edilebilirliktir — denenecek bir şey kalmaz.
İkinci satır aynı anda açılanı sayıyor: yedi kopya, beş özne, beş ayrı anahtar. Kopya sayısı özne
sayısından fazla, çünkü aynı anahtar iki ayrı yerde duruyor.

Tablo bu kopyaların nerede durduğunu ve ne kadar taşıdığını gösteriyor. Anahtar bir dizüstünde, bir
yedek arşivinde, bir yapılandırma aracında, bir tümleşim koşucusunda ve bir dış makinede duruyor —
beş ayrı yer, beşi de ayrı korunuyor. Yetkili sütunu her kopyanın yarıçapıdır: dört kopya altı
makinede birden geçerli. Toplam otuz dört `(kopya, makine)` kalemi var ve bunların her biri, o kopya
sızarsa açılan bir kapıdır. Parola düzeninde sayılan yüzey ortadan kalkmadı, biçim değiştirdi:
tahmin edilebilir yüz otuz kaynak yerine korunması gereken beş yer.

Ortadaki üç satırlık blok geçişin kendisini ölçüyor ve bu dersin en kolay atlanan sayısını veriyor.
Anahtar tabanlı erişimi açmak tek başına hiçbir şey kapatmıyor: parola girişi de açık kaldığı sürece
kapanan deneme sıfır, denenebilir üçlü 2340'ta duruyor. Buna karşılık otuz dört kalemlik
yeni yüzey açıldığı anda oradadır. Ara durum iki düzenin de yüzeyini birden taşır ve kurulumların
çoğu bu ara durumda haftalarca kalır, çünkü anahtar dağıtımı bitmeden parola girişini kapatmak
kimseyi dışarıda bırakma riski taşır. Kapatan adım anahtarın eklenmesi değil, parolanın
kaldırılmasıdır; ikisi ayrı sayılmadıkça birincisi ikincisinin yerine geçer.

İptal sütunu kararın maliyetini veriyor. Bir kopya sızarsa, o öznenin yetkili olduğu her makinede
yetkili anahtar dosyasına dokunmak gerekir: en geniş kopyada altı makine, yirmi dört dakika; bütün
kopyalar için yüz otuz altı dakika. Son sütun ise iptalin yan etkisidir. Yedek arşivindeki kopya
operatörün dizüstündeki kopyayla aynı anahtardır; birini iptal etmek ötekini de iptal eder. Sızıntının
hangi kopyadan geldiği bilinmeden yapılan bir iptal, operatörün kendi erişimini de kapatır.

İkinci satırın sonundaki "ömür yok" ise bu dersin kapatılamayan kalemidir. Parola denemesi görünen
bir şeydi: sayılıyordu, kaynağı biliniyordu, yoğunlaşması fark ediliyordu. Sızmış bir anahtarla
yapılan giriş meşru bir girişten ayırt edilemez ve anahtar iptal edilene kadar geçerlidir. Sızıntı
penceresini kapatan şey sürenin dolması değil, birinin fark etmesidir.

## Sıçrama Sunucusu

```js
// kosum3.mjs — sicrama sunucusu eklenir; dogrudan erisim duser, tek bir hedef dogar
import { MAKINE, KOPYA, YETKI, DOKUNUS_DK, yaricap, kalem } from './erisim.mjs';

const SICRAMA = Object.fromEntries(Object.keys(YETKI).map((o) => [o, ['sicrama']]));
const IC_ANAHTAR = 1;                                   // sicrama sunucusunda duran, makinelere yetkili anahtar
const olc = (y) => [kalem(y), Math.max(...KOPYA.map((k) => yaricap(k, y))), kalem(y) * DOKUNUS_DK];
const [aK, aY, aD] = olc(YETKI), [bK, bY, bD] = olc(SICRAMA);
console.log('olcu                                dogrudan  sicrama sunuculu');
for (const [ad, x, y] of [
  ['dogrudan erisilebilir makine', MAKINE.length, 1],
  ['(kopya, makine) kalemi', aK, bK],
  ['bir kopya sizinca dusen makine', aY, bY],
  ['butun kopyalari iptal etmek (dk)', aD, bD],
  ['tek noktada duran ic anahtar', 0, IC_ANAHTAR],
  ['ic anahtarin yetkili oldugu makine', 0, MAKINE.length],
  ['toplam erisim kalemi', aK, bK + IC_ANAHTAR * MAKINE.length],
]) console.log(`${ad.padEnd(35)} ${String(x).padEnd(9)} ${y}`);
console.log('\nsicrama sunucusunun kendi yuzeyi (kalem kalem):');
for (const [ad, n] of [['dinlenen kapi', 3], ['yetkili ozne', Object.keys(SICRAMA).length],
  ['uzerinde duran ic anahtar', IC_ANAHTAR], ['oturum kaydi tutan tek nokta', 1],
  ['acil kacis yolu (dogrudan erisim)', 1], ['duserse erisilemeyen makine', MAKINE.length],
  ['ele gecirilirse ulasilan makine', MAKINE.length]]) console.log(`  ${ad.padEnd(35)}${n}`);
```

```
olcu                                dogrudan  sicrama sunuculu
dogrudan erisilebilir makine        6         1
(kopya, makine) kalemi              34        7
bir kopya sizinca dusen makine      6         1
butun kopyalari iptal etmek (dk)    136       28
tek noktada duran ic anahtar        0         1
ic anahtarin yetkili oldugu makine  0         6
toplam erisim kalemi                34        13

sicrama sunucusunun kendi yuzeyi (kalem kalem):
  dinlenen kapi                      3
  yetkili ozne                       5
  uzerinde duran ic anahtar          1
  oturum kaydi tutan tek nokta       1
  acil kacis yolu (dogrudan erisim)  1
  duserse erisilemeyen makine        6
  ele gecirilirse ulasilan makine    6
```

İlk dört satır adımı savunuyor: doğrudan erişilebilir makine altıdan bire, `(kopya, makine)` kalemi
otuz dörtten yediye, bir kopya sızınca düşen makine altıdan bire, bütün kopyaları iptal etme süresi
yüz otuz altı dakikadan yirmi sekize iniyor. Dört sütun da aynı yöne gidiyor. Anahtar kopyaları
artık yalnız tek bir makinede yetkili, dolayısıyla bir dizüstünün çalınması altı makine değil bir
makine demek.

Sonraki üç satır bedeli veriyor. Sıçrama sunucusunda, altı makinenin hepsinde yetkili bir iç anahtar
duruyor; onsuz sıçrama sunucusu bir işe yaramaz. Toplam erişim kalemi otuz dörtten on üçe iniyor —
sıfıra değil. Asıl değişen dağılımdır: otuz dört kalem beş ayrı yere dağılmıştı, on üç kalemin altısı
tek bir makinede toplandı. Yüzey küçüldü ve aynı anda yoğunlaştı; bu iki cümle birbirinin karşılığı
değil, ikisi birden doğrudur.

Alt blok sıçrama sunucusunun kendi yüzeyini kalem kalem sayıyor: üç dinlenen kapı, beş yetkili özne,
üzerinde duran bir iç anahtar, oturum kaydını tutan tek nokta. Son iki satır aynı makineyi iki
yönden okuyor. Sıçrama sunucusu düşerse altı makinenin hiçbirine yönetim erişimi kalmaz; bu yüzden
bir acil kaçış yolu bırakılır ve o kaçış yolu tam olarak kapatılmak istenen doğrudan erişimdir.
Ele geçirilirse yine altı makineye ulaşılır. Sıçrama sunucusu bir savunma değil, bir yoğunlaşma
noktasıdır: değeri, altı makinenin gözlenmesi yerine bir makinenin gözlenmesini yeterli kılmasından
gelir — o bir makine gerçekten gözlendiği sürece.

## Özet

- Güvenlik duvarı dış bölgeyi kapattıktan sonra bile 130 kaynak yönetim kabuğuna ulaşabiliyor;
  dönemde 124'ü deneyip 16.505 deneme üretti, 17 yoğun kaynak bunun 15.159'unu tek başına üretiyor.
  Ölçülen yüzey denemeyi yapanlar değil, 130 × 18 = 2340 denenebilir üçlüdür.
- Aynı parolanın altı makinede paylaşılması ikinci bir yarıçap kalemidir: işletim ve dağıtım
  hesaplarında tek bir sızıntı 6 makine, makineye özgü bakım hesabında 1 makine demektir.
- Anahtar tabanlıya geçmek 16.505 denemeyi ve 124 kaynağı tümüyle kapatıyor; karşılığında 7 kopya,
  5 ayrı yer ve 34 `(kopya, makine)` kalemi açıyor. Yüzey kaybolmuyor, biçim değiştiriyor.
- İptal maliyeti yarıçapla orantılıdır: en geniş kopya 6 makine ve 24 dakika, bütün kopyalar 136
  dakika. Aynı anahtarın iki yerde durması iptali yan etkili yapar — bir kopyayı iptal etmek
  ötekini de kapatır.
- Anahtarın ömrü yok: sızmış bir anahtarla yapılan giriş meşru girişten ayırt edilemez ve pencere
  ancak biri fark edince kapanır. Parola denemesi sayılabiliyordu, bu sayılamıyor.
- Sıçrama sunucusu doğrudan erişilebilir makineyi 6'dan 1'e, kalemi 34'ten 7'ye, iptal süresini
  136 dakikadan 28'e indiriyor; karşılığında 6 makinede yetkili bir iç anahtar tek bir makinede
  toplanıyor, toplam kalem 13'te kalıyor ve düşerse 6 makineye erişim, ele geçirilirse yine 6
  makine söz konusu olur.

## Sonraki Adım

Bu dersin anahtarı iptal edilene kadar geçerli. Aynı şey uygulamaların taşıdığı kimlik bilgileri
için de doğrudur: veri deposu parolası, kuyruk anahtarı ve posta geçidi belirteci bir kez yazılır ve
kimse ne zaman değişeceğini söylemez. Sonraki dersin ekseni bu yüzden ömürdür. Ömrü olmayan bir
sırda sızıntı penceresi sonsuzdur; ömrü belli bir kimlik bilgisinde pencere ömür kadardır. Ömür
taranacak: kısa ömür pencereyi düşürür ama yenileme yükünü ve merkezî depoya bağımlılığı artırır,
depo düştüğünde kaç servisin kaç dakika sonra çalışamaz hâle geldiği sayılır. Merkezî deponun
kendisi de bir yüzeydir ve kaç öznenin kaç sırra erişebildiğiyle ölçülür.
