Cài đặt FTP (Vsftpd) trên Ubuntu

3 tuần trước, Cài đặt VPS, Ubuntu, 144 Lượt xem

Đăng ký cập nhập video từ netweb.vn

FTP, viết tắt của File Transfer Protocol, là một giao thức mạng từng được sử dụng rộng rãi để di chuyển tệp giữa máy khách và máy chủ. Kể từ đó, nó đã được thay thế bằng các cách phân phối tệp nhanh hơn, an toàn hơn và thuận tiện hơn. Nhiều người dùng Internet thông thường mong đợi tải trực tiếp từ trình duyệt web của họ https và người dùng dòng lệnh có nhiều khả năng sử dụng các giao thức an toàn như scp hoặc SFTP .

FTP vẫn được sử dụng để hỗ trợ các ứng dụng kế thừa và quy trình làm việc với các nhu cầu rất cụ thể. Nếu bạn có lựa chọn về giao thức sẽ sử dụng, hãy xem xét khám phá các tùy chọn hiện đại hơn. Tuy nhiên, khi bạn cần FTP, vsftpd là một lựa chọn tuyệt vời. Được tối ưu hóa về bảo mật, hiệu suất và độ ổn định, vsftpd cung cấp khả năng bảo vệ mạnh mẽ chống lại nhiều vấn đề bảo mật được tìm thấy trong các máy chủ FTP khác và là mặc định cho nhiều bản phân phối Linux.

Trong hướng dẫn này, bạn sẽ định cấu hình vsftpd để cho phép người dùng tải tệp lên thư mục chính của họ bằng FTP với thông tin đăng nhập được bảo mật bằng SSL / TLS.

Cài đặt vsftpd

Hãy bắt đầu bằng cách cập nhật danh sách gói của chúng tôi và cài đặt vsftpd daemon:

sudo apt update
sudo apt install vsftpd

Khi quá trình cài đặt hoàn tất, hãy sao chép tệp cấu hình để có thể bắt đầu với cấu hình trống, lưu bản gốc làm bản sao lưu:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Với bản sao lưu cấu hình tại chỗ, chúng tôi đã sẵn sàng để cấu hình tường lửa.

Mở tường lửa

Hãy kiểm tra trạng thái tường lửa để xem nó có được kích hoạt hay không. Nếu có, chúng tôi sẽ đảm bảo rằng lưu lượng FTP được phép để các quy tắc tường lửa không chặn các thử nghiệm của chúng tôi.

Kiểm tra trạng thái tường lửa:

sudo ufw status

Trong trường hợp này, chỉ SSH được phép thông qua:

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Bạn có thể có các quy tắc khác hoặc không có quy tắc tường lửa nào cả. Vì chỉ lưu lượng SSH được phép trong trường hợp này, chúng tôi sẽ cần thêm các quy tắc cho lưu lượng FTP.

Hãy mở các cổng 20 và 21 cho FTP, cổng 990 khi chúng tôi bật TLS và các cổng 40000-50000 cho phạm vi cổng thụ động mà chúng tôi định đặt trong tệp cấu hình:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status

Các quy tắc tường lửa của chúng tôi bây giờ sẽ giống như sau:

Output
Status: active

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

Khi vsftpd đã cài đặt và mở các cổng cần thiết, hãy chuyển sang tạo người dùng FTP chuyên dụng.

Định Cấu Hình Máy Chủ FTP (Vsftpd) Cho Nhiều Người Dùng Với Thư Mục Trang Chủ Khác Nhau

Bước 1: Tạo hai người dùng có tên là ftpuser1 và ftpuser2 bằng lệnh dưới đây.

sudo adduser ftpuser1
sudo adduser ftpuser2

Lưu ý: Nó sẽ yêu cầu bạn nhập mật khẩu, chỉ cần nhập mật khẩu mong muốn của bạn và nó cũng sẽ yêu cầu thông tin người dùng như họ tên, số phòng, số điện thoại cơ quan, v.v., bạn có thể bỏ qua bằng cách nhấn enter.

Bước 2: Cấu hình FTP Server (vsftpd) bằng cách cập nhật tệp cấu hình vsftpd.conf bằng lệnh dưới đây.

sudo nano /etc/vsftpd.conf

Lệnh trên sẽ mở tệp vsftpd.conf trong trình soạn thảo nano và sau đó chúng ta cần dán các dòng dưới đây vào cuối tệp


# setup virtual users config folder
user_config_dir=/etc/vsftpd_user_config_dir/

Lưu ý: Chúng tôi cần phải khởi động lại vsftpd mỗi khi chúng tôi thực hiện các thay đổi trong tệp cấu hình vsftpd.conf và việc kiểm tra trạng thái cũng là cách tốt bằng cách sử dụng lệnh dưới đây

sudo systemctl restart vsftpd
sudo systemctl status vsftpd

Bước 3: Thiết lập thư mục chính

Để định cấu hình thư mục chính, hãy tạo thư mục / etc / vsftpd_user_config_dir / và tạo hai tệp có cùng tên chính xác của hai người dùng:

sudo mkdir /etc/vsftpd_user_config_dir/
sudo nano /etc/vsftpd_user_config_dir/ftpuser1

Lệnh nano ở trên sẽ tạo tệp mới và tự động mở và sau đó chúng tôi sẽ xác định thư mục chính cho người dùng đầu tiên trong tệp theo cách sau:

local_root=/var/backup/
write_enable=YES

bây giờ chúng ta sẽ tạo một tệp khác cho người dùng thứ hai theo cách tương tự và chỉnh sửa nó nhưng lần này thư mục chính sẽ là “/ home / ftpuser / ftpuser2”

sudo nano /etc/vsftpd_user_config_dir/ftpuser2
local_root=/var/www/html/
write_enable=YES

Bước 4: Tạo thư mục chính cho cả người dùng bằng lệnh dưới đây

sudo mkdir /home/ftpuser/ftpuser1
sudo mkdir /home/ftpuser/ftpuser2

Bước 5: Tạo nhóm và thêm người dùng vào nhóm bằng lệnh dưới đây

sudo groupadd ftpusers
sudo usermod -a -G ftpusers ftpuser1
sudo usermod -a -G ftpusers ftpuser2

Bước 6: Thay đổi quyền sở hữu thư mục “/var/backup/” thành nhóm ftpusers và làm cho thư mục “/var/backup/” có thể ghi theo nhóm bằng lệnh dưới đây để tất cả người dùng trong nhóm đều có thể truy cập và ghi được thư mục đó.

sudo chown -R root:ftpusers /var/backup/
sudo chmod -R g+w /var/backup/

Quản lý user và group ubuntu

Kiểm tra danh sách User

Danh sách user của Linux được lưu trong file /etc/passwd, để xem danh sách user này sử dụng lệnh cat

cat /etc/passwd

Hiển thị thông tin 1 user bằng lệnh id

id thietkewebs

Tạo mới một user

sudo adduser user1

Thêm/Xóa user vào group

Để add 1 user vào group sử dụng command usermod

sudo usermod -a -G root user1

Thêm user vào nhiều group

sudo usermod -a -G group1,group2 user1

Thêm nhiều user vào 1 group

sudo gpasswd -M user1,user2,user3 group1

Xóa user khỏi 1 group

sudo gpasswd -d username groupname

Thay đổi mật khẩu của user

sudo passwd user1

Xóa 1 user

sudo userdel user1

Quản lý group

Kiểm tra danh sách group

Thông tin của 1 group trong file /etc/group, tương tự để hiển thị danh sách group chúng ta sử dụng command cat

cat /etc/group

Tạo 1 group

sudo groupadd group1

Tạo nhiều group

sudo groupadd group1, group2, group3

Liệt kê danh sách User trong Groups

sudo groups
sudo groups user1

Xóa 1 group

sudo groupdel group1

Các lỗi hay gặp

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Thêm dòng này vào cuối file: /etc/vsftpd.conf

allow_writeable_chroot=YES

Lỗi user truy cập vào được nhiều thư mục, mở dòng này ra, nếu chưa có thì thêm vào

chroot_local_user=YES

Bình luận trên facebook netweb.vn