Cách Thiết Lập Máy Chủ Ftp Với Vsftpd Trên Ubuntu 18.04 - Android 2022

FTP (Giao thức truyền tệp) là một giao thức mạng tiêu chuẩn được sử dụng để truyền tệp đến và từ một mạng từ xa. Để truyền dữ liệu an toàn hơn và nhanh hơn, hãy sử dụng SCP hoặc SFTP.

Có nhiều máy chủ FTP nguồn mở có sẵn cho Linux. Phổ biến nhất và được sử dụng rộng rãi là PureFTPd, ProFTPD và vsftpd. Trong hướng dẫn này, chúng tôi sẽ cài đặt vsftpd (Daemon Ftp rất an toàn). Nó là một máy chủ FTP ổn định, an toàn và nhanh chóng. Chúng tôi cũng sẽ chỉ cho bạn cách định cấu hình vsftpd để hạn chế người dùng vào thư mục chính của họ và mã hóa toàn bộ truyền bằng SSL / TLS.

Mặc dù hướng dẫn này được viết cho Ubuntu 18.04, các hướng dẫn tương tự áp dụng cho Ubuntu 16.04 và mọi bản phân phối dựa trên Debian, bao gồm Debian, Linux Mint và Hệ điều hành cơ bản.

Điều kiện tiên quyết

Trước khi tiếp tục với hướng dẫn này, hãy đảm bảo bạn đã đăng nhập với tư cách là người dùng có quyền sudo.

Cài đặt vsftpd trên Ubuntu 18.04

Gói vsftpd có sẵn trong kho Ubuntu. Để cài đặt nó, chỉ cần chạy các lệnh sau:

sudo apt update sudo apt install vsftpd

Dịch vụ vsftpd sẽ tự động bắt đầu sau khi quá trình cài đặt hoàn tất. Xác minh nó bằng cách in trạng thái dịch vụ:

sudo systemctl status vsftpd

Đầu ra sẽ trông giống như bên dưới, cho thấy dịch vụ vsftpd đang hoạt động và đang chạy:

* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

Cấu hình vsftpd

Máy chủ vsftpd có thể được cấu hình bằng cách chỉnh sửa tệp /etc/vsftpd.conf . Hầu hết các cài đặt được ghi lại tốt trong tập tin cấu hình. Đối với tất cả các tùy chọn có sẵn, hãy truy cập trang vsftpd chính thức.

Trong các phần sau, chúng tôi sẽ giới thiệu một số cài đặt quan trọng cần thiết để định cấu hình cài đặt vsftpd an toàn.

Bắt đầu bằng cách mở tệp cấu hình vsftpd:

sudo nano /etc/vsftpd.conf

1. Truy cập FTP

Chúng tôi sẽ chỉ cho phép truy cập vào máy chủ FTP của người dùng cục bộ, tìm các chỉ thị anonymous_enable và local_enable và xác minh cấu hình khớp với các dòng bên dưới:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Kích hoạt tải lên

Bỏ ghi chú cài đặt write_enable để cho phép thay đổi hệ thống tệp như tải lên và xóa tệp.

/etc/vsftpd.conf

write_enable=YES

3. Nhà tù Chroot

Để ngăn người dùng FTP truy cập vào bất kỳ tệp nào bên ngoài thư mục chính của họ, hãy bỏ qua cài đặt chroot .

/etc/vsftpd.conf

chroot_local_user=YES

Theo mặc định để ngăn ngừa lỗ hổng bảo mật, khi chroot được bật, vsftpd sẽ từ chối tải lên các tệp nếu thư mục mà người dùng bị khóa có thể ghi được.

Sử dụng một trong các phương pháp dưới đây để cho phép tải lên khi bật chroot.

  • Phương pháp 1. - Phương pháp được đề xuất để cho phép tải lên là để kích hoạt chroot và định cấu hình các thư mục FTP. Trong hướng dẫn này, chúng tôi sẽ tạo một thư mục ftp bên trong nhà người dùng sẽ đóng vai trò là thư mục uploads và thư mục uploads thể ghi để tải lên các tệp.

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Phương pháp 2. - Một tùy chọn khác là thêm lệnh sau vào tệp cấu hình vsftpd. Sử dụng tùy chọn này nếu bạn phải cấp quyền truy cập có thể ghi cho người dùng của bạn vào thư mục chính của nó.

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

4. Kết nối FTP thụ động

vsftpd có thể sử dụng bất kỳ cổng nào cho các kết nối FTP thụ động. Chúng tôi sẽ chỉ định phạm vi tối thiểu và tối đa của các cổng và sau đó mở phạm vi trong tường lửa của chúng tôi.

Thêm các dòng sau vào tập tin cấu hình:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Hạn chế đăng nhập người dùng

Để chỉ cho phép một số người dùng nhất định đăng nhập vào máy chủ FTP, hãy thêm các dòng sau vào cuối tệp:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Khi tùy chọn này được bật, bạn cần chỉ định rõ ràng người dùng nào có thể đăng nhập bằng cách thêm tên người dùng vào tệp /etc/vsftpd.user_list (một người dùng trên mỗi dòng).

6. Đảm bảo truyền tiền với SSL / TLS

Để mã hóa việc truyền FTP bằng SSL / TLS, bạn cần có chứng chỉ SSL và định cấu hình máy chủ FTP để sử dụng.

Bạn có thể sử dụng chứng chỉ SSL hiện có được ký bởi Cơ quan chứng nhận tin cậy hoặc tạo chứng chỉ tự ký.

Chúng tôi sẽ tạo chứng chỉ SSL tự ký bằng lệnh openssl .

Lệnh sau sẽ tạo khóa riêng 2048 bit và chứng chỉ tự ký có hiệu lực trong 10 năm. Cả khóa riêng và chứng chỉ sẽ được lưu trong cùng một tệp:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Khi chứng chỉ SSL được tạo, mở tệp cấu hình vsftpd:

sudo nano /etc/vsftpd.conf

Tìm các rsa_cert_file và rsa_private_key_file , thay đổi giá trị của chúng thành đường dẫn tệp pam và đặt chỉ thị ssl_enable thành YES :

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES

Nếu không được chỉ định khác, máy chủ FTP sẽ chỉ sử dụng TLS để tạo kết nối an toàn.

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

Khi bạn chỉnh sửa xong, tệp cấu hình vsftpd (không bao gồm nhận xét) sẽ trông giống như thế này:

/etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES 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 rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Lưu tệp và khởi động lại dịch vụ vsftpd để các thay đổi có hiệu lực:

sudo systemctl restart vsftpd

Mở tường lửa

Để mở cổng 21 (cổng lệnh FTP), cổng 20 (cổng dữ liệu FTP) và 30000-31000 (Phạm vi cổng thụ động), hãy chạy các lệnh sau:

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

Để tránh bị khóa, hãy mở cổng 22 :

sudo ufw allow OpenSSH

Tải lại các quy tắc UFW bằng cách vô hiệu hóa và kích hoạt lại UFW:

sudo ufw disable sudo ufw enable

Để xác minh các thay đổi chạy:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

Tạo người dùng FTP

Để kiểm tra máy chủ FTP của chúng tôi, chúng tôi sẽ tạo một người dùng mới.

  • Nếu bạn đã có người dùng mà bạn muốn cấp quyền truy cập FTP, hãy bỏ qua bước 1. Nếu bạn đặt allow_writeable_chroot=YES trong tệp cấu hình của bạn, hãy bỏ qua bước thứ 3.
  1. Tạo người dùng mới có tên newftpuser :

    sudo adduser newftpuser

    Thêm người dùng vào danh sách người dùng FTP được phép:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    Tạo cây thư mục FTP và đặt quyền chính xác:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    Như đã thảo luận trong phần trước, người dùng sẽ có thể tải các tệp của nó ftp/upload thư mục ftp/upload .

Tại thời điểm này, máy chủ FTP của bạn có đầy đủ chức năng và bạn sẽ có thể kết nối với máy chủ của mình bằng bất kỳ ứng dụng khách FTP nào có thể được cấu hình để sử dụng mã hóa TLS như FileZilla.

Vô hiệu hóa quyền truy cập Shell

Theo mặc định, khi tạo người dùng, nếu không được chỉ định rõ ràng, người dùng sẽ có quyền truy cập SSH vào máy chủ.

Để vô hiệu hóa quyền truy cập shell, chúng tôi sẽ tạo một shell mới chỉ đơn giản là in một thông báo cho người dùng biết rằng tài khoản của họ chỉ giới hạn truy cập FTP.

Tạo shell /bin/ftponly và làm cho nó có thể thực thi được:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

Nối shell mới vào danh sách shell hợp lệ trong tệp /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells

Thay đổi vỏ người dùng thành /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Sử dụng cùng một lệnh để thay đổi trình bao của tất cả người dùng mà bạn muốn chỉ cấp quyền truy cập FTP.

Phần kết luận

Trong hướng dẫn này, bạn đã học cách cài đặt và định cấu hình máy chủ FTP an toàn và nhanh chóng trên hệ thống Ubuntu 18.04 của mình.

ftp ubfox

Từ khóa » Cài đặt Ftp Server Trên Ubuntu