Thứ năm, 25/08/2016 | 00:00 GMT+7

Cách thiết lập vsftpd cho Tải xuống ẩn danh trên Ubuntu 16.04

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 file giữa client và server . Kể từ đó, nó đã được thay thế bằng các cách phân phối file nhanh hơn, an toàn hơn và thuận tiện hơn. Nhiều user Internet thông thường mong đợi tải trực tiếp từ trình duyệt web của họ bằng https và user 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 thường đượ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 server 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, ta sẽ chỉ cho bạn cách cài đặt vsftpd cho trang download FTP ẩn danh nhằm phân phối rộng rãi các file công khai. Thay vì sử dụng FTP để quản lý file , user local có quyền sudo được mong đợi sử dụng scp , sFTP hoặc bất kỳ giao thức an toàn nào khác mà họ chọn để truyền và duy trì file .

Yêu cầu

Để làm theo hướng dẫn này, bạn cần :

Khi bạn đã có server tại chỗ, bạn đã sẵn sàng bắt đầu.

Bước 1 - Cài đặt vsftpd

Ta sẽ bắt đầu bằng cách cập nhật danh sách gói của bạn và cài đặt daemon vsftpd :

  • sudo apt-get update
  • sudo apt-get install vsftpd

Khi quá trình cài đặt hoàn tất, ta sẽ sao chép file cấu hình để có thể bắt đầu với cấu hình trống, lưu bản root làm bản backup .

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

Với một bản backup cấu hình tại chỗ, ta đã sẵn sàng cấu hình firewall .

Bước 2 - Mở firewall

Trước tiên, hãy kiểm tra trạng thái firewall để xem nó có được bật hay không và nếu có, hãy xem những gì hiện được phép để khi đến thời điểm kiểm tra cấu hình, bạn sẽ không gặp phải các luật firewall đang chặn bạn.

  • sudo ufw status

Trong trường hợp của ta , ta thấy như sau:

Output
Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

Bạn có thể có các luật khác hoặc không có luật firewall nào cả. Trong ví dụ này, chỉ cho phép lưu lượng ssh , vì vậy ta cần thêm các luật cho lưu lượng FTP.

Với nhiều ứng dụng, bạn có thể sử sudo ufw app list dụng sudo ufw app list và kích hoạt chúng theo tên, nhưng FTP không phải là một trong số đó. Vì ufw cũng kiểm tra / etc / services cho cổng và giao thức của một dịch vụ, ta vẫn có thể thêm FTP theo tên. Ta cần cả ftp-data trên cổng 20 và ftp (cho các lệnh) trên cổng 21:

  • sudo ufw allow ftp-data
  • sudo ufw allow ftp
  • sudo ufw status

Bây giờ các luật firewall của ta trông giống như:

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

Với vsftpd được cài đặt và các cổng cần thiết đã mở, ta đã sẵn sàng để tiếp tục.

Bước 3 - Chuẩn bị không gian cho file

Đầu tiên, ta sẽ tạo folder mà ta dự định lưu trữ các file , sử dụng cờ -p để tạo folder trung gian. Cấu trúc folder sẽ cho phép bạn giữ tất cả các folder FTP cùng nhau và sau đó thêm các folder khác yêu cầu xác thực:

  • sudo mkdir -p /var/ftp/pub

Tiếp theo, ta sẽ đặt quyền folder thành nobody:nogroup . Sau đó, ta sẽ cấu hình server FTP để hiển thị tất cả các file do user và group ftp sở hữu.

  • sudo chown nobody:nogroup /var/ftp/pub

Cuối cùng, ta sẽ tạo một file trong folder để thử nghiệm sau.

  • echo "vsftpd test file" | sudo tee /var/ftp/pub/test.txt

Với file mẫu này, ta đã sẵn sàng để cấu hình daemon vsftpd.

Bước 4 - Cấu hình quyền truy cập ẩn danh

Ta đang cài đặt để user có quyền sudo duy trì file để phân phối rộng rãi cho công chúng. Để thực hiện việc này, ta sẽ cấu hình vsftpd để cho phép download ẩn danh. Ta hy vọng administrator file sử dụng scp , sftp hoặc bất kỳ phương pháp bảo mật nào khác để duy trì file , vì vậy ta sẽ không cho phép tải file lên qua FTP.

Tệp cấu hình chứa một số tùy chọn cấu hình cho vsftpd.

Ta sẽ bắt đầu bằng cách thay đổi những cái đã được cài đặt :

  • sudo nano /etc/vsftpd.conf

Tìm các giá trị sau và chỉnh sửa chúng để chúng trùng với các giá trị bên dưới:

/etc/vsftpd.conf
. . . # Allow anonymous FTP? (Disabled by default). anonymous_enable=YES #  We’ll set the local_enable setting to “NO” because we’re not going to allow users with local accounts to upload files via FTP. The comment in the configuration file can be a little confusing, too, because the line is uncommented by default.  # Uncomment this to allow local users to log in. local_enable=NO . . .  

Ngoài việc thay đổi cài đặt hiện có, ta sẽ thêm một số cấu hình bổ sung.

Lưu ý: Bạn có thể tìm hiểu về đầy đủ các tùy chọn bằng lệnh man vsftpd.conf .

Thêm các cài đặt này vào file cấu hình. Chúng không phụ thuộc vào thứ tự, vì vậy bạn có thể đặt chúng ở bất cứ đâu trong file .

# # Point users at the directory we created earlier. anon_root=/var/ftp/ # # Stop prompting for a password on the command line. no_anon_password=YES # # Show the user and group as ftp:ftp, regardless of the owner. hide_ids=YES # # Limit the range of ports that can be used for passive FTP pasv_min_port=40000 pasv_max_port=50000 

Lưu ý: Nếu bạn đang sử dụng UFW, các cài đặt này hoạt động như hiện tại. Nếu bạn đang sử dụng Iptables , bạn có thể cần thêm luật để mở các cổng bạn chỉ định giữa pasv_min_portpasv_max_port .

Sau khi chúng được thêm, hãy lưu file . Sau đó, khởi động lại daemon bằng lệnh sau:

  • sudo systemctl restart vsftpd

systemctl không hiển thị kết quả của tất cả các lệnh quản lý dịch vụ, vì vậy nếu bạn muốn chắc chắn rằng mình đã thành công, hãy sử dụng lệnh sau:

  • sudo systemctl status vsftpd

Nếu dòng cuối cùng cho biết trông giống như sau, bạn đã thành công:

Output
Aug 17 17:49:10 vsftpd systemd[1]: Starting vsftpd FTP server... Aug 17 17:49:10 vsftpd systemd[1]: Started vsftpd FTP server.

Bây giờ ta đã sẵn sàng để kiểm tra công việc của bạn .

Bước 5 - Kiểm tra quyền truy cập ẩn danh

Từ trình duyệt web, nhập ftp: // theo sau là địa chỉ IP của server của bạn .

ftp: // 203.0.113.0

Nếu mọi thứ hoạt động như mong đợi, bạn sẽ thấy folder pub :

Hình ảnh của folder  'pub' trong trình duyệt

Bạn cũng có thể nhấp vào pub , xem test.txt , sau đó nhấp chuột phải để lưu file .

Hình ảnh của file  'test.txt' trong trình duyệt

Bạn cũng có thể kiểm tra từ dòng lệnh, điều này sẽ cung cấp nhiều phản hồi hơn về cấu hình của bạn. Ta sẽ ftp tới server ở chế độ thụ động, đây là cờ -p trên nhiều client dòng lệnh. Chế độ thụ động cho phép user tránh thay đổi cấu hình firewall local để cho phép server và client kết nối.

Lưu ý: Máy khách FTP dòng lệnh root của Windows, ftp.exe , hoàn toàn không hỗ trợ chế độ thụ động. User Windows có thể cần xem xét một client Windows FTP khác chẳng hạn như WinSCP .

  • ftp -p 203.0.113.0

Khi được yêu cầu nhập tên user , bạn có thể nhập “ftp” hoặc “nặc danh”. Chúng tương đương nhau, vì vậy ta sẽ sử dụng “ftp” ngắn hơn:

Connected to 203.0.113.0. 220 (vsftpd 3.0.3) Name (203.0.113.0:21:sammy): ftp 

Sau khi nhấn enter, bạn sẽ nhận được thông tin sau:

Output
230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>

Đảm bảo rằng chế độ thụ động đang hoạt động như mong đợi:

  • ls
Output
227 Entering Passive Mode (45,55,187,171,156,74). 150 Here comes the directory listing. drwxr-xr-x 2 ftp ftp 4096 Aug 17 19:30 pub 226 Directory send OK.

Là user ẩn danh, bạn có thể chuyển file vào máy local của bạn bằng lệnh get :

  • cd pub
  • get test.txt
Output
ftp> get test.txt 227 Entering Passive Mode (45,55,187,171,156,73). 150 Opening BINARY mode data connection for test.txt (14 bytes). 226 Transfer complete. 16 bytes received in 0.0121 seconds (1325 bytes/s)

Kết quả này cho bạn biết rằng bạn đã thành công trong việc download file và bạn có thể xem qua để biết rằng file đó nằm trên hệ thống file local của bạn nếu bạn muốn.

Ta cũng muốn chắc chắn rằng những user ẩn danh sẽ không điền vào hệ thống file của ta , vì vậy, để kiểm tra, ta sẽ quay lại và cố gắng đặt lại cùng một file trên server , nhưng với một tên mới:

  • put test.txt upload.txt
Output
227 Entering Passive Mode (104,236,10,192,168,254). 550 Permission denied.

Bây giờ ta đã xác nhận điều này, ta sẽ thoát khỏi màn hình để chuẩn bị cho bước tiếp theo:

  • bye

Bây giờ ta đã xác nhận kết nối ẩn danh đang hoạt động như mong đợi, ta sẽ chuyển sự chú ý của bạn đến những gì sẽ xảy ra khi user cố gắng kết nối.

Bước 6 - Cố gắng kết nối với quyền user

Bạn cũng có thể cần chắc chắn rằng mình không thể kết nối với quyền user có account local vì cài đặt này không mã hóa thông tin đăng nhập của họ. Thay vì nhập “ftp” hoặc “nặc danh” khi bạn được yêu cầu đăng nhập, hãy thử sử dụng user sudo của bạn:

  • ftp -p 203.0.113.0
Output
Connected to 203.0.113.0:21. 220 (vsFTPd 3.0.3) Name (203.0.113.0:21:your_user) 530 This FTP server is anonymous only. ftp: Login failed. ftp>

Các bài kiểm tra này xác nhận bạn cài đặt hệ thống chỉ để download ẩn danh.

Kết luận

Trong hướng dẫn này, ta đã trình bày cách cấu hình vsftpd chỉ cho các bản download ẩn danh. Điều này cho phép ta hỗ trợ các ứng dụng cũ không thể sử dụng các giao thức hiện đại hơn hoặc các url FTP được xuất bản rộng rãi sẽ khó cập nhật. Để tìm hiểu thêm về cách duy trì file , Cách sử dụng SFTP để truyền file an toàn bằng server từ xa có thể hướng dẫn bạn.


Tags:

Các tin liên quan

Cách triển khai ứng dụng Node.js bằng Terraform trên Ubuntu 14.04
2016-08-25
Cách cấu hình Cụm Galera với MariaDB 10.1 trên server Ubuntu 16.04
2016-08-19
Cách tạo Mảng RAID với mdadm trên Ubuntu 16.04
2016-08-16
Cách quản lý mảng RAID với mdadm trên Ubuntu 16.04
2016-08-16
Cách thiết lập NFS Mount trên Ubuntu 16.04
2016-08-04
Cách cài đặt và sử dụng Byobu để quản lý thiết bị đầu cuối trên Ubuntu 16.04
2016-08-04
Cách cài đặt và cấu hình Ansible trên Ubuntu 16.04
2016-07-22
Cách cài đặt và cấu hình Sphinx trên Ubuntu 16.04
2016-07-22
Cách triển khai ứng dụng Node.js và MongoDB với Rancher trên Ubuntu 14.04
2016-07-18
Cách cài đặt và sử dụng BaasBox trên Ubuntu 14.04
2016-07-13