Showing posts with label FTP. Show all posts
Showing posts with label FTP. Show all posts

June 3, 2015

VPS căn bản [Phần 5] – sFTP là gì và cách sử dụng

Ai đã từng dùng qua Shared Host thì chắc chắn đã biết qua giao thức FTP (File Transfer Protocol) dùng để trao đổi dữ liệu giữa một máy khách và máy chủ tiện lợi và nhanh chóng hơn.
Thế nhưng FTP là một ứng dụng độc lập mà mặc định trên Linux họ không hỗ trợ nên muốn sử dụng FTP trên VPS bạn phải cài đặt nó, nhưng theo ý kiến của mình cũng như các chuyên gia bảo mật thì việc dùng FTP rất dễ gặp các vấn đề bảo mật vì các dữ liệu được truyền tải không hề được mã hóa, và nó còn có đặc tính cho phép một người dùng nặc danh gửi dữ liệu lên máy chủ. Do đó mình không khuyến khích bạn sử dụng FTP trên VPS mà hãy dùng sFTP được hỗ trợ sẵn trên Linux.

I. sFTP là gì?

sFTP là chữ viết tắt của (Secure File Transfer Protocol hoặc SSH File Transfer Protocol), tức nó là một giao thức trao đổi dữ liệu giữa máy khách và máy chủ nhưng các dữ liệu được trao đổi sẽ bị mã hóa trước khi chuyển đến máy chủ hoặc máy khách, hoạt động như một bản mở rộng (extension) của SSH để thay thế cho FTP vốn không an toàn.

II. Kết nối vào sFTP ở Windows

Giống như SSH, sFTP là extension của SSH nên nếu bạn dùng Windows mà muốn sử dụng được giao thức này để gửi file lên máy chủ hoặc download file từ máy chủ về thì phải dùng một sFTP Client. Số lượng sFTP Client hiện nay có rất nhiều mà hầu như các phần mềm FTP Client quen thuộc như FileZillaFlashFXP,Cyberduck đều hỗ trợ.
Tuy nhiên ở đây, mình khuyến khích bạn sử dụng WinSCP vì nó nhẹ nhàng mà lại dễ sử dụng. Sau khi tải về và cài đặt, bạn bật ứng dụng WinSCP lên.
migratefromcpanel-loginwinscp
Ở trên bạn sẽ cần điền IP của VPS hoặc hostname, port bạn đặt là 22 (trùng với port của giao thức SSH) rồi đăng nhập với user là root hoặc một user nào đó trên VPS.
Sau khi ấn Login, có thể nó sẽ hỏi bạn thêm fingerprint giống như lần đầu tiên bạn đăng nhập vào SSH, cứ Yes cho nó đẹp trời nhé. Khi login thành công, nó sẽ chuyển bạn đến thư mục hiện tại của user mà bạn đăng nhập.
winscp-afterlogin
Bây giờ bạn có thể thoải mái duyệt các thư mục ngay trên sFTP và tiến hành sửa/upload các file mà bạn tùy thích giống như bạn đang dùng FTP vậy.
Bạn có thể ra ngoài thư mục gốc và đi vòng vòng cho biết, nhớ là đừng có sửa hay xóa cái gì nhé, mình sẽ giải thích ý nghĩa của từng thư mục sau.

III. Kết nối vào sFTP trên Linux

Nếu bạn dùng Mac/Ubuntu thì có thể sử dụng FileZilla để kết nối đến VPS thông qua sFTP, hoàn toàn miễn phí.
filezilla-sftp
Đăng nhập xong nó sẽ chuyển bạn đến thư mục của user mà bạn đăng nhập vào. Nếu user đó có quyền xem các thư mục khác thì bạn có thể truy cập vào thư mục khác.
Còn nếu bạn là người thích sử dụng lệnh thì có thể sử dụng các lệnh ftp theo hướng dẫn này. Ubuntu và Mac đều có cài FTP sẵn.
Cứ thong thả xem qua 1 vòng, nhất là xem kỹ các thư mục mà bạn thấy khi truy cập vào thư mục gốc (như bin, etc, var,….) vì phần dưới mình sẽ giải thích ý nghĩa của từng thư mục.

IV. Ý nghĩa của các thư mục mặc định trên Linux

Khi truy cập vào thư mục gốc (thư mục /) thì bạn sẽ thấy các thư mục khác như sau:

Các thư mục mặc định trên 1 VPS Linux
Các thư mục mặc định trên 1 VPS Linux

Có quá nhiều thư mục nên mình sẽ không giải thích hết mà chỉ giải thích các thư mục quan trọng mà thôi. Bạn có thể đọc thêm tại đây.
  • /bin – Là thư mục chứa các tập tin thực thi các lệnh Linux. Chẳng hạn như bạn sử dụng lệnh tên là cp để copy các file và thư mục, và khi bạn truy cập vào thư mục /bin này bạn sẽ thấy có một file tên là cp.
  • /boot – Là thư mục chứa các file để khởi động hệ thống Linux mà bạn đang sử dụng, tốt nhất đừng nên chạm vào nó.
  • /dev – Là thư mục chứa các tập tin cấu hình của các phần cứng trong VPS như RAM, ổ cứng, CPU,….
  • /etc – Là thư mục mà có lẽ sau này bạn sẽ cần đụng tới nhiều nhất vì nó sẽ chứa hầu hết các file cấu hình của mọi ứng dụng mà bạn cài vào VPS. Chẳng hạn như sau này bạn cài webserver Apache và để cấu hình Apache, thêm virtualhost,…thì bạn sẽ vào thư mục này.
  • /home – Là thư mục chứa dữ liệu của các user khi thêm vào hệ thống. Dĩ nhiên cái này mình đã nói ở phần trước rồi, là bạn sẽ không nhất thiết sử dụng thư mục này để chứa dữ liệu của user. Tuy nhiên, sau này nếu bạn cài VirtualHost thì có thể sẽ dùng thư mục này cho dễ quản lý.
  • /lib – Là thư mục nguồn chứa các tập tin quan trọng để vận hành máy chủ Linux của bạn.
  • /lost+found – Thư mục này sẽ chứa các tập tin trong hệ thống như một bản sao nếu hệ thống có gặp lỗi hy hữu như sập nguồn hoặc vì lý do nào đó nó không hoạt động được.
  • /opt – Nếu bạn cài một ứng dụng có dung lượng cài đặt lớn, thì nó sẽ lưu ở đây.
  • /proc – Là một thư mục lưu lại các thông tin xử lý của các tiến trình đang chạy, và nó cũng có thể chứa các thông tin của cấu hình VPS. Xem thêm
  • /root – Đơn giản là thư mục của user root.
  • /sbin – Là các ứng dụng Shell dành riêng cho user root. Nó tương tự như thư mục /bin nhưng chỉ có root mới chạy được các lệnh trong đây, ví dụ lệnh aureport để báo cáo các thông tin quan trọng trong server.
  • /usr – Thư mục này có rất nhiều thư mục con ở trong mà mình cũng cần giải thích thêm cho các bạn hiểu. Ý nghĩa của thư mục này là chứa các tác vụ sẽ được chia sẻ trên nhiều user hoặc máy ảo khác nhau. Ý nghĩa chính xác nhất và đầy đủ nhất về các thư mục con trong đây bạn nên đọc tại đây.
  • /var – Thư mục này sẽ chứa các dữ liệu mà hệ thống sẽ ghi ra khi hoạt động, chẳng hạn như các file log. email spool. Đôi lúc bạn cài Apache hay NGINX thì nó cứ lưu thư mục /www ở đây để hiển thị ra web.

Lời kết

Phần IV của bài này có thể bạn không cần nhớ hết các ý nghĩa của các thư mục trên Linux nhưng mình chỉ cần bạn nhớ rõ khái niệm sFTP là gì và cách đăng nhập vào sFTP thôi vì sau này nếu các bạn cần sửa file, upload gì lên VPS dùng sFTP sẽ nhanh hơn là dùng các editor bằng dòng lệnh.
Qua bài sau mình sẽ hướng dẫn bạn thêm một khái niệm quan trọng cuối cùng để chúng ta tiến đến bước cài đặt Webserver, đó là khái niệm phân quyền (Permission) cho tập tin và thư mục.