OpenSSH Sunucusu Kurulumu

CentOS 7 ve 8 sistemlerde openssh-server paketi varsayılan depolarda bulunur. yum install openssh-server veya dnf install openssh-server ile kurulum yapılır. systemctl enable --now sshd servisi başlatır ve açılışta otomatik çalışmasını sağlar. Kurulum sonrası ss -tlnp | grep 22 ile dinleme portunu doğrulayın.

CentOS Stream ve Rocky Linux türevlerinde paket adları aynıdır. Minimal kurulumda ağ aracı eksik olabilir; önce networkManager veya statik IP yapılandırmasını tamamlayın. Sanal makinede NAT modunda host-only ağ ile test edin.

Firewall ve SELinux

firewall-cmd --permanent --add-service=ssh ve firewall-cmd --reload komutları 22/tcp portunu açar. Özel port kullanıyorsanız --add-port=2222/tcp ekleyin. SELinux enforcing modda ssh_port_t bağlamını değiştirmek semanage port -a -t ssh_port_t -p tcp 2222 gerektirebilir.

cloud sağlayıcı güvenlik gruplarında da 22 veya seçtiğiniz port açık olmalıdır. AWS Security Group, Azure NSG veya Hetzner firewall kurallarını kontrol edin. Yalnızca yönetim IP aralığınıza izin vermek brute force saldırılarını azaltır.

İstemciden Bağlantı

Linux veya macOS'tan ssh kullanici@sunucu_ip komutu ile bağlanın. Windows 10 ve sonrasında OpenSSH istemcisi yerleşiktir. İlk bağlantıda host key fingerprint onayı istenir; MITM saldırılarına karşı beklenen fingerprint'i doğrulayın.

  • Parola yerine ed25519 anahtar çifti kullanın.
  • ssh-copy-id ile public key'i sunucuya aktarın.
  • /etc/ssh/sshd_config içinde PasswordAuthentication no yapın.
  • PermitRootLogin prohibit-password veya no tercih edin.
  • fail2ban ile tekrarlayan denemeleri engelleyin.

sshd_config Sertleştirme

Değişiklik sonrası sshd -t ile sözdizimi test edin ve systemctl restart sshd uygulayın. Aktif oturumu kapatmadan yeni terminalde test bağlantısı açın; kilitlenmeyi önlersiniz. MaxAuthTries ve LoginGraceTime değerlerini düşürmek saldırı yüzeyini küçültür.

Sorun Giderme

Connection refused genelde sshd kapalı veya firewall engeli demektir. Connection timed out ağ yolu veya güvenlik grubu sorunudur. Permission denied anahtar veya parola hatasıdır; /var/log/secure dosyasını inceleyin. CentOS 8'de root parola ile SSH varsayılan kapalı olabilir.

Jump host veya bastion üzerinden iç ağ sunucularına ProxyJump parametresi ile bağlanabilirsiniz. SSH config dosyasında Host blokları tekrarlayan bayrakları sadeleştirir.

Sonuç

CentOS SSH kurulumu birkaç komutla tamamlanır; asıl önemli adım güvenlik sertleştirmesidir. Anahtar tabanlı giriş ve kısıtlı firewall kuralı üretim sunucuları için minimum gereksinimdir.

SSH Sertleştirme

AllowUsers beyaz liste tanımlar. ChrootDirectory SFTP kısıtlaması sağlar. SSH-CA merkezi imza yönetimi sunar. ProxyJump iç ağ erişimini güvenli kılar. Bastion host tek giriş noktasıdır.

Container ve Kubernetes

Docker içinde sshd önerilmez; docker exec kullanın. Kubernetes node SSH bastion ile kısıtlanmalıdır. /var/log/secure başarısız girişleri kaydeder; fail2ban otomatik engeller. SELinux sshd_t context ihlali bağlantıyı reddeder.

Anahtar Yönetimi

ssh-keygen -t ed25519 modern eğri kullanır. Passphrase ile korunan anahtar çalınma durumunda ek güvenlik sağlar. Authorized_keys dosyasında from= kısıtlaması IP bazlı erişim tanımlar.

Match User bloğu farklı kullanıcılara farklı ayar uygular. MaxAuthTries brute force yavaşlatır. ClientAliveInterval bağlantı kopmasını önler.

CentOS 6 Özel Notlar

CentOS 6.9 OpenSSH eski algoritmalar içerebilir; Ciphers ve MACs satırını güncelleyin. SELinux permissive mod geçici test içindir; production enforcing kalmalıdır. Firewall iptables kuralları 22/tcp dışında kapatılmalıdır.

PAM two-factor google-authenticator modülü eklenebilir. TCP Wrappers hosts.allow ek filtre sağlar. Auditd komut satırı kaydı tutar.

Yedek Erişim

IPMI veya iLO out-of-band konsol SSH kilitlenmesinde kurtarma sağlar. Serial console headless sunucuda debug imkânı verir. Cloud provider web terminal acil erişim sunar.

Sonuç

CentOS 6.9 üzerinde SSH sunucusu kurulumu ve sertleştirme temel sistem yönetimi becerisidir. Anahtar tabanlı kimlik doğrulama parola tabanlı girişten üstündür. Fail2ban ve firewall kuralları brute force saldırılarını yavaşlatır. CentOS 6 EOL nedeniyle uzun vadede Rocky Linux veya AlmaLinux migrasyonu planlayın.

Log Rotation ve Audit

logrotate /var/log/secure dosyasını haftalık sıkıştırır. auditd -w /etc/passwd -p wa ile dosya değişikliği izlenir. rsyslog uzak SIEM sunucusuna TLS ile log iletebilir.

Servis Yönetimi

systemctl enable sshd açılışta otomatik başlatır. systemctl status sshd çalışma durumunu gösterir. firewall-cmd --permanent --add-service=ssh kalıcı kural ekler. semanage port -a -t ssh_port_t -p tcp 2222 alternatif port tanımlar.

SSH yapılandırma dosyası /etc/ssh/sshd_config düzenlendikten sonra sshd -t sözdizimi test eder. Başarılı test sonrası systemctl restart sshd uygulanır. Canlı oturumlar kesilmeden reload mümkün değildir; bakım penceresi planlayın.

SSH Anahtar ve Fail2ban

ed25519 anahtar çifti brute force'u etkisiz kılar. Fail2ban tekrarlayan başarısız girişleri banlar. PasswordAuthentication no öncesi anahtar girişini test edin.

Bastion Host ve CentOS Geçişi

ProxyJump ile iç sunuculara bağlanılır. AlmaLinux ve Rocky Linux CentOS 8 sonrası alternatiflerdir. firewalld --add-service=ssh port açar.

SELinux ve Port Değiştirme

SELinux enforcing sshd başlatmayı engelleyebilir. Port 2222 otomatik taramaları azaltır. Root login kapatılıp sudo yetkili kullanıcı tercih edilir.