İçeriğe geç

Docker ile basit sftp sunucusu kurmak

Merhaba,

Yakın zamanda elime geçen bir case’de istenen aşamalardan birisi, dockerize edilmiş bir sftp sunucusunun kurulması ve High Availability mimarisine göre AWS ortamında deploy edilmesiydi. Bu yazıda sunucuda yaptığım ayarların tamamını anlatmayacağım, sadece hızlı bir şekilde sftp sunucusunun Dockerfile üzerinden nasıl hazır build edileceğini ve olası troubleshooting eylemlerinden bahsedeceğim.

Dockerfile’ın oluşturulması

Aşağıdaki yapıyı olduğu gibi kopyalayabilirsiniz.

Mevcut imajdaki sshd_config dosyasında gerekli değişiklikler yine Dockerfile üzerinden sed vb. komutlarla da yapılabilir fakat daha pratik olması açısından kendi makinem üzerinde düzenlediğim sshd_config dosyasını mevcuttakini silerek yerine kopyaladım.

Son satırda Docker imajındaki root kullanıcısının parolasını “1” olarak belirledim, burayı kendinize göre değiştirebilirsiniz.

Ssh ayarlarında yaptığım kilit değişiklikler, publickey authentication kullanmak yerine password authentication kullanmak ve root kullanıcısının erişimine izin vermek oldu. Tabi ki best practice olarak root erişiminin verilmemesi ve anahtar çifti kullanılması güvenlik açısından önemli ayrıntılar ama bu örnekte o konulara girmiyorum. sshd_config dosyasını ve Dockerfile’ı aynı dizin içerisine aldıktan sonra:

komutunu giriyoruz ve imajımız oluşturuluyor. Oluşturduğumuz imajı çalıştırıyoruz:

Dilerseniz burada boştaki bir portu kullanarak ssh için onu kullanabilir veya client’tan sftp sunucusuna bağlantı gerçekleştirirken port forwarding yapabilirsiniz.

Container ID’sini “docker ps -lq” komutu ile aldıktan sonra:

komutuyla çalıştırdığımız container’ın IP adresini alıyoruz ve “sftp root@ip” ile sftp sunucusuna bağlantımızı gerçekleştiriyoruz.

Olası problemler

publickey auth hatası alıyorsanız sshd_config dosyasında

parametrelerinin comment modunda veya argümanlarının “no” olduğundan emin olun.

root kullanıcısının parolasını doğru girmenize rağmen giriş yapamıyorsanız:

parametresinin açık ve “yes” olarak set edildiğinden emin olun.

Çeşitli bağlantı problemleri yaşıyorsanız, iptables, SELinux veya firewalld servislerinde kısıtlama olup olmadığını kontrol edin.

Halen problem yaşıyorsanız “Better Call Deniz”:

denizparlak@protonmail.ch

İyi çalışmalar.

Tarih:DevOpsLinux

İlk Yorumu Siz Yapın

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

DenizParlak.