
1. Giriş ve Temel Kavramlar
Cisco IOS Güvenlik Katmanları
┌─────────────────────────────────────────┐
│ Management Plane Security │
├─────────────────────────────────────────┤
│ Control Plane Security │
├─────────────────────────────────────────┤
│ Data Plane Security │
└─────────────────────────────────────────┘
Management Plane: Cihaz yönetimi (SSH, Telnet, Console) Control Plane: Routing protokolleri (OSPF, BGP, EIGRP) Data Plane: Kullanıcı trafiği
Cisco IOS Modları
User EXEC Mode (>)
↓ enable
Privileged EXEC Mode (#)
↓ configure terminal
Global Configuration Mode (config)#
↓ interface/line/router
Specific Configuration Mode (config-if)#
2. Enable Password ve Enable Secret
Enable Password Nedir?
Enable password, User EXEC modundan Privileged EXEC moduna geçiş için kullanılan temel şifreleme yöntemidir.
Kullanım:
Router> enable
Password: [görünmez şekilde yazılır]
Router#
Enable Secret Nedir?
Enable secret, 1992’de IOS 11.0 ile tanıtılan, MD5 hash algoritması kullanan güvenli şifreleme yöntemidir.
Karşılaştırma Tablosu
Özellik | Enable Password | Enable Secret |
---|---|---|
Şifreleme Tipi | Type 0 (clear) veya Type 7 | Type 5 (MD5) |
Güvenlik | Düşük | Yüksek |
Tersine Çevrilebilir | Evet | Hayır |
Config Görünümü | enable password cisco | enable secret 5 $1$mERr$hx5... |
Öncelik | İkinci | Birinci |
MD5 Hash Detayları
MD5 Hash Yapısı:
$1$mERr$hx5rVt7rPOk5Jd0H7iCQ2/
│ │ │ │
│ │ │ └─── Hash değeri (22 karakter)
│ │ └────────── Salt (4 karakter, rastgele)
│ └───────────── Algoritma tipi (1 = MD5)
└─────────────── Cisco delimiter
Güvenlik Analizi
Enable Password Zayıflıkları:
- Show running-config’de açık görünür
- Network capture’da okunabilir
- Basit string karşılaştırması
Enable Secret Avantajları:
- Tek yönlü hash (irreversible)
- Salt ile rainbow table koruması
- Brute force’a dayanıklı
3. Service Password Encryption
Type 7 Şifreleme Algoritması
Service password-encryption, Vigenere cipher tabanlı özel bir algoritma kullanır.
Şifreleme Anahtarı:
"dsfd;kfoA,.iyewrkldJKDHSUBsgvca69834ncxv9873254k;fg87"
Şifreleme Süreci
1. Clear Text: "cisco123"
2. Seed seçimi: 02-15 arası (örn: 07)
3. Her karakter XOR işlemi:
'c' XOR key[7] → hex değer
'i' XOR key[8] → hex değer
...
4. Sonuç: 070C285F4D06
Etkilenen ve Etkilenmeyen Şifreler
✅ Type 7’ye Dönüşenler:
- Line passwords (console, aux, vty)
- Username passwords
- Enable password (secret değil!)
- OSPF/EIGRP authentication keys
- RADIUS/TACACS keys
❌ Type 7’ye Dönüşmeyenler:
- Enable secret
- Username secret
- Type 5 hash’ler
- Type 8/9 şifreler
- Crypto keys (IPSec, SSH)
Güvenlik Değerlendirmesi
┌─────────────┬──────────────┬─────────────┬──────────────┐
│ Type 0 │ Type 7 │ Type 5 │ Type 8/9 │
│ Clear Text │ Vigenere │ MD5 Hash │ PBKDF2-SHA256│
│ 0% │ 20% │ 80% │ 95% │
└─────────────┴──────────────┴─────────────┴──────────────┘
Güvenlik Seviyesi
4. Console Line Yapılandırması
Console Portu Nedir?
Console portu, cihaza fiziksel erişim sağlayan RS-232 seri porttur.
Bağlantı Şeması
┌─────────────────┐ ┌──────────────────┐
│ │ Rollover Cable │ │
│ PC/Laptop │←─────────────────→│ Cisco Device │
│ │ (Light Blue) │ │
│ ┌─────────────┐ │ │ ┌──────────────┐ │
│ │Terminal App │ │ │ │ Console Port │ │
│ │(PuTTY, etc)│ │ │ │ (RJ-45) │ │
│ └─────────────┘ │ │ └──────────────┘ │
└─────────────────┘ └──────────────────┘
Console Parametreleri
Parametre | Standart Değer | Açıklama |
---|---|---|
Baud Rate | 9600 | Bit/saniye iletim hızı |
Data Bits | 8 | Karakter başına bit |
Parity | None | Hata kontrolü yok |
Stop Bits | 1 | Karakter sonu işareti |
Flow Control | None | Akış kontrolü yok |
Exec-timeout Örnekleri
! 5 dakika timeout (önerilen)
line console 0
exec-timeout 5 0
! 30 saniye timeout
line console 0
exec-timeout 0 30
! Timeout yok (tehlikeli!)
line console 0
exec-timeout 0 0
! Maksimum timeout (35791 dakika ≈ 24 gün)
line console 0
exec-timeout 35791 23
Logging Synchronous Etkisi
Synchronous OLMADAN:
Router(config)#interface gigabit
*Mar 1 00:00:00: %LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to up
Ethernet0/1 ← Komut bölündü!
Synchronous İLE:
Router(config)#interface gigabitEthernet0/1
*Mar 1 00:00:00: %LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to up
Router(config-if)# ← Temiz prompt
5. VTY Lines (Virtual Terminal)
VTY Line Mimarisi
┌─────────────────────────────────────────────┐
│ Cisco Device │
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │VTY 0│ │VTY 1│ │VTY 2│ ... │VTY 15│ │
│ └──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘ │
│ │ │ │ │ │
│ ┌──┴───────┴───────┴──────────────┴───┐ │
│ │ VTY Line Handler │ │
│ └─────────────┬───────────────────────┘ │
│ │ │
│ ┌─────────────┴───────────────────────┐ │
│ │ TCP/IP Stack (Port 22/23) │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
Telnet vs SSH Detaylı Karşılaştırma
Özellik | Telnet | SSH v1 | SSH v2 |
---|---|---|---|
Port | TCP 23 | TCP 22 | TCP 22 |
Şifreleme | Yok | RC4, DES, 3DES | AES-128/256, 3DES |
Auth Metodu | Password only | RSA | RSA, DSA, ECDSA |
Key Exchange | Yok | RSA | Diffie-Hellman |
MITM Koruması | Yok | Zayıf | Güçlü |
Cisco Min IOS | Tüm versiyonlar | 12.1(1)T | 12.1(19)E |
SSH Kurulum Adımları (Detaylı)
! Adım 1: Hostname tanımlama (ZORUNLU)
! SSH key generation için gerekli
Router(config)# hostname R1
! Adım 2: Domain name tanımlama (ZORUNLU)
! FQDN oluşturmak için gerekli
R1(config)# ip domain-name company.local
! Adım 3: RSA key pair oluşturma
R1(config)# crypto key generate rsa
The name for the keys will be: R1.company.local
Choose the size of the key modulus in the range of 360 to 4096
How many bits in the modulus [512]: 2048
! NOT: Key size önerileri:
! 512 bit - KULLANMAYIN (kırılabilir)
! 1024 bit - Minimum kabul edilebilir
! 2048 bit - Önerilen (güvenli)
! 4096 bit - Maksimum güvenlik
! Adım 4: SSH version seçimi
R1(config)# ip ssh version 2
! Adım 5: SSH parametreleri
R1(config)# ip ssh time-out 60 ! Idle timeout (saniye)
R1(config)# ip ssh authentication-retries 3 ! Max deneme sayısı
! Adım 6: VTY lines konfigürasyonu
R1(config)# line vty 0 15
R1(config-line)# transport input ssh ! Sadece SSH
R1(config-line)# login local ! Local user kullan
! Adım 7: Local user oluşturma
R1(config)# username admin privilege 15 secret StrongP@ss123!
Transport Input Seçenekleri
! Sadece Telnet (güvensiz)
transport input telnet
! Sadece SSH (önerilen)
transport input ssh
! Hem Telnet hem SSH
transport input all
transport input telnet ssh ! Alternatif syntax
! Hiçbiri (uzak erişim kapalı)
transport input none
6. Local User Management
Privilege Level Sistemi
Cisco IOS’ta 16 privilege level vardır (0-15):
Level 0 ┌─────────────────────────────────┐
│ logout, enable, disable, help, │
│ exit (5 komut) │
└─────────────────────────────────┘
↓
Level 1 ┌─────────────────────────────────┐
│ User EXEC mode │
│ show, ping, traceroute, telnet │
└─────────────────────────────────┘
↓
Level 2-14 ┌───────────────────────────────┐
│ Özelleştirilebilir seviyeler │
│ Custom komut atamaları │
└───────────────────────────────┘
↓
Level 15 ┌─────────────────────────────────┐
│ Privileged EXEC mode │
│ Tüm komutlar ve configuration │
└─────────────────────────────────┘
User Oluşturma Syntax Çeşitleri
! Type 0 (clear text) - GÜVENSİZ
username john password cisco123
! Type 7 (service password-encryption ile)
username john password 7 070C285F4D06
! Type 5 (MD5 hash) - ÖNERİLEN
username john secret cisco123
! Type 8 (PBKDF2-SHA256) - EN GÜVENLİ
username john algorithm-type sha256 secret cisco123
! Type 9 (SCRYPT) - EN YENİ
username john algorithm-type scrypt secret cisco123
Privilege Level Özelleştirme
! Level 7'ye özel komutlar atama
privilege exec level 7 show running-config
privilege exec level 7 show ip interface brief
privilege exec level 7 clear counters
privilege exec level 7 show ip route
! Level 7 kullanıcısı oluşturma
username operator privilege 7 secret Oper@123
! Test etme
Router> enable 7
Password: [operator şifresi]
Router# show ip interface brief ✓ Çalışır
Router# configure terminal ✗ Çalışmaz (Level 15 gerekir)
Login vs Login Local
Login (Line Password):
line vty 0 15
password SimplePass123
login
- Tüm kullanıcılar aynı şifreyi kullanır
- Kullanıcı adı sorulmaz
- Basit ama güvensiz
Login Local (User Database):
username admin secret Admin123!
username guest secret Guest123!
line vty 0 15
login local
- Her kullanıcının ayrı şifresi
- Kullanıcı adı ve şifre gerekli
- Daha güvenli ve denetlenebilir
7. AAA (Authentication, Authorization, Accounting)
AAA Konsepti
┌────────────────┐ ┌─────────────────┐ ┌────────────────┐
│ Authentication │ → │ Authorization │ → │ Accounting │
│ "Kim bu?" │ │ "Ne yapabilir?" │ │ "Ne yaptı?" │
└────────────────┘ └─────────────────┘ └────────────────┘
AAA Temel Konfigürasyon
! AAA'yı aktif et
aaa new-model
! Authentication tanımla
aaa authentication login default local
aaa authentication login VTY-AUTH group tacacs+ local
aaa authentication enable default enable
! Authorization tanımla
aaa authorization exec default local
aaa authorization commands 15 default local
! Accounting tanımla
aaa accounting exec default start-stop group tacacs+
aaa accounting commands 15 default start-stop group tacacs+
TACACS+ vs RADIUS
Özellik | TACACS+ | RADIUS |
---|---|---|
Port | TCP 49 | UDP 1812/1813 |
Şifreleme | Tüm paket | Sadece password |
Protokol | Cisco Proprietary | Open Standard |
AAA Ayrımı | Her biri ayrı | Authentication + Authorization birleşik |
Komut Authorization | Destekler | Desteklemez |
Multiprotocol | Evet | Hayır |
TACACS+ Konfigürasyon Örneği
! TACACS+ server tanımlama
tacacs server TAC-SERVER-1
address ipv4 192.168.1.100
key 0 TacacsKey123!
timeout 5
! Server grubuna ekleme
aaa group server tacacs+ TAC-GROUP
server name TAC-SERVER-1
! AAA metodlarında kullanma
aaa authentication login default group TAC-GROUP local
8. Güvenlik En İyi Uygulamaları
1. Şifre Politikaları
! Minimum şifre uzunluğu
security passwords min-length 8
! Login delay (brute force koruması)
login block-for 120 attempts 3 within 60
login quiet-mode access-class MGMT-ACL
login on-failure log
login on-success log
2. Banner Örnekleri
! MOTD Banner
banner motd ^
########################################################
# UYARI #
# Bu sistem yetkili kullanıcılar içindir. #
# Yetkisiz erişim yasaktır ve yasal işlem yapılır. #
# Tüm aktiviteler kayıt altındadır. #
########################################################
^
! Login Banner
banner login ^
Kullanıcı Adı ve Şifrenizi Giriniz:
^
! Exec Banner
banner exec ^
Başarıyla giriş yaptınız. Tüm işlemler loglanmaktadır.
^
3. Timeout Önerileri
Bağlantı Tipi | Önerilen Timeout | Açıklama |
---|---|---|
Console | 5 dakika | Fiziksel güvenlik riski |
VTY (SSH) | 10 dakika | Uzak erişim standart |
AUX | 3 dakika | Nadiren kullanılır |
4. Port Security
! Temel port security
interface GigabitEthernet0/1
switchport mode access
switchport port-security
switchport port-security maximum 2
switchport port-security violation shutdown
switchport port-security mac-address sticky
5. SSH Güvenlik Artırma
! SSH algoritma kısıtlamaları
ip ssh server algorithm encryption aes256-ctr aes192-ctr aes128-ctr
ip ssh server algorithm mac hmac-sha1 hmac-sha1-96
ip ssh client algorithm encryption aes256-ctr aes192-ctr aes128-ctr
9. Troubleshooting ve Sık Karşılaşılan Sorunlar
Problem 1: “% Bad secrets” Hatası
Sebep: Enable secret’ta özel karakterler Çözüm:
! Tırnak içinde yazın
enable secret "P@ssw0rd!"
Problem 2: SSH Bağlantısı Başarısız
Kontrol Listesi:
! 1. Hostname var mı?
show running-config | include hostname
! 2. Domain name var mı?
show running-config | include domain
! 3. RSA key var mı?
show crypto key mypubkey rsa
! 4. SSH aktif mi?
show ip ssh
! 5. VTY ayarları doğru mu?
show running-config | section line vty
Problem 3: Console Erişim Kaybı
Password Recovery Prosedürü:
1. Cihazı kapat
2. Açarken BREAK gönder (Ctrl+Break)
3. rommon> confreg 0x2142
4. rommon> reset
5. Router> enable
6. Router# copy startup-config running-config
7. Router(config)# enable secret NewPassword
8. Router(config)# config-register 0x2102
9. Router# write memory
10. Router# reload
Debug Komutları
! SSH debug
debug ip ssh
! AAA debug
debug aaa authentication
debug aaa authorization
! Login durumu
show login
show login failures
! Aktif kullanıcılar
show users
who
Özet ve Kontrol Listesi
Güvenlik Kontrol Listesi
- [ ] Enable secret tanımlı (enable password yerine)
- [ ] Service password-encryption aktif
- [ ] Console line şifre korumalı
- [ ] VTY lines SSH only (telnet kapalı)
- [ ] Exec-timeout ayarları yapılmış
- [ ] Local users tanımlı ve privilege seviyeleri uygun
- [ ] Banner mesajları eklenmiş
- [ ] SSH key size minimum 2048 bit
- [ ] Login failure protection aktif
- [ ] Unused VTY lines kapalı (transport input none)
Önerilen Okuma Kaynakları
- Cisco IOS Security Configuration Guide
- CCNA Security Official Cert Guide
- Cisco SAFE Reference Guide
- NSA Router Security Configuration Guide
Bu dokümantasyon Cisco IOS 15.x ve üzeri versiyonlar için hazırlanmıştır. Eski versiyonlarda bazı komutlar farklılık gösterebilir.