Cách cài đặt Ftps lên Ubuntu 18.04

bazoka269
16/1/2020 2:36Phản hồi: 0
Cách cài đặt Ftps lên Ubuntu 18.04
Mình vừa tìm được thủ thuật cài Ftps lên ubuntu 18.04. Lưu lên đây để sau này còn dùng tiếp



máy chủ FTP Ubuntu 18.04

vsftpd (Very Secure File Transfer Protocol Daemon) là một máy chủ FTP phổ biến cho Ubuntu. Trong hướng dẫn này, tôi sẽ cài đặt và cấu hình vsftpd trên Ubuntu 18.04 LTS (Bionic Beaver). Tôi cũng sẽ thiết lập người dùng FTP và tùy chọn cấu hình SFTP để truyền file an toàn.

Trước khi bắt đầu…

Thật đáng ngạc nhiên khi nhiều nhà phát triển web vẫn chưa biết về SFTP và những lợi thế so với FTP / FTPS. Tôi thừa nhận rằng cho đến gần đây, tôi đã thiết lập một vài máy chủ vsftpd một cách thủ công với mỗi lần cài đặt Linux mới, nhưng nó thực sự không cần thiết. Nếu ứng dụng FTP client của bạn hỗ trợ SFTP, bạn nên sử dụng nó!

1. Cài đặt vsftpd
Hãy bắt đầu bằng cách cập nhật danh sách gói và cài đặt vsftpd trên Ubuntu 18.04.

Dưới đây chúng tôi có hai lệnh cách nhau bởi &&. Lệnh đầu tiên sẽ cập nhật danh sách gói để đảm bảo bạn có được phiên bản mới nhất và các gói phụ thuộc cho vsftpd. Lệnh thứ hai sau đó sẽ tải xuống và cài đặt vsftpd. Nhấn y và ENTER khi được yêu cầu tiếp tục.

sudo apt update && sudo apt install vsftpd
Sau khi cài đặt, hãy kiểm tra trạng thái của vsftpd

sudo service vsftpd status
● vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled
Active: active (running) since Tue 2018-04-17 15:23:22 UTC; 10s ago
Main PID: 31602 (vsftpd)
CGroup: /system.slice/vsftpd.service

Quảng cáo


└─31602 /usr/sbin/vsftpd /etc/vsftpd.conf

Ở trên chúng ta có thể thấy máy chủ FTP của chúng tôi hiện đang hoạt động.

2. Cấu hình tường lửa ( Bỏ qua bước này nếu máy của bạn đang sử dụng là localhost )
Nếu bạn chưa làm như vậy, bạn nên bật ufw tường lửa cho Ubuntu 18.04. Trước khi bật ufw tường lửa, hãy đảm bảo bạn thêm quy tắc cho SSH, nếu không bạn có thể bị khóa khỏi máy chủ nếu bạn được kết nối từ xa. Nếu bạn không muốn thiết lập tường lửa, hãy chuyển sang Bước 3.

sudo ufw allow OpenSSH
Hãy mở các cổng 20 và 21 cho FTP và các cổng 40000-50000 cho FTP thụ động. Chúng tôi cũng sẽ mở cổng 990 cho TLS, chúng tôi sẽ thiết lập sau.

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp

Quảng cáo


sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp
Bây giờ, kích hoạt tường lửa nếu nó chưa có. Nhấn yvà ENTERnếu được cảnh báo về việc phá vỡ kết nối SSH.

sudo ufw enable
Để kiểm tra trạng thái của tường lửa, hãy chạy:

sudo ufw status
Nếu tường lửa đang chạy, bạn sẽ thấy Status: active và các quy tắc tường lửa chúng tôi vừa thêm.

Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
3306 ALLOW Anywhere
20/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
990/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
3306 (v6) ALLOW Anywhere (v6)
20/tcp (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
40000:50000/tcp (v6) ALLOW Anywhere (v6)
990/tcp (v6) ALLOW Anywhere (v6)

3. Tạo người dùng FTP
Bây giờ chúng tôi sẽ tạo một người dùng mới mà chúng tôi sẽ sử dụng để đăng nhập vào FTP. Trong ví dụ này, chúng tôi sẽ tạo một người dùng mới được gọi là ftpuser.

sudo adduser ftpuser
Hãy tạo một mật khẩu mạnh và giữ nó an toàn.

Bạn cũng có thể được yêu cầu nhập một số thông tin liên lạc. Bạn chỉ có thể nhấn ENTER để sử dụng cấu hình mặc định.

Nếu bạn chỉ muốn ftpuser đăng nhập qua FTP, bạn nên vô hiệu hóa quyền truy cập SSH của họ bằng cách đưa vào danh sách đen tên người dùng của họ trong tệp cấu hình SSH. Nếu không, bỏ qua và sang Bước 4.

Mở cấu hình SSH bằng nano.

sudo nano /etc/ssh/sshd_config
Thêm phần sau vào dưới cùng của tệp thay thế ftpuser bằng người dùng bạn muốn từ chối quyền truy cập SSH và SFTP. Bạn có thể thêm nhiều người dùng ở đây cách nhau bởi một khoảng trắng. (Để dán nano, nhấn nút chuột phải)./ etc / ssh / sshd_config

DenyUsers ftpuser
Để lưu tệp và thoát, nhấn CTRL + X, nhấn Y và sau đó nhấn ENTER.

Khởi động lại dịch vụ SSH.

sudo service sshd restart

4. Quyền thư mục
Bây giờ bạn cần quyết định nơi người dùng FTP mới này được phép xem và tải lên các tệp.

vsftpd sử dụng chroot jails để hạn chế người dùng vào thư mục chính của họ và yêu cầu thư mục chính không thể ghi được. Vì lý do đó, tôi phải thiết lập một số thư mục và quyền.

Nếu bạn có kế hoạch sử dụng tài khoản người dùng FTP này để tải tệp lên máy chủ web, hãy tiếp tục Bước 4.1. Nếu bạn chỉ muốn tải lên một thư mục Home, hãy bỏ qua và tới Bước 4.2.

4.1. Tải lên máy chủ web
Trong nhiều trường hợp, bạn muốn có thể tải tệp lên thư mục gốc trên máy chủ web.

Nếu bạn đã làm theo một hướng dẫn, thư mục gốc của bạn có thể được đặt ở một nơi nào đó như /var/www/test1.com/public_html – trong trường hợp đó, bạn sẽ cần đặt thư mục chính cho ftpuser thư mục phía trên thư mục gốc: /var/www/test1.com (thay thế test1.com cho tên miền của riêng bạn).

Nếu bạn không sử dụng nhiều tên miền, chúng tôi sẽ cho rằng bạn đang sử dụng thư mục gốc mặc định là /var/www/html cho cả Apache và Nginx trong Ubuntu 18.04. Trong trường hợp này, tôi phải tạo /var/www/và thư mục chính cho người dùng của tôi là ftpuser.

Hãy đặt thư mục phía trên thư mục gốc làm thư mục chính cho ftpuser.

sudo usermod -d /var/www ftpuser
Bây giờ đặt quyền sở hữu của thư mục gốc thành ftpuser. (Mặc định là /var/www/html, mặc dù nó có thể /var/www/test1.com/public_html ở trên máy chủ của bạn.)

Điều này sẽ cho phép người dùng FTP của tôi viết và thay đổi các tệp trong thư mục gốc.

sudo chown ftpuser:ftpuser /var/www/html
Bây giờ bỏ qua và tới Bước 5 để cấu hình vsftpd.

4.2 Tải lên thư mục chính
Nếu thay vào đó, bạn muốn người dùng này tải các tệp lên thư mục chính, hãy tạo một thư mục mới được gọi ftptrong thư mục chính của người dùng và một thư mục khác trong đó được gọi files. Trong ví dụ này dưới đây người dùng của chúng tôi được gọi ftpuser.

sudo mkdir /home/ftpuser/ftp
Đặt quyền sở hữu của ftp thư mục thành không nobody:nogroup.

sudo chown nobody:nogroup /home/ftpuser/ftp
Đặt quyền cho ftp thư mục bằng cách sử dụng chmod sao cho không ai có thể ghi được, nếu không, vsftpd sẽ không cho phép bạn đăng nhập. a-wNghĩa là a = all / every - = remove w= write , vì vậy, hãy xóa quyền ghi cho mọi người .

sudo chmod a-w /home/ftpuser/ftp
Tiếp theo, chúng tôi sẽ tạo một thư mục mới trong /ftpđó người dùng có thể xem và tải lên các tệp.

sudo mkdir /home/ftpuser/ftp/files
Gán quyền sở hữu thư mục này cho người dùng FTP mới của tôi nếu không họ sẽ không thể ghi vào thư mục đó.

sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

5. Cấu hình vsftpd
Có một vài thay đổi chúng ta phải thực hiện đối với tệp cấu hình vsftpd trước khi bạn có thể bắt đầu sử dụng FTP trên Ubuntu 18.04.

Trước khi chỉnh sửa tập tin cấu hình, tạo một bản sao lưu.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Bây giờ, mở tập tin cấu hình trong nanotrình soạn thảo.

sudo nano /etc/vsftpd.conf
Đây là một tệp khá lớn nhưng chủ yếu chứa đầy các bình luận để giúp bạn thực hiện.

Bạn cần phải đi xuống tệp và đảm bảo rằng các cài đặt khớp với các cài đặt bên dưới. Lưu ý: bạn có thể tìm kiếm nano bằng CTRL + W

Tìm kiếm #write_enable=YES và bỏ ghi chú bằng cách xóa dấu #. Điều này sẽ cho phép người dùng FTP ghi tệp vào máy chủ.vv / vsftpd.conf

write_enable=YES
Tìm kiếm #chroot_local_user=YES và bỏ ghi chú bằng cách xóa dấu #. Điều này sẽ ngăn người dùng FTP duyệt bên ngoài thư mục của họ.vv / vsftpd.conf

chroot_local_user=YES
Tìm kiếm #local_umask=022 và bỏ ghi chú bằng cách xóa dấu #. Điều này sẽ cung cấp cho các tập tin và thư mục tải lên các quyền chính xác

local_umask=022
Bây giờ chúng ta cần thêm một số chỉ thị không tồn tại trong tệp.

Vì Linux không hiển thị các tệp bắt đầu bằng dấu chấm, nên các tệp như .htaccess sẽ không hiển thị trong FTP. Đây có thể là một vấn đề nếu bạn có ý định sử dụng Apache và muốn làm việc với .htaccess.

Để buộc vsftpd hiển thị tên tệp bắt đầu bằng dấu chấm, hãy dán đoạn sau vào dưới cùng của tệp. (Để dán, nhấn nút chuột phải)

force_dot_files=YES
Cuối cùng, hãy thêm một số phạm vi cổng cho FTP thụ động để đảm bảo có đủ kết nối. Dán phần sau vào dưới cùng của tập tin. (Để dán nano, nhấn nút chuột phải)

pasv_min_port=40000
pasv_max_port=50000

Nếu bạn đã làm theo Bước 4.2 trước đó và chỉ muốn người dùng này tải tệp lên thư mục chính, chúng ta phải nói với vsftpd rằnglocal_root/ftpthư mục chúng ta đã tạo trước đó.

Đừng thêm hai dòng này nếu bạn muốn người dùng tải lên root


user_sub_token=$USER
local_root=/home/$USER/ftp
Hiện tại chúng tôi đã hoàn thành với vsftpd.conf nhưng sẽ quay lại các bước sau để thiết lập bảo mật và SSL.

Để lưu tệp và thoát, nhấn CTRL + X, nhấn Y và sau đó nhấn ENTER.

Khởi động lại vsftpd.

sudo systemctl restart vsftpd

6. Kiểm tra FTP
Bây giờ chúng ta có thể kiểm tra vsftpd để xem liệu chúng ta có thể đăng nhập như người dùng chúng ta đã tạo trước đó không. Tôi khuyên dùng FileZilla , hoạt động trên Windows, Mac và Linux.

Nhập IP của máy chủ của bạn, tên người dùng FTP và mật khẩu bạn đã tạo trước đó của bạn, và nhấn QuickConnect.


Ở trên chúng ta có thể thấy tôi đã kết nối thành công và thư mục gốc của web html được hiển thị, mặc dù điều này có thể khác trên máy chủ của bạn.

Hãy thử tải lên, tạo và chỉnh sửa các thư mục và tệp trong thư mục gốc của web để đảm bảo quyền được hoạt động chính xác.

Bạn sẽ nhận thấy tôi có cảnh báo trong Trạng thái FileZilla: Máy chủ không an toàn, nó không hỗ trợ FTP qua TLS. Hiện tại chúng tôi khuyên bạn nên định cấu hình TLS để thông tin đăng nhập và lưu lượng truy cập được mã hóa qua kết nối FTP.

Nếu bạn gặp sự cố khi đăng nhập vào máy chủ FTP, hãy thử kiểm tra nhật ký vsftpd. Để xem 200 dòng báo cáo cuối bằng cách sử dụng tail:

sudo tail /var/log/vsftpd.log -n 200

7. Bảo mật FTP bằng TLS (Có thể bỏ qua)
Điều quan trọng là phải ghi nhớ một số điều khi sử dụng FTP – nó không được mã hóa theo mặc định có nghĩa là thông tin đăng nhập và tệp bạn gửi dễ bị chặn. Để giải quyết vấn đề này, bạn nên kết nối với vsftpd bằng FTPS (FTP qua SSL / TLS).

Hãy bắt đầu bằng cách tạo một chứng chỉ mới với openssl công cụ.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Bạn sẽ được yêu cầu nhập một số chi tiết như quốc gia, v.v. Bạn không cần phải điền những thông tin này vào. Bạn chỉ cần nhấn ENTER để mặc định.

Bây giờ khóa riêng của bạn đã được tạo, có một vài thay đổi chúng ta phải thực hiện đối với tệp cấu hình vsftpd.

Mở tập tin cấu hình trong nano trình soạn thảo.

sudo nano /etc/vsftpd.conf
Tìm dòng sau: (Lưu ý: bạn có thể tìm kiếm nano bằng CTRL + W)

ssl_enable=NO
Thay đổi nó thành

ssl_enable=YES
Dán vào bên dưới nó

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_min_port=40000
pasv_max_port=50000
Lưu tệp và thoát (nhấn CTRL + X, nhấn Y và sau đó nhấn ENTER).

Khởi động lại vsftpd.

sudo systemctl restart vsftpd

8. Kiểm tra TLS với FileZilla
Bây giờ chúng ta có thể kiểm tra TLS. Chúng tôi khuyên dùng FileZilla , hoạt động trên Windows, Mac và Linux.

Nhập IP của máy chủ của bạn, tên người dùng FTP và mật khẩu bạn đã tạo trước đó của bạn, và nhấn QuickConnect.

Bạn có thể được trình bày với một cảnh báo Chứng chỉ không xác định. Bấm Always trust this certificate in future sessions và bấm OK.


Nếu bạn được kết nối qua TLS, nó sẽ cho bạn biết trong nhật ký kết nối. Bạn cũng sẽ thấy một ổ khóa ở góc dưới bên phải.


Bạn đã hoàn tất cài đặt máy chủ FTP Ubuntu 18.04!

Nguồn: https://toiyeuphp.com/cai-dat-may-chu-ftp-vsftpd-tren-ubuntu-18-04/
Chia sẻ

Xu hướng

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019