Vsftpd còn được gọi là một daemon FTP rất an toàn, là một máy chủ FTP cho các hệ thống giống Unix. FTP là giao thức mạng chuẩn được sử dụng rộng rãi nhất để tải lên/tải xuống các tệp giữa hai máy tính qua mạng. Theo mặc định, FTP không an toàn vì nó truyền dữ liệu cùng với thông tin đăng nhập của người dùng mà không mã hóa.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Vsftpd có hỗ trợ SSL/TLS trên máy chủ Ubuntu 18.04.
Sau khi Vsftpd được cài đặt, hãy khởi động dịch vụ Vsftpd và cho phép nó khởi động khi khởi động:
Bạn có thể tạo một người dùng bằng lệnh sau:
Tiếp theo, tạo thư mục ftp và thiết lập quyền sở hữu bằng lệnh sau:
Tiếp theo, tạo một thư mục nơi các tệp có thể được tải lên và cấp quyền sở hữu cho người dùng vsftp:
Đầu tiên, tạo bản sao lưu của tệp cấu hình gốc:
Tiếp theo, mở tệp vsftpd.conf:
Thêm các dòng sau:
Lưu và đóng tệp. Bạn có thể thay đổi cấu hình trên tùy theo nhu cầu của mình.
Tiếp theo, bạn cũng cần thêm người dùng vsftp vào tệp /etc/vsftpd.userlist để cho phép truy cập FTP:
Thêm dòng sau:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Vsftpd để áp dụng những thay đổi này:
Bây giờ, hãy mở trình duyệt web của bạn và nhập URL ftp://192.168.0.102, bạn sẽ được yêu cầu nhập tên người dùng và mật khẩu để truy cập FTP. Nhập tên người dùng và mật khẩu vsftp của bạn, sau đó nhấp vào nút Ok. Bạn sẽ thấy trang sau:
Để thực hiện việc này, bạn sẽ cần tạo chứng chỉ cho việc đó. Bạn có thể tạo chứng chỉ bằng OpenSSL bằng lệnh sau:
Tiếp theo, bạn sẽ cần sửa đổi tệp vsftpd.conf và thực hiện một số thay đổi:
Thêm nội dung sau dòng:
Lưu tệp, sau đó khởi động lại Vsftpd bằng lệnh sau:
Bạn có thể cài đặt FileZilla client bằng lệnh sau:
Sau khi FileZilla được cài đặt, hãy mở nó từ Unity dash của bạn. Bạn sẽ thấy hình ảnh sau:
Bây giờ, hãy nhấp vào File>Sites Manager. Bạn sẽ thấy hình ảnh sau:
Tại đây, hãy thêm New site và cung cấp tên host/site, thêm địa chỉ IP, xác định giao thức sử dụng, mã hóa và loại đăng nhập. Sau đó, hãy nhấp vào nút Connect. Bạn sẽ thấy hình ảnh sau:
Bây giờ, hãy xác minh chứng chỉ đang được sử dụng cho kết nối SSL/TLS và nhấp OK một lần nữa để kết nối với máy chủ FTP. Bạn sẽ thấy nội dung máy chủ FTP của mình trong trang sau:
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Vsftpd có hỗ trợ SSL/TLS trên máy chủ Ubuntu 18.04.
Yêu cầu
- Máy chủ chạy Ubuntu 18.04.
- Người dùng không phải root có quyền sudo.
- Địa chỉ IP tĩnh 192.168.0.102 đã được định cấu hình.
Cài đặt Vsftpd
Theo mặc định, Vsftpd có sẵn trong kho lưu trữ mặc định của Ubuntu 18.04. Vì vậy, bạn có thể dễ dàng cài đặt nó chỉ bằng cách chạy lệnh sau:
Mã:
sudo apt-get install vsftpd -y
Mã:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Tạo cấu trúc thư mục cho FTP
Trước khi bắt đầu, bạn sẽ cần tạo một người dùng để truy cập FTP.Bạn có thể tạo một người dùng bằng lệnh sau:
Mã:
sudo adduser vsftp
Mã:
sudo mkdir /home/vsftp/ftp
sudo chown nobody:nogroup /home/vsftp/ftp
sudo chmod a-w /home/vsftp/ftp
Mã:
sudo mkdir /home/vsftp/ftp/test
sudo chown vsftp:vsftp /home/vsftp/ftp/test
Cấu hình Vsftpd
Tiếp theo, bạn sẽ cần thực hiện một số cấu hình để thiết lập máy chủ FTP.Đầu tiên, tạo bản sao lưu của tệp cấu hình gốc:
Mã:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Mã:
sudo nano /etc/vsftpd.conf
Mã:
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd pasv_enable=Yes pasv_min_port=10000 pasv_max_port=11000 user_sub_token=$USER local_root=/home/$USER/ftp userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
Tiếp theo, bạn cũng cần thêm người dùng vsftp vào tệp /etc/vsftpd.userlist để cho phép truy cập FTP:
Mã:
sudo nano /etc/vsftpd.userlist
Mã:
vsftp
Mã:
sudo systemctl restart vsftpd
Bảo mật Vsftpd bằng SSL/TLS
Tiếp theo, bạn sẽ cần bật SSL/TLS để mã hóa dữ liệu được truyền qua FTP.Để thực hiện việc này, bạn sẽ cần tạo chứng chỉ cho việc đó. Bạn có thể tạo chứng chỉ bằng OpenSSL bằng lệnh sau:
Mã:
sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem
Mã:
sudo nano /etc/vsftpd.conf
Mã:
rsa_cert_file=/etc/cert/vsftpd.pemrsa_private_key_file=/etc/cert/vsftpd.pemssl_enable=YESallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YESssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NOrequire_ssl_reuse=NOssl_ciphers=HIGH
Mã:
sudo systemctl restart vsftpd
Truy cập FTP qua SSL/TLS
Bạn không thể truy cập máy chủ FTP của mình qua SSL/TLS thông qua trình duyệt. Vì vậy, bạn sẽ cần cài đặt FileZilla FTP client để truy cập máy chủ FTP của mình. Vì FileZilla hỗ trợ FTP qua SSL/TLS.Bạn có thể cài đặt FileZilla client bằng lệnh sau:
Mã:
sudo apt-get install filezilla -y
Bây giờ, hãy nhấp vào File>Sites Manager. Bạn sẽ thấy hình ảnh sau:
Tại đây, hãy thêm New site và cung cấp tên host/site, thêm địa chỉ IP, xác định giao thức sử dụng, mã hóa và loại đăng nhập. Sau đó, hãy nhấp vào nút Connect. Bạn sẽ thấy hình ảnh sau:
Bây giờ, hãy xác minh chứng chỉ đang được sử dụng cho kết nối SSL/TLS và nhấp OK một lần nữa để kết nối với máy chủ FTP. Bạn sẽ thấy nội dung máy chủ FTP của mình trong trang sau: