Linux Cài đặt FTP server cho CentOS 7

phantrivy

Internship/Fresher
Sep 10, 2020
4
0
1
I. Giới thiệu giao thức FTP
1.1. Giới thiệu FTP

FTP (viết tắt của File Transfer Protocol) là giao thức truyền tệp tin được sử dụng khá phổ biến.
FTP được dùng để trao đổi tập tin qua mạng lưới truyền thông dùng giao thức TCP/IP (chẳng hạn như Internet hoặc mạng nội bộ). ... Hầu như bất cứ một nền tảng hệ điều hành máy tính nào cũng hỗ trợ giao thức FTP.
Port mặc định cho dịch vụ FTP là port 21.

Cách hoạt động của FTP:
  • FTP server: dùng để chạy phần mềm cung cấp dịch vụ FTP (FTP Server): nhận yêu cầu về dịch vụ của các máy tính khác trong mạng
  • FTP client: dành cho người sử dụng dịch vụ, khởi đầu một liên kết với máy chủ.
Sau khi liên kết nhau, FTP client có thể xử lý một số thao tác về tập tin: tải/đổi tên/xoá tập tin ở server xuống máy cá nhân và tải tập tin từ máy cá nhân lên server.

1.2. Chức năng từng phần trong FTP

29lythuyet.png


Do chức năng điều khiển và dữ liệu được truyền tải bằng cách sử dụng các kênh riêng biệt nên mô hình FTP chia mỗi thiết bị thành 2 phần giao thức logic chịu trách nhiệm cho mỗi kết nối ở trên:

  • Protocol interpreter (PI): Là thành phần quản lý kênh điều khiển, phát và nhận lệnh và trả lời.
  • Data transfer process (DTP): chịu trách nhiệm gửi và nhận dữ liệu giữa client và server.
Phía Server

  • Server Protocol Interpreter (Server-PI) : Chịu trách nhiệm quản lí Control Connection trên Server. Nó lắng nghe yêu cầu kết nối hướng từ User trên cổng 21. Khi kết nối được thiết lập, nó nhận lệnh từ User-PI, gửi phản hồi và quản lí tiến trình truyền dữ liệu trên Server.
  • Server Data Transfer Process (Server-DTP) : chịu trách nhiệm nhận và gửi file từ User-DTP. Server-DTP vừa làm nhiệm vụ thiết lập Data Connection và lắng nghe Data Connection của User thông qua cổng 20. Nó tương tác với Server File System trên hệ thống cục bộ để đọc và chép file.
Phía Client

  • User Interface: Đây là chương trình được chạy trên máy tính, nó cung cấp giao diện xử lí cho người dùng, chỉ có trên phía Client. Nó cho phép người dùng sử dụng những lệnh đơn giản để điều khiển các session FTP, từ đó có thể theo dõi được các thông tin và kết quả xảy ra trong quá trình.
  • User Protocol Interpreter (User-PI): Chịu trách nhiệm quản lí Control Connection phía Client. Nó khởi tạo phiên kết nối FTP bằng việc phát hiện ra Request tới Server-PI. Sau khi kết nối được thiết lập, nó xử lí các lệnh nhận được trên User Interface, gửi chúng tới Server-PI rồi đợi nhận Response trở lại. Nó cũng quản lí các tiến trình trên Client.
  • User Data Transfer Process (User-DTP): Có nhiệm vụ gửi hoặc nhận dữ liệu từ Server-DTP. User-DTP có thể thiết lập hoặc lắng nghe DataConnection từ Server thông qua cổng 20. Nó tương tác với Client File System trên Client để lưu trữ file.
1.3. Nguyên lý hoạt động:

Cần có 2 kết nối TCP trong phiên làm việc của FTP: TCP Data connection trên cổng 20, TCP Control connection trên cổng 21.
  • Control connection : luôn được mở ở mọi thời điểm khi dữ liệu hoặc lệnh được gửi.
  • Data connection : chỉ được mở khi có trao đổi dữ liệu thực.

Trình tự chung của FTP hoạt động như sau:
  1. FTP Client mở Control connection đến FTP server (trên port 21) và chỉ định 1 cổng trên Client để Server gửi lại phản hồi. Đường kết nối này dùng để truyền lệnh và không phải là dữ liệu. Control connection sẽ mở trong suốt thời gian của phiên làm việc (telnet giữa 2 hệ thống)
  2. Client chuyển tiếp thông tin như username, password tới Server để thực hiện xác thực (authentication). Server sẽ trả lời bằng mã chấp nhận hay từ chối của các request.
  3. Client gửi thêm các lệnh với tên tệp, kiểu dữ liệu, … để vận chuyển, thêm luồng dữ liệu(tức là chuyển tập tin từ máy khách đến máy chủ hoặc ngược lại). Server sẽ phản hồi với mã (reply code) chấp nhận hoặc từ chối.
  4. Khi dữ liệu đã sẵn sàng, 2 bên sẽ mở kết nối TCP trên cổng 20.
  5. Dữ liệu có thể được vận chuyển giữa Client và Server trên cổng 20. Dữ liệu vận chuyển được mã hóa theo 1 số định dạng bao gồm NVT-ASCII hoặc nhị phân(binary)
  6. Khi quá trình vận chuyển dữ liệu được hoàn thành, phiên làm việc của FTP Server sẽ đóng lại Data Connection trên cổng 20. Nhưng vẫn giữ Control Connection trên công 21.
  7. Control connection có thể được sử dụng để thiết lập truyền dữ liệu khác hoặc đóng liên kết.


II. Cài đặt và cấu hình FTP Server
2.1. Cài đặt vsFTPD để tạo FTP server
2.2. Cấu hình FTP server
2.3. Cấu hình user cho FTP server
2.4. Phân quyền cho user trong FTP server

Ở bài lab này sẽ hướng dẫn cài đặt FTP server trên hệ điều hành Linux là CentOS 7.

Cài đặt FTP Server có nhiều cách, bài lab này sẽ cài vsFTPD.

VSFTPD(Very Secure File Transport Protocol Daemon) là một FTP Server Stand Alone được phân phối bởi Red Hat Enterprise Linux . Đây là phần mềm để tạo FTP Server với tốc độ nhanh, cấu hình đơn giản.

2.1. Cài đặt vsFTPD để tạo FTP server:

Cài đặt vsftpd:

sudo yum install vsftpd


Sau khi hoàn tất tải, ta khởi động dịch vụ vsftpd:
sudo systemctl start vsftpd


Cho phép dịch vụ khởi động cùng hệ thống:

sudo systemctl enable vsftpd


Tiếp theo cần cấu hình firewall cho dịch vụ FTP và port 21:

sudo firewall-cmd --zone=public --add-port=21/tcp --permanent
sudo firewall-cmd --zone=public --add-service=ftp --permanent


Reload lại firewall để nhận cấu hình vừa thêm:
sudo firewall-cmd --reload


Kiểm tra trạng thái dịch vụ vsftpd:

sudo systemctl status vsftpd


View attachment 418

2.2. Cấu hình vsftpd:
Các file quan trọng khi chuẩn bị cấu hình FTP server cho CentOS:
  • vsftpd.conf: File cấu hình chính.
  • ftpuser: Chứa các user không được login bằng vào FTP server.
  • user_list: Chỉ định các user được hoặc không được login vào FTP server.
File vsftpd.conf

Để cấu hình vsftpd trước tiên cần copy file cấu hình vsftpd.conf ra 1 bản khác là vsftpd.conf.default để dự phòng:

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default


Chỉnh sửa file vsftpd.conf bằng lệnh sau:

sudo vi /etc/vsftpd/vsftpd.conf


Các thông tin cần chỉnh sửa như sau:

Ngăn truy cập ẩn danh và FTP server:

anonymous_enable=NO


Các user local có thể login vào FTP server:

local_enable=YES


Cho phép ghi vào FTP server:

write_enable=YES


Bỏ # cho 2 dòng này để cho phép mode ascii:

ascii_upload_enable=YES
ascii_download_enable=YES


Sau khi hoàn tất cấu hình ta cần khởi động lại và kiểm tra trạng thái dịch vụ:

sudo systemctl restart vsftpd

Đến đây thì các user local đã có thể đăng nhập vào FTP server bằng địa chỉ IP của máy thông qua trình duyệt web.

2.3. Cấu hình user cho FTP server
Tạo user login FTP

Để đảm bảo tính bảo mật cho hệ thống, FTP server nên có user cho riêng nó để không làm ảnh hưởng đến các phần khác trong hệ thống và tránh rủi ro bị tấn công từ bên ngoài.

Tạo user và password cho FTP server:

adduser ftpuser
passwd ftpuser
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Các user được tạo sẽ được chứa ở đường dẫn /home/tên_user/, user được tạo là ftpuser nên đường dẫn sẽ là /home/ftpuser/

Thêm user vừa tạo vào danh sách user_list

echo “ftpuser” | sudo tee –a /etc/vsftpd/user_list

Tạo thư mục chứa các dữ liệu cho FTP server

sudo mkdir –p /home/ftpuser/ftp/upload
sudo chmod 750 /home/ftpuser/ftp
sudo chmod 750 /home/ftpuser/ftp/upload
sudo chown –R ftpuser: /home/testuser/ftp

Chỉ sửa lại file vsftpd.conf

vi /etc/vsftpd/vsftpd.conf

Khi userlist_deny có giá trị là NO tức các user trong userlist được phép truy cập vào FTP server.

userlist_enable=YES
userlist_deny=NO


Trỏ đường dẫn chứa file cho FTP server đến thư mục vừa tạo.

local_root=/home/ftpuser/ftp/upload


Sau khi chỉnh sửa cấu hình ta cần khởi động lại và kiểm tra trạng thái dịch vụ:

sudo systemctl restart vsftpd
sudo systemclt status vsftpd

Từ máy client đã được kết nối với máy FTP server ta có thể truy cập vào nơi chia sẽ dữ liệu trên FTP server.
 
Last edited by a moderator:

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu