Bài 15. File Servers

1.           FTP Server

1.1. Giới thiệu

File Transfer Protocol (FTP) là giao thức cho download/upload tệp. FTP làm việc theo mô hình client/server. FTP server còn được gọi là FTP daemon. Nó liên tục lắng nghe các yêu cầu FTP từ các clients. Khi nhận được một yêu cầu, FTP server thực hiện thủ tục đăng nhập và thiết lập kết nối với một phiên làm việc. Trong suốt phiên làm việc, FTP server nhận và thực yhi bất kỳ lệnh nào được gửi đến bởi client.

Có thể truy cập FTP server theo hai chế độ: Anonymous (Vô danh) và    Authenticated (Có xác thực). Ở chế độ vô danh, clients có thể truy cập FTP server bằng tài khoản mặc định có tên là "ftp" và dùng địa chỉ email làm mật khẩu. Ở chế độ xác thực, người dùng phải có tài khoản và mật khẩu hệ thống để truy cập FTP server.

FTP dùng 2 kênh TCP: cổng 20 cho dữ liệu và cổng 21 cho lệnh. Tiến trình giao tiếp ở cổng 21 gửi và nhận lệnh, được gọi là  protocol interpreter, hay PI. Tiến trình giao tiếp ở cổng 20 thực hiện truyền/nhận dữ liệu được gọi là  data transfer process, hay DTP.

FTP khác với tất cả ứng dụng TCP/IP là phải dùng 2 kênh, cho phép giả lập truyền tải lệnh và dữ liệu của FTP. Nó cũng khác các giao thức khác một chức năng quan trọng: FTP truyền tải files ở foreground, so với giao thức khác ở background. Hay nói cách khác, FTP không dùng spoolers hay queues, do vậy việc truyền tải thực hiện bằng thời gian thực.

1.2. Cài đặt và cấu hình

FTP deamon cho Ubuntu có tên là vsftpd. Chạy lệnh sau để cài đặt vsftpd:

sudo apt install vsftpd

Tệp cấu hình vsftpd là /etc/vsftpd.conf.

Chế độ vô danh

Để  sử dụng chế độ vô danh, chỉnh sửa tệp /etc/vsftpd.conf bằng thay đổi sau:

anonymous_enable=Yes

Ở chế độ vô danh, người dùng ‘ftp’ được sử dụng. Trong quá trình cài đặt, người dùng ‘ftp’ được tạo, cùng với thư mục home cho người dùng này là /srv/ftp. Nếu muốn thay đổi thư mục home cho ftp, ví dụ thành /srv/files/ftp, hãy chạy các  lệnh sau:

sudo mkdir /srv/files/ftp

sudo usermod -d /srv/files/ftp ftp

Nếu muốn cho người dùng vô danh (‘ftp’) được upload tệp, đặt tham số sau:

anon_upload_enable=YES

Lưu ý, cho upload tệp ở chế độ vô danh có rủi ro an ninh rất cao.

Cần khởi động lại vsftpd để nó nhận cấu hình mới.

sudo restart vsftpd

Chế độ có xác thực

Để  sử dụng chế độ có xác thực, chỉnh sửa tệp /etc/vsftpd.conf bằng thay đổi sau:

anonymous_enable=No

Ở chế độ xác thực, người dùng sử dụng tài khoản hệ thống để đăng nhập FTP Server.

Nếu cho phép người dùng upload tệp, đặt thông số sau:

write_enable=YES

Cần khởi động lại vsftpd để nó nhận cấu hình mới.

sudo restart vsftpd

1.3. Thiết lập an ninh

Để giới hạn người dùng chỉ được truy cập trong thư mục home của họ, sử dụng giá trị cấu hình sau:

chroot_local_user=YES

Cũng có thể danh sách người dùng chỉ có quyền trong thư mục home của họ bằng các tham số:

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

Tạo tệp /etc/vsftpd.chroot_list chứa danh sách người dùng, mỗi người dùng trên một dòng.

Để không cho một người dùng được sử dụng FTP, hãy đưa tên người dùng  vào

tệp /etc/ftpusers. Danh sách mặc đinh bao gồm root, daemon, nobody.

Có thể sử dụng FTP trên Secure Socket Layer (SSL), tức FTPS. Cấu hình bằng cách thêm dòng sau vào cuối tệp /etc/vsftpd.conf.

ssl_enable=Yes

Đồng thời lưu ý chứng thư và khóa liên quan:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Theo mặc định, FTP server sử dụng chứng thư và khóa được cung cấp bởi gói ssl-cert package. Trong môi trường sản xuất, hãy thay thế bằng chứng thư và khóa được tạo cho host.

Lưu ý cần khởi động lại vsftpd để nó nhận cấu hình mới.

1.4. Truy cập FTP server

Sử dụng ftp client bất kỳ, ví dụ ftp, để truy cập vào ftp server:

ftp ip_or_domainname

331 Guest login ok, send your complete e-mail address as password.

Enter username (default: anonymous): anonymous

Enter password [tparker@tpci.com]:

|FTP| Open

230- WELCOME to UNC and SUN's anonymous ftp server

230- University of North Carolina

230- Office FOR Information Technology

230- SunSITE.unc.edu

230 Guest login ok, access restrictions apply.

FTP>

Các lệnh trong ftp:

Lệnh               Chức năng

ascii                Chuyển sang dạng truyền mã ASCII

binary             Chuyển sang dạng truyền mã binary

cd                    Đổi thư mục trên server

close              Chấm dứt kết nối

del                  Xóa một file trên server

dir                   Xem nội dung thư mục trên server

get                   Lấy một file từ server

hash                Chỉ ra một giá trị ký tự cho mỗi khối được truyền

help                Giúp đỡ

lcd                   Thay đổi thư mục trên client

mget               Tải nhiều file từ server

mput             Gửi nhiều file đến server

open               Kết nối đến một server

put                  Gửi một file đến server

pwd                Xem thư mục hiện hành trên server

quote             Cung cấp các lệnh FTP một cách trực tiếp

quit     Kết thúc FTP

Nếu muốn sử dụng giao diện đồ họa, hãy sử dụng FTP client có tên là Filezilla.

2.           NFS

2.1. Giới thiệu

NFS (Network File System) là hệ thống cung cấp dịch vụ chia sẻ tệp phổ biến hiện nay trong hệ thống mạng Linux và Unix. NFS sử dụng mô hình Client/Server. NFS Server có các ổ đĩa cứng vật lý chứa các file system được chia sẻ và một số dịch vụ chạy ngầm trên hệ thống (daemon) phục vụ cho việc chia sẻ với NFS client. Ngoài ra, các dịch vụ chạy trên NFS Server cũng cung cấp chức năng bảo mật tệp và quản lý lưu lượng sử dụng file system quota.

NFS clients muốn sử dụng các file system được chia sẻ trên NFS Server chỉ đơn giản dùng giao thức NFS mount các file system đó lên hệ thống của mình.

2.2. Cài đặt và cấu hình NFS Server

Chạy lệnh sau để cài đặt NFS

sudo apt install nfs-kernel-server

Có thể cấu hình các thư mục được chia sẻ bằng việc thêm thư mục vào tệp /etc/exports. Ví dụ

/ubuntu  10.0.0.0/24 (ro,sync,no_root_squash)

/home    *(rw,sync,no_root_squash)

Trong đó:

o   /ubuntu và /home: Thư mục cần chia sẻ

o   10.0.0.0/24 hay *: Dải địa chỉ IP mà NFS server cho phép truy cập

o   ro: Chỉ cho đọc và không cho ghi vào thư mục

o   rw: Cho phép ghi vào thư mục chia sẻ

o   sync: synchronize

o   no_root_squash: cho quyền root

o   no_all_squash: sử dụng quyền của người dùng

Khởi động lại NFS server:

sudo systemctl start nfs-kernel-server.service

2.3. Cài đặt và cấu hình NFS client

Trên máy muốn sử dụng thư mục được chia sẻ bởi NFS server, cài đặt nfs-common bằng lệnh:

sudo apt install nfs-common

Sử dụng lệnh mount để ánh xạ thư mục được chia sẻ bởi NFS server vào thư mục trên client:

sudo mount nfsserver.hostname:/ubuntu /local/ubuntu

 Có thể thực hiện mout tự động bằng cách thêm dòng cấu hình vào tệp /etc/fstab

nfsserrver.hostname:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr