Bỏ qua nội dung

Ngày 18 - SSH và Máy chủ Web

Xin chào, như vậy là bây giờ chúng ta sẽ đến với ngày thứ 18 của hành trình. Để quản lý số lượng lớn máy chủ chạy Linux, chúng ta cần phải có một giải pháp an toàn và hiệu quả. SSH (Secure Shell) chính là lựa chọn đó - và đây là địa điểm tiếp theo của chúng ta.

Nếu bạn đã sẵn sàng thì lên đường thôi!!! 🚗

Giới thiệu điểm đến SSH

5 điểm nhấn của vị trí này bao gồm:

  1. Shell (Vỏ) bảo mật.
  2. Giao thức mạng (nói chính xác thì đây là một dịch vụ mạng).
  3. Cho phép giao tiếp an toàn.
  4. Có thể bảo mật cho bất kỳ dịch vụ mạng nào.
  5. Thường được sử dụng cho kết nối dòng lệnh từ xa.

Khi chúng ta khởi tạo môi trường bằng Vagrant, SSH đã được cấu hình sẵn, do đó chúng ta chỉ việc chạy câu lệnh vagrant ssh là đã kết nối được với máy ảo rồi. Tuy nhiên, trong trường hợp máy ảo đó nằm trên các hạ tầng khác mà không cùng hệ thống mạng với chúng ta, SSH cho phép tạo ra một đường hầm kết nối (tunnel) an toàn giữa máy khách và máy chủ để ngăn các tác nhân xấu can thiệp vào đường truyền và gây ảnh hưởng đến chúng ta.

SSH trên mỗi máy chủ luôn được chạy ở giao thức TCP, cổng số 22. Chúng ta cần được cấp mã khóa hoặc thông tin truy nhập trước khi sử dụng SSH để giao tiếp với máy chủ.

Thêm chút điểm nhấn…

Chúng ta thêm một card mạng vào máy ảo để thử sức, bằng cách tắt máy ảo. Mở cài đặt của máy ảo trong VirtualBox rồi chọn Mạng (Networking).

bridge

Khởi động lại máy ảo. Chạy câu lệnh sau để kiểm tra sự tồn tại.

Checking IPs...
ip addr

Kiểm tra SSH

Chạy câu lệnh sau để xem trạng thái SSH.

Checking SSH status...
sudo systemctl status ssh

ssh

Trong trường hợp nếu SSH không tồn tại trên máy ảo, chạy liên tiếp các câu lệnh sau để thêm vào hệ thống (đối với Ubuntu).

Installing SSH...
sudo apt install OpenSSH-server
sudo ufw allow ssh
sudo ufw reload

Kết nối SSH

Đối với hệ điều hành Windows, để sử dụng SSH chúng ta có hai cách, một là kết nối qua dòng lệnh, cách còn lại là sử dụng Putty.

Putty

Cài đặt Putty vô cùng đơn giản bằng hướng dẫn này.

putty_config

Sau đó, bấm Mở (Open). Chúng ta sẽ thấy một cảnh báo - Chọn Có (Yes) để tiếp tục, vì đây là hệ thống của chúng ta.

putty_alert

Nhập tên đăng nhập và mật khẩu vào để kết nối. Hoàn tất.

Kết nối qua dòng lệnh

Một cách kết nối an toàn hơn đó là sử dụng mã khóa, bởi lẽ trong trường hợp nếu lộ tên đăng nhập hoặc mật khẩu (hoặc cả hai) thì tin tặc có thể chiếm quyền kiểm soát máy chủ ngay lập tức.

Mã khóa được cấp qua dòng lệnh là một cặp khóa (khóa công - tư/public - private) để xác thực hai chiều. Việc tạo mã khóa vô cùng đơn giản bằng những bước sau đây.

  1. Cài đặt SSH trên máy khách. Bạn có thể tra Google ở đây.

  2. Chạy câu lệnh sau để tạo cặp khóa. Nếu bạn muốn tìm hiểu thêm về mã hóa, truy cập vào đây. Cặp khóa sẽ lưu trong một thư mục nào đó có đuôi .ssh/, ví dụ như C:\Users\admin\.ssh.

    Creating SSH key pairs...
    ssh-keygen -t ed25519
  3. Sao chép mã khóa vào máy chủ, sử dụng câu lệnh sau.

    Copying SSH key pairs...
    ssh-copy-id [username]@[ip]
  4. Kết nối trở lại bằng câu lệnh sau.

    Connecting via SSH...
    ssh [username]@[ip]
  5. (Tùy chọn) Tăng bảo mật cho SSH bằng cách chỉ sử dụng passphrase hoặc chặn sử dụng mật khẩu để đăng nhập. Trên máy ảo, chạy câu lệnh sau.

    Removing SSH password authentication method...
    sudo nano /etc/ssh/sshd_config
  6. (Tùy chọn) Xóa chú thích (dấu #) ở dòng PasswordAuthentication yes, rồi điều chỉnh về no và lưu cấu hình. Chạy lại dịch vụ SSH bằng câu lệnh sau.

    Removing SSH password authentication method...
    sudo systemctl reload sshd

Giới thiệu về máy chủ Web

Thực ra có rất nhiều cách để nói về máy chủ Web, nhưng trong phạm trù của bài viết này, ta sẽ đá sang máy chủ Web với các công nghệ thuộc dạng LAMP (Linux, Apache, MySQL, PHP).

Ở bản gốc, chúng ta học cách dựng máy chủ Web bằng các câu lệnh khác nhau. Nhưng với việc công nghệ phát triển, việc này xem chừng không còn trở nên phù hợp nữa. Để đẩy nhanh tốc độ vận hành, ta sẽ tiến hành cài đặt một hệ thống chạy WordPress, nhưng sử dụng Docker cho quá trình chạy. Bạn có thể tải Docker tại đây, sau đó cài đặt Docker Compose để chạy cụm container này. Chúng ta sẽ tìm hiểu Docker ở dịp khác.

Sau đó, bạn hãy truy cập vào đây để xem tất cả những tập tin sẽ được sử dụng cho việc dựng WordPress.

Ngay sau đó, chạy câu lệnh sau để bắt đầu.

Running the Compose...
docker-compose up -d
docker-compose ps

Truy cập và kiểm tra hệ thống để xem có bất kỳ sự cố nào hay không, nếu không, truy cập vào hệ thống qua địa chỉ IP để tiến hành cài đặt WordPress.

wp

Hoàn thành ngày thứ 18 của hành trình. Xin chân thành cảm ơn.

Tài liệu tham khảo 📚

Mời mọi người chuyển sang trang này để theo dõi tất cả tài liệu liên quan trong giai đoạn 3, để giúp bản thân có được những tài liệu hữu ích về Linux trong làm việc với DevOps.

Hẹn gặp mọi người ở những ngày tiếp theo. 🚀