Cách thiết lập máy chủ TFTP trên Linux
TFTP (Trivial File Transfer Protocol) được mô tả lần đầu tiên vào năm 1980. Đây là một giao thức khá cũ được xuất bản vào tháng 6 năm 1981 với tên gọi TFTP Protocol bản sửa đổi 2 trong RFC 783 (Request For Comments) của Karen R. Sollins.
Trong những ngày đầu, mục tiêu chính của TFTP là gửi và nhận tệp qua mạng. Đặc biệt, nó được sử dụng để chuyển các tệp cần thiết trong quá trình khởi động để cho phép các hệ thống khởi động qua mạng.
Đây là cách bạn có thể thiết lập máy chủ TFTP trên máy Linux.
Mục Lục
TFTP là gì?
TFTP vẫn được sử dụng cho mục đích truyền tệp và không có thay đổi cơ bản nào về các tính năng mà nó hỗ trợ. TFTP được sử dụng để tải xuống và gửi tệp qua UDP / IP. Nó không có các chức năng bổ sung như kiểm soát nhận dạng và ủy quyền, liệt kê tệp, xóa hoặc đổi tên, thường được tìm thấy trong các giao thức truyền tệp khác.
Không giống như các giao thức truyền tệp nâng cao sử dụng TCP trong lớp truyền, nó hoạt động trên giao thức UDP và không có các tính năng như kiểm tra xem các gói thuộc tệp có chuyển sang phía bên kia hay không. Vì hạn chế này, nó phù hợp để sử dụng trong các mạng nội bộ hơn là internet hoặc mạng diện rộng.
Bất chấp tất cả các tính năng có vẻ tiêu cực được liệt kê ở trên, một khía cạnh của giao thức TFTP rất mạnh là tính đơn giản của nó. Việc thực hiện giao thức khá dễ dàng so với các lựa chọn thay thế của nó, ngay cả đối với các môi trường không có hệ điều hành trên chúng. Do tính năng này, nó có một khu vực sử dụng rộng rãi trong các hệ thống nhúng.
Cài đặt Máy chủ TFTP trên Linux
Khi làm việc với các thiết bị nhúng, điều quan trọng là phải cài đặt dịch vụ máy chủ TFTP. Trên hệ thống Linux, một số triển khai máy chủ TFTP có thể chạy. Nếu bạn đang sử dụng bản phân phối dựa trên Debian, bạn có thể cài đặt tftpd-hpa, tftpdhoặc atftpd các gói. Nếu bạn không chắc nên chọn cái nào, hãy cân nhắc cài đặt gói tftpd-hpa.
sudo apt-get install tftpd-hpa
Sau khi cài đặt, dịch vụ TFTP sẽ bắt đầu lắng nghe trên cổng UDP 69. Để cung cấp tệp cho các hệ thống khác thông qua máy chủ TFTP, bạn cần lưu ý một số điều kiện tiên quyết:
- Sao chép tệp được yêu cầu vào thư mục chính TFTP hoặc thư mục bên dưới thư mục chính đó
- Hiển thị quyền đối với tệp công khai
Để tìm hiểu thư mục chính của máy chủ TFTP là gì, bạn có thể xem TFTP_DIRECTORY biến trong / etc / default / tftpd-hpa tập tin. Thông thường, bạn sẽ thấy các thư mục như / var / lib / tftpboot hoặc / srv / tftp. Nếu muốn, bạn có thể thay đổi thư mục này và khởi động lại dịch vụ.
cat /etc/default/tftpd-hpa
Để dễ sử dụng, nếu bạn thay đổi chủ sở hữu của thư mục chính TFTP có liên quan thành tài khoản người dùng của mình, bạn sẽ không cần thêm tiền tố sudo vào mọi lệnh mà bạn chạy. Sử dụng lệnh chown để thay đổi quyền sở hữu từ người chủ sang người dùng hiện tại:
sudo chown -R $USER /srv/tftp
Tên gói máy chủ TFTP và thư mục chính mặc định có thể khác nhau tùy thuộc vào bản phân phối Linux được sử dụng.
Gửi tệp bằng máy chủ TFTP
Đôi khi có những tình huống trong đó TFTP là tùy chọn duy nhất để di chuyển tệp từ hệ thống Linux nhúng của bạn ra môi trường bên ngoài. Ví dụ: đôi khi hệ thống có thể không hỗ trợ bất kỳ phương tiện có thể ghi nào bằng cách sử dụng mà bạn có thể chuyển tệp.
Trong những trường hợp như vậy, vì ứng dụng khách TFTP có thể sẽ được biên dịch trong hộp bận rộnbạn có thể gửi một tệp được lưu trong hệ thống tới máy chủ TFTP trên mạng.
Để sử dụng ứng dụng khách TFTP, hãy phát hành busybox tftp yêu cầu:
busybox tftp
Để gửi tệp mẫu đến máy chủ TFTP, bạn cần sử dụng lệnh như sau:
busybox tftp -l example.bin -p 192.168.1.100
Mặc dù lệnh trên là đúng, nhưng bạn sẽ gặp lỗi khi chuyển tệp đến máy chủ TFTP của mình. Vì thông báo lỗi trả về không tự giải thích nên rất khó để hiểu vấn đề thực sự là gì.
Vấn đề ở đây là do một số thủ tục bảo mật trên máy chủ TFTP. TFTP yêu cầu tệp có cùng tên phải nằm trong thư mục nơi tệp sẽ được ghi như một điều kiện tiên quyết để tải tệp lên và quyền truy cập ghi cho tệp này phải khả dụng cho tất cả mọi người.
Nói cách khác, không thể tải lên tệp không tồn tại trên máy chủ TFTP thông qua máy khách TFTP. Nếu bạn tạo một tệp trống có cùng tên và chỉnh sửa quyền truy cập của tệp đó, thì quá trình tải lên ở trên sẽ thành công. Đối với điều này, bạn phải chạy các lệnh sau trong thư mục chính của máy chủ TFTP có liên quan:
cd /srv/tftp
touch example.bin
chmod 666 example.bin
Bây giờ bạn có thể thực hiện tải lên thành công.
Cũng có thể tắt biện pháp bảo mật trên và yêu cầu máy chủ TFTP tạo một tệp không tồn tại. Đối với điều này, bạn có thể sử dụng -c hoặc –tạo ra tham số khi bắt đầu tftpd-hpa đăng kí. Chỉ cần thêm thông số này vào hiện tại là đủ TFTPD_OPTIONS biến trong / etc / default / tftpd-hpa tập tin:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --create"
Tại sao sử dụng máy chủ TFTP để truyền tệp?
Ưu điểm quan trọng nhất của TFTP là tốc độ nhanh và giúp bạn tiết kiệm thời gian. Đây là một lựa chọn lý tưởng để chuyển các tập tin cấu hình của thiết bị mạng sang các hệ thống khác. Hơn nữa, nó có tiêu chí sử dụng rất đơn giản. Nó hoạt động thoải mái với phần mềm trên cả hệ điều hành Windows và Linux. Cuối cùng, TFTP luôn ở đó để tiết kiệm thời gian trong các tình huống mà bạn không thể sử dụng FTP về mặt kỹ thuật.
Tất nhiên, nhược điểm lớn nhất là nó không an toàn. Do đó, bạn phải hết sức cẩn thận khi truyền tệp bằng máy chủ TFTP.
Ngoài việc truyền tệp, bạn không thể thực hiện các chức năng như xóa, chỉnh sửa và sửa đổi tệp bằng máy chủ TFTP. Tính năng này là một bất lợi lớn cho những người sử dụng hoặc tìm kiếm các hệ thống tiên tiến. Cuối cùng, nó không yêu cầu xác thực, đây là một nhược điểm lớn nếu bạn nghiêm túc về bảo mật của mình.
Thiết lập TFTP trên các hệ điều hành khác
Nếu bạn định sử dụng TFTP trên Windows, bạn không cần cài đặt bất kỳ phần mềm nào của bên thứ ba. Bạn có thể bật TFTP bằng tùy chọn Bật hoặc tắt các tính năng của Windows trong bảng điều khiển.