Hướng dẫn cài ftp trên ubuuntu 16.04 năm 2024

Bài hướng dẫn này sẽ chỉ bạn cách làm thế nào để dựng FTP server trên Ubuntu VPS. Vsftpd server là cách được công...

Làm thế nào để cài đặt lamp stack trên Ubuntu 16.04

Web development

VPS

Bài hướng dẫn này sẽ giúp bạn cài đặt LAMP lên VPS chạy hệ điều hành Ubuntu 16.04. LAMP là viết tắt của Linux, Apache,...

Hướng dẫn IPtables – bảo mật Ubuntu VPS với Linux Firewall

VPS

Security

IPtable là gì? Iptables Linux firewall được sử dụng để theo dõi lưu lượng truy cập đến và đi ở một máy chủ và lọc...

Cách tạo server Minecraft trên Ubuntu, Windows và CentOS

VPS

Bài hướng dẫn này sẽ chỉ cách tạo server Minecraft trên nhiều nền tảng khác nhau. Sau khi đọc xong, bạn sẽ biết cách...

Hướng dẫn sử dụng PuTTY để kết nối SSH vào server

VPS

SSH

SSH, hay Secure Shell, là giao thức an toàn để kết nối tới server. Để thiết lập kết nối SSH, bạn sẽ cần sử dụng...

Làm thế nào để tạo user MySQL trong MySQL Database và gán quyền

VPS

Database

Bạn có muốn hiểu thêm về cơ cấu hoạt động của của MySQL? Hãy tiếp tục đọc, bài viết này sẽ hướng dẫn bạn...

Làm thế nào để cài đặt ssh keys

VPS

SSH

Trong bài hướng dẫn này, bạn sẽ biết cách làm thế nào để cài đặt và sử dụng text editor Nano. Nano text editor là một...

Đôi khi người quản trị cần phải cân nhắc rất nhiều giữa nhu cầu truy cập của các bộ phận như developer, webmaster và đảm bảo an toàn cho server. Việc sử dụng vsftpd với virtual user là 1 trong những giải pháp tạm thời có thể khắc phục được các hạn chế trên.

Virtual user là các user không nằm trên hệ thống,không được quản lý bởi các nhóm , không có uid, gid.Trong phạm vi bài viết này, chúng ta sẽ dùng 1 file database riêng để quản lý truy cập cho các virtual user này , sử dụng dịch vụ ftp để truy cập vào các thư mục được chỉ định rõ.

1. Cài đặt vsftpd các gói cần thiết

# sudo apt-get install vsftpd db-util libpam-pwdfile -y

2. Tạo thư mục chứa các file cấu hình

mkdir /etc/vsftpdt3. Tạo file text chứa các thông tin virtual users

# touch /etc/vsftpd/virtual_users.txt

Trong file này chúng ta sẽ điền thông tin username, password tương ứng cho từng user. Mỗi user 2 dòng, các dòng viết liền nhau, username trước, password sau

Ví dụ:

username1

password1

4. Chạy lệnh sau để tạo file db

# db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

Để an toàn, sau bược tạo db này, các bạn có thể xoá file text hoặc mã hoá nó

Có nhiều cách để lưu trữ dữ liệu xác thực, ngoài việc dùng file , các bạn có thể dùng CSDL , ví dụ mysql để tạo DB, quản lý các thông tin username, password này. Còn mình lựa chọn lưu luôn trên file cho linh động.

5. Cấu hình cách thức xác thực bằng PAM file.

Tạo file vsftpd_virtual trong thư mục /etc/pam.d

# vi /etc/pam.d/vsftpd_virtual

Thêm vào các dòng sau:

#%PAM-1.0

auth required pam_userdb.so db=/etc/vsftpd/virtual_users

account required pam_userdb.so db=/etc/vsftpd/virtual_users

session required pam_loginuid.so

6. Cấu hình vsftpd sử dụng virtual user.

File chúng ta sẽ sửa đó là /etc/vsftpd.conf. Đối với 1 số OS khác, file có thể là /etc/vsftpd/vsftpd.conf

# vi /etc/vsftpd.conf

# Kiểm tra các giá trị sau đây, 1 số giá trị các bạn có thể tuỳ chỉnh cho phù hơp

listen=YES

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=NO

anonymous_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=YES

# Đối với việc upload code và owner của file và thư mục được tự động change về user chạy webserver, chúng ta đặt user của web server ở đây, đối với 1 số hệ thống, user có thể là nginx, apache ...

guest_enable=YES

guest_username=www-data

# Uncomment this to allow local users to log in.

local_enable=YES

## Virtual users will use the same permissions as anonymous

virtual_use_local_privs=YES

#

# Uncomment this to enable any form of FTP write command.

write_enable=YES

## PAM file name

pam_service_name=vsftpd_virtual

## Home Directory for virtual users

user_sub_token=$USER

# Nếu bạn muốn thay đổi thư mục mặc định của mỗi user bạn có thể comment dòng dưới và cấu hình local_root trong file cấu hình của từng user, nếu không, tên các thư mục web tương ứng với mỗi user nên trùng tên user như sau: