# Red Hat Enterprise Linux Sistem Yönetimi

> Red Hat Enterprise Linux sistem yönetimini kabuk, dosya sistemi, kullanıcılar, SELinux, systemd, ağ, güvenlik duvarı, DNF, LVM, depolama, sanallaştırma, Podman, otomasyon, image mode, sorun giderme ve performans üzerinden temelden ileri düzeye ele alan güncel teknik ders notu.

- Author: Muhammet Ali Köker
- Language: tr
- Canonical: https://alikoker.com.tr/red-hat-enterprise-linux-sistem-yonetimi
- Translation: https://alikoker.com.tr/en/red-hat-enterprise-linux-system-administration
- Published: 2016-01-01T00:00:00+03:00
- Modified: 2026-08-22T05:21:00+03:00
- Verified: 2026-08-22T05:21:00+03:00
- Type: article

Bu not, 2016 tarihli RH124 ve RH254 sistem yönetimi materyallerindeki kalıcı kavramları korur; artık geçerli olmayan araçları ve çalışma biçimlerini ise 2026 RHEL 10.2 ortamına göre günceller. Amaç komut ezberlemek değil, bir Linux sisteminin nasıl düşündüğünü anlamaktır.

2026 için temel yaklaşım şudur:

```text
önce durumu gör
sonra nedeni bul
en küçük değişikliği yap
sonucu doğrula
değişikliği kalıcılaştır
```

RHEL yönetiminde en çok hata, bir komutun yanlış bilinmesinden değil, geçici ve kalıcı durumun, işletim sistemi ile uygulamanın, dosya izni ile SELinux politikasının veya ağ profili ile çalışan ağ durumunun birbirine karıştırılmasından doğar.

## 1. RHEL 10.2 ile Sistem Yönetimi

Red Hat Enterprise Linux uzun ömürlü, desteklenen ve değişimi kontrollü bir Linux dağıtımıdır. 2026 ortasında güncel ana sürüm RHEL 10, güncel küçük sürüm ise RHEL 10.2'dir.

2016'daki RHEL 7 yaklaşımının önemli bir bölümü halen geçerlidir:

- Bash ve GNU temel araçları
- kullanıcı ve grup modeli
- POSIX dosya izinleri
- systemd
- journal ve syslog
- SSH
- RPM
- LVM
- XFS
- SELinux
- firewalld
- NetworkManager

Ancak bazı alışkanlıklar artık tarihsel bilgi olarak görülmelidir.

```text
2016 yaklaşımı                    2026 yaklaşımı
------------------------------   -----------------------------------------
yum                              dnf
ifcfg dosyaları                  NetworkManager keyfile profilleri
network-scripts                  NetworkManager
network team / teamd             bonding
iptables merkezli yönetim        firewalld veya nftables
Docker merkezli anlatım          Podman, Buildah, Skopeo
elle tek tek sunucu ayarı        RHEL System Roles / Ansible
klasik kurulum tek seçenek       klasik paket modu + image mode
```

RHEL 10'da eski `ifcfg` biçimi desteklenmez. Ağ profilleri `/etc/NetworkManager/system-connections/` altında keyfile biçiminde tutulur. `teamd` kaldırılmıştır; link birleştirme gereken yeni sistemlerde bonding kullanılır. `dhclient` da kaldırılmıştır; NetworkManager kendi DHCP istemcisini kullanır.

Bu değişiklikler komut bilgisinden daha önemli bir mesaj verir: sistem yöneticisi dosya ezberlememeli, işletim sisteminin güncel yönetim katmanını bilmelidir.

## 2. Kabuk ve Komut Satırı

RHEL'de varsayılan yönetim ortamı Bash'tir.

Bir komut satırının temel yapısı:

```text
komut seçenek argüman
```

Örnek:

```bash
ls -lah /var/log
```

Burada:

```text
ls          komut
-lah        seçenekler
/var/log    argüman
```

Normal kullanıcı istemi genellikle `$`, root istemi `#` ile biter. `#` yalnız görsel bir ayrım değildir; yanlış komutun etkisi bütün sisteme yayılabilir.

### Yardım sistemi

Önce yerel belgeye bakmak çoğu zaman web aramasından daha hızlıdır:

```bash
man systemctl
man sshd_config
man 5 fstab
command --help
```

Man bölümleri önemlidir:

```text
1   kullanıcı komutları
5   dosya biçimleri ve yapılandırmalar
8   yönetim komutları
```

Örneğin:

```bash
man 5 sshd_config
man 8 sshd
```

aynı konunun farklı katmanlarını açıklar.

Bir komutun nereden geldiğini görmek için:

```bash
type -a ssh
command -v ssh
rpm -qf "$(command -v ssh)"
```

### Tamamlama ve geçmiş

Tab tamamlama yalnız hız için değil, yazım hatasını azaltmak için kullanılır.

```text
Tab         tamamla
Ctrl+r      geçmişte ara
Ctrl+a      satır başı
Ctrl+e      satır sonu
Ctrl+u      imlecin solunu sil
Ctrl+k      imlecin sağını sil
```

Geçmiş:

```bash
history
```

Üretim sistemlerinde parola, token veya gizli anahtar içeren komutların shell geçmişine düşmemesi gerektiği unutulmamalıdır.

### Boru ve yönlendirme

Standart akışlar:

```text
0   stdin
1   stdout
2   stderr
```

Örnekler:

```bash
command > output.txt
command >> output.txt
command 2> error.txt
command > output.txt 2>&1
```

Boru, bir komutun çıktısını diğerinin girdisine verir:

```bash
journalctl -u sshd | grep Failed
```

Sık kullanılan metin araçları:

```bash
grep
cut
sort
uniq
tr
sed
awk
head
tail
wc
less
```

Zen ilkesi: tek bir `grep` yeterliyse karmaşık `awk` yazma. Birden çok alan işlenecekse `awk` kullan.

## 3. Dosya Sistemi ve Dosyalar

Linux tek bir dizin ağacı sunar. Diskler ve uzak dosya sistemleri bu ağacın belirli noktalarına bağlanır.

Temel dizinler:

```text
/           kök
/etc        sistem yapılandırması
/var        değişken veriler, loglar, spool
/home       kullanıcı ev dizinleri
/root       root ev dizini
/usr        uygulamalar, kütüphaneler, paylaşılan veri
/opt        ek uygulamalar
/tmp        geçici veri
/run        çalışma zamanı verisi
/dev        aygıt düğümleri
/proc       süreç ve çekirdek görünümü
/sys        aygıt ve çekirdek nesneleri
/boot       çekirdek ve önyükleme verileri
```

`/proc` ve `/sys` normal disk dizinleri gibi görünür ancak çekirdek tarafından sunulan sanal dosya sistemleridir.

### Yol kavramı

Mutlak yol:

```text
/etc/ssh/sshd_config
```

Göreli yol:

```text
../logs/app.log
```

Özel yollar:

```text
.       bulunduğun dizin
..      üst dizin
~       ev dizini
-       önceki çalışma dizini, cd ile
```

### Temel dosya işlemleri

```bash
pwd
ls -lah
cd /etc
mkdir -p /srv/app/data
cp source target
cp -a source/ backup/
mv old new
rm file
rmdir empty-dir
```

`rm -rf` yönetim kolaylığı değil, son çaredir. Özellikle root olarak çalışırken komutun hedefi Enter'a basmadan önce tekrar okunmalıdır.

### Dosya türünü tanıma

Dosya uzantısı Linux için zorunlu değildir:

```bash
file filename
stat filename
```

`stat` inode, boyut, sahiplik ve zaman bilgilerini gösterir.

### Arama

Dosya adına göre:

```bash
find /etc -name '*.conf'
```

Boyuta göre:

```bash
find /var -type f -size +1G
```

Değişim zamanına göre:

```bash
find /var/log -type f -mtime -1
```

İçeriğe göre:

```bash
grep -R "Listen" /etc/httpd
```

Büyük ağaçlarda `find` daha doğru, `locate` daha hızlıdır; `locate` indeksin güncelliğine bağlıdır.

### Bağlantılar

Hard link aynı inode'a ikinci addır:

```bash
ln file hardlink
```

Sembolik link başka bir yolu işaret eder:

```bash
ln -s /srv/app/current /opt/app
```

Hard link genellikle dosya sistemi sınırını geçemez ve dizinler için kullanılmaz. Sembolik link kırılabilir ancak dosya sistemleri arasında çalışır.

## 4. Metin Dosyaları ve Yapılandırma

Linux yönetimi büyük ölçüde metin dosyası yönetimidir. Bir değişiklik yapmadan önce:

```bash
cp -a /etc/example.conf /etc/example.conf.bak
```

gibi kör yedek almak yerine değişiklik yönetimi olan ortamlarda Git, Ansible veya merkezi yapılandırma yönetimi tercih edilir. Tek makinede bile farkı görebilmek önemlidir:

```bash
diff -u old.conf new.conf
```

### Düzenleyici

RHEL'de `vi`/`vim` bilgisi kurtarma ortamlarında dahi değerlidir.

En az bilinmesi gerekenler:

```text
i       yazma modu
Esc     komut modu
:w      kaydet
:q      çık
:wq     kaydet ve çık
:q!     kaydetmeden çık
/search metin ara
```

Nano gibi düzenleyiciler kullanılabilir; fakat asgari `vi` bilgisi sistem yöneticisinin ortak paydasıdır.

### Yapılandırma değişikliği kuralı

Bir dosyayı değiştirdikten sonra doğrudan servisi yeniden başlatmak yerine mümkünse önce sözdizimini doğrula.

Örnekler:

```bash
sshd -t
nginx -t
apachectl configtest
```

Sonra:

```bash
systemctl reload service
```

Reload yeterliyse restart yapma. Restart aktif bağlantıları kesebilir.

## 5. Kullanıcılar, Gruplar ve Yetki

Linux kimliği sayısaldır. Kullanıcı adının arkasında UID, grup adının arkasında GID vardır.

Temel dosyalar:

```text
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
```

Kullanıcı görüntüleme:

```bash
id alice
getent passwd alice
getent group developers
```

`getent`, yalnız yerel dosyaları değil SSSD gibi kimlik kaynaklarını da görebildiği için kurumsal sistemlerde doğrudan `/etc/passwd` okumaktan daha anlamlıdır.

### Kullanıcı yönetimi

```bash
useradd alice
passwd alice
usermod -aG wheel alice
userdel alice
```

Kullanıcıyı geçici olarak kilitlemek:

```bash
usermod -L alice
```

Kilidi açmak:

```bash
usermod -U alice
```

Hesap süresi:

```bash
chage -l alice
```

Servis hesaplarının interaktif kabuğa ihtiyacı yoksa:

```text
/usr/sbin/nologin
```

kullanılması uygundur.

### Root yerine sudo

Günlük yönetimde doğrudan root oturumu açmak yerine ayrıcalığı gerektiği anda yükseltmek daha güvenlidir:

```bash
sudo command
sudo -i
```

Yetki dosyası doğrudan rastgele düzenlenmez:

```bash
visudo
```

Özel kurallar:

```text
/etc/sudoers.d/
```

altında tutulabilir.

En az ayrıcalık ilkesi:

```text
kullanıcıya ihtiyacı olan komutu ver
ihtiyacı olmayan root yetkisini verme
```

## 6. Dosya İzinleri ve ACL

Klasik izin modeli üç özne sınıfına dayanır:

```text
u   owner
g   group
o   others
```

İzinler:

```text
r   read
w   write
x   execute
```

Örnek:

```text
-rwxr-x---
```

sayısal olarak:

```text
750
```

olur.

```bash
chmod 750 script.sh
chown alice:developers file
chgrp developers file
```

### Dizin izinleri

Dizinlerde izinlerin anlamı farklıdır:

```text
r   isimleri listeleme
w   dizin girdisi oluşturma/silme
x   dizine geçme ve içindeki nesneye erişme
```

Bu nedenle yalnız `r` izni olan bir dizin her zaman kullanılabilir değildir.

### umask

Varsayılan izinlerden bit düşürür:

```bash
umask
umask 027
```

Genel düşünce:

```text
dosya başlangıcı    666
dizin başlangıcı    777
```

Umask bu izinleri kısıtlar.

### Özel bitler

```text
setuid
setgid
sticky bit
```

Paylaşılan ekip dizinlerinde setgid yararlıdır:

```bash
chmod 2770 /srv/team
```

Yeni dosyalar dizinin grubunu miras alır.

`/tmp` benzeri ortak yazılabilir dizinlerde sticky bit kullanıcıların birbirinin dosyasını silmesini engeller:

```text
1777
```

### ACL

Klasik owner-group-other modeli yetmiyorsa ACL kullanılır:

```bash
setfacl -m u:alice:rw file
getfacl file
```

Varsayılan ACL:

```bash
setfacl -m d:g:developers:rwx /srv/project
```

ACL, karmaşık sahiplik sorununu çözebilir; fakat ölçüsüz kullanıldığında dosya erişimini okunamaz hale getirir. Önce grup modeli düşünülmelidir.

## 7. SELinux

SELinux dosya izninin alternatifi değil, ikinci bir güvenlik katmanıdır.

Erişim için hem klasik izinlerin hem SELinux politikasının izin vermesi gerekir:

```text
POSIX izinleri izin veriyor
            +
SELinux izin veriyor
            =
erişim mümkün
```

Durum:

```bash
getenforce
sestatus
```

Üretim sistemi için normal mod:

```text
Enforcing
```

Sorun çıktığında SELinux'u kalıcı kapatmak doğru çözüm değildir.

### Bağlam

Dosya bağlamı:

```bash
ls -Z /var/www/html
```

Genel biçim:

```text
user:role:type:level
```

Günlük yönetimde en çok `type` önemlidir.

Bir web sunucusu dosyasının uygun tipi örneğin:

```text
httpd_sys_content_t
```

olabilir.

### Doğru düzeltme

Geçici etiket:

```bash
chcon
```

yerine kalıcı politika tanımlamak için:

```bash
semanage fcontext -a -t httpd_sys_content_t '/srv/web(/.*)?'
restorecon -Rv /srv/web
```

kullanılır.

`restorecon`, politika tarafından beklenen etiketi geri uygular.

### AVC kaydı

Erişim reddi olduğunda:

```bash
ausearch -m AVC,USER_AVC -ts recent
```

ve journal incelenir.

Sorun giderme sırası:

```text
1. klasik izin doğru mu?
2. süreç doğru kullanıcıyla mı çalışıyor?
3. dosya bağlamı doğru mu?
4. port bağlamı doğru mu?
5. gerekli SELinux boolean var mı?
6. gerçekten yeni bir politika mı gerekiyor?
```

`setenforce 0` yalnız tanı için kısa süreli kullanılabilir. "Çalıştı, o halde SELinux'u kapatalım" üretim yaklaşımı değildir.

## 8. Süreçler ve Kaynaklar

Süreç bir çalışan program örneğidir.

Temel komutlar:

```bash
ps aux
ps -ef
pgrep sshd
top
```

Daha ayrıntılı görünüm için:

```bash
systemd-cgtop
```

ve sistem kaynakları:

```bash
free -h
vmstat 1
iostat
sar
```

ilgili paketler kuruluysa kullanılabilir.

### Yük ortalaması

`uptime` veya `top` içindeki load average:

```text
1 dk
5 dk
15 dk
```

ortalamasıdır.

Load yalnız CPU kullanım yüzdesi değildir. Linux'ta çalışabilir durumda bekleyen veya kesilemez I/O beklemesindeki görevleri de yansıtabilir.

Bu nedenle:

```text
yük yüksek -> CPU yetersiz
```

sonucu otomatik olarak çıkarılmaz.

Önce:

```bash
top
vmstat 1
iostat -xz 1
```

ile darboğazın CPU, bellek veya I/O olup olmadığı ayrılır.

### Sinyaller

```bash
kill PID
kill -TERM PID
kill -KILL PID
```

`SIGTERM` sürece temiz kapanma fırsatı verir. `SIGKILL` vermez.

Normal sıra:

```text
TERM
bekle
gerekirse KILL
```

olmalıdır.

### OOM

Bellek tükendiğinde çekirdek OOM killer ile süreç sonlandırabilir.

İlk bakılacak yer:

```bash
journalctl -k
```

Bir sürecin "kendiliğinden" kapanması çoğu zaman uygulama hatası değil kaynak baskısının sonucudur.

## 9. systemd ve Servis Yönetimi

RHEL 7 ile gelen systemd yaklaşımı 2026'da da temel yönetim modelidir.

Servis durumu:

```bash
systemctl status sshd
```

Başlatma ve durdurma:

```bash
systemctl start sshd
systemctl stop sshd
systemctl restart sshd
systemctl reload sshd
```

Boot sırasında etkinleştirme:

```bash
systemctl enable sshd
systemctl disable sshd
```

Tek komutta başlat ve etkinleştir:

```bash
systemctl enable --now sshd
```

Buradaki önemli ayrım:

```text
start      şimdi çalıştır
enable     sonraki bootlarda başlat
```

Bir servis çalışıyor olabilir ama enabled olmayabilir; enabled olabilir ama şu anda çalışmıyor olabilir.

### Unit türleri

Yaygın unit türleri:

```text
.service
.socket
.timer
.mount
.target
.path
```

Unit dosyasını görmek:

```bash
systemctl cat sshd
```

Bağımlılıkları görmek:

```bash
systemctl list-dependencies sshd
```

### Override

Dağıtımın `/usr/lib/systemd/system/` altındaki unit dosyasını doğrudan değiştirme.

Yerel değişiklik:

```bash
systemctl edit service
```

ile drop-in oluşturularak yapılır.

Sonra:

```bash
systemctl daemon-reload
systemctl restart service
```

RHEL 10 yalnız **cgroups v2** modelini kullanır. Süreç gruplama ve kaynak denetimini eski cgroups v1 varsayımlarıyla değil, systemd unit/cgroup hiyerarşisi üzerinden düşünmek gerekir.

### Target

Klasik runlevel yaklaşımının karşılığı target yapısıdır.

Yaygın targetlar:

```text
multi-user.target
graphical.target
rescue.target
emergency.target
```

Varsayılan:

```bash
systemctl get-default
```

Değiştirme:

```bash
systemctl set-default multi-user.target
```

## 10. Zamanlanmış İşler

Tek seferlik işlerde `at`, periyodik işlerde cron halen kullanılabilir.

Ancak systemd timer modern ve görünür bir alternatiftir.

Timerları listele:

```bash
systemctl list-timers
```

Bir timer iki unit ile ifade edilir:

```text
backup.service
backup.timer
```

Örnek timer:

```ini
[Unit]
Description=Günlük yedek

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target
```

`Persistent=true`, sistem kapalıyken kaçırılan çalışmayı açılıştan sonra tetikleyebilir.

Zen yaklaşımı:

```text
basit kullanıcı işi          cron
servis yaşam döngüsüne bağlı iş   systemd timer
merkezi çok sunuculu iş      otomasyon platformu
```

## 11. Loglar ve Zaman

Log analizi, sistem yönetiminin merkezidir.

RHEL'de iki ana mekanizma birlikte bulunur:

```text
systemd-journald
rsyslog
```

Journal:

```bash
journalctl
```

Servis:

```bash
journalctl -u sshd
```

Son boot:

```bash
journalctl -b
```

Önceki boot:

```bash
journalctl -b -1
```

Çekirdek:

```bash
journalctl -k
```

Zaman aralığı:

```bash
journalctl --since "2026-08-20 10:00" --until "2026-08-20 11:00"
```

Canlı takip:

```bash
journalctl -f
```

Önem seviyesine göre:

```bash
journalctl -p warning
```

### Kalıcı journal

Journal yapılandırmasına göre günlükler `/run/log/journal` altında geçici veya `/var/log/journal` altında kalıcı tutulabilir.

Kurumsal sistemlerde reboot öncesi olayların kaybolmaması için kalıcı günlükleme düşünülmelidir.

### rsyslog

Geleneksel dosyalar halen değerlidir:

```text
/var/log/messages
/var/log/secure
/var/log/maillog
/var/log/cron
```

Dağıtıma ve servis yapılandırmasına göre bütün olayların bu dosyalarda bulunacağı varsayılmamalıdır. Önce journal kontrol edilmelidir.

### Log rotation

Log dosyasının sonsuza kadar büyümesine izin verilmez. `logrotate` boyut veya zaman ölçütüyle eski kayıtları döndürür.

Bir log sorununda yalnız içeriğe değil disk doluluğuna da bak:

```bash
df -h
du -sh /var/log/*
journalctl --disk-usage
```

### Zaman senkronizasyonu

Farklı sunuculardaki olayları ilişkilendirmek için saatlerin doğru olması gerekir.

Durum:

```bash
timedatectl
chronyc tracking
chronyc sources -v
```

RHEL'de Chrony temel zaman senkronizasyon aracıdır.

Saat farkı:

- log korelasyonunu,
- Kerberos'u,
- sertifika doğrulamasını,
- dağıtık işlemleri,
- adli zaman çizelgesini

bozabilir.

## 12. SSH

OpenSSH uzak sistem yönetiminin temelidir. RHEL 10, OpenSSH 9.9 ailesini sunar.

Bağlantı:

```bash
ssh user@host
```

Dosya aktarımı:

```bash
scp file user@host:/path/
sftp user@host
```

Dizin eşleme ve verimli senkronizasyon için çoğu durumda:

```bash
rsync -aHAX --info=progress2 source/ user@host:/target/
```

daha uygundur.

### Anahtar tabanlı kimlik doğrulama

Anahtar üret:

```bash
ssh-keygen -t ed25519
```

Açık anahtarı hedefe ekle:

```bash
ssh-copy-id user@host
```

Özel anahtar paylaşılmaz.

Sunucuda temel sertleştirme ilkeleri:

```text
root ile doğrudan parola girişini kapat
parola yerine anahtar tercih et
gereksiz kullanıcıları sınırla
gerekli değilse yönlendirme özelliklerini kapat
firewall ile erişim alanını daralt
```

RHEL kurulumunda root hesabı ve parola ile root SSH erişimi güvenlik nedeniyle varsayılan olarak kısıtlı tutulur.

### Yapılandırma

Ana dosya:

```text
/etc/ssh/sshd_config
```

Ek dosyalar kurulum ve sürüme göre `sshd_config.d` altında bulunabilir.

Değişiklikten önce:

```bash
sshd -t
```

Sonra:

```bash
systemctl reload sshd
```

Uzak bir makinede SSH ayarı değiştirirken mevcut oturumu kapatmadan ikinci bir bağlantıyla yeni ayarı doğrulamak güvenli yöntemdir.

## 13. Ağ Yönetimi

RHEL 10 ağ yönetiminin merkezi NetworkManager'dır.

Durum:

```bash
nmcli device status
nmcli connection show
ip address
ip route
```

Bağlantı profili etkinleştirme:

```bash
nmcli connection up PROFILE
```

### Statik IPv4

Örnek:

```bash
nmcli connection modify ens192 \
  ipv4.method manual \
  ipv4.addresses 192.0.2.10/24 \
  ipv4.gateway 192.0.2.1 \
  ipv4.dns "192.0.2.53 192.0.2.54"

nmcli connection up ens192
```

DNS ve isim çözümleme:

```bash
resolvectl status
getent hosts example.com
```

Dağıtımın NetworkManager entegrasyonuna göre `/etc/resolv.conf` doğrudan elle yönetilmemelidir.

### Keyfile biçimi

RHEL 10'da NetworkManager profilleri:

```text
/etc/NetworkManager/system-connections/
```

altında keyfile olarak saklanır.

2016 materyalindeki:

```text
/etc/sysconfig/network-scripts/ifcfg-*
```

dosyaları RHEL 10 için güncel yöntem değildir ve destek kaldırılmıştır.

### Bonding

Birden çok fiziksel bağlantı tek mantıksal arayüzde birleştirilebilir.

RHEL 10'da `teamd` yoktur; bonding kullanılmalıdır.

Amaç:

- bağlantı yedekliliği,
- bazı modlarda yük dağıtımı,
- tek mantıksal arayüz

sağlamaktır.

### IPv6

IPv6 güncel RHEL yönetiminde isteğe bağlı bir ek değil, temel ağ yeteneğidir.

Görüntüleme:

```bash
ip -6 address
ip -6 route
```

Link-local adresler:

```text
fe80::/10
```

her bağlantıda önemli rol oynar.

IPv6'yı "kullanmıyoruz" gerekçesiyle rastgele kapatmak yerine altyapının gerçekten nasıl çalıştığı doğrulanmalıdır. Birçok servis ve kütüphane çift yığın davranışını varsayar.

### Sorun giderme sırası

```text
1. link var mı?
2. arayüz up mı?
3. adres doğru mu?
4. rota doğru mu?
5. gateway erişiliyor mu?
6. DNS çalışıyor mu?
7. servis dinliyor mu?
8. firewall izin veriyor mu?
9. SELinux izin veriyor mu?
```

Araçlar:

```bash
ip link
ip addr
ip route
ping
tracepath
ss -lntup
nmcli
dig
getent hosts
tcpdump
```

`netstat` ve `ifconfig` tarihsel araçlardır. Güncel temel araçlar `ss` ve `ip` komutlarıdır.

## 14. Güvenlik Duvarı

RHEL 10'da genel sunucu yönetiminde `firewalld`, daha özel ve performans kritik kurallarda doğrudan `nftables` kullanılır.

Aynı sistemde iki bağımsız firewall yönetim katmanını birbiriyle yarışır halde kullanma.

### firewalld

Durum:

```bash
firewall-cmd --state
firewall-cmd --get-active-zones
firewall-cmd --list-all
```

Servis açma:

```bash
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
```

Port açmak yerine tanımlı servis kullanmak kuralın amacını daha okunabilir kılar.

Runtime ve permanent ayrımı önemlidir:

```text
runtime      çalışan durum
permanent    yeniden yükleme/boot sonrası durum
```

Test için önce runtime kural eklemek, doğruladıktan sonra kalıcılaştırmak geri dönüşü kolaylaştırır.

### nftables

Düşük seviye görünüm:

```bash
nft list ruleset
```

`nftables`, eski:

```text
iptables
ip6tables
arptables
ebtables
ipset
```

ekosisteminin yerini alan birleşik çerçevedir.

Kurumsal uygulamada kuralın yalnız sözdizimi değil sahipliği önemlidir. Bir kurallar bütününü firewalld yönetiyorsa aynı kuralları elle `nft` ile değiştirmek yapılandırma sapması oluşturur.

## 15. Paket Yönetimi

RPM paket biçimidir; DNF bağımlılık ve repository yönetim katmanıdır.

Paket sorgusu:

```bash
rpm -q openssh-server
rpm -qi openssh-server
rpm -ql openssh-server
rpm -qf /usr/sbin/sshd
```

DNF:

```bash
dnf search nginx
dnf info nginx
dnf install PACKAGE
dnf remove PACKAGE
dnf upgrade
dnf repolist
```

Yerel RPM:

```bash
dnf install ./package.rpm
```

Bağımlılığı elle çözmeye çalışıp doğrudan `rpm -i` kullanmak yerine çoğu durumda DNF tercih edilir.

### Repository yapısı

RHEL 10 içerikleri başta şu repository ailelerinde sunulur:

```text
BaseOS
AppStream
CodeReady Linux Builder
Supplementary
```

Sunucuda hangi repositorylerin etkin olduğunu doğrula:

```bash
dnf repolist
```

### Güncelleme disiplini

"Update var mı?" sorusu tek başına yeterli değildir.

Değerlendir:

```text
güvenlik etkisi
uygulama bağımlılığı
kernel güncellemesi
servis restart gereksinimi
reboot gereksinimi
rollback planı
bakım penceresi
```

Güncelleme sonrası çalışan süreç eski kütüphaneyi bellekte tutabilir. Paket güncellendi diye bütün riskin sona erdiği varsayılmamalıdır.

## 16. Disk, Dosya Sistemi ve LVM

Blok aygıtlarını gör:

```bash
lsblk -f
blkid
```

Kullanım:

```bash
df -hT
du -sh /path
```

`df` dosya sistemindeki kullanılabilir alanı, `du` dizin ağacındaki görünen dosyaların kapladığı alanı ölçer. Silinmiş fakat süreç tarafından açık tutulan dosya iki değer arasında fark oluşturabilir:

```bash
lsof +L1
```

### XFS

RHEL 10'un varsayılan yerel dosya sistemi XFS'tir.

Güçlü yönleri:

- büyük dosyalar ve büyük dosya sistemleri,
- yüksek eşzamanlı I/O,
- metadata journaling,
- çevrim içi büyütme.

Önemli sınırlama:

```text
XFS küçültülemez.
```

Bu nedenle LVM boyutlandırması yapılırken "sonra küçültürüz" varsayımı hatalıdır.

### ext4

ext4 halen desteklenen ve olgun bir dosya sistemidir. Bazı küçük veya düşük I/O iş yüklerinde uygundur ve çevrim dışı küçültme yeteneği XFS'ten ayrılır.

Varsayılan tercih özel bir gerekçe yoksa XFS'tir.

### fstab

Kalıcı mount:

```text
/etc/fstab
```

UUID kullanmak aygıt adına göre daha kararlıdır:

```bash
blkid
```

Örnek:

```fstab
UUID=...  /srv/data  xfs  defaults  0  0
```

Değişiklik sonrası reboot etmeden test et:

```bash
mount -a
```

Hatalı `fstab` boot sürecini bozabilir.

### LVM

Katmanlar:

```text
disk / partition
      ↓
PV
      ↓
VG
      ↓
LV
      ↓
filesystem
```

Komutlar:

```bash
pvs
vgs
lvs
```

Örnek:

```bash
pvcreate /dev/sdb
vgcreate vgdata /dev/sdb
lvcreate -L 100G -n lvdata vgdata
mkfs.xfs /dev/vgdata/lvdata
```

Büyütme:

```bash
lvextend -L +20G /dev/vgdata/lvdata
xfs_growfs /mountpoint
```

Bazı LVM komutları dosya sistemini de birlikte büyütebilir; yine de iki katmanın ayrı olduğunu bilmek gerekir.

### Thin provisioning ve VDO

Thin provisioning fiziksel alanı ihtiyaç oldukça ayırır. Verimli olsa da overcommit mümkündür; kapasite izlenmezse bütün havuz aniden yazamaz hale gelebilir.

VDO veri azaltma için:

- thin provisioning,
- sıkıştırma,
- tekilleştirme

özelliklerini birleştirir.

Veri azaltma "bedava kapasite" değildir. CPU, bellek ve metadata maliyeti vardır.

### Stratis

Stratis, disk havuzu ve dosya sistemi yönetimini daha üst düzey bir arayüzle sunar. XFS tabanlı depolama yönetimini basitleştirir.

LVM'i bilmeden Stratis öğrenmek ters sıradır. Önce blok aygıtı, PV/VG/LV ve dosya sistemi ilişkisi anlaşılmalıdır.

### Şifreleme

Disk şifreleme için LUKS2 kullanılır.

Kurumsal sistemlerde manuel parola dışında:

- Clevis,
- NBDE,
- TPM2,
- uzaktan doğrulama tabanlı çözme

gibi mekanizmalar kullanılabilir.

RHEL 10.2, uzaktan doğrulamayla otomatik LUKS çözme senaryolarını geliştiren yeni Clevis entegrasyonları içerir.

## 17. Uzak Depolama ve Dosya Paylaşımı

### NFS

NFS Linux/UNIX ortamlarında temel dosya paylaşım yöntemidir.

Sunucu tarafı kavramları:

```text
export
istemci
izin
kimlik eşleme
firewall
SELinux
```

Aktif exportlar:

```bash
exportfs -v
```

İstemci mount:

```bash
mount -t nfs server:/export /mnt/data
```

NFSv4 modern tercih olmalıdır.

Kimlik doğrulama gereken yapılarda Kerberos:

```text
krb5
krb5i
krb5p
```

seviyeleri kullanılabilir. `krb5p` gizlilik de sağlar.

### SMB

Windows uyumluluğu gereken ortamlarda Samba kullanılır.

İstemci tarafında:

```bash
mount -t cifs ...
```

kullanılabilir.

Ağ paylaşımında yalnız dosya modu değil:

- sunucu paylaşım yetkisi,
- kimlik altyapısı,
- SELinux,
- firewall

birlikte değerlendirilir.

### iSCSI ve NVMe-oF

Dosya paylaşımı ile blok depolama aynı şey değildir.

```text
NFS/SMB      uzak dosya sistemi
iSCSI        uzak blok aygıtı
NVMe-oF      NVMe blok erişimini ağ/fabric üzerinden taşır
```

RHEL 10:

- iSCSI,
- Fibre Channel,
- NVMe/RDMA,
- NVMe/FC,
- NVMe/TCP

gibi kurumsal depolama yöntemlerini destekler. Çoklu yol kullanımı taşıma türüne göre seçilir. NVMe fabrics senaryolarında yerel NVMe multipath modeli esastır; DM Multipath her NVMe taşıması için genel bir çözüm değildir.

## 18. Web ve Veritabanı Servisleri

2016 materyalindeki Apache HTTPD, DNS ve MariaDB bölümleri hala sistem yönetimi açısından değerlidir; ancak amaç uygulama uzmanlığı değil servis yönetim modelini kavramaktır.

Bir servis için aynı kontrol zinciri uygulanır:

```text
paket kurulu mu?
config geçerli mi?
servis çalışıyor mu?
port dinleniyor mu?
firewall izin veriyor mu?
SELinux izin veriyor mu?
isim çözümleme doğru mu?
log ne söylüyor?
```

Örnek Apache:

```bash
dnf install httpd
apachectl configtest
systemctl enable --now httpd
ss -lntp
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
journalctl -u httpd
```

Bu model Nginx, MariaDB, DNS veya özel Java servisi için de aynıdır.

Servis özelinde komutlar değişir; tanı yöntemi değişmez.

## 19. Arşivleme, Kopyalama ve Yedekleme

Arşiv:

```bash
tar -cf backup.tar directory/
tar -xf backup.tar
```

Sıkıştırma:

```bash
tar -czf backup.tar.gz directory/
tar -cJf backup.tar.xz directory/
```

Büyük üretim yedeklerinde sıkıştırma seçimi CPU, süre ve geri yükleme hedefiyle birlikte değerlendirilmelidir.

Uzak kopya:

```bash
rsync -aHAX source/ host:/backup/
```

`-a` her şeyi korumaz. ACL ve extended attribute önemliyse:

```text
-A
-X
```

gibi seçeneklerin gerekip gerekmediği değerlendirilmelidir.

Yedek var demek yetmez.

Gerçek yedek:

```text
oluşturuldu
bütünlüğü doğrulandı
ayrı hata alanında tutuldu
geri yükleme test edildi
```

olmalıdır.

Snapshot yedek değildir. Aynı storage arızasında snapshot da kaybolabilir.

## 20. Sanallaştırma

RHEL sanallaştırma altyapısı:

```text
KVM
QEMU
libvirt
```

Temel araçlar:

```bash
virsh list --all
virsh dominfo VM
virsh start VM
virsh shutdown VM
```

Grafik yönetim için RHEL web console kullanılabilir.

Kaynak planlamasında:

```text
vCPU
RAM
NUMA
storage latency
I/O queue
network
overcommit
```

birlikte düşünülmelidir.

Bir sanal makinenin yavaş olması her zaman CPU eksikliği değildir. Sanallaştırmada depolama gecikmesi ve NUMA yerleşimi sık gözden kaçar.

TuneD, sanal makine ve sanallaştırma hostu için:

```text
virtual-guest
virtual-host
```

profilleri sunar.

Profil seçmeden önce iş yükü ölçülmelidir.

## 21. Konteynerler

RHEL 10'un yerel konteyner araçları:

```text
Podman
Buildah
Skopeo
```

Görev ayrımı:

```text
Podman    konteyner ve pod çalıştırma/yönetme
Buildah   imaj oluşturma
Skopeo    registry ve imaj inceleme/kopyalama
```

Podman daemon gerektirmez ve rootless çalışabilir.

Örnek:

```bash
podman pull registry.redhat.io/ubi10/ubi
podman run --rm -it registry.redhat.io/ubi10/ubi bash
podman ps
podman images
```

Rootless konteyner varsayılan tercih olmalıdır. Root yetkisi gerekmiyorsa verilmemelidir.

### systemd ile konteyner

Yeni yapılandırmalarda Quadlet tercih edilir.

Quadlet, konteyneri systemd ile yönetilecek bir servis gibi tanımlar. Eski `podman generate systemd` yaklaşımına göre daha bakım yapılabilir bir yapı sunar.

Düşünce:

```text
konteyner tanımı
      ↓
Quadlet
      ↓
systemd service
      ↓
systemctl
```

Bu sayede uygulama sunucusunda ayrı bir container daemon yaşam döngüsü kurmadan standart sistem yönetim araçları kullanılabilir.

## 22. Cockpit Web Console

Komut satırı ana yönetim aracı olmaya devam eder; grafik arayüz ise gözlem ve belirli işlemlerde yararlıdır.

RHEL web console, Cockpit tabanlıdır.

Kurulum:

```bash
dnf install cockpit
systemctl enable --now cockpit.socket
```

Yapılabilen işlemler:

- servis yönetimi,
- kullanıcı yönetimi,
- ağ,
- firewall,
- storage,
- log inceleme,
- sanal makineler,
- SELinux,
- yazılım güncelleme,
- tanı raporları.

Web console ayrı bir yönetim evreni değildir; aynı sistem araçlarını kullanır. CLI ile yapılan değişiklik arayüzde de görünür.

Root login yerine sudo yetkili normal kullanıcı kullanmak daha doğru yaklaşımdır.

## 23. Otomasyon

Bir sunucuda elle yapılan işlem öğrenme yöntemidir. Aynı işlem onlarca sunucuda tekrarlanıyorsa otomasyon konusudur.

2026 RHEL yönetiminde Red Hat System Roles, Ansible tabanlı ortak yönetim modeli sunar.

Amaç:

```text
sunucuya tek tek komut gönderme
```

değil:

```text
istenen durumu tanımlama
↓
tekrarlanabilir uygulama
↓
sapmayı azaltma
```

dır.

Örnek düşünce:

```yaml
- hosts: web
  become: true
  roles:
    - redhat.rhel_system_roles.timesync
```

System Roles;

- ağ,
- zaman,
- firewall,
- SELinux,
- storage,
- journald,
- sudo,
- SSH,
- Cockpit

gibi yönetim alanlarında dağıtım tarafından desteklenen otomasyon kalıpları sağlar.

Zen ilkesi:

```text
tek sunucu + tek değişiklik       CLI
çok sunucu + tekrarlı değişiklik  otomasyon
```

Bir komutu Ansible içine koymak tek başına otomasyon kalitesi değildir. İstenen son durum tanımlanmalı ve tekrar çalıştırıldığında gereksiz değişiklik üretmemelidir.

## 24. Image Mode ve bootc

RHEL 10 ile klasik paket tabanlı işletim sistemi yönetimine ek olarak image mode olgunlaşmıştır.

Image mode:

```text
işletim sistemi
      ↓
OCI imajı
      ↓
build/test
      ↓
registry
      ↓
bootc ile dağıtım/güncelleme
```

yaklaşımını kullanır.

Bu modelde işletim sistemi bileşimi sunucu üzerinde tek tek değiştirilmek yerine imaj olarak inşa edilir.

Uygun olduğu yerler:

- çok sayıda benzer sistem,
- edge,
- değişmez altyapı,
- CI/CD ile işletim sistemi dağıtımı,
- sürümün bütünüyle test edilmesinin istendiği ortamlar.

Her sunucuyu image mode'a geçirmek gerekmez. Klasik paket modu hala genel sistem yönetiminin temelidir.

İki yaklaşımın farkı:

```text
paket modu       çalışan sistemi değiştir
image mode       imajı değiştir, sistemi yeni imaja geçir
```

## 25. Güvenli Sistem Yönetimi

Güvenlik tek ürün değil katmanların toplamıdır:

```text
kimlik
↓
sudo
↓
dosya izinleri
↓
SELinux
↓
servis yapılandırması
↓
firewall
↓
şifreli iletişim
↓
loglama
↓
güncelleme
↓
yedek ve kurtarma
```

Temel kurallar:

1. Root ile günlük çalışma yapma.
2. SSH'de anahtar tabanlı kimlik doğrulamayı tercih et.
3. Kullanılmayan servisi kapat.
4. Kullanılmayan portu açma.
5. SELinux'u kapatarak sorun çözme.
6. Paketleri desteklenen repositorylerden al.
7. Zaman senkronizasyonunu koru.
8. Logları merkezi olarak saklamayı düşün.
9. Yedeği geri yükleyerek test et.
10. Değişikliği mümkün olduğunca otomasyonla tekrar üretilebilir hale getir.

### Kriptografik politika

RHEL sistem genelinde kriptografik politika uygular. Uygulamalar mümkün olduğunda kendi bağımsız zayıf algoritma listelerini taşımak yerine sistem politikasına uyar.

Eski:

- SHA-1,
- küçük RSA anahtarları,
- eski TLS sürümleri,
- eski SSH algoritmaları

için uyumluluk gerektiğinde güvenlik etkisi ayrıca değerlendirilmelidir.

Eski cihazı çalıştırmak için bütün sunucunun kriptografik seviyesini düşürmek kalıcı çözüm değildir.

## 26. Sorun Giderme

Sorun giderme bir komut listesi değil, kanıt toplama sürecidir.

Genel sıra:

```text
belirti
↓
kapsam
↓
son değişiklik
↓
log
↓
kaynak durumu
↓
bağımlılık
↓
en küçük hipotez
↓
test
↓
düzeltme
↓
doğrulama
```

### Servis çalışmıyor

```bash
systemctl status service
journalctl -u service -b
systemctl cat service
```

Sonra:

- config testi,
- kullanıcı ve grup,
- dosya izinleri,
- SELinux,
- port çakışması,
- dependency.

### Disk dolu

```bash
df -hT
df -ih
du -xhd1 /
lsof +L1
journalctl --disk-usage
```

`df` dolu ama `du` küçükse silinmiş fakat açık dosya veya mount yapısı düşünülmelidir.

### Ağ çalışmıyor

```bash
ip link
ip addr
ip route
nmcli device
nmcli connection
ss -lntup
firewall-cmd --list-all
```

Sonra:

```bash
ping gateway
getent hosts hostname
tracepath target
tcpdump -ni interface
```

### SSH çalışmıyor

Sunucuda:

```bash
sshd -t
systemctl status sshd
ss -lntp
journalctl -u sshd
firewall-cmd --list-services
```

İstemcide:

```bash
ssh -vvv user@host
```

### SELinux şüphesi

```bash
getenforce
ls -Z path
ausearch -m AVC -ts recent
```

Politikayı kapatmadan önce gerçek AVC kaydı bulunmalıdır.

## 27. Tanı ve Destek Verisi

Bir arıza anında sistem durumunun bütünü önemlidir.

Red Hat ortamında `sos` araçları sistem yapılandırması ve tanı verilerini paketlemek için kullanılır.

Bir destek paketi oluştururken:

- kişisel veri,
- gizli anahtar,
- uygulama sırrı,
- kurum içi adresleme,
- log içeriği

gibi hassas bilgilerin bulunabileceği unutulmamalıdır.

Tanı paketi de güvenlik sınıflandırmasına tabi bir veridir.

## 28. Performans Yönetimi

Performans ayarı ölçümden sonra yapılır.

Yanlış sıra:

```text
sysctl değiştir
TuneD profili değiştir
I/O scheduler değiştir
sonra ölç
```

Doğru sıra:

```text
iş yükünü tanımla
↓
baseline ölç
↓
darboğazı bul
↓
tek değişiklik yap
↓
yeniden ölç
```

Temel göstergeler:

```text
CPU kullanım ve run queue
memory pressure
swap
disk latency ve IOPS
network throughput ve loss
application latency
```

Araçlar:

```bash
top
vmstat
iostat
pidstat
sar
ss
ethtool
perf
```

Kullanılabilirlik paket kurulumuna bağlıdır.

TuneD genel profiller sunar, ancak profil seçimi benchmark yerine geçmez.

## 29. 2016'dan 2026'ya Kalanlar ve Değişenler

Kalıcı bilgi:

```text
Bash
dosya sistemi hiyerarşisi
kullanıcı ve grup
chmod/chown
süreç ve sinyal
systemd
SSH
journal
RPM
LVM
XFS
SELinux
NFS
DNS
HTTP
```

Güncellenmesi gereken bilgi:

```text
yum                         -> dnf
ifcfg                       -> NetworkManager keyfile
network-scripts             -> NetworkManager
teamd                       -> bonding
ifconfig/netstat            -> ip/ss
iptables odaklı yönetim     -> firewalld/nftables
tek tek elle yönetim        -> System Roles/Ansible
Docker varsayımı            -> Podman ekosistemi
yalnız klasik kurulum       -> paket modu + image mode
```

Öğrenilmesi gerekmeyen şey eski komutların tamamen unutulması değildir. Eski üretim sistemleri yıllarca yaşamaya devam eder. Sistem yöneticisi hem:

```text
eski sistemi okuyabilmeli
```

hem de:

```text
yeni sistemi eski yöntemle kurmamalı
```

dır.

## 30. Sistem Yöneticisinin Kısa Kontrol Listesi

Yeni bir sunucu açıldığında:

```bash
cat /etc/redhat-release
uname -r
timedatectl
ip addr
ip route
nmcli connection show
df -hT
lsblk -f
free -h
systemctl --failed
journalctl -p warning -b
getenforce
firewall-cmd --get-active-zones
dnf repolist
```

Bir servis devreye alınırken:

```text
paketi kur
yapılandır
config doğrula
enable/start
portu doğrula
firewallı aç
SELinux'u doğrula
uzaktan test et
logu kontrol et
reboot sonrası doğrula
```

Bir değişiklikten önce:

```text
etki alanını bil
geri dönüş yolunu bil
mevcut durumu kaydet
```

Bir değişiklikten sonra:

```text
komut başarılı mı?          yetmez
servis çalışıyor mu?        yetmez
işlev gerçekten çalışıyor mu?
reboot sonrası sürüyor mu?
log temiz mi?
```

Son soru her zaman davranışa yöneliktir.

## 31. Sınav ve Uygulama İçin Temel Ayrımlar

**`start` ile `enable` aynı değildir.** İlki çalışan durumu, ikincisi boot politikasını değiştirir.

**`reload` ile `restart` aynı değildir.** Reload mümkünse aktif iş yükünü daha az etkiler.

**`df` ile `du` aynı şeyi ölçmez.** Biri dosya sistemi tahsisini, diğeri görünen dosya ağacını ölçer.

**Dosya izinleri ile SELinux aynı katman değildir.** İkisinin de izin vermesi gerekir.

**Firewall açık olması servisin çalıştığı anlamına gelmez.** Önce `ss`, sonra firewall kontrol edilir.

**Port dinliyor olması uzaktan erişilebildiği anlamına gelmez.** Route, firewall, SELinux ve uygulama politikası ayrıca kontrol edilir.

**NetworkManager profili ile çalışan arayüz durumu aynı değildir.** Profil doğru olup henüz etkinleştirilmemiş olabilir.

**Runtime firewall kuralı ile permanent kural aynı değildir.** Reboot veya reload sonrası fark ortaya çıkar.

**RPM ile DNF aynı katman değildir.** RPM paket biçimi ve düşük seviye veritabanıdır; DNF repository ve bağımlılık yönetir.

**LVM ile dosya sistemi aynı şey değildir.** LV büyütülse bile dosya sistemi ayrıca büyütülmelidir.

**Snapshot yedek değildir.** Aynı hata alanında bulunabilir.

**Konteyner sanal makine değildir.** Konteyner host çekirdeğini paylaşır.

**Rootless konteyner root konteynerden daha düşük risklidir.** İhtiyaç yoksa ayrıcalık verilmez.

**ifcfg RHEL 10'da güncel ağ yapılandırma yöntemi değildir.** Keyfile kullanan NetworkManager esas alınır.

**Team ile bond aynı çözüm ailesindedir ancak RHEL 10'da team kaldırılmıştır.** Yeni yapılandırmada bond kullanılır.

**iptables bilgisi tarihsel olarak değerlidir ama yeni RHEL firewall yönetiminin merkezi değildir.** firewalld ve nftables tercih edilir.

**XFS varsayılandır ve büyütülebilir, küçültülemez.** Storage planı buna göre yapılır.

**Logdaki saat yanlışsa olay sırası da yanlıştır.** Chrony adli ve operasyonel doğruluk için önemlidir.

**Bir sistemi elle yönetebilmek temeldir; aynı işlemi yüz sistemde elle yapmak ise tasarım hatasıdır.**

## Kaynakça

- Red Hat. *RH124 Red Hat System Administration I*, 2016. Kullanıcının sağladığı ders materyali.
- Red Hat. *RH254 Red Hat System Administration III*, 2016. Kullanıcının sağladığı ders materyali.
- Red Hat. *Red Hat Enterprise Linux 10.2 Release Notes*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/10.2_release_notes/
- Red Hat. *Considerations in adopting RHEL 10*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/considerations_in_adopting_rhel_10/
- Red Hat. *Configuring and managing networking*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/configuring_and_managing_networking/
- Red Hat. *Configuring firewalls and packet filters*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/configuring_firewalls_and_packet_filters/
- Red Hat. *Using SELinux*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/using_selinux/
- Red Hat. *Managing software with the DNF tool*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_software_with_the_dnf_tool/
- Red Hat. *Managing file systems*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_file_systems/
- Red Hat. *Managing storage devices*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_storage_devices/
- Red Hat. *Risk reduction and recovery operations*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/risk_reduction_and_recovery_operations/
- Red Hat. *Configuring authentication and authorization in RHEL*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/configuring_authentication_and_authorization_in_rhel/
- Red Hat. *Building, running, and managing containers*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/building_running_and_managing_containers/
- Red Hat. *Automating system administration by using RHEL system roles*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/automating_system_administration_by_using_rhel_system_roles/
- Red Hat. *Using image mode for RHEL to build, deploy, and manage operating systems*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/using_image_mode_for_rhel_to_build_deploy_and_manage_operating_systems/
- Red Hat. *Managing systems in the RHEL web console*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_systems_in_the_rhel_web_console/
- Red Hat. *Configuring and managing Linux virtual machines*. https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/configuring_and_managing_linux_virtual_machines/
- GNU Project. *Bash Reference Manual*. https://www.gnu.org/software/bash/manual/
- systemd. *System and Service Manager Documentation*. https://systemd.io/
- OpenSSH. *OpenSSH Manual Pages*. https://www.openssh.com/manual.html
- Podman. *Podman Documentation*. https://docs.podman.io/

## Bu Çalışmaya Atıf

Köker, M. A. (2016). Red Hat Enterprise Linux Sistem Yönetimi. alikoker.com.tr. https://alikoker.com.tr/red-hat-enterprise-linux-sistem-yonetimi

- BibTeX: https://alikoker.com.tr/red-hat-enterprise-linux-sistem-yonetimi.bib
- RIS: https://alikoker.com.tr/red-hat-enterprise-linux-sistem-yonetimi.ris
- CSL-JSON: https://alikoker.com.tr/red-hat-enterprise-linux-sistem-yonetimi.csl.json
