Jaminto melakukan pekerjaan yang baik untuk menjawab pertanyaan itu, tetapi saya baru-baru ini melalui proses sendiri dan ingin memperluas jawaban Jaminto.
Saya berasumsi bahwa Anda telah membuat instance EC2 dan telah mengaitkan Alamat IP Elastis dengannya.
Langkah # 1: Instal vsftpd
SSH ke server EC2 Anda. Tipe:
> sudo yum install vsftpd
Ini harus menginstal vsftpd.
Langkah # 2: Buka port FTP pada instance EC2 Anda
Selanjutnya, Anda harus membuka port FTP di server EC2 Anda. Masuk ke Konsol Manajemen AWS EC2 dan pilih Grup Keamanan dari pohon navigasi di sebelah kiri. Pilih grup keamanan yang ditugaskan untuk instance EC2 Anda. Kemudian pilih tab Masuk, lalu klik Edit:
Tambahkan dua Aturan TCP Kustom dengan rentang port 20-21 dan 1024-1048. Untuk Sumber, Anda dapat memilih 'Di Mana Saja'. Jika Anda memutuskan untuk mengatur Sumber ke alamat IP Anda sendiri, ketahuilah bahwa alamat IP Anda mungkin berubah jika sedang ditugaskan melalui DHCP.
Langkah # 3: Buat pembaruan untuk file vsftpd.conf
Edit file conf vsftpd Anda dengan mengetik:
> sudo vi /etc/vsftpd/vsftpd.conf
Nonaktifkan FTP anonim dengan mengubah baris ini:
anonymous_enable=YES
untuk
anonymous_enable=NO
Kemudian tambahkan baris berikut ke bagian bawah file vsftpd.conf:
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
File vsftpd.conf Anda akan terlihat seperti berikut - kecuali pastikan untuk mengganti pasv_address dengan alamat IP Anda yang menghadap publik:
Untuk menyimpan perubahan, tekan escape, lalu ketik :wq
, lalu tekan enter.
Langkah # 4: Mulai ulang vsftpd
Mulai ulang vsftpd dengan mengetik:
> sudo /etc/init.d/vsftpd restart
Anda akan melihat pesan yang terlihat seperti:
Jika ini tidak berhasil, coba:
> sudo /sbin/service vsftpd restart
Langkah # 5: Buat pengguna FTP
Jika Anda mengintip di / etc / vsftpd / user_list, Anda akan melihat yang berikut:
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
Ini pada dasarnya mengatakan, "Jangan izinkan pengguna ini mengakses FTP." vsftpd akan memungkinkan akses FTP ke pengguna yang tidak ada dalam daftar ini.
Jadi, untuk membuat akun FTP baru, Anda mungkin perlu membuat pengguna baru di server Anda. (Atau, jika Anda sudah memiliki akun pengguna yang tidak terdaftar di / etc / vsftpd / user_list, Anda dapat melompat ke langkah berikutnya.)
Membuat pengguna baru pada instance EC2 cukup sederhana. Misalnya, untuk membuat 'bret' pengguna, ketik:
> sudo adduser bret
> sudo passwd bret
Ini akan terlihat seperti apa:
Langkah # 6: Membatasi pengguna ke direktori home mereka
Pada titik ini, pengguna FTP Anda tidak terbatas pada direktori home mereka. Itu tidak terlalu aman, tetapi kita dapat memperbaikinya dengan mudah.
Edit file conf vsftpd Anda lagi dengan mengetik:
> sudo vi /etc/vsftpd/vsftpd.conf
Tidak berkomentar di luar garis:
chroot_local_user=YES
Seharusnya terlihat seperti ini setelah Anda selesai:
Mulai ulang server vsftpd lagi seperti ini:
> sudo /etc/init.d/vsftpd restart
Semua selesai!
Lampiran A: Bertahan dari reboot
vsftpd tidak secara otomatis memulai ketika server Anda melakukan booting. Jika Anda seperti saya, itu berarti bahwa setelah me-reboot instance EC2 Anda, Anda akan merasakan momen teror ketika FTP tampaknya rusak - tetapi pada kenyataannya, itu tidak berjalan !. Berikut cara mudah untuk memperbaikinya:
> sudo chkconfig --level 345 vsftpd on
Atau, jika Anda menggunakan redhat, cara lain untuk mengelola layanan Anda adalah dengan menggunakan antarmuka pengguna grafis yang bagus ini untuk mengontrol layanan mana yang harus dimulai secara otomatis:
> sudo ntsysv
Sekarang vsftpd akan secara otomatis memulai ketika server Anda melakukan boot up.
Lampiran B: Mengubah direktori home FTP pengguna
* CATATAN: Iman Sedighi telah memposting solusi yang lebih elegan untuk membatasi akses pengguna ke direktori tertentu. Silakan lihat solusi luar biasa yang diposting sebagai jawaban *
Anda mungkin ingin membuat pengguna dan membatasi akses FTP mereka ke folder tertentu, seperti / var / www. Untuk melakukan ini, Anda harus mengubah direktori home default pengguna:
> sudo usermod -d /var/www/ username
Dalam contoh khusus ini, biasanya memberikan izin pengguna ke grup 'www', yang sering dikaitkan dengan folder / var / www:
> sudo usermod -a -G www username