NFS Nedir? NAS ve Sanallaştırmada Dosya Paylaşımı
NFS nedir, nasıl çalışır? UID/GID kimlik modeli, root_squash ayarı, NFS ile SMB'nin aynı klasörde çakışması ve izin sorunlarının teşhisi, lab ölçümleriyle.
- NFS Nedir ve Nasıl Çalışır?
- İstemci Tarafı: Neyin Açık Olduğunu Görmek
- NFS’te Kimlik Bir Sayıdır: UID ve GID Modeli
- Bildirimin Ağdaki Hali: AUTH_SYS
- Eşleme Tablosu ve Analojinin Koptuğu Yer
- NFS İzin Çakışması Nereden Doğar? Aynı Ad, Farklı Numara
- Doğru İsimli Kullanıcı Yazamıyor, Yanlış İsimli Yazabiliyor
- Hesap Bile Gerekmiyor
- Kalıcı Çözüm: Numarayı Tek Yerden Dağıtmak
- root_squash: NFS’te root’u Kapıda Karşılayan Ayar
- no_root_squash Açıkken Ne Oluyor? Ölçülmüş Sonuç
- all_squash: Herkesi Tek Kişiye İndirmek
- NFS Sürümleri: v3, v4 ve sec=krb5 ile Kimliğin İsme Dönmesi
- NFS ve SMB Yan Yana: Aynı Klasöre İki Kapı
- Çift Protokol Açılmalı mı?
- Sanallaştırmada NFS Datastore
- NFS Teşhisi: Bağlanıyor Ama Yazamıyor
- Sonuç: NFS Kullanıcıyı Adıyla Değil Numarasıyla Tanır
- NFS Hakkında Sık Sorulan Sorular
NFS (Network File System), Unix ve Linux dünyasının dosya paylaşım protokolüdür ve 2049 numaralı portu kullanır. Bir sunucudaki dizini ağa açar, başka bir makine o dizini kendi dosya sisteminin içinde bir klasör gibi bağlar. Bağlandıktan sonra ortada uzak bir sunucu olduğu görünmez bile: uygulamalar /mnt/paylasim yolunu yerel bir klasör sanır.
Vestiyeri düşünün. Paltonuzu verirsiniz, karşılığında bir numara alırsınız. Görevli adınızı bilmez, hangi departmanda çalıştığınızı bilmez, sizi tanımak zorunda da değildir. Tek bildiği numaradır ve kural tektir: numarayı kim gösterirse paltoyu o alır. NFS’in kimlik anlayışı tam olarak budur ve bu makalenin anlattığı hemen her şey, bu tek cümlenin sonuçlarıdır.
Bu makale kurumsal network kurulumu hizmetimizin dosya paylaşım katmanına odaklanır; NFS’in içinde yer aldığı protokol zincirinin tamamını kurumsal ağ protokolleri rehberimizde ele alıyoruz. Aşağıdaki bütün ölçümler lab ortamımızdaki iki Ubuntu 24.04 sunucu arasında gerçekten çalıştırıldı: 192.168.1.15 sunucu, 192.168.1.25 istemci.
Bir izin sorununu çözmek için geldiyseniz ve protokolün mekaniğini zaten biliyorsanız, doğrudan kimlik modelinin anlatıldığı bölüme ya da teşhis bölümüne geçebilirsiniz.
NFS Nedir ve Nasıl Çalışır?
NFS, bir sunucudaki dizini ağ üzerinden başka makinelerin kullanımına açan istemci-sunucu protokolüdür. 1980’lerde Sun Microsystems’te doğdu, bugün Linux, BSD ve ticari Unix sistemlerinin ortak paylaşım dilidir. Ağa takılan storage kutularının, yani Network Attached Storage (NAS) cihazlarının neredeyse tamamı SMB’nin yanında NFS de konuşur.
Çalışma mantığı iki taraflı bir anlaşmadır ve iki fiilin adı protokolün sözlüğüne girmiştir:
- Export, sunucu tarafındaki karardır: “şu dizini, şu ağdaki makinelere, şu koşullarla açıyorum”.
- Mount, istemci tarafındaki karardır: “o dizini kendi ağacımın şu noktasına bağlıyorum”.
Sunucu tarafındaki export tanımı tek satırdır. Lab sunucumdaki /etc/exports dosyasına yazdığım satır şu:
/srv/paylasim 192.168.1.0/24(rw,sync,no_subtree_check)Üç şey söylüyor: hangi dizin, kimlere, hangi koşullarla. rw yazma izni verir, sync yazma işlemini diske inmeden onaylamamayı söyler, no_subtree_check ise bir performans ve kararlılık tercihidir.
Ama bu satır yapılandırmanın tamamı değildir, yalnızca varsayılanlardan sapan kısmıdır. Yazmadığınız her seçenek sessizce devreye girer ve NFS’te varsayılanların ne olduğunu bilmemek, sonradan “ben böyle bir şey yazmamıştım” denen arızaların kaynağıdır. Sunucuya gerçekte ne dediğinizi exportfs -v ile görürsünüz:
sudo exportfs -ra
sudo exportfs -v/srv/paylasim 192.168.1.0/24(sync,wdelay,hide,no_subtree_check,
sec=sys,rw,secure,root_squash,no_all_squash)Üç satırlık bir tanım yazdım, sunucu bana dokuz seçenek geri okudu. Bunlardan ikisi bu makalenin geri kalanını belirliyor: sec=sys kimlik doğrulama yönteminin ne olduğunu, root_squash ise root kullanıcısına nasıl davranılacağını söylüyor. İkisine de sırası gelince döneceğiz.
İstemci Tarafı: Neyin Açık Olduğunu Görmek
İstemci, bağlanmadan önce sunucuda ne olduğunu sorabilir. showmount komutu tam olarak bunu yapar:
showmount -e 192.168.1.15Export list for 192.168.1.15:
/srv/paylasim 192.168.1.0/24Bu çıktı bir kolaylık gibi görünür ve teşhiste gerçekten öyledir. Ama aynı zamanda ilk güvenlik notudur: bu bilgiyi almak için hiçbir kimlik doğrulaması gerekmez. Ağda sunucuya ulaşabilen herkes, hangi dizinlerin hangi ağlara açıldığını öğrenebilir. NFS’in güvenilmeyen bir ağda işi olmamasının sebeplerinden biri budur.
Bağlanmak ise tek komut:
sudo mount -t nfs 192.168.1.15:/srv/paylasim /mnt/paylasimBağlandıktan sonra mount çıktısında hangi anlaşmanın kurulduğu yazar:
192.168.1.15:/srv/paylasim on /mnt/paylasim type nfs4
(rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,
proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.25,
local_lock=none,addr=192.168.1.15)Hiçbir sürüm belirtmedim, iki taraf vers=4.2 üzerinde anlaştı. sec=sys yine karşımda. Dosya paylaşımı bu noktada çalışır durumdadır ve çoğu kurulum burada biter. Asıl soru ise henüz sorulmadı: sunucu, bağlanan bu makinede oturan kişinin kim olduğunu neye bakarak anlıyor?
NFS’te Kimlik Bir Sayıdır: UID ve GID Modeli
Cevap kısa: NFS bağlanan kişiyi bir sayı olarak tanır. Kullanıcı adı, parola ya da grup adı ağa hiç çıkmaz. İstemci her istekle birlikte “bu isteği yapan kullanıcının numarası şu, grup numarası bu” diye bir bildirimde bulunur, sunucu da bu numaraları kendi dosya sistemindeki sahiplik bilgisiyle karşılaştırır.
Bu numaraların adı UID (User ID) ve GID (Group ID). Her Linux sisteminde zaten vardırlar; id komutu size kendinizinkini söyler:
id muhasebeuid=1500(muhasebe) gid=1500(muhasebe) groups=1500(muhasebe)Parantez içindeki isimler yerel bir kolaylıktır. Sistem dosyaları sahiplendirirken muhasebe yazmaz, 1500 yazar; ismi ekrana basarken /etc/passwd dosyasına bakıp numarayı isme çevirir. Aynı dosyaya ls -ln ile bakarsanız çeviri yapılmamış halini görürsünüz:
ls -l /srv/paylasim/butce.txt
ls -ln /srv/paylasim/butce.txt-rw-r--r-- 1 muhasebe muhasebe 19 Aug 13 16:07 /srv/paylasim/butce.txt
-rw-r--r-- 1 1500 1500 19 Aug 13 16:07 /srv/paylasim/butce.txtİki satır aynı dosyayı anlatıyor. Üstteki insan için, alttaki gerçek.
Bildirimin Ağdaki Hali: AUTH_SYS
Bu noktada işin mekanizmasına inmek gerekiyor, çünkü “sunucu numaraya bakar” cümlesi tek başına kritik ayrıntıyı gizliyor: o numarayı sunucuya kim söylüyor?
Cevabı görmek için istemci yazma yaparken sunucudaki trafiği yakaladım:
sudo tcpdump -i ens33 -s 0 -w nfs-authsys.pcap "port 2049 or port 111"Aşağıdaki dökümde bakılacak üç yer var, döküme geçmeden onları söyleyeyim:
Flavorsatırı: kimlik doğrulama yönteminin adı.UIDveGIDsatırları: isteği yapan kullanıcının kim olduğu iddiası.Verifierbloğu: bu iddianın kanıtı.
Yakalanan bir isteğin kimlik bölümü şöyle görünüyor:
Remote Procedure Call, Type:Call XID:0xcdadd49f
Program: NFS (100003)
Program Version: 4
Procedure: COMPOUND (1)
Credentials
Flavor: AUTH_UNIX (1)
Length: 32
Stamp: 0x00000000
Machine Name: openldap
UID: 1500
GID: 1500
Auxiliary GIDs (1) [1500]
Verifier
Flavor: AUTH_NULL (0)
Length: 0Bu dökümün söylediklerini sırayla okuyalım:
Flavor: AUTH_UNIX (1), kullanılan kimlik yönteminin adıdır. Export çıktısındakisec=sysile aynı şeydir, literatürde çoğunlukla AUTH_SYS diye geçer.Machine Name: openldap, isteği yapan makinenin kendi adıdır. İstemci bunu kendisi yazar.UID: 1500veGID: 1500, kimlik iddiasının tamamıdır. Ortada bir kullanıcı adı yok, bir parola yok, bir bilet yok. Yalnız iki sayı.Verifierbloğu boş.AUTH_NULLveLength: 0, “bu iddiayı doğrulayan bir şey eklemedim” demektir.
Dördüncü madde bu makalenin en önemli teknik ayrıntısıdır. Protokolde kimlik iddiasının yanına bir kanıt koymak için ayrılmış bir alan var ve klasik kurulumda o alan boş gidiyor. Sunucu, istemcinin beyanını doğrulamıyor; çünkü doğrulayacak bir şey yok.
Aynı yakalamada uid=1500 taşıyan 22 çerçeve saydım. Hepsinde aynı manzara: numara açık, kanıt yok.
Eşleme Tablosu ve Analojinin Koptuğu Yer
Vestiyer benzetmesini ağdaki karşılıklarıyla yan yana koyalım, çünkü analojinin işe yaraması için hangi ilişkinin neye karşılık geldiğinin görünmesi gerekir:
| Vestiyerde | NFS’te |
|---|---|
| Paltonuz | Sunucudaki dosya |
| Emanet fişindeki numara | UID / GID |
| Görevlinin numaraya bakması | Sunucunun sahiplik karşılaştırması |
| “Numarayı kim gösterirse paltoyu o alır” | Verifier: AUTH_NULL |
| Vestiyer görevlisi | NFS sunucusu |
Ve analojinin yalan söylediği yer şurası, söylemezsem yanlış bir güven duygusu bırakır: vestiyerde fişi göstermek için önce o fişe sahip olmanız gerekir. Kağıt parçasıdır, cebinizdedir, kaybederseniz sorun yaşarsınız. NFS’te ise numarayı “göstermek” için hiçbir şeye sahip olmanız gerekmez. Kendi makinenizde yönetici iseniz, istediğiniz numarayı yazarsınız ve o numara ağda öylece gider.
Bu soyut bir risk değil. Sıradaki bölümde önce bu çakışmanın kimse istemeden nasıl doğduğunu göstereceğim; ardından Hesap Bile Gerekmiyor başlığında aynı şeyi bilerek yapıp, istemcide hiçbir hesap açmadan yalnızca bir numara beyan ederek başkasına kapatılmış bir dosyayı okuyacağım.
muhasebe olan iki kullanıcıdan biri yazabiliyor, öbürü yazamıyor; hiç hesabı olmayan üçüncüsü ise yalnız numarayı beyan ederek içeri giriyor.NFS İzin Çakışması Nereden Doğar? Aynı Ad, Farklı Numara
İzin çakışmalarının kaynağı tek cümleyle şudur: kullanıcı numaraları makine başına dağıtılır, ama paylaşılan dosya sistemi ortaktır. Bir Linux sunucuda kullanıcı açtığınızda sistem sıradaki boş numarayı verir. İki ayrı sunucuda aynı sırayla kullanıcı açarsanız numaralar tesadüfen tutar; farklı sırayla açarsanız tutmaz. Hiçbir uyarı çıkmaz, çünkü iki makinenin birbirinden haberi yoktur.
Bunu lab ortamında bilerek üretmek için üç hesap açtım:
- Sunucuda
muhasebe, numarası 1500. - İstemcide
muhasebe, numarası 1600. Adı aynı, numarası farklı. - İstemcide ayrıca
depo, numarası 1500. Adı farklı, numarası sunucudakimuhasebeile aynı.
Sonra sunucuda muhasebe’ye ait bir dosya oluşturup istemciden bağlandım. Aynı dosya, iki makine:
Sunucu (192.168.1.15) | İstemci (192.168.1.25) | |
|---|---|---|
ls -l butce.txt | muhasebe muhasebe | depo depo |
ls -ln butce.txt | 1500 1500 | 1500 1500 |
Sayı iki tarafta da aynı, isim değişti. İsim zaten hiç ağa çıkmadı; her makine kendi /etc/passwd dosyasına bakıp 1500’ü kendi bildiği isme çevirdi.
muhasebe diyor, istemci depo; ikisi de aynı 1500 numarasını okuyor.Doğru İsimli Kullanıcı Yazamıyor, Yanlış İsimli Yazabiliyor
Asıl çarpıcı sonuç, iki kullanıcıya sırayla yazdırmaya çalıştığımda çıktı:
sudo -u muhasebe touch /mnt/paylasim/muhasebe-denemesi.txt
sudo -u depo touch /mnt/paylasim/depo-denemesi.txttouch: cannot touch '/mnt/paylasim/muhasebe-denemesi.txt': Permission deniedEkranda tek satır var ve o da ilk komuta ait: ikincisi hiçbir şey yazmadan, yani sessizce başarılı oldu. Adı sunucudaki sahiple birebir aynı olan kullanıcı reddedildi. Adı hiç alakasız olan kullanıcı yazdı. Dosyanın sunucudaki hali ise şu:
-rw-rw-r-- 1 muhasebe muhasebe 0 Aug 13 16:08 depo-denemesi.txtdepo yazdı, sunucuda muhasebe’nin dosyası olarak duruyor. Vestiyerde başkasının numarasını uzatıp onun paltosunu almak buna benzer, ama önemli bir fark var: burada kimse başkasının numarasını almaya çalışmadı.
Bu çakışmayı ben labda bilerek kurdum. Sahada ise kendiliğinden oluşur ve hikâyesi genelde şudur: sunucuyu kuran yönetici o makinede muhasebe hesabını açar, sistem ona sıradaki boş numarayı verir. Aylar sonra bambaşka biri, bambaşka bir makinede depo hesabını açar; o sistem de kendi sırasındaki boş numarayı verir. İki numaranın aynı çıkması için kimsenin hata yapmış olması gerekmez: iki makine birbirine hiç sormaz, her biri kendi sayacından ilerler. Ortak bir klasör paylaşılana kadar da kimse fark etmez.
Hesap Bile Gerekmiyor
Bu noktada “numaraları hizalarım, biter” demek isteyebilirsiniz. Hizalamak işe yarar ama meselenin yalnız yarısını çözer, çünkü modelin dayandığı şey numaraların doğruluğu değil, istemciye duyulan güvendir.
Bunu göstermek için sunucuda yalnız orada var olan bir kullanıcı açtım: mudur, numarası 1501. Ona ait dizini 700, dosyayı 600 izinleriyle kapattım; yani sahibinden başkası ne girebilir ne okuyabilir. İstemcide 1501 numaralı hiçbir hesap yok:
getent passwd 1501Komut hiçbir şey basmadı ve 2 çıkış koduyla döndü, yani “böyle bir kayıt yok” dedi.
Sonra istemciden, hiçbir hesap oluşturmadan, yalnızca numarayı beyan ederek okumayı denedim:
sudo -u depo cat /mnt/paylasim/mudur-ozel/ozel.txt
sudo setpriv --reuid 1501 --regid 1501 --clear-groups cat /mnt/paylasim/mudur-ozel/ozel.txtcat: /mnt/paylasim/mudur-ozel/ozel.txt: Permission denied
sadece mudur okuyabilirİkinci satır dosyanın içeriği. Parola yok, hesap yok, grup üyeliği yok. Yalnızca beyan edilen bir sayı ve sunucunun o beyanı kabul etmesi.
Kalıcı Çözüm: Numarayı Tek Yerden Dağıtmak
Çakışmayı elle numara hizalayarak çözmek üç makinede işe yarar, otuz makinede yürümez: her yeni sunucuda aynı sırayı tutturmanız gerekir ve bir kere kaydığında geriye dönüp binlerce dosyanın sahipliğini düzeltmek zorunda kalırsınız.
Kalıcı çözüm, kullanıcı numarasını makinelerin kendi kararına bırakmamak, merkezî bir dizinden dağıtmaktır. Bir dizin sunucusu her kullanıcıya bir kez numara verir, bütün makineler o numarayı aynı yerden okur ve muhasebe her sunucuda aynı sayıya karşılık gelir. Dizinin bu işi nasıl yaptığını, sorguların nasıl kurulduğunu ve şifresiz bir dizin bağlantısının neyi açığa çıkardığını LDAP nedir rehberimizde ele alıyoruz.
root_squash: NFS’te root’u Kapıda Karşılayan Ayar
Buraya kadarki kural basitti: numaranız neyse, sunucudaki dosya izinleri o numaraya göre uygulanır. Sahibiyseniz açarsınız, değilseniz açamazsınız.
Bir numara bu kurala uymaz: sıfır.
root, Linux’ta ayrı bir mekanizma değil, sadece numarası 0 olan kullanıcıdır. Farkı şurada: işletim sistemi 0 numarasıyla gelen bir istekte izinlere bakmaz bile. “Bu kullanıcının hakkı var mı?” sorusu hiç sorulmaz. Yani root, izinleri aşan biri değil, izin denetiminden muaf olan biridir.
Şimdi iki gerçeği yan yana koyun:
- NFS’te kimlik, istemcinin beyan ettiği bir sayıdır ve doğrulanmaz.
0sayısı izin denetimini tamamen atlar.
Bunları çarpınca rahatsız edici sonuç çıkıyor: kendi makinesinde root olan herkes 0 beyan edebilir, beyan da doğrulanmadığına göre sunucuda dilediğini yapabilir. Yani birinin kendi bilgisayarında yönetici olması, kurumun dosya sunucusunda da yönetici olmasına yeterdi.
NFS bu açığı bilir ve varsayılan olarak kapalı gelir. Savunmanın adı root_squash; exportfs -v çıktısında yazmadığım halde karşıma çıkmasının sebebi buydu.
Türkçesi “ezmek” olan squash tam da yaptığı işi anlatıyor: gelen 0’ı kapıda yakalar ve hiçbir yetkisi olmayan bir kullanıcıya düşürür. Sunucu isteği reddetmez, ama isteği yapanı root saymaz.
Bunu ölçerken önce beklemediğim bir şey oldu: istemcinin root’u, muhasebe’ye ait sıradan bir dizine dosya yazamadı bile. Sebebi düşünülünce açık: nobody’ye düşürüldüğü için o dizinde artık “diğerleri” hakkıyla duruyordu ve o hakta yazma yoktu. Yani root burada ayrıcalıklı değil, ortamdaki en yetkisiz kullanıcı.
Düşürülmenin sonucunu görmek için herkesin yazabildiği bir dizin açtım ve orada tekrar denedim:
sudo touch /mnt/paylasim/herkese-acik/root-yazdi.txtBu sefer yazdı, ama sunucuda dosyanın sahibi root değil:
-rw-r--r-- 1 nobody nogroup 0 Aug 13 16:09 root-yazdi.txt
-rw-r--r-- 1 65534 65534 0 Aug 13 16:09 root-yazdi.txt0 numarasıyla gelen istek, sunucuda 65534 numaralı nobody kullanıcısına düşürüldü. nobody, Linux’ta tam olarak bu iş için duran hesaptır: hiçbir gruba, hiçbir dosyaya ve hiçbir yetkiye bağlı değildir, kimliği düşürülen istekler oraya park edilir.
Aynı root, sahiplik değiştirmeyi denediğinde de duvara çarptı:
chown: changing ownership of '/mnt/paylasim/butce.txt': Operation not permittedVestiyer benzetmesinde bu, bankoya gelip sıraya girmek istemeyen, “benim kim olduğumu biliyor musunuz?” deyip torpil bekleyen kişiye görevlinin verdiği cevaptır: burada o iddianın bir karşılığı yok. Kendisi hakkında ne söylediğinin önemi de yok, çünkü söylediğini ispatlayan hiçbir şey getirmedi.
Üstelik sonuç, torpil bekleyenin umduğundan da kötü. nobody’ye düşürülen kişi sıradan bir müşteri bile sayılmaz: elinde hiç fiş yoktur. İçeri girebilir, herkese açık rafa bir şey bırakabilir, ama gösterecek numarası olmadığı için hiçbir paltoyu isteyemez. İstemcideki yetki, sunucunun kapısında biter.
no_root_squash Açıkken Ne Oluyor? Ölçülmüş Sonuç
root_squash’ı kapatan bir seçenek var: no_root_squash. Uygulamanın kurulum belgesi istediği ya da bir izin sorunu hızlıca aşılmak istendiği için sahada açıldığına rastlanır.
Şimdiye kadarki bütün ölçümler root_squash açıkken, yani sunucu kendini korurken yapıldı. Kapatınca neyin değiştiğini görmek için ayrı bir export açtım ve testleri orada yaptım; çalışan paylaşımı bozmak istemedim.
Sunucuya bir “gizli” dosya koydum: sahibi muhasebe, izni 600. Bu izin şunu söyler: sahibi okur ve yazar, başka hiç kimse açamaz. Sonra istemcinin root’uyla üç şey denedim.
1. Başkasına kapatılmış dosyayı okudu.
sudo cat /mnt/tehlikeli/mudur.txtgizli mudur dosyasiDosyanın sahibi değilim, izin de kimseye açık değil. root_squash açık olsaydı bu istek nobody’ye düşürülür ve reddedilirdi.
2. Dosyanın sahibi oldu.
sudo chown root:root /mnt/tehlikeli/mudur.txtKomut hiç itiraz etmeden çalıştı. Korumalı export’ta aynı komutun Operation not permitted aldığını bir önceki testte görmüştük.
3. Sunucuya setuid bitli bir dosya bıraktı.
sudo cp /bin/bash /mnt/tehlikeli/kabuk
sudo chmod 4755 /mnt/tehlikeli/kabukSunucudaki sonuç:
-rwsr-xr-x 1 root root 1446024 Aug 13 16:09 kabukÜçüncüsü diğer ikisinden ciddi ve sebebi tek bir harfte saklı. Soldaki izin dizisinde normalde x olması gereken yerde s duruyor. Bu harfin adı setuid ve tek bir şey söyler: bu dosya çalıştırıldığında, çalıştıran kişinin yetkisiyle değil, dosyanın sahibinin yetkisiyle çalışır. Buradaki sahip root.
Buradan bir yetki yükseltme zinciri çıkıyor. Adım adım gidelim; her adımda dikkat edilecek şey, o an kimin elinde ne yetki olduğu:
- İstemci makinede yönetici olan biri var. Bu kişi yalnız kendi makinesinin
root’u. Sunucuda hiçbir yetkisi yok, orada hesabı bile olmayabilir. Amano_root_squashyüzünden sunucu onunrootbeyanını kabul ediyor, yani paylaşımarootolarak yazabiliyor. - Dosyayı bırakıyor. Kopyaladığı şey sıradan bir kabuk programı. Sahibini
rootyapıp setuid bitini koyabiliyor, çünkü birinci adımda sunucu onu zatenrootsaydı. - Dosya sunucunun diskinde kalıyor. İstemci makine kapansa, kablosu çekilse, o kişi ağdan tamamen çıksa bile dosya orada durur. Bırakılan şey geçici bir erişim değil, kalıcı bir araç.
- Sunucuda sıradan bir kullanıcı o dosyayı çalıştırıyor. Bu kişinin hiçbir özel yetkisi yok, normal bir hesap. Ama setuid biti yüzünden program, onu çalıştıranın değil sahibinin yetkisiyle başlıyor. Sahibi
root. - O sıradan kullanıcı artık
rootolarak iş yapıyor. Yetki yükseltme tam olarak burada gerçekleşiyor: normal bir hesapla giren biri, tek bir dosyayı çalıştırarak sunucunun tam yetkisine çıkıyor.
Zincirin en rahatsız edici tarafı şu: baştaki kişiyle sondaki kişinin aynı olması gerekmiyor. Dosyayı bırakan çoktan gitmiş olabilir, çalıştıran ise olan bitenden habersiz biri olabilir. Kaybedilen şey bir dosyaya erişim değil, sunucunun kapısının kendisi. Vestiyer benzetmesinde root_squash, “ben buranın müdürüyüm” iddiasını kapıda geçersiz kılan kuraldı; no_root_squash o kuralı kaldırır ve dışarıdan gelen kişi gerçekten müdür sayılır. Bıraktığı setuid dosyanın karşılığı da şu: arka odaya kendi görevli önlüğünü asıp gider. O önlüğü giyen herkes, o günden sonra görevli muamelesi görür.
Ölçümü aldıktan sonra bu dosyayı sildim ve export’u kaldırdım: laboratuvarda bile setuid bitli bir kabuk ortalıkta bırakılmaz.
all_squash: Herkesi Tek Kişiye İndirmek
Üçüncü bir seçenek daha var ve amacı farklı: all_squash yalnız root’u değil gelen bütün numaraları tek bir kullanıcıya indirir. Hangi kullanıcı olacağı anonuid ve anongid ile söylenir.
Bunu da ölçtüm. Export satırı şu:
/srv/ortak 192.168.1.0/24(rw,sync,no_subtree_check,all_squash,anonuid=1500,anongid=1500)Ardından istemciden üç ayrı kimlikle yazdım: depo (1500), muhasebe (1600) ve root (0). Sunucudaki sonuç:
-rw-rw-r-- 1 muhasebe muhasebe 0 depo.txt
-rw-rw-r-- 1 muhasebe muhasebe 0 muhasebe.txt
-rw-r--r-- 1 muhasebe muhasebe 0 root.txtÜç farklı kimlik, tek sahip. Bu bir güvenlik önlemi değil, bir basitleştirmedir: kimin ne yaptığını ayırt etmekten vazgeçip herkesi aynı kişi saymak. Yeri, kimlik ayrımının gerçekten gereksiz olduğu paylaşımlardır: ortak bir medya dizini, bir yedek hedefi, salt okunur dağıtılan bir kurulum deposu. Kişiye göre yetki verilmesi gereken bir paylaşımda kullanılırsa denetim izini tamamen kaybedersiniz, çünkü kayıtlarda herkes aynı kullanıcı olarak görünür.
Üç seçeneğin yan yana hâli şöyle:
| Seçenek | Gelen root ne olur | Gelen normal kullanıcı ne olur |
|---|---|---|
root_squash (varsayılan) | nobody’ye düşer | Numarası neyse o kalır |
no_root_squash | Sunucuda da root olur | Numarası neyse o kalır |
all_squash | Anonim kullanıcıya düşer | Anonim kullanıcıya düşer |
NFS Sürümleri: v3, v4 ve sec=krb5 ile Kimliğin İsme Dönmesi
Buraya kadar anlatılan her şey sec=sys, yani AUTH_SYS kurulumunun kurallarıydı. Şimdi haklı bir itirazın sırası: NFS’in yeni sürümü var, o da mı böyle çalışıyor?
Bugün sahada iki sürüm görürsünüz ve aralarındaki fark sadece hız değildir:
- NFSv3 eski ve hâlâ yaygın olan sürümdür. Yardımcı servislere ihtiyaç duyar: bağlantı kurulurken
rpcbind(port111) üzerinden hangi servisin hangi portta olduğu sorulur, kilitleme ayrı bir servisle yürür. Firewall arkasında yapılandırması bu yüzden sinir bozucudur, çünkü açılacak port tek değildir. - NFSv4 işi tek porta topladı:
2049. Yardımcı servisler protokolün içine alındı, kilitleme dahil edildi, birden çok işlem tek istekte gönderilebilir hale geldi. YakalamamdakiProcedure: COMPOUNDsatırı bunun izidir. Ayrıca bir güvenlik çerçevesi tanımlandı ve kimliğin sayı yerinekullanici@alanbiçiminde bir isim olarak taşınması öngörüldü. Sürümün tam tanımı RFC 8881 belgesinde duruyor.
Son cümle umut verici görünüyor ve tam da bu yüzden ölçtüm. Lab bağlantım vers=4.2 ile kurulmuştu, yani en güncel sürüm. Ağda sahiplik alanı isim olarak mı gidiyor? Yakaladığım trafikten sahiplik alanlarını çektim:
tshark -r nfs-authsys.pcap -T fields -e nfs.fattr4_owner -e nfs.fattr4_owner_group1500 1500Hayır. NFSv4.2 ile bağlıyım ve sahiplik alanı yine 1500 taşıyor, muhasebe@ad.sistemkusu.com değil. Sebebi istemcinin kendi ayarında yazıyordu:
cat /sys/module/nfs/parameters/nfs4_disable_idmappingYİsim çevirisi, AUTH_SYS ile çalışırken varsayılan olarak kapalı. Mantığı da tutarlı: kimlik zaten sayı olarak doğrulanıyorsa, onu isme çevirip geri çevirmek yalnız iş yükü ve yeni hata kaynağı olurdu.
O halde isim ne zaman gerçekten devreye giriyor? Kimlik doğrulaması sayıdan çıkıp kanıta bağlandığında. Bunun yolu mount seçeneğini sec=krb5 yapmaktır: istemci artık “ben 1500 numaralıyım” demez, Kerberos’tan aldığı bir bileti sunar ve sunucu o bileti doğrular. Boş duran Verifier alanı işte o zaman dolar. Vestiyer benzetmesinde bu, fişin üstüne taklit edilemeyen bir mühür basmaktır: numara hâlâ oradadır, ama artık numarayı yazmak yetmez.
Bilet mantığının nasıl işlediğini ve doğrulamanın hangi adımlardan geçtiğini Kerberos nedir rehberimizde ele alıyoruz.
NFS ve SMB Yan Yana: Aynı Klasöre İki Kapı
Şimdi ebeveyn makalemizin bıraktığı asıl soruya gelebiliriz: aynı NAS cihazı aynı klasörü Windows istemcilere SMB, Linux sunuculara NFS ile sunabilir. Peki iki protokol aynı dosyaya baktığında yetki nasıl hesaplanır?
Cevap şudur ve sorunun tamamı buradadır: ikisi kullanıcıyı farklı şeyle tanır.
| SMB | NFS (sec=sys) | |
|---|---|---|
| Kullanıcıyı tanıyan şey | Active Directory kimliği (SID) | Sayısal numara (UID / GID) |
| Kimliği doğrulayan | Kimlik doğrulama protokolü | Doğrulama yok, istemci beyanı |
| İzin modeli | ACL, ayrıntılı hak listesi | Sahip / grup / diğerleri |
SMB tarafında görevli adınızı bilir ve üye defterine bakar. NFS tarafında görevli yalnız numaranızı bilir. Aynı paltoyu iki farklı sisteme göre teslim etmeye çalışan bir vestiyer düşünün: bir kapıda kimlik soruluyor, diğerinde numara.
Bu yüzden çift protokollü paylaşımda kritik ayar, cihazın kimlik eşleme yapılandırmasıdır: NAS cihazı hangi Active Directory kullanıcısının hangi sayısal numaraya karşılık geleceğini bilmelidir. Bu eşleme kurulmazsa belirti tipik olarak şudur: Windows tarafından açılan dosya Linux tarafında sahipsiz ya da nobody görünür, Linux tarafından yazılan dosyaya Windows kullanıcısı erişemez, ve her iki tarafın yöneticisi de kendi tarafında izinlerin doğru olduğunu görür.
SMB’nin kendi tarafındaki yetki katmanlarını, paylaşım izni ile NTFS izninin nasıl kesiştiğini ve domain ortamındaki rolünü SMB nedir rehberimizde ele alıyoruz.
Çift Protokol Açılmalı mı?
Açılabilir olması açılması gerektiği anlamına gelmiyor. Karar için işe yarayan ölçüt, aynı dosyaya iki taraftan da yazılıp yazılmayacağıdır:
- İki taraf da yazacaksa kimlik eşlemesi kurulmadan açmayın. Kurulmadığında ortaya çıkan izin çakışmaları, dosyalar zaten oluştuktan sonra düzeltilir ve bu geriye dönük bir temizlik işidir.
- Bir taraf yazıp diğeri yalnız okuyacaksa iş belirgin şekilde kolaylaşır. Okuyan tarafa salt okunur export vermek çakışma ihtimalinin çoğunu ortadan kaldırır.
- İki tarafın işi birbirinden bağımsızsa en sağlam yol aynı klasörü paylaştırmamaktır. İki ayrı paylaşım açmak, tek paylaşımı iki kimlik modeliyle uzlaştırmaya çalışmaktan hem ucuz hem kararlıdır.
Storage kutusunun kendisini seçerken sorulan sorular ise ayrı bir konudur: dosya düzeyinde mi blok düzeyinde mi erişileceği, kaç disk yuvası gerektiği, yedekliliğin nasıl kurulacağı. Bu kararı BT sistem yönetimi sayfamızın storage sistemleri bölümünde ele alıyoruz; bu makale kutunun içindeki protokolü anlatıyor, kutunun seçimini değil.
Sanallaştırmada NFS Datastore
NFS’i en çok göreceğiniz ikinci yer sanallaştırma ortamlarıdır. Hypervisor, sanal makinelerin disk dosyalarını bir storage alanında tutar ve bu alanı NFS üzerinden bağlamak yaygın bir tercihtir: kurulumu blok düzeyinde bir storage ağı kurmaktan belirgin şekilde basittir, dosyalar dosya olarak durduğu için yedekleme ve taşıma tarafında elinizi rahatlatır.
Buraya kadar anlattığımız kimlik modeli burada beklenmedik bir yerden geri geliyor. Hypervisor, sanal disk dosyalarına root olarak erişir. Yani root_squash tam olarak burada devreye girer ve datastore’un çalışmasını engeller. Bu yüzden sanallaştırma için verilen export’larda no_root_squash sık karşılaşılan bir yapılandırmadır.
Bu, o seçeneğin tehlikeli olmaktan çıktığı anlamına gelmiyor; koşulunun sağlandığı anlamına geliyor. Hatırlayın: no_root_squash’ın meşru olmasının şartı, istemcinin sunucu kadar güvenilir olmasıydı. Hypervisor tam olarak öyle bir makinedir ve storage trafiği ayrı bir ağ segmentinde tutulur. Yani buradaki güvenlik, export seçeneğinden değil, o segmente kimin girebildiğinden gelir.
Hypervisor’ün storage’ı nasıl kullandığını, datastore kavramını ve boyutlandırma kararlarını sanallaştırma ve hypervisor rehberimizde ele alıyoruz. Paylaşımlı storage’ıyla birlikte bir sanallaştırma altyapısını kurduğumuz iş için sanallaştırma kurulum hizmetimize bakabilirsiniz.
NFS Teşhisi: Bağlanıyor Ama Yazamıyor
NFS arızalarının çoğu üç katmandan birindedir ve teşhis alttan üste doğru yapılır. Üstteki katmana bakmadan önce alttakinin sağlam olduğundan emin olun, yoksa izinlerle uğraşırken sorunun ağda olduğunu saatler sonra fark edersiniz.
1. Ağ katmanı: sunucuya ulaşılıyor mu?
showmount -e 192.168.1.15Bu komut cevap veriyorsa hem ağ hem NFS servisi ayaktadır. Cevap vermiyorsa sorun izinlerde değil: servis kapalı, 2049 numaralı port kapalı ya da isim çözümlemesi yanlış makineye gidiyordur. NFSv3 kullanıyorsanız 111 numaralı portun da açık olması gerekir.
2. Export katmanı: bu makineye izin verilmiş mi?
showmount çıktısı export’un hangi ağa açıldığını yazar. İstemcinizin adresi o aralığın dışındaysa mount reddedilir. En sık yapılan hata, export satırında tek bir adres tanımlıyken istemcinin başka bir arayüzden çıkması, yani sunucuya beklenenden farklı bir kaynak adresle görünmesidir.
Sunucu tarafında gerçekte neyin yürürlükte olduğunu her zaman exportfs -v ile teyit edin. Dosyayı düzenleyip exportfs -ra çalıştırmayı unutmak, “değiştirdim ama olmadı” vakalarının klasik sebebidir.
3. Kimlik katmanı: izin görünüyor ama yazamıyor.
Bu, NFS’e en özgü arıza ve bu makalenin en başından beri anlatılan şeyin sahadaki hâli. Belirti kafa karıştırıcıdır: dosyayı görürsünüz, sahibi olarak tanıdık bir isim yazar, ama yazmaya çalıştığınızda reddedilirsiniz.
Bakılacak yer izin listesi değil, numaradır:
id
ls -ln /mnt/paylasimls -l yerine ls -ln kullanmak burada bir tercih değil, teşhisin kendisidir. ls -l size kendi makinenizin çevirisini gösterir ve tam da yanıltan şey odur. ls -ln çevrilmemiş sayıyı verir; kendi id çıktınızdaki sayıyla karşılaştırdığınızda uyuşmuyorsa cevabı bulmuşsunuzdur.
Belirtiye göre nereye bakılacağı şöyle özetlenebilir:
| Belirti | Muhtemel sebep |
|---|---|
Dosya sahibi nobody / 65534 görünüyor | root olarak eriştiniz ve root_squash devrede |
| Sahip adı tanıdık ama yazamıyorsunuz | Numaralar uyuşmuyor, isim yerel çeviriden geliyor |
| Yazdığınız dosya başkasının adına geçiyor | Sizin numaranız sunucuda başka bir kullanıcıya ait |
| Herkes aynı kullanıcı görünüyor | Export’ta all_squash açık |
| Mount ediliyor ama hiçbir şey yazılamıyor | Export salt okunur (ro) tanımlanmış |
Son bir uyarı: sunucu tarafında bir kullanıcının numarasını değiştirmek, o kullanıcıya ait dosyaların sahipliğini değiştirmez. Dosyalar eski numarayı taşımaya devam eder ve o numarayı sonradan kim devralırsa dosyalar onun olur. Kullanıcı numarası değiştirmek isteyen biri, aynı işlemde dosya sahipliklerini de taramak zorundadır.
Sonuç: NFS Kullanıcıyı Adıyla Değil Numarasıyla Tanır
NFS’i doğru kullanmanın yolu, onu güvensiz bir protokol saymaktan değil, neye güvendiğini bilmekten geçiyor. Klasik kurulumda sunucu, istemcinin bildirdiği kullanıcı numarasını doğrulamadan kabul eder ve bunu bir açık olarak değil, tasarım tercihi olarak yapar: güvenilen bir ağda, yönetimi tek elde olan makineler arasında bu model hızlı ve sürtünmesiz çalışır.
Sorunlar bu varsayımın sessizce bozulduğu yerde başlıyor. Numaralar makine başına dağıtıldığı için iki sunucu farklı sıralarla kullanıcı açtığında aynı sayı iki ayrı kişiyi işaret etmeye başlar; kimse yanlış bir şey yapmamıştır ve hiçbir uyarı çıkmaz. Aynı klasör bir de SMB ile paylaştırıldığında, kullanıcıyı adıyla tanıyan bir model ile numarasıyla tanıyan bir model aynı dosyanın üstünde buluşur.
Vestiyer görevlisi numaraya bakar, paltoyu verir ve doğru kişiye verdiğini varsayar. Bu varsayımın geçerli olduğu yerde sistem kusursuz işler. Geçerli olmadığı yerde ise ortaya çıkan belirti neredeyse hiçbir zaman “kimlik” gibi görünmez; “izin var ama yazamıyorum” gibi görünür ve saatler o yanlış yerde harcanır.
NFS Hakkında Sık Sorulan Sorular
BT Danışmanı | Ağ, Sistem ve Güvenlik Yönetimi
İlker Pehlivan, karmaşık BT altyapılarını ölçeklenebilir ve güvenli sistemlere dönüştürür. Buradaki rehberleri kendi laboratuvarında kurup ölçerek yazar.
LinkedInBenzer Makaleler
Kurumsal Ağ Protokolleri: DHCP'den LDAP'a
Bir şirketi ayakta tutan ağ protokolleri: DHCP, DNS, Kerberos, LDAP, SMB, RDP, SSH ve BGP. Hangisi ne yapar, nasıl zincirlenir, bozulduğunda nereden anlaşılır.
PPPoE Nedir? Modem Köprü Modu ve Çift NAT
PPPoE nedir, nasıl çalışır? Keşif ve oturum aşamaları paket paket, MTU neden 1492, hat kopunca ne olur, modem köprü modu ve çift NAT farkı; lab ölçümleriyle.
Yönlendirme Tablosu Nedir? Statik ve Varsayılan Rota
Yönlendirme tablosu nedir: bağlı, statik ve varsayılan rota, en uzun önek eşleşmesi, metrik ve yedek hat, dönüş rotası. Linux lab'ında ölçülmüş örneklerle.
Ethernet Nedir? Çerçeve Yapısı, Hızlar ve Kablo Çiftleri
Ethernet nedir, nasıl çalışır? İki makine arasında yakaladığım çerçevelerle alanları, 64 baytlık dolguyu, FCS'i, hız ailesini ve kablonun dört çiftini anlattım.
LACP Nedir? Link Aggregation ve Port Channel Farkı
LACP nedir, nasıl çalışır? İki switch arasında ölçtüm: kablo kopunca yarım saniye, tek uç susunca 3 ya da 82 saniye. Port channel ve statik bağ farkı.
LLDP Nedir? Komşu Keşfi, LLDP-MED ve CDP Farkı
LLDP nedir, nasıl çalışır? Lab switch'imde ölçtüm: 30 saniyede bir komşuya adını ve port açıklamasını anlattı, 52 portta açık geldi. LLDP-MED ve CDP farkı.
Kurumsal Network Kurulumu altındaki diğer 114 makale
- Spanning Tree (STP) Nedir? RSTP, BPDU ve Ağ Döngüsü
- TACACS+ Nedir? RADIUS Farkı ve Linux'ta TACACS+ Sunucusu
- VPN Nedir? Site-to-Site, Uzaktan Erişim ve IPsec
- VRRP Nedir? Sanal IP ile Varsayılan Ağ Geçidini Yedeklemek
- IMAP Nedir, POP3 Nedir? Aralarındaki Fark
- SMTP Nedir? Mail Nasıl Gönderilir ve Neden Gitmez?
- TLS Nedir? SSL ile Farkı, Sürüm Pazarlığı ve Ölçümü
- FTP, FTPS ve SFTP Nedir? Aralarındaki Fark
- Syslog Nedir? Facility, Severity ve 514 Portu
- TFTP Nedir? Port 69, Switch Yedeği ve PXE
- NAT Nedir? Ağ Adresi Çevirisi Nasıl Çalışır?
- RDP Nedir? Uzak Masaüstü Protokolü ve Güvenliği
- SNMP Nedir? MIB, OID ve Trap Mekanizması
- ICMP Nedir? Ping, TTL ve Tracert Komutu
- VLAN Nedir? 802.1Q Etiketi, Access ve Trunk Farkı
- ARP Nedir? MAC Adresi, ARP Tablosu ve Spoofing
- IP Adresi Nedir? Subnet Maskesi, CIDR ve IPv6
- Port Nedir? TCP ve UDP Farkı, Bağlantı Arızası Tespiti
- SSH Nedir? Şifreli Yönetim ve Anahtar Tabanlı Giriş
- Telnet Nedir? Şifresiz Yönetim Protokolü ve Riskleri
- HTTP ve HTTPS Nedir? Aradaki Fark ve Şifreleme
- RADIUS Sunucusu Nedir? 802.1X ile Ağ Kimlik Doğrulama
- LDAP ve LDAPS Nedir? Dizin Sorgulama ve 636 Portu
- SMB Nedir? Port 445, Dosya Paylaşımı ve SYSVOL
- Kerberos Nedir? Kimlik Doğrulama ve Bilet Mantığı
- DNS Nedir, Nasıl Çalışır? Kayıt Türleri ve TTL
- DHCP Nedir? Ağda IP Adresi Nasıl Dağıtılır?
- NTP Nedir? Kurumsal Ağda Saat Senkronizasyonu
- Alan Adı Güvenliği: Transfer Kilidi, Yenileme ve WHOIS
- DNS Önbelleği Temizleme: flushdns, Chrome ve DNS Sunucusu
- Mail Başlığı Nasıl Okunur? From, Return-Path ve Received
- SPF, DKIM ve DMARC Nedir? Mail Kimliği Nasıl Doğrulanır?
- FortiGate Firewall Active Directory Entegrasyonu: LDAP
- FortiGate Firewall Admin Hesabı: Yetki Profilleri
- FortiGate Firewall Antivirüs Profili: Flow ve Proxy Farkı
- FortiGate Firewall Bant Genişliği Sınırlama: Traffic Shaping
- FortiGate Firewall BGP Yapılandırması: Komşuluk ve Duyuru
- FortiGate Firewall Firmware Güncelleme: Yükseltme Yolu
- FortiGate Firewall HA Yapılandırması: FGCP ile İki Cihaz
- FortiGate Firewall IPS Yapılandırması: Sensör ve İmzalar
- FortiGate Firewall IPsec VPN: Şubeler Arası Tünel
- FortiGate Firewall İleri Seviye Rehberi: VPN, SD-WAN ve BGP
- FortiGate Firewall RADIUS: Merkezi Yönetici Girişi
- FortiGate Firewall SD-WAN: Yedek Hat ve Performans SLA
- FortiGate Firewall SSL Inspection: Derin Denetim ve Muafiyet
- FortiGate Firewall Şifre Sıfırlama ve Fabrika Ayarları
- FortiGate Firewall Uygulama Kontrolü: Uygulama Engelleme
- FortiGate Firewall Uzaktan Erişim VPN: IPsec ve FortiClient
- FortiGate Firewall Web Filtre: Kategori ve Güvenli Arama
- FortiGate Firewall Sıkılaştırma: Güvenlik Kontrol Listesi
- FortiGate Firewall Sorun Giderme: Debug Flow ve Sniffer
- FortiGate Firewall Yedek Alma ve Geri Yükleme
- FortiGate Firewall Adres Nesneleri ve Adlandırma Standardı
- FortiGate Firewall DHCP Sunucusu: Kapsam ve Rezervasyon
- FortiGate Firewall DNS Ayarı: Ad Çözümleme ve DNS Sunucusu
- FortiGate Firewall İlk Kurulum: Konsol ve İlk Giriş
- FortiGate Firewall Log Ayarları: Disk, Syslog ve 5651
- FortiGate Firewall NAT Ayarı: IP Pool ve Central NAT
- FortiGate Firewall NTP Ayarı: Saat Dilimi ve Zaman Sunucusu
- FortiGate Firewall Policy Yapılandırması: Kural Seti
- FortiGate Firewall SNMP Ayarı: İzleme Sistemine Bağlamak
- FortiGate Firewall Statik Rota Yapılandırması
- FortiGate Firewall VLAN Yapılandırması: Alt Arayüz ve Trunk
- FortiGate Firewall WAN Ayarı: Statik IP, DHCP ve PPPoE
- FortiGate Firewall Zone ve DMZ Yapılandırması
- Firewall Nedir? Güvenlik Duvarı Nasıl Çalışır?
- FortiGate Firewall Nasıl Kullanılır? Günlük Yönetim Rehberi
- FortiGate Firewall Yapılandırma Rehberi: Kontrol Listesi
- FortiGate Firewall Yönetim Erişimi: HTTPS ve Trusted Host
- Full Duplex ve Half Duplex Nedir? Tam ve Yarım Çift Yön
- Switch 802.1X Yapılandırması: MAB ve İzleme Kipi
- Switch DHCP Snooping Yapılandırması: Trust ve Hız Sınırı
- Switch Port Teşhisi: Duplex Uyuşmazlığı ve Kablo Testi
- Layer 3 Switch Nedir? SVI ve VLAN'lar Arası Yönlendirme
- Switch LACP Yapılandırması: Port Channel Nasıl Kurulur?
- Switch LLDP Yapılandırması: Port Tespiti ve Güvenlik
- Switch SNMP Yapılandırması: SNMPv3, Trap ve Inform
- Switch Syslog Ayarı: Log Sunucusu, Seviye ve Komut Kaydı
- Switch VLAN Yapılandırması: VLAN Oluşturma ve Port Atama
- Switch'te VLAN'lar Arası Yönlendirme: SVI Yapılandırması
- Ağ Segmentasyonu Nedir? VLAN Planı Nasıl Yapılır?
- BPDU Guard Nedir? PortFast, Root Guard ve Storm Control
- Switch ACL Yapılandırması: Yönetim Erişimini Daraltmak
- Switch Nedir, Ne İşe Yarar? Çeşitleri ve Router Farkı
- Switch Sıkılaştırma: Yönetim, Kontrol ve Veri Düzlemi
- Switch Yapılandırma Yedeği: Elle ve Otomatik Yedekleme
- Switch RADIUS Yapılandırması: NPS ile Yönetici Girişi
- Switch DNS Server Ayarı: Name Server ve Alan Adı
- Switch SSH Yapılandırması: Telnet ve HTTP'yi Kapatmak
- Management VLAN Nedir? Yönetim Ağını Kullanıcıdan Ayırmak
- Switch TACACS+ Yapılandırması: Giriş, Komut Yetkisi ve Kayıt
- Switch NTP Server Ayarı: Saati İç NTP Sunucusuna Bağlamak
- Switch Yapılandırma Rehberi: Adım Adım Kontrol Listesi
- Switch'e Konsoldan Bağlanmak: Konsol Kablosu ve PuTTY
- Switch'te Yerel Yönetici Hesabı: Kullanıcı, Yetki ve Parola
- Yönetilebilir Switch Ayarları: Ad, IP ve VLAN Planı
- Bulut Santral: Özellik Seçimi, Devreye Alma ve Geçiş
- IP Santral Kurulumu: Dahili Planı, Çağrı Akışı ve Ağ
- Kartlı Geçiş Sistemi Kurulumu: PDKS, Turnike ve Dizin
- Kurumsal İnternet Hattı: Tarife, Statik IP ve Yedek Hat
- SIP Trunk ve İş Telefon Hattı: Numara Taşıma
- IP Kamera Sistemi Kurulumu: Ağ, Kayıt ve KVKK
- Ağ Erişim Kontrolü: 802.1X, NAC ve Çok Faktörlü Doğrulama
- Fiber Optik Kablolama: Çekim, Sonlandırma ve Ölçüm Raporu
- Sistem Odası Kurulumu: Kabinet Düzeni, Güç ve Soğutma
- Misafir Wi-Fi ve Hotspot Kurulumu: Captive Portal ve 5651
- Network Danışmanlığı: Ağ Analizi, Optimizasyon ve QoS
- Şubeler Arası Bağlantı: SD-WAN, Metro Ethernet, Yedekli Hat
- Kurumsal Wi-Fi Kurulumu: Isı Haritası, Access Point ve Test
- Yapısal Kablolama Hizmeti: Keşif, Montaj ve Test Raporu
- Yapısal Kablolama ve Zayıf Akım: Kurumsal Bina Altyapısı
- Kurumsal Firewall Kurulumu, Yönetimi ve Danışmanlığı
- Kurumsal Kablosuz Ağ Tasarımı: Survey'den Kuruluma
- Switch Kurulumu, VLAN ve Yönlendirici Yapılandırma Hizmeti
Ücretsiz Değerlendirme
Aynı klasörü hem SMB hem NFS ile paylaşıyorsanız izinler sessizce çakışır. Bakalım mı?
İçindekiler
Ana Hizmet
Kurumsal Network Kurulumu