Jaminto đã làm rất tốt khi trả lời câu hỏi, nhưng gần đây tôi đã tự mình trải qua quá trình và muốn mở rộng câu trả lời của Jaminto.
Tôi giả sử rằng bạn đã tạo một phiên bản EC2 và đã liên kết Địa chỉ IP đàn hồi với nó.
Bước # 1: Cài đặt vsftpd
SSH đến máy chủ EC2 của bạn. Kiểu:
> sudo yum install vsftpd
Điều này nên cài đặt vsftpd.
Bước # 2: Mở các cổng FTP trên phiên bản EC2 của bạn
Tiếp theo, bạn sẽ cần mở các cổng FTP trên máy chủ EC2 của mình. Đăng nhập vào Bảng điều khiển quản lý AWS EC2 và chọn Nhóm bảo mật từ cây điều hướng bên trái. Chọn nhóm bảo mật được gán cho thể hiện EC2 của bạn. Sau đó chọn tab Trong, sau đó nhấp vào Chỉnh sửa:
Thêm hai Quy tắc TCP tùy chỉnh với phạm vi cổng 20-21 và 1024-1048. Đối với Nguồn, bạn có thể chọn 'Mọi nơi'. Nếu bạn quyết định đặt Nguồn thành địa chỉ IP của riêng bạn, hãy lưu ý rằng địa chỉ IP của bạn có thể thay đổi nếu nó được gán qua DHCP.
Bước # 3: Thực hiện cập nhật cho tập tin vsftpd.conf
Chỉnh sửa tập tin conf vsftpd của bạn bằng cách gõ:
> sudo vi /etc/vsftpd/vsftpd.conf
Vô hiệu hóa FTP ẩn danh bằng cách thay đổi dòng này:
anonymous_enable=YES
đến
anonymous_enable=NO
Sau đó thêm các dòng sau vào dưới cùng của tệp vsftpd.conf:
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
Tệp vsftpd.conf của bạn sẽ trông giống như sau - ngoại trừ đảm bảo thay thế pasv_address bằng địa chỉ IP đối mặt công khai của bạn:
Để lưu các thay đổi, nhấn thoát, sau đó nhập :wq
, sau đó nhấn enter.
Bước # 4: Khởi động lại vsftpd
Khởi động lại vsftpd bằng cách gõ:
> sudo /etc/init.d/vsftpd restart
Bạn sẽ thấy một thông báo giống như:
Nếu điều này không hiệu quả, hãy thử:
> sudo /sbin/service vsftpd restart
Bước # 5: Tạo người dùng FTP
Nếu bạn xem qua / etc / vsftpd / user_list, bạn sẽ thấy như sau:
# 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
Điều này về cơ bản là nói, "Đừng cho phép những người dùng này truy cập FTP." vsftpd sẽ cho phép FTP truy cập vào bất kỳ người dùng nào không có trong danh sách này.
Vì vậy, để tạo tài khoản FTP mới, bạn có thể cần tạo một người dùng mới trên máy chủ của mình. (Hoặc, nếu bạn đã có tài khoản người dùng không được liệt kê trong / etc / vsftpd / user_list, bạn có thể bỏ qua bước tiếp theo.)
Tạo một người dùng mới trên một ví dụ EC2 khá đơn giản. Ví dụ: để tạo 'bret' cho người dùng, hãy nhập:
> sudo adduser bret
> sudo passwd bret
Đây là những gì nó sẽ trông như thế nào:
Bước # 6: Hạn chế người dùng vào thư mục nhà của họ
Tại thời điểm này, người dùng FTP của bạn không bị giới hạn trong các thư mục nhà của họ. Điều đó không an toàn lắm, nhưng chúng tôi có thể sửa nó khá dễ dàng.
Chỉnh sửa tập tin conf vsftpd của bạn một lần nữa bằng cách gõ:
> sudo vi /etc/vsftpd/vsftpd.conf
Bỏ bình luận ra dòng:
chroot_local_user=YES
Nó sẽ trông như thế này khi bạn hoàn thành:
Khởi động lại máy chủ vsftpd một lần nữa như vậy:
> sudo /etc/init.d/vsftpd restart
Tất cả đã được làm xong!
Phụ lục A: Sống sót khi khởi động lại
vsftpd không tự động khởi động khi máy chủ của bạn khởi động. Nếu bạn giống tôi, điều đó có nghĩa là sau khi khởi động lại phiên bản EC2 của bạn, bạn sẽ cảm thấy một khoảnh khắc khủng bố khi FTP dường như bị phá vỡ - nhưng thực tế, nó chỉ không chạy!. Đây là một cách hữu ích để khắc phục điều đó:
> sudo chkconfig --level 345 vsftpd on
Ngoài ra, nếu bạn đang sử dụng redhat, một cách khác để quản lý dịch vụ của bạn là sử dụng giao diện người dùng đồ họa tiện lợi này để kiểm soát dịch vụ nào sẽ tự động bắt đầu:
> sudo ntsysv
Bây giờ vsftpd sẽ tự động khởi động khi máy chủ của bạn khởi động.
Phụ lục B: Thay đổi thư mục chính FTP của người dùng
* LƯU Ý: Iman Sedighi đã đăng một giải pháp thanh lịch hơn để hạn chế người dùng truy cập vào một thư mục cụ thể. Vui lòng tham khảo giải pháp tuyệt vời của anh ấy được đăng dưới dạng câu trả lời *
Bạn có thể muốn tạo người dùng và hạn chế quyền truy cập FTP của họ vào một thư mục cụ thể, chẳng hạn như / var / www. Để thực hiện việc này, bạn sẽ cần thay đổi thư mục nhà mặc định của người dùng:
> sudo usermod -d /var/www/ username
Trong ví dụ cụ thể này, thông thường là cấp quyền cho người dùng cho nhóm 'www', thường được liên kết với thư mục / var / www:
> sudo usermod -a -G www username