1. FTP là gì ???
FTP (File Transfer Protocol) là một giao thức trong mô hình TCP/IP được dùng để truyền các file giữa các máy. FTP cho phép truyền nhận file và quản lý trực tuyến. FTP không cho phép truy xuất một máy khác để thực thi chương trình, nhưng nó rất tiện lợi cho việc thao tác với file.
--------------------------
Bài viết dưới đây itviet360 triển khai dịch vụ FTP trên Linux. Nền Centos.
Các bạn có thể tham khảo rất nhiều tài liệu lý thuyế trên mạng. Về lý thuyết dịch vụ FTP trên Linux.
Mô hình |
2.1 Cài đặt
Các gói phần mềm cần thiết:
Vsftpd-*.rpm.
Dấu * đại diện cho phiên bản.
Kiểm tra cho thấy gói dịch vụ đã được cài đặt:
[root@centos_server /]# rpm -qa | grep vsftpd
vsftpd-2.0.1-8.el4
Các file cấu hình cần thiết của dịch vụ FTP:
/etc/vsftpd/vsftpd.conf : File cấu hình chính chứa những tùy chọn cấu hình cho FTP server.
/etc/vsftpd.ftpusers : Chứa danh sách những user không được phép đăng nhập vào server qua dịch vụ ftp bao gồm (root, bin, nobody, daemon …). Vì vấn đề bảo mật trên hệ thống Linux, dịch vụ ftp không cho phép người dùng root và một số người dùng đặc biệt khác đăng nhập để sử dụng dịch vụ ftp.
/etc/vsftpd.user_list : Được sử dụng để cho phép hay từ chối truy cập đến danh sách user. Nó phụ thuộc vào giá trị của userlist_deny trong file vsftpd.conf.
/usr/sbin/vsftpd : File thực thi và cũng chính là deamon.
/var/ftp : Thư mục làm việc của FTP.
/var/ftp/pub : Thư mục chứa những file của user anonymous.
2.2 Cấu hình FTP trên Linux
Đầu tiên, ta xem qua một vài thông số cấu hình trên file /etc/vsftpd/vsftpd.conf:
anonymous_enable=YES : cho phép người dùng Anonymous login qua ftp (mặc định). Nếu chúng ta muốn chỉ cho phép người dùng cục bộ trên hệ thống login qua ftp thì đổi lại YES thành NO.
local_enable=YES : cho phép mọi người dùng cục bộ login qua ftp (mặc định).
Write_enable=YES : Cho phép người dùng khi login qua ftp có quyền ghi (mặc định).
anon_upload_enable=YES : không cho phép người dùng Anonymous upload file qua ftp. Nếu chúng ta muốn cho phép người dùng Anomymous upload file qua ftp thì bỏ ký tự # ở đầu đi. Chú ý: chúng ta phải để anonymous_enable=YES thì option này mới có giá trị.
anon_mkdir_write_enable=YES : không cho phép người dùng Anonymous có quyền tạo thư mục.
Connect_from_port_20=YES : cho phép kết nối với dịch vụ ftp thông qua port 20.
Anon_usmask=022 : cho phép người dùng nặc danh upload file lên và download file đó về.
Userlist_enable=YES : Cấm những user liệt kê trong file /etc/vsftpd.user_list login vào FTP Server.
[root@centos_server /]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@centos_server /]# chkconfig vsftpd on
Kiểm tra dịch vụ đã hoạt động:
[root@centos_server /]# pgrep vsftpd
11847 ================ Thông số cho thấy dịch vụ đã hoạt động tốt.
Để các máy Client có thể truy cập vào máy Server thông qua dịch vụ FTP, cần phải đảm bảo port 21 trên Server đã mở.
Thêm dòng lệnh sau vào file /etc/sysconfig/iptables để mở Port 21 trên Server:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
Khởi tạo lại Service iptables.
[root@centos_server /]# service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Kiểm tra xem port 21 đã được mở hay chưa:
[root@centos_server /]# iptables -L -n
Trên máy Client, thử kết nối đến server thông qua dịch vụ ftp bằng user Anonymus:
Kết nối Server |
Mặc định user Anonymous không cần mật khẩu khi login.
Tạo một user để kiểm tra dịch vụ:
[root@centos_server /]# useradd test_ftp
[root@centos_server /]# passwd test_ftp
Changing password for user test_ftp.
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
- Sau đó ta login lại bằng User vừa tạo.
Tuy nhiên, nếu ta thử login bằng tài khoản root, việc kết nối sẽ thất bại. Để đảm bảo tính bảo mật, mặt định user root không được đăng nhập thông qua dịch vụ FTP:
Để cho phép user root hoạt động, chúng ta cần cấu hình trong cả hai file /etc/vsftpd.ftpusers và /etc/vsftpd.user_list. Thêm dấu # vào trước user root.
Việc làm này có ý nghĩa là chúng ta đã loại bỏ user root ra khỏi danh sách cấm của dịch vụ FTP.
Chúng ta có thể làm tương tự với những user khác.
Đồng thời, thông qua hai file này, chúng ta cũng có thể cấm một user nào đó không được login thông qua dịch vụ FTP, chỉ bằng cách đơn giản là thêm user đó vào cả 2 file này.
Thao tác với hệ thống file thông qua dịch vụ FTP:
Thư mục Home của user khi login vào Server thông qua dịch vụ FTP chính là thư mục home của user đó trên Server. Riêng đối với user anonymous, thư mục home chính là thư mục /var/ftp/pub.
---------------------------------------------------
Video Demo dịch vụ FTP trên Linux Full ai cần thì comment để lại email mình gửi nhé.
------------------------------------------
Tải Full cấu hình FTP trên Linux: TẠI ĐÂY