GNU/Linux >> Belajar Linux >  >> Linux

Siapkan pengguna SFTP di sistem berbasis Linux

Artikel ini menunjukkan cara membuat pengguna SSH File Transfer Protocol (SFTP) aman yang dibatasi atau di-jail ke direktori home mereka.

PERINGATAN :Jangan mencoba memenjarakan pengguna root. Hanya penjarakan pengguna tambahan sehingga Anda tidak mencegah pengguna root melakukan operasi dengan benar.

Sebelum Anda mulai, tinjau praktik terbaik berikut:

  • Direktori beranda pengguna SFTP harus dimiliki oleh root:root . Direktori lain dapat (dan harus) dimiliki (dan dapat ditulis) oleh pengguna.

  • Penting untuk memastikan pengguna chroot memiliki akses tulis ke DocumentRoot yang ditentukan.

  • Penting untuk masuk dan menguji apakah pengguna SFTP berfungsi dengan benar.

  • Penting untuk memastikan bahwa pengguna SFTP yang ditambahkan ditambahkan ke grup SFTP.

  • Petunjuk ini adalah untuk menambahkan satu domain (pengguna SFTP), tetapi Anda berpotensi menggunakannya untuk mengelola beberapa domain.

Penting :Langkah-langkah dalam artikel ini tidak bekerja dengan RHEL® 7 atau CentOS® 7. Seperti halnya operasi chroot lainnya, konfigurasi ini tidak menyediakan akses tulis ke direktori chroot. Hanya subdirektori dari chroot jail yang dapat ditulis. Ini karena cara izin root diinterpretasikan di direktori tingkat yang lebih tinggi tempat pengguna SFTP berada.

Gunakan langkah-langkah berikut untuk membuat pengguna SFTP aman yang di-jail ke direktori home mereka:

  1. Tambahkan grup SFTP yang ingin Anda gunakan untuk akses SFTP dengan menjalankan perintah berikut:

    groupadd sftponly
    
  2. Tambahkan pengguna SFTP dengan menjalankan perintah berikut, menggantikan myuser dengan nama pengguna:

    useradd -d /var/www/vhosts/domain.com -s /bin/false -G sftponly myuser
    
  3. Buat kata sandi untuk pengguna dengan menjalankan perintah berikut, menggantikan myuser dengan nama pengguna:

    passwd myuser
    
  4. Buka sshd_config file yang menyimpan konfigurasi SSH dan SFTP dengan menjalankan perintah berikut:

    nano /etc/ssh/sshd_config
    
  5. Komentari baris berikut dengan menambahkan simbol hash (#) di awal, seperti yang ditunjukkan pada contoh berikut:

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  6. Tambahkan baris berikut tepat di bawah baris yang baru saja Anda komentari:

    Subsystem sftp internal-sftp
    
  7. Tambahkan kode berikut ke bagian bawah file:

    Match Group sftponly
         ChrootDirectory %h
         X11Forwarding no
         AllowTCPForwarding no
         ForceCommand internal-sftp
    
  8. Jalankan sshd perintah untuk menguji perubahan, lalu mulai ulang layanan.

    Penting :Jika langkah ini dilakukan dengan tidak benar, ini dapat merusak konfigurasi SSHD Anda.

    sshd -t
    service sshd restart
    

Pastikan bahwa izin file pada sistem file sudah benar

Selanjutnya, Anda perlu memverifikasi bahwa izin file pada sistem file sudah benar agar jail SFTP berfungsi dengan benar.

  1. Verifikasi bahwa SFTPROOT direktori (direktori home yang Anda atur saat Anda menambahkan pengguna SSH) memiliki hak user:root group:root izin dengan menjalankan perintah berikut:

    chown root:root /var/www/vhosts/mywebsite.com/
    
  2. Untuk memverifikasi bahwa login SFTP berfungsi, sambungkan ke SFTP dengan menjalankan perintah berikut, menggantikan myuser dengan pengguna yang telah Anda pilih, seperti yang ditunjukkan pada contoh berikut:

    sftp myuser@localhost
    myuser@localhost's password:
    Connected to localhost.
    
  3. Uji daftar direktori dengan menjalankan perintah berikut:

    sftp> ls -al
    

    Outputnya harus mirip dengan contoh berikut:

    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 .
    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 ..
    drwxr-xr-x    2 5001     33           4096 Sep 28 08:52 html
    -rw-r--r--    1 0        0               0 Sep 28 08:09 test.php
    

    Catatan :Gunakan cd perintah untuk masuk ke direktori HTML (yang terletak di /var/www/vhosts/mywebsite.com/html karena website 'documentroot' satu tingkat di bawah root pengguna SSH SFTP direktori. Anda harus menggunakan pengaturan ini karena www-data . Anda pengguna (pengguna server web) memiliki root user:group izin pada filenya.

  4. Uji kemampuan mengunggah file dengan menjalankan perintah berikut:

    sftp> cd html
    sftp> put test.php
    Uploading test.php to /html/test.php
    test.php                                                                                                                                                                                                                                        
    100%    12K     20.0KB/s   00:00
    
  5. Uji kemampuan mengunduh file dengan menjalankan perintah berikut:

    sftp> get test.php
    Fetching /test.php to test.php
    
  6. Tampilkan direktori kerja saat ini dengan menjalankan perintah berikut:

    sftp> pwd
    
    Remote working directory: /html
    

    SFTP hanya melihat file di /var/www/vhosts/mywebsite.com/ direktori, dan menganggap direktori ini sebagai direktori root ('/') tingkat tertinggi.

  7. Gunakan langkah-langkah berikut untuk terhubung ke SFTP dan menyiapkan klien SFTP Anda:

    1. Instal Cyberduck®.
    2. Buka aplikasi Cyberduck.
    3. Di bagian atas jendela, klik ikon untuk Buka Koneksi .
    4. Di menu tarik-turun, pilih SFTP (Protokol Transfer File SSH) .
    5. Di Server kolom, masukkan alamat Internet Protocol (IP) untuk server.
    6. Masukkan nama pengguna dan sandi yang Anda gunakan untuk terhubung ke SFTP.
    7. Klik Hubungkan .

Penting :Selalu uji situs web Anda setelah Anda mengubah izin file.


Linux
  1. Pengguna dan Grup

  2. Daftar Pengguna di Linux - Metode terbaik

  3. Cara mengatur server SFTP di Server Debian 11

  1. Cara Mendaftar Pengguna di CentOS 7

  2. Cara:Administrasi Pengguna FreeBSD

  3. Tambahkan pengguna WordPress baru

  1. Cara Membuat Banyak Akun Pengguna di Linux

  2. Cara Mengatur Kunci SSH di Debian

  3. Bagaimana cara mengatur umask untuk pengguna sistem?