Pada postingan kali ini kita akan mencoba setup server SFTP menggunakan server OpenSSH dan setup klien FTP menggunakan WinSCP
Siapkan server SFTP menggunakan file zip OpenSSH di versi Windows apa pun
- pergi ke link https://github.com/PowerShell/Win32-OpenSSH/releases
- Download the OpenSSH-Win64.zip file from the latest release
- ekstrak folder zip yang didownload ke path folder:
C:\Program Files\OpenSSH
- Buka prompt perintah sebagai Administrator dan gunakan perintah berikut untuk mengubah ke direktori openssh
cd "C:\Program Files\OpenSSH"
- Jalankan Perintah berikut pada powershell
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
- Sekarang layanan windows sshd dan ssh-agent harus diinstal. Ini dapat dilihat di jendela services.msc
- Ubah jenis startup menjadi Otomatis dari Manual dan mulai layanan sshd dan sshd-agent. Karena kami telah menetapkan jenis startup sebagai otomatis, kedua layanan akan dimulai secara otomatis saat sistem dimulai.
- Buat kebijakan firewall yang sesuai untuk mengekspos port SFTP 22 ke sistem lokal atau jarak jauh jika diperlukan
- Now SFTP server accepts connections using username and password authentication
- Sekarang server SFTP menerima koneksi menggunakan otentikasi nama pengguna dan kata sandi
Siapkan server SFTP di versi windows yang lebih baru
- Klik tombol windows dan cari “kelola fitur opsional”
- Klik “tambahkan fitur” dan cari server OpenSSH dan instal
- Sekarang Buka server SSH dan layanan agen Otentikasi OpenSSH harus diinstal di jendela services.msc
- Anda dapat mengklik kanan dan mengubah jenis permulaan kedua layanan menjadi otomatis jika Anda ingin layanan dimulai saat sistem dinyalakan
- Buat kebijakan firewall yang sesuai untuk mengekspos port SFTP 22 ke sistem lokal atau jarak jauh jika diperlukan
- Sekarang server SFTP menerima koneksi menggunakan otentikasi nama pengguna dan kata sandi
Config sshd.config untuk login menggunakan password
- buka c:/programData/ssh
- edit notepad sshd.config seperti berikut:
- hapus tanda comment # dan ubah menjadi perintah berikut
ChrootDirectory "C:/"
- restart service openssh server dan client
- ujicoba login menggunakan sftp client(WinSCP) menggunakan credential windows server anda
Kelemahan otentikasi berbasis kata sandi di SFTP
- Kredensial pengguna OS dari sistem operasi server harus dibagikan dengan klien SFTP yang tidak diinginkan
- Kata sandi pengguna OS harus diubah unManfaat menggunakan otentikasi berbasis kunci publik di SFTPtuk mengubah kata sandi klien SFTP
- Kata sandi pengguna OS akan dikirimkan melalui jaringan
Manfaat menggunakan otentikasi berbasis kunci publik di SFTP
- Jenis otentikasi ini lebih kuat dan aman
- Klien SFTP tidak perlu mengetahui kata sandi pengguna OS
- Beberapa klien dapat menggunakan kunci pribadi yang berbeda untuk satu pengguna OS
- Kunci pribadi dapat diubah dengan mudah dari waktu ke waktu tanpa mengubah kata sandi OS pengguna
- Akses klien SFTP dapat dengan mudah dicabut hanya dengan menghapus kunci publik klien dari daftar yang diautentikasi, tanpa mengunci atau mengubah akun pengguna OS
Siapkan otentikasi berbasis kunci publik di windows
Step 1 – Create a public and private key pair
- Kunci publik dan pribadi dapat dibuat menggunakan salah satu metode di bawah ini
- Kunci publik akan ditambahkan ke file teks di server SFTP
- Kunci pribadi akan digunakan oleh klien untuk diautentikasi dan membuat sesi dengan server SFTP
Metode 1 (Lebih disukai) – Menggunakan ssh-keygen.exe
- ssh-keygen.exe dapat ditemukan di dalam folder file program seperti C:\Program Files\OpenSSH
- Buka jendela perintah di folder itu dan jalankan ssh-keygen.exe. Tekan enter hingga eksekusi selesai seperti terlihat pada gambar di bawah ini
- Selama proses pembuatan kunci, proteksi kata sandi dapat diatur ke kunci pribadi dengan memasukkan frasa sandi seperti yang ditunjukkan pada gambar di atas. Hal ini memastikan perlindungan tambahan jika kunci privat berada di tangan yang salah
- Kunci publik akan disimpan sebagai C:\Users\<username>\.ssh\id_rsa.pub dan kunci pribadi akan disimpan sebagai C:\Users\<username>\.ssh\id_rsa
Metode 2 – Menggunakan puttygen.exe
- Unduh puttygen.exe dari https://www.puttygen.com/download-putty#Download_PuTTY_073_for_Windows
- Jalankan puttygen.exe, pastikan pengaturannya seperti gambar di bawah dan klik tombol Generate. Pindahkan kursor ke area kosong untuk menghasilkan keacakan. Kemudian proses pembuatan kunci akan selesai
- Sebelum mengklik tombol Hasilkan, Frasa sandi kunci dapat dimasukkan jika kita ingin melindungi kunci pribadi yang dihasilkan dengan kata sandi
- Klik pada tombol simpan kunci publik dan simpan kunci pribadi untuk menyimpan kunci publik dan pribadi ke dalam file seperti pblic_key dan prv_key.ppk
Langkah 2 – Tempatkan kunci publik di server SFTP
- Di server SFTP, gunakan editor teks seperti notepad dan buka file otor_keys yang terletak di C:\Users\<username>\.ssh\authorized_keys . Jika file tidak ada, buat file baru di lokasi ini.
- Salin teks dalam file kunci publik (seperti id_rsa.pub) yang dibuat pada langkah sebelumnya dan tempel teks di dalam file otor_keys di baris baru.
* Dengan cara ini, beberapa kunci publik dapat ditambahkan satu di bawah yang lain dalam file teks ini sehingga dapat diautentikasi oleh server SFTP
- Perhatikan juga bahwa file otor_keys tidak boleh memiliki ekstensi apa pun seperti .txt, .docx, dll.
Langkah 3 – Ubah daftar kontrol akses (ACL) dari file otor_keys di server SFTP
- Daftar kontrol akses (ACL) dari file otor_keys harus dikonfigurasi sedemikian rupa sehingga hanya Administrator dan pengguna Sistem yang memiliki akses ke file ini
- Untuk mencapai hal ini, buka command prompt sebagai administrator dan jalankan perintah berikut
icacls.exe "C:\Users\<username>\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
* Anda dapat memverifikasi daftar kontrol akses file otor_keys dengan klik kanan pada file->properties->tab keamanan seperti yang ditunjukkan pada gambar di bawah
Langkah 4 – Edit file sshd_config server SFTP untuk mengonfigurasi otentikasi berbasis kunci publik
- File sshd_config terletak di folder C:\ProgramData\ssh server SFTP
- Buka dengan editor teks seperti Notepad atau kode VS
- Ubah file sshd_config untuk memastikan baris berikut ada di file.
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
Subsystem sftp internal-sftp
Match User <username>
X11Forwarding no
AllowTcpForwarding no
PermitTTY no
ForceCommand internal-sftp
PasswordAuthentication no
Ganti <nama pengguna> dengan nama pengguna OS
- hilangkan tanda komen # pada baris dibawah ini
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Membatasi pengguna ke suatu folder (disebut juga jailing folder)
- Menggunakan ChrootDirectory di file sshd_config, kita dapat membatasi pengguna SFTP ke folder tertentu. Pengguna tidak dapat menavigasi ke folder induk mana pun dari folder yang ditentukan
- Ini juga disebut jailing folder. Ini menambah keamanan ekstra ke server SFTP
- Untuk mencapai folder jailing, edit file sshd_config yang terletak di folder C:\ProgramData\ssh server SFTP seperti yang ditunjukkan di bawah ini
Match User <username>
ChrootDirectory ~/Pictures/Screenshots
X11Forwarding no
AllowTcpForwarding no
PermitTTY no
ForceCommand internal-sftp
PasswordAuthentication no
- Karena ChrootDirectory digunakan dalam file sshd_config, pengguna SFTP tidak dapat menavigasi ke folder induk mana pun dari C:\Users\Nagasudhir\Pictures\Screenshots
Siapkan klien SFTP di windows menggunakan WinSCP
- Unduh WinSCP di https://winscp.net/eng/download.php
- Jalankan file executable yang diunduh dan selesaikan instalasi
- Buka Aplikasi WinSCP
- klik new session
- atur protocol as SFTP, port as 22, hostname diisi localhost, masukan username. Password tidak dibutuhkan untuk public key based authentication.
- Untuk masuk dengan otentikasi berbasis kunci publik, klik tombol “Lanjutan”, lalu jendela pop-up akan terbuka. Di panel kiri, pilih menu “Otentikasi” di bawah bagian SSH. Telusuri file kunci pribadi (file id_rsa). Setelah mengunggah file, klik tombol OK
* Terakhir klik login. Sekarang WinSCP terhubung ke server SFTP - Kita dapat menyalin, menempel, mengganti nama, menghapus file server SFTP seperti halnya file explorer