Sunucuma SFTP Bağlantısı Nasıl Yapılır?
Linux sunucunuza güvenli bir şekilde dosya transferi yapmak, web sitenizi yönetmek veya sunucu yapılandırmalarını güncellemek için SFTP (SSH File Transfer Protocol) bağlantısı kurmak hayati öneme sahiptir. Geleneksel FTP’nin aksine, SFTP bağlantıları şifreli bir kanal üzerinden gerçekleşir, bu da verilerinizin aktarımı sırasında yetkisiz erişime karşı korunmasını sağlar. Bu rehberde, sunucunuza SFTP bağlantısı kurmanın tüm detaylarını, gerekli parametreleri ve dikkat etmeniz gereken güvenlik önlemlerini adım adım ele alacağız.
SFTP Nedir ve Neden Tercih Edilmelidir?
SFTP, SSH (Secure Shell) protokolü üzerinden dosya transferi sağlayan bir ağ protokolüdür. SSH, uzaktaki bir bilgisayara güvenli bir şekilde komut çalıştırmak için kullanılırken, SFTP bu güvenli kanal üzerinden dosya yükleme, indirme, silme ve dizin oluşturma gibi işlemleri gerçekleştirir. Adından da anlaşılacağı gibi, “Secure” (Güvenli) kelimesi, SFTP’nin sunduğu en büyük avantajı vurgular.
Güvenlik Avantajları
SFTP, transfer edilen tüm verileri şifreler. Bu, kullanıcı adları, şifreler ve dosya içerikleri dahil olmak üzere tüm iletişimin üçüncü şahıslar tarafından ele geçirilmesini ve okunmasını imkansız hale getirir. Geleneksel FTP ise verileri şifrelemeden, yani düz metin olarak gönderir, bu da hassas bilgilerin kötü niyetli kişiler tarafından kolayca ele geçirilmesine yol açabilir.
FTP ile Farkları
SFTP ve FTP arasındaki temel fark güvenliktir. FTP, ayrı bir kontrol ve veri kanalı kullanırken, SFTP tek bir SSH bağlantısı üzerinden hem komutları hem de veriyi şifreli olarak taşır. Bu, SFTP’yi modern ve güvenli dosya transferi ihtiyaçları için tartışmasız daha iyi bir seçenek haline getirir. Aşağıdaki tablo, bu iki protokol arasındaki temel farkları özetlemektedir:
| Özellik | FTP (File Transfer Protocol) | SFTP (SSH File Transfer Protocol) |
|---|---|---|
| Güvenlik | Şifresiz (Düz Metin) | Şifreli (SSH Üzerinden) |
| Port | 21 (Kontrol), 20 (Veri) | 22 (SSH Portu, Genellikle) |
| Kimlik Doğrulama | Kullanıcı adı/Şifre | Kullanıcı adı/Şifre, SSH Anahtarları |
| Veri Bütünlüğü | Sağlamaz | Sağlar (CRC kontrolü ile) |
| Ağ Geçidi İhtiyacı | Karmaşık olabilir | Daha basittir |
SFTP Bağlantısı İçin Gerekli Önkoşullar
SFTP bağlantısı kurmadan önce sunucunuzda bazı temel ayarlamaların yapılmış olması gerekir. Genellikle Linux sunucularda SSH varsayılan olarak etkindir, bu da SFTP için gerekli altyapının hazır olduğu anlamına gelir.
SSH Erişimi ve Port
SFTP, SSH üzerinden çalıştığı için sunucunuzda SSH hizmetinin aktif olması ve dışarıdan erişime açık bir portta dinliyor olması gerekir. Varsayılan SSH portu 22’dir, ancak güvenlik amacıyla bu port genellikle değiştirilir. Sunucu yöneticinizden veya sunucu sağlayıcınızdan doğru SSH portunu öğrenmeniz önemlidir.
Kullanıcı Adı ve Şifre
SFTP bağlantısı için sunucuda geçerli bir kullanıcı hesabına ve bu hesabın şifresine ihtiyacınız vardır. Çoğu durumda, sunucu kurulumunda size verilen ‘root’ kullanıcı adı ve şifresi kullanılabilir. Ancak güvenlik nedeniyle, dosya transferleri için ayrı, daha az yetkili bir kullanıcı hesabı oluşturmak daha iyi bir uygulamadır.
Popüler SFTP İstemcileri ile Bağlantı Adımları
SFTP bağlantısı kurmak için birçok farklı istemci yazılımı bulunmaktadır. En popüler ve yaygın kullanılanlardan ikisi FileZilla ve WinSCP’dir. Her iki istemci de kullanıcı dostu arayüzleri ve zengin özellik setleri ile öne çıkar.
FileZilla ile SFTP Bağlantısı
FileZilla, Windows, macOS ve Linux platformlarında kullanılabilen açık kaynaklı ve ücretsiz bir FTP/SFTP istemcisidir.
Adım 1: İstemciyi İndirme ve Kurma
FileZilla’nın resmi web sitesinden (filezilla-project.org) istemci sürümünü indirip bilgisayarınıza kurun.
Adım 2: Bağlantı Bilgilerini Girme
FileZilla’yı açtıktan sonra, üst menüde yer alan ‘Dosya’ -> ‘Site Yöneticisi’ne gidin. Yeni bir site oluşturmak için ‘Yeni site’ butonuna tıklayın ve aşağıdaki bilgileri doldurun:
- Protokol: SFTP – SSH File Transfer Protocol
- Sunucu: Sunucunuzun IP adresi veya alan adı (örn:
sunucuipadresi) - Port: SSH portunuz (varsayılan 22, ancak sunucunuzun özel portunu kullanın)
- Oturum Açma Türü: Normal
- Kullanıcı: Sunucu kullanıcı adınız (örn:
root) - Parola: Sunucu şifreniz (örn:
root şifresi)
Adım 3: Bağlantıyı Kurma
Bilgileri girdikten sonra ‘Bağlan’ butonuna tıklayın. İlk bağlantıda sunucunun anahtar parmak izini kabul etmeniz istenebilir. Bu, sunucunun kimliğini doğrulamanızı sağlar. Onayladıktan sonra bağlantı kurulacak ve sunucunuzdaki dosya ve dizinleri sağ taraftaki pencerede görebileceksiniz.
WinSCP ile SFTP Bağlantısı
WinSCP, özellikle Windows kullanıcıları arasında popüler olan başka bir ücretsiz ve açık kaynaklı SFTP, FTP, SCP ve WebDAV istemcisidir.
Adım 1: İstemciyi İndirme ve Kurma
WinSCP’nin resmi web sitesinden (winscp.net) istemciyi indirip bilgisayarınıza kurun.
Adım 2: Oturum Açma Penceresi
WinSCP’yi başlattığınızda doğrudan ‘Oturum Açma’ penceresiyle karşılaşırsınız. Burada bağlantı bilgilerinizi gireceksiniz:
- Dosya protokolü: SFTP
- Ana bilgisayar adı: Sunucunuzun IP adresi veya alan adı (örn:
sunucuipadresi) - Port numarası: SSH portunuz (varsayılan 22, ancak sunucunuzun özel portunu kullanın)
- Kullanıcı adı: Sunucu kullanıcı adınız (örn:
root) - Parola: Sunucu şifreniz (örn:
root şifresi)
Adım 3: Bağlantı ve Kimlik Doğrulama
Bilgileri girdikten sonra ‘Oturum Aç’ butonuna tıklayın. FileZilla’da olduğu gibi, ilk bağlantıda sunucunun anahtar parmak izini kabul etmeniz istenebilir. Bu adımı onayladıktan sonra bağlantı kurulacak ve sunucunuzun dosya sistemini WinSCP arayüzünde görüntüleyebileceksiniz.
Bağlantı Parametrelerinin Detaylı Açıklaması
Her SFTP bağlantısı için girmeniz gereken dört temel parametre vardır. Bu parametrelerin doğru ve eksiksiz girilmesi bağlantının başarılı olması için kritik öneme sahiptir.
Sunucu Adresi/IP
Bu, bağlanmak istediğiniz Linux sunucusunun IP adresidir (örn: 192.168.1.100) veya bir alan adı (örn: sunucum.com) olabilir. Eğer sunucunuz bir alan adı üzerinden erişilebiliyorsa, alan adını kullanmak daha pratik olabilir.
Kullanıcı Adı
Sunucunuzda SFTP erişimi olan bir kullanıcı hesabının adıdır. Çoğu zaman ilk kurulumda ‘root’ kullanıcısı ile bağlantı kurulur. Ancak güvenlik nedeniyle, dosya transferleri için belirli dizinlere erişim izni olan, daha az yetkili bir kullanıcı oluşturulması önerilir.
Şifre
Belirttiğiniz kullanıcı adına ait şifredir. Karmaşık ve güçlü bir şifre kullanmak, sunucunuzun güvenliği açısından çok önemlidir. SSH anahtarları ile kimlik doğrulama, şifreye dayalı kimlik doğrulamadan daha güvenli bir alternatiftir.
Port
SSH hizmetinin sunucunuzda dinlediği port numarasıdır. Varsayılan port 22’dir. Ancak, yaygın saldırılardan korunmak için birçok sunucu yöneticisi SSH portunu farklı bir numaraya (örn: 2222 veya rastgele yüksek bir port numarası) değiştirir. Bu portu doğru girmeniz, bağlantının kurulabilmesi için zorunludur.
Güvenlik ve En İyi Uygulamalar
SFTP bağlantısının kendisi güvenli olsa da, bağlantı kurarken ve dosya transferi yaparken dikkat etmeniz gereken bazı önemli güvenlik uygulamaları vardır.
Root Kullanıcısı ile Bağlantıdan Kaçınma
Kaynak makalede de belirtildiği gibi, ‘root’ kullanıcısı ile doğrudan dosya transferi yapmak, sunucunuzda sahiplik sorunlarına yol açabilir. Root kullanıcısı, Linux sistemlerindeki en yetkili kullanıcıdır ve tüm dosya ve dizinler üzerinde tam kontrole sahiptir. Eğer root ile dosya yüklerseniz, bu dosyaların sahipliği ‘root’ olarak atanır. Web sunucusu (Apache, Nginx) gibi hizmetler genellikle ‘www-data’ veya ‘nginx’ gibi daha az yetkili kullanıcılar altında çalışır. Bu durumda, root tarafından yüklenen dosyalara web sunucusu erişemeyebilir veya yazma izni olmayabilir, bu da web sitenizin çalışmamasına veya hatalara neden olabilir.
Dosya Sahipliği ve İzin Sorunları
Bu tür sorunları önlemek için iki ana yaklaşım vardır:
- Özel SFTP Kullanıcısı Oluşturma: Web sitenizin dosyalarını barındıran dizine (örn:
/var/www/html) erişim izni olan, ancak sistem genelinde root yetkilerine sahip olmayan özel bir SFTP kullanıcısı oluşturun. Bu kullanıcı ile dosya transferi yaptığınızda, dosyaların sahipliği bu kullanıcıya ait olacak ve web sunucusunun erişim sorunları yaşaması engellenecektir. - Yükleme Sonrası İzinleri Ayarlama: Eğer root ile yükleme yapmak zorundaysanız, yükleme işleminden sonra SSH üzerinden bağlanarak dosya sahipliklerini ve izinlerini düzeltmeniz gerekir.
`chown` ve `chmod` Kullanımı
Dosya sahipliğini değiştirmek için chown komutunu, dosya ve dizin izinlerini değiştirmek için ise chmod komutunu kullanabilirsiniz. Örneğin:
sudo chown -R www-data:www-data /var/www/html/siteadi: Bu komut, belirtilen dizin ve altındaki tüm dosyaların sahipliğini ‘www-data’ kullanıcısına ve grubuna atar.sudo find /var/www/html/siteadi -type d -exec chmod 755 {} ;: Diziler için 755 izinlerini ayarlar (okuma, yazma, çalıştırma sahibi için; okuma ve çalıştırma grup ve diğerleri için).sudo find /var/www/html/siteadi -type f -exec chmod 644 {} ;: Dosyalar için 644 izinlerini ayarlar (okuma ve yazma sahibi için; okuma grup ve diğerleri için).
SSH Anahtarları ile Kimlik Doğrulama
Şifreye dayalı kimlik doğrulama yerine SSH anahtarları kullanmak, güvenliği önemli ölçüde artırır. SSH anahtarları, bir çift anahtardan (bir genel, bir özel) oluşur. Genel anahtar sunucuya yüklenirken, özel anahtar yerel bilgisayarınızda güvenli bir şekilde saklanır. Bu yöntem, kaba kuvvet saldırılarına karşı çok daha dirençlidir.
Güvenli Port Kullanımı
Varsayılan SSH portu olan 22’yi değiştirmek, sunucunuza yönelik otomatik bot saldırılarının büyük bir kısmını engellemeye yardımcı olabilir. Daha az bilinen bir port numarası kullanmak, doğrudan bir güvenlik açığı olmasa da, saldırı yüzeyini daraltır.
SFTP Kullanırken Karşılaşılabilecek Yaygın Sorunlar ve Çözümleri
SFTP bağlantısı kurmaya çalışırken veya dosya transfer ederken bazı sorunlarla karşılaşabilirsiniz. İşte en yaygın olanlar ve çözümleri:
Bağlantı Reddedildi
Bu genellikle yanlış IP adresi/alan adı, yanlış port numarası veya sunucudaki güvenlik duvarı (firewall) ayarları nedeniyle oluşur. Sunucunuzun IP adresini ve SSH portunu doğru girdiğinizden emin olun. Ayrıca, sunucunuzdaki güvenlik duvarının SSH portuna dışarıdan erişime izin verdiğinden emin olun.
Yanlış Kimlik Bilgileri
Kullanıcı adı veya şifrenin yanlış girilmesi durumunda bu hatayı alırsınız. Kullanıcı adınızı ve şifrenizi dikkatlice kontrol edin. Eğer SSH anahtarı kullanıyorsanız, anahtar dosyasının doğru olduğundan ve parolasının (passphrase) doğru girildiğinden emin olun.
Zaman Aşımı
Bağlantı denemesinin belirli bir süre içinde yanıt alamaması durumunda zaman aşımı hatası oluşur. Bu, genellikle ağ bağlantı sorunları, sunucunun aşırı yüklenmesi veya güvenlik duvarı engellemeleri nedeniyle olabilir. İnternet bağlantınızı kontrol edin ve sunucunun durumunu kontrol edin.
Dosya İzni Hataları
Dosya yüklemeye veya düzenlemeye çalışırken ‘İzin reddedildi’ gibi hatalar alıyorsanız, bu genellikle dosya veya dizin izinlerinin doğru ayarlanmadığı anlamına gelir. Yukarıda bahsedilen chown ve chmod komutlarını kullanarak izinleri düzeltmeniz gerekebilir.
SFTP, sunucu yönetimi ve dosya transferleri için vazgeçilmez bir araçtır. Doğru yapılandırma ve güvenlik uygulamalarıyla, verilerinizi güvenle aktarabilir ve sunucunuzun bütünlüğünü koruyabilirsiniz. Bu rehberdeki adımları takip ederek ve önerilen güvenlik önlemlerine uyarak, Linux sunucunuzla güvenli ve sorunsuz bir SFTP bağlantısı kurabilir, web sitenizin veya uygulamalarınızın dosyalarını kolayca yönetebilirsiniz. Unutmayın, herhangi bir sunucu işlemi yaparken daima dikkatli olmak ve bilginiz dahilinde hareket etmek önemlidir.

