SFTP Nedir?
SFTP, SSH File Transfer Protocol olarak bilinir ve güvenli dosya transferi için kullanılan bir ağ protokolüdür. SFTP, FTP protokolünün aksine, verilerin şifrelenerek iletilmesini sağlar. Bu durum, veri transferini güvenli hale getirir ve yetkisiz erişimlerin önüne geçer. SFTP, genellikle SSH (Secure Shell) protokolü ile entegre bir biçimde çalışır ve dosya aktarımı sırasında bütünleşik bir güvenlik sağlamak amacıyla tasarlanmıştır.
SFTP’nin Avantajları
SFTP’nin diğer dosya transfer protokollerine göre birçok avantajı bulunur. Bunlar arasında:
– Güvenlik: SFTP, tüm verilerin SSL/TLS gibi güvenli bir kanaldan gönderilmesini sağlar. Bu, veri bütünlüğü ve gizliliği açısından önemli bir özelliktir.
– Yetkilendirme: SFTP, kullanıcı kimlik doğrulamasını gerçekleştirerek yalnızca yetkilendirilmiş kullanıcıların sisteme erişimini sağlar.
– Firewall Uyumu: SFTP, genellikle tek bir port (22) üzerinden çalıştığı için firewall ayarlarında kolaylık sağlar.
SFTP Sunucusu Kurulumu
SFTP sunucusu kurulumuna başlamadan önce, bir SSH sunucusunun kurulmuş olması gereklidir. Aşağıdaki adımlar, bir SFTP sunucusunun yapılandırılmasını kapsamaktadır.
1. SSH Sunucusunun Kurulumu: Linux tabanlı sistemlerde genellikle OpenSSH kullanılır. OpenSSH, birçok dağıtımda varsayılan olarak bulunmaktadır. Aşağıdaki komut kullanılarak kurulum gerçekleştirilebilir:
“`
sudo apt-get install openssh-server
“`
2. SSH Sunucusunun Kontrolü: Kurulumdan sonra, SSH sunucusunun çalışıp çalışmadığını kontrol etmek gerekmektedir. Bunun için şu komut kullanılabilir:
“`
sudo systemctl status ssh
“`
3. Kullanıcı Hesapları: SFTP için kullanıcı hesapları oluşturulmalıdır. Var olan bir kullanıcı hesabı da SFTP için kullanılabilir. Yeni bir kullanıcı oluşturmak için:
“`
sudo adduser sftpuser
“`
Bu komutla birlikte `sftpuser` isimli yeni bir kullanıcı oluşturulacaktır.
4. Kullanıcı Ayarları: SFTP erişimini sınırlamak için, `/etc/ssh/sshd_config` dosyasını düzenlemek gereklidir. Aşağıdaki satırlar eklenmelidir:
“`
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
“`
Bu ayarlar, `sftpuser` kullanıcısının yalnızca SFTP protokolü ile bağlanabilmesini sağlayacaktır.
5. Klasör İzinleri: ChrootDirectories için uygun klasör izinleri ayarlanmalıdır. Aşağıdaki komutları kullanarak gerekli izinler verilebilir:
“`
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/files
sudo chown sftpuser:sftpuser /home/sftpuser/files
“`
Bu komutlar, `sftpuser` kullanıcısının yalnızca belirli klasöre erişimini sağlayacaktır.
6. SSH Sunucusunu Yeniden Başlatma: Yapılandırma değişikliklerinin geçerli olması için SSH sunucusunu yeniden başlatmak gereklidir:
“`
sudo systemctl restart ssh
“`
SFTP İstemcisi Kullanımı
SFTP istemcisi, dosya transferi yapmak için kullanılabilir. Birçok SFTP istemcisi bulunmaktadır. Bunlardan bazıları grafik arayüze sahipken, bazıları komut satırından çalışmaktadır. Komut satırı üzerinden SFTP bağlantısı şu şekilde kurulabilir:
“`
sftp sftpuser@hostname
“`
Bu komut, `sftpuser` isimli kullanıcı ile belirli bir sunucuya bağlanmanızı sağlayacaktır. Giriş yapıldıktan sonra, dosyaları yüklemek veya indirmek için çeşitli komutlar kullanılabilir. Örneğin:
– Dosya yüklemek için: `put dosyaadi`
– Dosya indirmek için: `get dosyaadi`
– Klasör oluşturmak için: `mkdir klasoradi`
– Listede dosyaları görüntülemek için: `ls`
Firewall Ayarları
Eğer bir firewall yapılandırması mevcutsa, SFTP bağlantılarının başarılı bir şekilde gerçekleştirilmesi için uygun portların açık olması gerekmektedir. Genellikle SFTP, 22 numaralı port üzerinden çalışır. İlgili firewall ayarını güncellemek için şu komut kullanılabilir:
“`
sudo ufw allow 22/tcp
“`
Sorun Giderme
SFTP bağlantıları sırasında sorun yaşanıyorsa, aşağıdaki adımlar sorun giderme sürecinde yardımcı olabilir:
– Sunucu Durumunu Kontrol Etme: SSH sunucusunun çalışır durumda olup olmadığını kontrol etmek.
– SSH Konfigürasyonunu Kontrol Etme: `/etc/ssh/sshd_config` dosyasındaki ayarların doğru yapıldığını kontrol etmek.
– Log Dosyalarını İnceleme: Sorunu anlamak için `/var/log/auth.log` veya `/var/log/secure` dosyaları incelenebilir.
Bu adımlar, SFTP sunucusunun etkin bir şekilde yapılandırılmasına yardımcı olacaktır. Kullanıcıların güvenli bir şekilde dosya transferi yapabilmeleri için gerekli bütün önlemler alınmış olacaktır.