Bài 4. Kết nối mạng (1)

0
367

Bài viết này sẽ hướng dẫn cách sử dụng Banana Pi để kết nối mạng. Một trong những điểm mạnh chính của thiết bị là cung cấp bộ chuyển đổi mạng nhanh kết hợp với giao diện SATA- nền tảng của các ứng dụng mạng mạnh mẽ.

Các nội dung chính của bài viết này gồm:

1. Chia sẻ file trên mạng qua Samba

2. Thiết lập ứng dụng web

3. Bảo mật server web Nginx bằng SSL

1. Chia sẻ file trên mạng qua Samba

Trong mục này sẽ trình bày cách thiết lập Samba server trên Banana Pi. Bên cạnh đó sẽ tìm hiểu cách kết nối các Windows và Linux client với Samba server. Samba là sự triển khai lại giao thức mạng SMB/CIFS để cung cấp tính năng chia sẻ file và in giữa các hệ thống Windows và Linux.

Các thành phần cần chuẩn bị gồm:

– Một Banana Pi chạy hệ điều hành Linux dựa trên Debian

– Một mạng được định cấu hình trên Banana Pi

Việc chia sẻ gồm hai bước là cài đặt và cấu hình của Samba server và thiết lập client.

* Cài đặt Samba server

Trong ví dụ dưới đây, người dùng mặc định là bananapi và server mặc định là lemaker. Nếu muốn sử dụng tên người dùng và tên server riêng, chú ý thay thế tên tương ứng trong các bước sau.

1. Mở shell.

2. Tạo một thư mục được chia sẻ:

$ mkdir /home/bananapi/first_shar

3. Đặt file kiểm tra vào share ở các bước sau:

$ touch /home/bananapi/first_share/helloworld.tx

4. Cài đặt server, các công cụ phổ biến và client qua apt-get:

$ sudo apt-get install samba samba-common-bin samba-client

Đôi khi, cần cập nhật bộ đệm Apt  khi xuất hiện một phiên bản gói mới được cài đặt trong bộ đệm Apt khi bộ đệm cache Apt lỗi thời. Nếu gặp lỗi như Failed to fetch … 404 Not Found, thì bạn có thể yêu cầu Apt cập nhật bộ nhớ cache như $ sudo apt-get update.

5. Sao lưu /etc/samba/smb.conf mặc định:

$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Nếu có sai sót ở các bước sau, có thể trở lại smb.conf mặc định bằng cách sao chép lại smb.conf.backup.

6. Định cấu hình server bằng cách chỉnh sửa /etc/samba/smb.conf:

$ sudo nano /etc/samba/smb.conf

7. Khi đó xuất hiện file với nhiều chú thích (các dòng bắt đầu bằng # là bị server bỏ qua).

8. Dùng phím mũi tên xuống để cuộn xuống cuối và thêm cấu hình sau:

[first_share]
  comment = My first share
  read only = no
  locking = no
  path = /home/bananapi/first_share
  guest ok = no

9. Lưu và thoát file bằng cách nhấn Ctrl + X, tiếp theo là Y và Enter.

10. Bước tiếp theo là tạo người dùng Samba có tên bananapi:

$ sudo smbpasswd -a bananapi

Lưu ý: người dùng Samba phải tồn tại với tư cách là người dùng Linux trên hệ thống. Thêm người dùng Linux có cùng tên như trong Chương 2, trước khi thêm người dùng Samba.

11. Gán mật khẩu và nhập lại.

12. Công cụ smbpasswd sẽ phản hồi với bananapi người dùng đã thêm.

13. Khởi động lại Samba server:

$ sudo /etc/init.d/samba restart 

Việc khởi động lại ứng dụng server có thể khác nhau tùy thuộc vào hệ điều hành. Ví dụ, trên Lubuntu, lệnh là:

$ sudo service smbd restart

14. Kiểm tra xem chia sẻ và server có được công nhận hay không:

$ smbclient -L localhost -U%

15. Xuất hiện thông tin về Samba server trên bảng điều khiển.

16. Bây giờ, kiểm tra xem bản chia sẻ có thể truy cập được thông qua người dùng bananapi Samba hay không:

$ smbclient -U bananapi // localhost / first_share

17. Bạn sẽ thấy dòng lệnh SMB. Gõ lệnh dir để nhận danh sách các file:

smb: \> dir

18. Nếu thấy helloworld.txt đã tạo trước đó nghĩa là thiết lập Samba share thành công.

19. Thoát dòng lệnh Samba bằng lệnh:

smb: \> quit

Bây giờ có thể thử truy cập share từ một máy tính khác.

* Truy cập Samba share trên Windows

Truy cập thư mục chia sẻ trên Windows rất đơn giản.

1. Mở Windows Explorer (ví dụ: bằng cách nhấn phím logo Windows + E).

2. Click vào thanh địa chỉ (hoặc nhấn Ctrl + L).

3. Nhập URL sau vào thanh địa chỉ:

\\ lemaker \ first_share

Nếu máy tính không nhận dạng được tên server, hãy sử dụng địa chỉ IP của Banana Pi.

4. Xuất hiện yêu cầu nhập thông tin đăng nhập người dùng Samba.

5. Nhập tên người dùng bananapi và mật khẩu bananapi.

6. Nếu không thể đăng nhập, thử thêm tiền tố tên người dùng: lemaker\ bananapi.

7. Khi đó sẽ đăng nhập thành công

8. Nếu có thể truy cập share thì có thể tạo vị trí mạng,nó như một ổ đĩa cục bộ cho phép bạn làm việc Samba share

9. Mở Command Prompt (nhấn phím logo Windows + R và chạy chương trình cmd.exe).

10. Nhập lệnh sau để tạo vị trí mạng:

net use X: \\lemaker\first_share /P:Yes

11. Xuất hiện phản hồi: The command completed successfully

12. Lúc này bạn có một ổ đĩa mạng mới trong Windows Explorer với ký tự ổ đĩa X:

13. Tiếp theo, bạn sẽ thấy yêu cầu thông tin đăng nhập khi truy cập mạng chia sẻ. Click vào Remember my credentials để đăng nhập tự động trong những lần sau.

* Truy cập file Samba share trên Linux theo cách thủ công

Trên Linux, việc truy cập vào phần Samba share khá đơn giản: Phương pháp thủ công bằng dòng lệnh hoặc tự động sử dụng fstab file. Để sử dụng cả hai cách trên thì máy tính Linux đều phải cài đặt smbclient.

1. Mở shell.

2. Tạo thư mục đích để thiết lập Samba share:

$ sudo mkdir / mnt / samba_share

3. Cài đặt Samba share bằng lệnh:

$ sudo mount -t cifs // lemaker / first_share / mnt / samba_share / -
o user = bananapi, password = bananapi

Nếu máy tính không nhận dạng được tên server, hãy dùng địa chỉ IP của Banana Pi.

Samba share được cài đặt thành công.

* Truy cập Samba share trên Linux bằng fstab

Để thêm Samba share vào fstab và tự động cài đặt, thực hiện những bước sau:

1. Mở shell.

2. Tạo thư mục đích:

$ sudo mkdir /mnt/samba_share

3. Chỉnh sửa file fstab bằng trình chỉnh sửa như nano:

$ sudo mkdir /mnt/samba_share

4. Xuống cuối file fstab bằng cách nhấn và giữ phím mũi tên xuống.

5. Thêm dòng sau vào fstab:

//lemaker/first_share /mnt/samba_share cifs
username=bananapi,password=bananapi 0 0

6. Thoát và lưu nano bằng cách nhấn Ctrl + X, tiếp theo là YEnter.

7. Nếu đã thiết lập thư mục đích / mnt / samba_share, hãy gỡ thiết lập:

$ sudo umount / mnt / samba_share

8. Bây giờ chúng ta thiết lập thư mục đích bằng cách nhập lệnh sau:

$ sudo mount / mnt / samba_share

Bạn được cấp quyền truy cập vào Samba share. Tùy thuộc vào hệ điều hành Linux đã sử dụng, share có thể được tự động thiết lập lại khi khởi động hoặc không. Nếu không tự động thiết lập, hãy tham khảo hướng dẫn sử dụng hệ điều hành để biết cấu hình thiết lập tự động phù hợp.

Cách thức hoạt động

Samba được gọi là tái thực hiện giao thức SMB/CIFS. Windows sử dụng các giao thức này để chia sẻ file và máy in qua mạng cục bộ. Do đó, nếu có máy tính Windows và Linux trên mạng cục bộ, việc cài đặt một Samba server là một lựa chọn tuyệt vời.

Để tạo share, trước đây cần một thư mục được chia sẻ. Trong ví dụ là thư mục /home/bananapi/first_share trên Banana Pi. Bạn được sử dụng bất kỳ thư mục nào miễn là được cấp quyền truy cập. Nên dùng thư mục share trên ổ đĩa ngoài vì để thêm dung lượng và hiệu suất tốt hơn so với thẻ SD.

Để kiểm tra share, tạo file văn bản thông qua lệnh touch. Khi được thực thi mà không có tham số, lệnh touch sẽ cập nhật thời gian truy cập của file. Nếu file không tồn tại, một file mới sẽ được tạo.

Sau khi cài đặt các thành phần Samba cần thiết, bước tiếp theo là định cấu hình Samba server để cấp quyền truy cập (chia sẻ) qua mạng bằng cách chỉnh sửa file cấu hình hệ thống /etc/samba/smb.conf. Trong trường hợp cấu hình không thành công vì bất kỳ lý do gì, thực hiện sao lưu smb.conf mặc định trước khi chỉnh sửa.

Tạo một share mới bằng cách thêm một phần mới với tên của share ([first_share]). Phần này chứa các tùy chọn cấu hình. Có một số tùy chọn khả thi mà bạn có thể tìm hiểu từ trang hướng dẫn cấu hình Samba ($ man smb.conf). Nó phù hợp để định cấu hình share như sau:

Share có tên/bình luận  (comment = My first share)

Share có thể đọc và ghi được  (read only = no)

Share bị vô hiệu hóa (locking = no)

Chỉ người dùng Samba mới có thể truy cập share (guest ok = no)

Thư mục sẽ được chia sẻ (path = /home/bananapi/first_share)

Khi định cấu hình share, để chặn những đăng nhập từ khách ẩn danh, cần tạo một Samba user: tạo Samba user với tên user và mật khẩu bananapi bằng lệnh smbpasswd.

Khi cấu hình trước đó hoàn tất, phải khởi động lại Samba server để áp dụng các thay đổi. Trên các hệ điều hành dựa trên Debian, hầu hết các dịch vụ được khởi động và ngắt bằng cách sử dụng các tập lệnh shell quản trị nằm trong /etc/init.d

Khi cài đặt Samba server, tập lệnh trong /etc/init.d/samba giúp điều khiển  Samba server, tập lệnh này chạy tự động khi khởi động. Khởi động lại Samba server bằng cách thực thi /etc/init.d/samba với tham số khởi động lại. Lệnh có thể thay đổi nếu không sử dụng hệ điều hành Raspbian cho Banana Pi.

Sau đó, kiểm tra xem có quyền truy cập vào phần share cục bộ trên Banana Pi hay không bằng cách thực thi công cụ smbclient: tham số -L liệt kê thông tin về Samba server; tham số -U% nghĩa là không sử dụng tên người dùng và mật khẩu dẫn đến việc lấy thông tin server ẩn danh. Nếu muốn truy cập thư mục được chia sẻ bằng smbclient, phải sử dụng thông tin đăng nhập (vì không cho phép khách ẩn danh trên share đó). Đây là lý do phải sử dụng -U bananapi trong lần chạy smbclient thứ hai.

Vì giao thức SMB/CIFS được sử dụng rộng rãi trong Windows nên có thể dễ dàng truy cập share từ một ứng dụng khách Windows. Để truy cập share, sử dụng ký hiệu Windows với dấu gạch chéo ngược (\\hostname\share_name). Nếu máy tính không thể nhận dạng Banana Pi theo tên server thì phải sử dụng địa chỉ IP. Ngoài ra, có thể thiết lập share dưới dạng ổ đĩa bằng cách thực hiện chương trình net trên dòng lệnh và có thể chọn vị trí mạng bằng cách click chuột phải vào This PC, chọn Add a network location trong Windows Explorer và làm theo trình hướng dẫn cấu hình.

Trên các Linux client, có thể sử dụng lệnh thiết lập hoặc định cấu hình share trong /etc/fstab. Với cả hai cách, quyền truy cập sẽ chỉ hoạt động nếu đã cài đặt công cụ smbclient trên client Linux.

Đảm bảo rằng trên Samba server, thư mục được chia sẻ và các thư mục mẹ có quyền đọc và thực thi cho tất cả người dùng (quyền drwxr-xr-x). Thêm, đọc và thực thi quyền cho tất cả người dùng bằng lệnh chmod:

$ sudo chmod a+rx /home/bananapi/first_share 

Lệnh chmod (thay đổi các bit chế độ file) gán quyền cho các thư mục hoặc file. Tham số a + rx cho phép tất cả các quyền (a), thêm (+), đọc (r) và thực thi (x).

Để liệt kê tất cả Samba user trên Banana Pi, sử dụng công cụ pdbedit:

$ sudo pdbedit -w -L

Để xóa Samba user (không phải người dùng Linux thực sự), sử dụng lệnh smbpasswd:

$ sudo smbpasswd -x bananapi

Trên các hệ điều hành Debian, thường có hai dịch vụ điều khiển (ứng dụng server hoặc daemon). Phương pháp System V cổ điển thực hiện bằng tập lệnh shell trong /etc/init.d và điều khiển daemon bằng chương trình service.

Ví dụ: khởi động lại daemon Samba bằng lệnh sau:

$ sudo service samba restart

Ngoài ra, giải pháp thay thế trước đó có thể thay đổi tùy thuộc vào hệ điều hành đang sử dụng. Phương thức dịch vụ cũng sử dụng tập lệnh System V, nhưng trong một môi trường an toàn hơn do không có các vấn đề tiềm ẩn do các biến môi trường hoặc tương tự gây ra.

Một mối quan tâm bảo mật khác về fstab trên các Linux client là thông thường người dùng đều có thể đọc nội dung của file/etc/fstab (có quyền -rw-r – r–). Do đó, nếu có nhiều người dùng trên hệ thống, những người dùng khác có thể dễ dàng đọc nội dung của file fstab, bao gồm dữ liệu đăng nhập cho phần Samba share. Vì vậy, cần lưu thông tin xác thực đăng nhập vào một file khác mà chỉ người dùng gốc mới có thể đọc được, sau đó, tham khảo file thông tin xác thực trong fstab:

1. Mở shell.

2. Mở nano để tạo file thông tin xác thực mới:

$ sudo nano /etc/samba/bananapi.cred

3. Trong trình chỉnh sửa, thêm hai dòng sau:

username=bananapi

password=bananapi

4. Thoát và lưu nano bằng cách nhấn Ctrl + X, sau đó chọn Y và Enter.

5. Thu hồi tất cả các quyền cho các nhóm đối với file mới tạo

$ sudo chmod go-rwx /etc/samba/bananapi.cred

6. Từ bây giờ, file chỉ có thể đọc và ghi được đối với người dùng root.

7. Chỉnh sửa file fstab để tham chiếu đến file thông tin xác thực:

$ sudo nano / etc / fstab

8. Sửa đổi dòng xác định điểm thiết lập cho share thành:

//lemaker/first_share /mnt/samba_share cifs
credentials=/etc/samba/bananapi.cred 0 0 

9. Thoát và lưu nano bằng cách nhấn Ctrl + X, tiếp theo là Y và Enter.

Bằng cách này, người dùng có thể thấy có file thông tin xác thực được sử dụng cho Samba share. Tuy nhiên, vì đã thu hồi quyền đọc, chỉ người dùng root mới có quyền đọc tên người dùng và mật khẩu thực. Tham số chmod go-rwx có nghĩa là nhóm (g) và tất cả những người khác (o), thu hồi (-) quyền đọc (r), ghi (w) và thực thi (x).

2. Thiết lập ứng dụng web

Trong nội dung này, chúng ta cùng tìm hiểu khả năng chạy các ứng dụng web động của Banana Pi. Ví dụ tiếp theo sẽ cài đặt server web Nginx, server cơ sở dữ liệu MySQL và ngôn ngữ PHP bằng cách thiết lập phần mềm blog phổ biến, WordPress trên web stack sắp tới.

Trước tiên, cần có các thành phần sau:

– Một Banana Pi đang chạy hệ điều hành Linux dựa trên Debian

– Một mạng được định cấu hình trên Banana Pi

Việc thực hiện gồm 4 phần:

– Việc thiết lập server web

– Việc thiết lập server cơ sở dữ liệu

– Việc thiết lập PHP

– Việc thiết lập WordPress

1. Cài đặt server web Nginx

Trên thị trường có một số server web, ở ví dụ này sử dụng server web Nginx vì nó hoạt động tốt trênBanana Pi.

Để thiết lập phần mềm Nginx, thực hiện các bước sau:

1. Mở shell.

2. Cài đặt Nginx:

$ sudo apt-get install nginx

3. Apt sẽ yêu cầu xác nhận việc cài đặt các gói phụ thuộc.

4. Nhập Y để xác nhận các gói phụ thuộc và tiếp tục cài đặt.

Sau vài giây đến vài phút, server web được cài đặt.

5. Bước tiếp theo là cấu hình Nginx. Chỉnh sửa / etc / nginx / sites-available / default:

$ sudo nano / etc / nginx / sites-available / default

6. Cuộn xuống cho đến khi thấy phần server đầu tiên (server {).

7. Bạn sẽ thấy HTTP root (root usr / share / nginx / www).

Tùy thuộc vào hệ điều hành, HTTP root cũng có thể khác nhau. Ví dụ, trên Lubuntu, thư mục HTTP root là / usr / share / nginx / html.

8. Bên dưới mục root, bạn thấy một mục nhập index. Thêm index.php vào danh sách này, để dòng có dạng như sau:

index index.html index.htm index.php;

9. Cuộn xuống cho đến phần PHP đã nhận xét (#location ~ \ .php $ {).

10. Bỏ ghi chú toàn bộ phần ngoại trừ dòng: fastcgi_pass 127.0.0.1:9000.

11. File cấu hình sẽ giống với file trong hình sau:

12. Thoát và lưu trình soạn thảo nano bằng cách nhấn Ctrl + X, tiếp theo là Y và Enter.

13. Khởi động lại server web Nginx để áp dụng các thay đổi:

$ sudo /etc/init.d/nginx restart

Sau khi cài đặt server web Nginx để chuẩn bị chạy các ứng dụng PHP, kiểm tra server web có đang chạy không. Nhập URL http: // HOSTNAME / (ví dụ: http: // lemaker /) vào trình duyệt trên cùng một mạng. Có thể sử dụng địa chỉ IP của Banana Pi thay vì tên server.

Cài đặt ngôn ngữ PHP scripting

 Bước tiếp theo là cài đặt trình PHP scripting cho server web Nginx

1. Khi đã mở shell, cài đặt các gói sau:

$ sudo apt-get install php5-fpm php5-mysql

2. Apt sẽ yêu cầu xác nhận việc cài đặt các gói phụ thuộc.

3. Nhập Y để tiếp tục cài đặt.

4. Apt sẽ cấu hình một số file trong vòng vài phút.

5. Sau khi cài đặt PHP, thay đổi quyền của HTTP root để người dùng có thể đặt các file vào thư mục đó một cách hoàn hảo:

$ sudo chown -R $ USER. $ GROUP / usr / share / nginx / www

Thay thế thư mục HTTP root bằng thư mục HTTP root chính xác tùy thuộc vào hệ điều hành của bạn.

Sau đó, tạo một tập lệnh PHP để kiểm tra chức năng PHP với Nginx:

 $ nano /usr/share/nginx/www/info.php

7. Trong trình soạn thảo nano, viết đoạn mã PHP sau:

<? php
 phpinfo ();

8. Thoát và lưu file mới tạo bằng cách nhấn Ctrl + X, tiếp theo là Y và Enter.

Kiểm tra PHP xem đã được cài đặt chính xác chưa bằng cách mở trình duyệt và sử dụng URL http: //lemaker/info.php.

Khi đó người dùng sẽ thấy nhiều thông tin về thiết lập PHP

Cài đặt server cơ sở dữ liệu MySQL

Bây giờ server web đang chạy và phục vụ các trang PHP động, cần cài đặt server cơ sở dữ liệu vì rất nhiều ứng dụng web yêu cầu server cơ sở dữ liệu:

1. Khi mở shell, hãy cài đặt server MySQL:

$ sudo apt-get install mysql-server

2. Apt sẽ yêu cầu xác nhận việc cài đặt các gói phụ thuộc.

3. Nhập Y để tiếp tục cài đặt.

4. Sau vài giây, bạn sẽ thấy Package configuration có nền màu xanh lam trên shell.

5. Chọn mật khẩu cho người dùng MySQL root, trong ví dụ này là bananapi.

6. Lặp lại mật khẩu đã chọn theo yêu cầu trong bước tiếp theo.

7. Apt sẽ tiếp tục cấu hình MySQL server.

8. Cài đặt các bảng hệ thống MySQL mặc định:

$ sudo mysql_install_db

9. Sau đó, bảo mật thiết lập:

$ sudo / usr / bin / mysql_secure_installation

10. Nhập mật khẩu MySQL root đã chọn.

11. Có thể thay đổi mật khẩu tại đây, nếu muốn giữ mật khẩu cũ thì nhập n.

12. Khi có yêu cầu xóa người dùng ẩn danh hay không, hãy nhập Y.

13. Không cho phép đăng nhập từ xa của root bằng cách nhập Y trong bước tiếp theo.

14. Tiếp theo, loại bỏ các cơ sở dữ liệu thử nghiệm bằng cách nhập Y.

15. Cuối cùng, tải lại các đặc quyền bằng cách nhập Y.

MySQL đã được cài đặt thành công và có thể tiếp tục cài đặt phần mềm viết blog WordPress.

Cài đặt WordPress

WordPress là một ứng dụng blogging web mã nguồn mở và hệ thống quản lý nội dung (CMS), được lập trình bằng PHP và sử dụng MySQL làm cơ sở dữ liệu hỗ trợ.

Trong phần này sẽ hướng dẫn cách cài đặt WordPress và tạo một bài đăng thử nghiệm:

1. Khi mở shell, tải file lưu WordPress mới nhất vào thư mục  HTTP root của Nginx:

$ cd / usr / share / nginx / www
$ wget http://wordpress.org/latest.tar.gz

Thao tác này sẽ tải xuống phần mềm viết blog WordPress.

2. Khi quá trình tải xuống hoàn tất, giải nén file đã tải:

$ tar -xzvf mới nhất.tar.gz

3. Tạo cơ sở dữ liệu MySQL mới cho WordPress. Nhập công cụ dòng lệnh cho MySQL:

$ mysql -u root -p

4. Nhập mật khẩu MySQL root.

5. Thêm cơ sở dữ liệu mới trong MySQL:

mysql> CREATE DATABASE wordpress;

6. Tạo MySQL user và cho phép truy cập vào cơ sở dữ liệu mới:

mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 
wordpress@localhost IDENTIFIED BY "wordpress_password";

7. Tải lại các đặc quyền để áp dụng các thay đổi:

mysql> FLUSH PRIVILEGES;

8. Thoát khỏi dòng lệnh MySQL:

mysql> EXIT

9. Dòng lệnh MySQL sẽ phản hồi Bye.

10. Sau khi thiết lập cơ sở dữ liệu WordPress, phải cấu hình thông tin cơ sở dữ liệu cho WordPress. Đổi tên wp-config-sample.php thành wp-config.php:

$ cd / usr / share / nginx / www / wordpress
$ mv wp-config-sample.php wp-config.php

11. Chỉnh sửa file wp-config.php:

$ nano wp-config.php

12. Trong file wp-config.php, cuộn xuống các hàm xác định.

13. Sửa đổi các giá trị xác định thành sau:

define('DB_NAME', 'wordpress');
define('DB_PASSWORD', 'wordpress_password');

14. File wp-config.php như sau.

15. Thoát và lưu nano bằng cách nhấn Ctrl + X, tiếp theo là Y và Enter.

16. Thực thi tập lệnh thiết lập trên trình duyệt. Truy cập http: // lemaker /

wordpress / wp-admin / install.php.

17. Nhập chi tiết đăng nhập mong muốn của bạn vào biểu mẫu cài đặt. Trong ví dụ đang sử dụng

Username: bananapi_user

Password: bananapi

18. Click vào Install WordPress.

19. Tập lệnh thiết lập sẽ thông báo quá trình cài đặt đã thành công.

20. Click vào Log in.

21. Bạn sẽ thấy mask đăng nhập của trang quản trị WordPress.

22. Nhập dữ liệu đăng nhập đã chọn trước đó (bananapi_user / bananapi).

23. Đăng nhập thành công vào trang quản trị của WordPress.

24. Tạo một bài đăng blog mới bằng cách click vào Post trên menu bên trái và Add New trên trang sắp tới.

25. Nhập tiêu đề và nội dung bài đăng trên blog.

26. Khi hoàn tất, click vào Publish.

27. Để đọc blog, mở một tab trình duyệt khác và truy cập http: // lemaker / wordpress.

Lúc này đã cài đặt thành công ứng dụng blog trên Banana Pi.

Cách thức hoạt động

Thiết lập một ứng dụng web thực như WordPress từ đầu không phải là một nhiệm vụ đơn giản. Trước tiên, phải cài đặt và cấu hình một số ứng dụng và chính ứng dụng web. Sau đó, triển khai một ngăn xếp web mạnh mẽ trên Banana Pi.

Để chạy các ứng dụng web nói chung, phải có server web, server cơ sở dữ liệu, cách chạy các ngôn ngữ và ứng dụng web mong muốn. Các thành phần này đã được cài đặt và cấu hình trong hướng dẫn này.

Đầu tiên, bắt đầu bằng cách định cấu hình mặc định của server web Nginx. Trong / etc / nginx / sites-available / default đã chuẩn bị hỗ trợ PHP. Hơn nữa, đã xác định thư mục HTTP root là gì. Nó xác định thư mục được sử dụng bởi Nginx để phục vụ các trang web. Mở trình duyệt và truy cập vào tên server của Banana Pi, tên miền Nginx, nếu có một file index trong thư mục HTTP root đã định cấu hình và cung cấp nó. File index là start page. Thật vậy, có một file index.html trong thư mục  HTTP root có chứa mã HTML.

HTML này là Nginx gửi đến trình duyệt, khi truy cập http: // lemaker /. Trình duyệt HTML sẽ nhận được thông báo Welcome to nginx!.

Khi tạo file info.php chỉ chứa một hàm PHP: phpinfo (): một trình thông dịch ngôn ngữ kịch bản như PHP cho phép chạy một chương trình (một tập lệnh) và cho phép tạo HTML động trước khi server web gửi HTML đến client. Đây là những gì sẽ xảy ra khi chúng ta

Khi sử dụng mã PHP, phải thông báo với trình thông dịch PHP trước. Đây là lý do bắt đầu file info.php bằng thẻ PHP:

<? php

Bạn cũng có thể kết thúc phần PHP bằng cách thêm thẻ đóng?> Vào cuối file. Tuy nhiên, nó không cần thiết nếu file là PHP thuần túy (như trong ví dụ của chúng tôi). Ngược lại, bạn nên bỏ qua thẻ đóng trong các file PHP thuần túy.

Vì vậy, khi duyệt file info.php, server web nhận được yêu cầu trang có tập lệnh PHP. Sau đó, Nginx giao tiếp với dịch vụ PHP-FPM (PHP FastCGI Process Manager), dịch vụ này sẽ thông dịch file info.php. Hàm phpinfo () PHP hướng dẫn trình thông dịch PHP hiển thị thông tin về cấu hình PHP hiện tại dưới dạng HTML. Sau khi trình thông dịch PHP kết thúc việc thông dịch file PHP, HTML sẽ được gửi lại cho Nginx.

Nginx lại phân phát HTML từ PHP qua giao thức HTTP tới trình duyệt yêu cầu.

Nếu nhiều thông tin cần được lưu lâu hơn một phiên, thông tin này phải được lưu trữ. Đôi khi dữ liệu được lưu trữ trong các file văn bản đơn giản, nhưng phần lớn chúng được lưu trữ trong các cơ sở dữ liệu chuyên biệt. Hầu hết các ứng dụng web đều lưu trữ dữ liệu trong cơ sở dữ liệu. Ví dụ: các bài đăng trên blog hoặc thông tin người dùng của thiết lập WordPress được lưu trữ trong cơ sở dữ liệu WordPress đã tạo. PHP có thể sử dụng các server cơ sở dữ liệu khác nhau làm phụ trợ liên tục.

Tải xuống WordPress bằng cách sử dụng công cụ dòng lệnh wget (GNU Wget). Đây là một chương trình lấy các tập tin từ các server web tương tự như một trình duyệt mà không có đầu ra trong cửa sổ trình duyệt. Do đó, nó là một công cụ tuyệt vời để tải các file từ Internet bằng cách sử dụng shell.

Mỗi ứng dụng web nên có cơ sở dữ liệu riêng. Tất cả các cơ sở dữ liệu được duy trì bởi một DBMS (Hệ thống quản lý cơ sở dữ liệu). Trong hướng dẫn sử dụng mã nguồn mở DBMS MySQL. DBMS có người dùng và hệ thống quyền của riêng do đó, sử dụng công cụ dòng lệnh MySQL để tạo cơ sở dữ liệu WordPress và người dùng cơ sở dữ liệu có quyền truy cập vào cơ sở dữ liệu WordPress thông qua mật khẩu.

Ba thành phần này (tên cơ sở dữ liệu, người dùng cơ sở dữ liệu và mật khẩu) cũng cần được định cấu hình trong ứng dụng web. Khi sử dụng WordPress, các giá trị này được định cấu hình trong file wp-config.php (cấu hình WordPress).

Đầu tiên, cần đổi tên cấu hình mẫu bằng cách sử dụng lệnh mv (move). Lệnh mv có thể di chuyển file hoặc thư mục sang các thư mục khác. Lưu ý: cẩn thận khi sử dụng mv, tránh ghi đè file khi chuyển tên file sang tên file đã tồn tại. Thay vì đổi tên file mẫu, có thể sao chép file mẫu sang file cấu hình thực:

$ cp wp-config-sample.php wp-config.php

Sau khi định cấu hình thông tin cơ sở dữ liệu trong wp-config.php, hoàn tất quá trình thiết lập bằng cách thực thi file install.php bằng cách sử dụng trình duyệt. Khi đó, cần nhập một số thông tin về blog và tạo quản trị cho blog. Khi quá trình cài đặt hoàn tất, đăng nhập vào phần phụ trợ quản trị viên của WordPress (wp-admin) và tạo bài đăng blog đầu tiên.

Không cần thiết lập cơ sở dữ liệu MySQL thông qua dòng lệnh MySQL vì có nhiều công cụ thân thiện với người dùng hơn như ứng dụng web PhpMyAdmin.

Thiết lập PhpMyAdmin

Thiết lập PhpMyAdmin một cách dễ dàng theo các bước sau:

1. Mở shell, thay đổi thư mục thành  HTTP root:

$ cd / usr / share / nginx / www /

2. Tải xuống file lưu trữ PhpMyAdmin:

$ wget http://sourceforge.net/projects
/ phpmyadmin / files / new / download -O phpmyadmin.zip

3. Giải nén PhpMyAdmin:

$ unzip phpmyadmin.zip

4. Theo tùy chọn, đổi tên thư mục PhpMyAdmin đã tạo:

$ mv phpMyAdmin * phpmyadmin

5. Thay đổi thư mục phpmyadmin:

$ cd phpmyadmin

6. Với trình duyệt của bạn, truy cập http: // lemaker / phpmyadmin /.

7. Đăng nhập bằng thông tin đăng nhập người dùng MySQL root                  

 Username: root

Password: bananapi

Giờ đây, có thể tạo và sửa đổi cơ sở dữ liệu và bảng thông qua trình duyệt web và không cần phải định cấu hình cơ sở dữ liệu trên dòng lệnh nữa. Tuy nhiên, để dễ đọc, trong hướng dẫn vẫn sử dụng công cụ dòng lệnh MySQL để tạo cơ sở dữ liệu.

Các công nghệ khác

Vì lý do hiệu suất và sự tiện lợi, chúng tôi đã cài đặt một ngăn xếp ứng dụng web dựa trên Nginx, MySQL và PHP. Đây thường được gọi là ngăn xếp LEMP (Linux, Engine-X, MySQL và PHP).

Một ngăn xếp web thậm chí còn được sử dụng thường xuyên hơn dựa trên server web Apache nổi tiếng (ngăn xếp web LAMP). Ngoài ra còn có các server cơ sở dữ liệu quan hệ khác như PostgreSQL, MySQL drop-in thay thế MariaDB. Một số ứng dụng web dựa trên PHP yêu cầu các mô-đun PHP bổ sung có thể cần cài đặt thông qua Apt. Hơn nữa, tồn tại các ngôn ngữ thay thế như JavaScript, Perl, Python và Ruby được sử dụng rộng rãi cho các ứng dụng web.

Tuy nhiên, ngăn xếp đã cài đặt trong phù hợp với lượng lớn các ứng dụng web vì hầu hết các ứng dụng web ngày nay đang sử dụng PHP và MySQL làm công nghệ phụ trợ chính. Tuy nhiên, cần phải kiểm tra các yêu cầu hệ thống của ứng dụng web mong muốn. Đối với mỗi công nghệ, có hàng nghìn trang web và sách hướng dẫn cách cài đặt và cấu hình.

Nói chung, luôn cần một server web, một cơ sở dữ liệu và một trình thông dịch ngôn ngữ kịch bản cho ứng dụng web. Khi đã nắm vững các khái niệm cơ bản, có thể thiết lập hầu hết mọi ứng dụng web. Gần như tất cả các ứng dụng web đều có một trang web với hướng dẫn cài đặt.

Trang web chính thức của các nhà phát triển Nginx tại http://wiki.nginx.org

Trang web chính thức của PHP: Hypertext Preprocessor tại http://php.net/

 Cuốn sách trực tuyến về cách thiết lập và sử dụng MySQL tại https://en.wikibooks.org/wiki/MySQL

3. Bảo mật server web Nginx bằng SSL

Người dùng thường muốn truy cập Banana Pi từ Internetdo đó rất cần quan tâm đến việc bảo mật. Trong hướng dẫn trước đã trình bày cách truy cập các ứng dụng web qua giao thức HTTP mặc định. HTTP không được mã hóa và do đó dễ bị tấn công. Trong hướng dẫn này sẽ đề cập đến SSL để kích hoạt giao thức mã hóa HTTPS (HTTP trênSSL).

Để bật HTTPS trên server web Nginx, cần có các thành phần sau:

– Một Banana Pi đang chạy hệ điều hành Linux dựa trên Debian

– Một mạng được định cấu hình trên Banana Pi

– Server web Nginx đang hoạt động như hướng dẫn Thiết lập ứng dụng web

Tạo chứng chỉ

Trong hướng dẫn sử dụng tên server là lemaker.

1. Mở shell.

2. Chuyển sang / etc / ssl.

$ cd / etc / ssl

3. Lấy root shell:

$ sudo –s

4. Tạo khóa RSA riêng bằng ứng dụng openssl:

# openssl genrsa 2048> lemaker.key

Quá trình tạo khóa RSA sẽ mất vài giây.

5. Tạo chứng chỉ có giá trị trong 10 năm:

# openssl req -new -x509 -nodes -sha1 -days 3650 -key
lemaker.key> lemaker.crt

6.Bạn nhận được yêu cầu nhập thông tin chi tiết về chứng chỉ. Common Name là lemaker:

7. Tự ký xác nhận:

# openssl x509 -noout -fingerprint -text <lemaker.crt>
lemaker.info

8. Đặt quyền chỉ cho người dùng root đọc để bảo mật khóa cá nhân

# chmod 400 lemaker.key

9. Thoát khỏi shell bằng cách nhấn Ctrl + D hoặc sử dụng lệnh thoát.

Chứng chỉ SSL đã được tạo thành công.

Bước tiếp theo là định cấu hình Nginx để sử dụng chứng chỉ SSL đó cho mã hóa HTTPS.

Định cấu hình Nginx để sử dụng chứng chỉ SSL

Việc định cấu hình Nginx để bật HTTPS cũng được thực hiện trong / etc / nginx / sites-available / default.

1. Trong shell đã mở, chỉnh sửa / etc / nginx / sites-available / default:

$ sudo nano / etc / nginx / sites-available / default

2. Trong phần server, thêm cấu hình sau bên trên cấu hình  HTTP root:

listen 80;
listen 443 ssl;
ssl_certificate /etc/ssl/lemaker.crt;
ssl_certificate_key /etc/ssl/lemaker.key;

3. Thoát và lưu nano bằng cách nhấn Ctrl + X, tiếp theo là Y và Enter.

4. Khởi động lại server web Nginx:

$ sudo /etc/init.d/nginx restart

5. Với trình duyệt web, hãy truy cập URL HTTPS https: // lemaker /.

6. Xuất hiện cảnh báo trên trình duyệt. There is a problem with this  websites’s security certificate or This connection is Untrusted

7. Tin tưởng kết nối trong trình duyệt:

– Trong Internet Explorer, click vào Continue đến trang web này (không khuyến nghị).

– Trong Firefox, click vào I understand the Risks, sau đó click vào Add Exception. Trong cửa sổ sắp tới, click vào Confirm Security Exception.

– Trong Chrome, click vào Advanced, sau đó click vào Proceed to lemaker (Thao tác này không an toàn).

Kết nối hiện đã được bảo mật bằng HTTPS.

Cách thức hoạt động

Giao thức HTTPS thêm một lớp mã hóa vào giao thức HTTP tiêu chuẩn. Để làm như vậy, cần có khóa công khai và khóa riêng tư. Các khóa này được tạo bằng ứng dụng openssl. Khóa công khai được tích hợp vào chứng chỉ đã tạo phía trên. Chứng chỉ được gửi đến client sau khi cố gắng kết nối với server web qua HTTPS. Trình duyệt kiểm tra chứng chỉ và hiển thị cảnh báo. Cảnh báo xảy ra do chứng chỉ không được Certificate Authority (CA) ký mà tự ký. Hậu quả là trình duyệt không biết người ký chứng chỉ và hiển thị cảnh báo. Để CA ký rất tốn kém, hơn nữa, trong trường hợp này, vì mục đích sử dụng, chứng chỉ không cần có chữ ký của CA.

Vì vậy, khi bạn đã tin tưởng chứng chỉ tự ký, giao tiếp với server sẽ được mã hóa. Nên sử dụng HTTPS cho các trang yêu cầu thông tin xác thực đăng nhập hoặc thông tin nhạy cảm khác (như trong WordPress hoặc PhpMyAdmin).

Để kích hoạt hỗ trợ HTTPS, phải sửa đổi cấu hình Nginx. Trong hướng dẫn này, sử dụng hai tùy chọn listen trong cấu hình. Một cho cổng 80 (HTTP thông thường) và một cho cổng 443 (HTTP qua SSL), nghĩa là có thể duyệt Banana Pi qua HTTP và HTTPS. Nếu muốn vô hiệu hóa HTTP, có thể xóa hoặc nhận xét dòng listen 80.

Trình duyệt Mozilla Firefox tự xử lý các chứng chỉ. Sau khi xác nhận ngoại lệ bảo mật, sẽ không thấy cảnh báo bảo mật nữa. Tuy nhiên, các trình duyệt hoặc ứng dụng khác như Internet Explorer hoặc Chrome có thể xử lý các chứng chỉ theo cách khác.

Để tránh các cảnh báo, bạn phải nhập chứng chỉ tự ký vào trình quản lý chứng chỉ. Bằng cách này, bạn tin tưởng vào chứng chỉ và sẽ không bị cảnh báo của trình duyệt làm gián đoạn nữa.

Nhập chứng chỉ tự ký trên Windows

Trong hướng dẫn này, thực hiện nhập chứng chỉ trên Windows qua Internet Explorer, nhưng có thể tự do sử dụng bất kỳ trình duyệt nào:

1. Mở Internet Explorer.

2. Duyệt đến https: // lemaker /.

3. Bạn sẽ thấy cảnh báo chứng chỉ trong trình duyệt.

4. Click vào Continue to this website (không được khuyến nghị) để tin cậy kết nối.

5. Khi bạn nhìn thấy tin Welcome to nginx!, hãy click vào lỗi chứng chỉ trong thanh địa chỉ URL ở trên.

6. Click vào View Certificates.

7. Bạn sẽ thấy một cửa sổ Certificate mới với thông tin về chứng chỉ đang sử dụng.

8. Click vào Install Certificate

9. Chọn Current User tại để chỉ nhập chứng chỉ cho người dùng hiện tại hoặc Local Machine để nhập chứng chỉ cho mọi người trên máy tính.

10. Click vào Next.

11. Chọn Place all certificates in the following store và click vào Browse.

12. Trong cửa sổ Select Certificate Store, hãy chọn Trusted Root  Certification Authorities

13. Đóng cửa sổ bằng cách click vào OK.

14. Click vào Next, tiếp theo là Finish. Bạn sẽ thấy một cảnh báo bảo mật cuối cùng.

15. Cài đặt chứng chỉ bằng cách click vào Yes. Bạn sẽ thấy một thông báo The import was successful.

16. Click vào OK trên cửa sổ thông báo và cửa sổ chứng chỉ để đóng cả hai.

Chứng chỉ hiện đã được nhập dưới dạng chứng chỉ gốc. Bạn sẽ không thấy thông báo cảnh báo trong tương lai. Lưu ý: việc cài đặt chứng chỉ chỉ hợp lệ cho tên chung đã chọn trong quá trình tạo chứng chỉ. Nếu bạn kết nối từ Internet với Banana Pi riêng bằng dịch vụ DNS động, bạn sẽ phải cấp chứng chỉ cho tên DNS của mình.

Nhập chứng chỉ tự ký trên Linux

Thật không may, trên hệ điều hành Linux, có một số cách để nhập chứng chỉ tùy thuộc vào hệ điều hành và ứng dụng đã sử dụng. Do đó, các bước sau sẽ hoạt động trên các hệ điều hành dựa trên Debian nhưng không hoạt động trên tất cả các hệ điều hành có sẵn:

1. Mở shell.

2. Cài đặt ca-certificates và gói gnutls-bin:

$ sudo apt-get install ca-certificate gnutls-bin

3. Tải xuống thông tin chứng chỉ:

$ gnutls-cli --print-cert lemaker </ dev / null>
lemaker.crt.info

4. Chỉ trích xuất chính chứng chỉ từ thông tin:

$ sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' 
lemaker.crt.info > lemaker.crt

5. Sao chép chứng chỉ vào kho lưu trữ chứng chỉ:

$ sudo cp lemaker.crt / usr / local / share / ca-Certificates /

6. Cập nhật kho chứng chỉ:

$ sudo update-ca-Certificates

7. Để nhập chứng chỉ cho trình duyệt Chromium, trước tiên hãy cài đặt libnss3-tools:

$ sudo apt-get install libnss3-tools

8. Sau đó, thêm chứng chỉ bằng certutil:

$ certutil -d sql: $ HOME / .pki / nssdb -A -t "P ,," -n lemaker -i lemaker.crt

Bạn đã nhập thành công chứng chỉ cho hầu hết các ứng dụng Linux và Chromium.

Bài viết trên Wikipedia về HTTPS tại https://en.wikipedia.org/wiki/HTTPS

Hướng dẫn chi tiết về cách thiết lập HTTPS trên Nginx tại http://nginx.org/en/docs / http / configuring_https_servers.html

Biên soạn: Bắc Đặng

Để cập nhật tin tức công nghệ mới nhất và các sản phẩm của công ty AIoT JSC, vui lòng truy cập link: http://aiots.vn hoặc linhkienaiot.com

0 0 Phiếu bầu
Article Rating
Subscribe
Notify of
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả các bình luận