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:
1.2. Chức năng từng phần trong FTP
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:
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.
Trình tự chung của FTP hoạt động như sau:
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:
Sau khi hoàn tất tải, ta khởi động dịch vụ vsftpd:
Cho phép dịch vụ khởi động cùng hệ thống:
Tiếp theo cần cấu hình firewall cho dịch vụ FTP và port 21:
Reload lại firewall để nhận cấu hình vừa thêm:
Kiểm tra trạng thái dịch vụ 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:
Để 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:
Chỉnh sửa file vsftpd.conf bằng lệnh sau:
Các thông tin cần chỉnh sửa như sau:
Ngăn truy cập ẩn danh và FTP server:
Các user local có thể login vào FTP server:
Cho phép ghi vào FTP server:
Bỏ # cho 2 dòng này để cho phép mode ascii:
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ụ:
Đế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:
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
Tạo thư mục chứa các dữ liệu cho FTP server
Chỉ sửa lại file 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.
Trỏ đường dẫn chứa file cho FTP server đến thư mục vừa tạo.
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ụ:
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.
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ủ.
1.2. Chức năng từng phần trong FTP
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.
- 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.
- 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.
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:
- 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)
- 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.
- 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.
- Khi dữ liệu đã sẵn sàng, 2 bên sẽ mở kết nối TCP trên cổng 20.
- 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)
- 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.
- 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.
Để 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: