Hướng dẫn Thiết lập server Ubuntu 20.04 chi tiết và an toàn

Bạn đang bắt đầu hành trình quản lý máy chủ của riêng mình? Việc lựa chọn một hệ điều hành là gì ổn định, an toàn và mạnh mẽ là bước đi đầu tiên và quan trọng nhất. Ubuntu 20.04 LTS (Focal Fossa) chính là một trong những lựa chọn hàng đầu cho các quản trị viên hệ điều hành Linux là gì, từ người mới bắt đầu đến các chuyên gia dày dặn kinh nghiệm. Với sự hỗ trợ lâu dài, cộng đồng người dùng rộng lớn và hiệu suất vượt trội, Ubuntu 20.04 cung cấp một nền tảng vững chắc để bạn xây dựng và phát triển các dự án website, ứng dụng hay bất kỳ dịch vụ trực tuyến nào.

Trong bài viết chi tiết này, Bùi Mạnh Đức sẽ đồng hành cùng bạn, hướng dẫn từng bước cụ thể để thiết lập một máy chủ Ubuntu 20.04 hoàn chỉnh. Chúng ta sẽ đi từ những công đoạn cơ bản nhất như chuẩn bị môi trường, cập nhật hệ thống, cho đến các cấu hình nâng cao hơn về bảo mật như thiết lập tường lửa Firewall là gì UFW và tinh chỉnh SSH là gì. Mục tiêu cuối cùng là giúp bạn tự tin làm chủ máy chủ của mình, đảm bảo nó hoạt động một cách hiệu quả, ổn định và an toàn nhất. Hãy cùng nhau bắt đầu hành trình này nhé!

Giới thiệu về Ubuntu 20.04 và lợi ích sử dụng

Ubuntu 20.04, với tên mã “Focal Fossa”, là một phiên bản LTS (Long-Term Support – Hỗ trợ dài hạn) của hệ điều hành Ubuntu. Điều này có nghĩa là nó sẽ nhận được các bản cập nhật bảo mật và bảo trì từ nhà phát triển Canonical cho đến tận tháng 4 năm 2025. Đây là một yếu tố cực kỳ quan trọng khi bạn chọn hệ điều hành cho máy chủ, vì nó đảm bảo sự ổn định và an toàn trong một khoảng thời gian dài mà không cần phải nâng cấp toàn bộ hệ thống thường xuyên.

Các tính năng nổi bật của Ubuntu 20.04 bao gồm nhân Linux 5.4 giúp cải thiện hiệu suất phần cứng, hỗ trợ WireGuard VPN ngay từ đầu, và các phiên bản phần mềm được nâng cấp như Python 3.8, PHP 7.4. Giao diện người dùng cũng được tối ưu hóa, mặc dù đối với server, chúng ta sẽ chủ yếu làm việc qua dòng lệnh (command-line Linux command line là gì).

Hình minh họa

Lợi ích lớn nhất khi lựa chọn Ubuntu 20.04 làm hệ điều hành cho máy chủ chính là sự cân bằng hoàn hảo giữa tính ổn định và sự hiện đại. Bạn có được một nền tảng vững chắc, đã được kiểm chứng qua thời gian, nhưng vẫn tiếp cận được những công nghệ và phần mềm mới nhất. Cộng đồng người dùng khổng lồ cũng là một lợi thế, bạn có thể dễ dàng tìm thấy tài liệu hướng dẫn và sự hỗ trợ cho hầu hết mọi vấn đề có thể gặp phải.

Trong thực tế, Ubuntu 20.04 được ứng dụng vô cùng rộng rãi. Nó là nền tảng cho hàng triệu website, từ các blog cá nhân sử dụng WordPress đến các hệ thống thương mại điện tử phức tạp. Các nhà phát triển cũng ưa chuộng Ubuntu để triển khai ứng dụng, quản lý hệ quản trị cơ sở dữ liệu, và xây dựng môi trường đám mây. Sự linh hoạt và đáng tin cậy đã giúp Ubuntu 20.04 trở thành một tiêu chuẩn vàng trong thế giới quản lý server.

Chuẩn bị môi trường và yêu cầu hệ thống

Trước khi bắt tay vào cài đặt, việc đảm bảo máy chủ của bạn đáp ứng các yêu cầu cơ bản và chuẩn bị sẵn sàng các công cụ cần thiết là rất quan trọng. Điều này giúp quá trình cài đặt diễn ra suôn sẻ, tránh được những lỗi không đáng có.

Yêu cầu phần cứng tối thiểu cho Ubuntu 20.04

Mặc dù Ubuntu Server khá nhẹ và có thể chạy trên nhiều cấu hình khác nhau, nhà phát triển cũng đưa ra một số khuyến nghị tối thiểu để hệ thống hoạt động ổn định. Các yêu cầu này có thể thay đổi tùy thuộc vào mục đích sử dụng của bạn, nhưng đây là cấu hình cơ bản bạn nên có:

  • CPU: Bộ xử lý lõi kép (dual-core) 1 GHz hoặc nhanh hơn.
  • RAM: Tối thiểu 1 GB, nhưng 2 GB hoặc 4 GB được khuyến khích để có hiệu suất tốt hơn, đặc biệt nếu bạn dự định chạy các ứng dụng web hoặc cơ sở dữ liệu.
  • Ổ cứng: Ít nhất 2.5 GB dung lượng trống. Tuy nhiên, bạn nên dành ra khoảng 25 GB để có không gian cho hệ điều hành, các ứng dụng và dữ liệu sau này.
  • Kết nối mạng: Cần có kết nối Internet để tải các bản cập nhật và gói phần mềm cần thiết.

Chuẩn bị trước khi cài đặt (tạo USB boot, kết nối mạng, tài khoản quản trị)

Để bắt đầu quá trình cài đặt, bạn cần chuẩn bị một vài thứ. Đầu tiên, hãy truy cập trang chủ của Ubuntu và tải về file ISO của phiên bản Ubuntu Server 20.04. File này chứa toàn bộ hệ điều hành.

Tiếp theo, bạn cần tạo một chiếc USB có khả năng khởi động (bootable USB) từ file ISO vừa tải về. Các công cụ như Rufus (trên Windows) hoặc BalenaEtcher (trên Windows, macOS, Linux) sẽ giúp bạn thực hiện việc này một cách dễ dàng. Chỉ cần một chiếc USB có dung lượng từ 4GB trở lên là đủ.

Hãy đảm bảo máy chủ của bạn được kết nối với mạng Internet thông qua dây cáp Ethernet. Kết nối có dây thường ổn định hơn và được ưu tiên trong quá trình cài đặt ban đầu. Cuối cùng, trong quá trình cài đặt, bạn sẽ được yêu cầu tạo một tài khoản quản trị (administrator account). Hãy chuẩn bị sẵn một tên người dùng và một mật khẩu mạnh cho tài khoản này. Đây sẽ là tài khoản bạn dùng để quản lý server sau khi cài đặt hoàn tất.

Các bước cập nhật hệ thống Ubuntu 20.04

Sau khi bạn đã hoàn tất việc cài đặt Ubuntu 20.04, bước đầu tiên và quan trọng nhất trước khi làm bất cứ điều gì khác là cập nhật hệ thống. Việc này đảm bảo rằng máy chủ của bạn được trang bị các phiên bản phần mềm mới nhất và các bản vá bảo mật quan trọng, giúp bảo vệ hệ thống khỏi các lỗ hổng đã biết.

Kiểm tra và cập nhật danh sách gói phần mềm

Đầu tiên, bạn cần đồng bộ hóa danh sách các gói phần mềm trên máy chủ của mình với các kho lưu trữ (repositories) của Ubuntu. Kho lưu trữ là nơi chứa tất cả các phần mềm, thư viện và bản cập nhật mà bạn có thể cài đặt. Lệnh apt update sẽ thực hiện công việc này.

Hãy mở terminal và chạy lệnh sau:
sudo apt update

Bạn sẽ được yêu cầu nhập mật khẩu của tài khoản quản trị. Lệnh sudo cho phép bạn thực thi lệnh với quyền cao nhất (root). Lệnh này không thực sự cài đặt bất kỳ phần mềm nào, nó chỉ “làm mới” danh sách để hệ thống biết được có những phiên bản mới nào đang có sẵn.

Hình minh họa

Cài đặt các bản vá bảo mật mới nhất và nâng cấp hệ thống

Sau khi đã cập nhật danh sách các gói, bước tiếp theo là tiến hành nâng cấp tất cả các phần mềm đã được cài đặt trên hệ thống lên phiên bản mới nhất. Lệnh apt upgrade sẽ so sánh phiên bản hiện tại của các gói trên máy chủ với danh sách vừa được làm mới và cài đặt các phiên bản mới hơn.

Chạy lệnh sau trong terminal:
sudo apt upgrade -y

Tùy chọn -y (viết tắt của –yes) sẽ tự động trả lời “có” cho tất cả các câu hỏi xác nhận, giúp quá trình nâng cấp diễn ra mà không cần sự can thiệp của bạn. Quá trình này có thể mất vài phút, tùy thuộc vào số lượng bản cập nhật cần cài đặt và tốc độ mạng của bạn. Hoàn thành bước này, máy chủ của bạn đã sẵn sàng và an toàn hơn để tiếp tục các bước cấu hình tiếp theo.

Hướng dẫn cài đặt và cấu hình SSH để quản lý từ xa

SSH là gì (Secure Shell) là một giao thức mạng cho phép bạn truy cập và quản lý máy chủ của mình một cách an toàn từ một máy tính khác thông qua dòng lệnh. Đây là công cụ không thể thiếu đối với bất kỳ quản trị viên hệ thống nào. Thay vì phải làm việc trực tiếp trên máy chủ vật lý, bạn có thể ngồi ở bất cứ đâu và điều khiển server của mình qua mạng.

Cài đặt OpenSSH Server trên Ubuntu 20.04

Trên hầu hết các phiên bản Ubuntu Server, OpenSSH server đã được cài đặt sẵn. Tuy nhiên, nếu bạn chưa có hoặc không chắc chắn, bạn có thể dễ dàng cài đặt nó bằng một lệnh duy nhất.

Mở terminal và gõ lệnh:
sudo apt install openssh-server

Sau khi cài đặt, dịch vụ SSH sẽ tự động khởi chạy. Bạn có thể kiểm tra trạng thái của nó bằng lệnh:
sudo systemctl status ssh

Nếu kết quả hiển thị là “active (running)”, điều đó có nghĩa là máy chủ SSH của bạn đang hoạt động và sẵn sàng nhận kết nối.

Hình minh họa

Tùy chỉnh cấu hình SSH bảo mật (đổi port, tắt truy cập root, key authentication)

Cấu hình mặc định của SSH hoạt động tốt, nhưng để tăng cường bảo mật, chúng ta nên thực hiện một vài tinh chỉnh quan trọng. Tất cả các cấu hình của SSH được lưu trong file /etc/ssh/sshd_config. Hãy mở file này bằng một trình soạn thảo văn bản như nano:
sudo nano /etc/ssh/sshd_config

Dưới đây là một số thay đổi được khuyến nghị:

  1. Đổi cổng SSH mặc định: Cổng mặc định của SSH là 22. Các bot tự động thường quét cổng này để tìm kiếm máy chủ và tấn công. Hãy đổi nó sang một cổng khác, ví dụ như 2222. Tìm dòng #Port 22, bỏ dấu # và đổi 22 thành 2222.
  2. Tắt đăng nhập bằng tài khoản root: Cho phép đăng nhập trực tiếp bằng tài khoản root là một rủi ro bảo mật lớn. Hãy luôn đăng nhập bằng tài khoản người dùng thường rồi sau đó sử dụng sudo. Tìm dòng PermitRootLogin prohibit-password (hoặc tương tự) và đổi thành PermitRootLogin no.
  3. Sử dụng xác thực bằng khóa (Key Authentication): Thay vì dùng mật khẩu, sử dụng cặp khóa công khai-riêng tư sẽ an toàn hơn rất nhiều. Sau khi đã thiết lập SSH key, bạn có thể tắt hoàn toàn việc đăng nhập bằng mật khẩu. Tìm dòng PasswordAuthentication yes và đổi thành PasswordAuthentication no.

Sau khi thực hiện các thay đổi, hãy lưu file (Ctrl + X, sau đó Y, và Enter trong nano). Cuối cùng, khởi động lại dịch vụ SSH để áp dụng cấu hình mới:
sudo systemctl restart ssh

Hãy nhớ rằng, sau khi đổi cổng, bạn cần chỉ định cổng mới khi kết nối: ssh username@your_server_ip -p 2222.

Thiết lập tường lửa cơ bản để bảo mật máy chủ

Tường lửa là gì là một lớp bảo vệ thiết yếu cho bất kỳ máy chủ nào kết nối với Internet. Nó hoạt động như một người gác cổng, kiểm soát lưu lượng mạng ra vào máy chủ của bạn, chỉ cho phép các kết nối mà bạn đã tin tưởng và chặn tất cả những kết nối còn lại. Điều này giúp ngăn chặn các truy cập trái phép và bảo vệ các dịch vụ đang chạy trên server.

Giới thiệu UFW và vai trò trong bảo mật

Ubuntu đi kèm với một công cụ quản lý tường lửa rất mạnh mẽ và dễ sử dụng tên là UFW (Uncomplicated Firewall). Đúng như tên gọi, UFW đơn giản hóa quá trình cấu hình các quy tắc tường lửa phức tạp của Linux (iptables). Với UFW, bạn có thể dễ dàng cho phép hoặc chặn các kết nối đến các cổng dịch vụ cụ thể chỉ bằng những câu lệnh đơn giản.

Vai trò chính của UFW là tạo ra một chính sách mặc định và cho phép bạn tạo ra các ngoại lệ cho chính sách đó. Một thực hành bảo mật tốt là chặn tất cả các kết nối đến theo mặc định và chỉ mở những cổng mà dịch vụ của bạn thực sự cần, chẳng hạn như cổng cho SSH, web server (HTTP/HTTPS).

Thiết lập các quy tắc tường lửa cần thiết (cho SSH, HTTP/HTTPS)

Trước khi kích hoạt tường lửa, chúng ta cần đảm bảo rằng chúng ta không tự khóa mình khỏi máy chủ. Điều quan trọng nhất là phải cho phép kết nối SSH.

Nếu bạn đã đổi cổng SSH sang 2222 như ở bước trước, hãy chạy lệnh sau:
sudo ufw allow 2222/tcp

Nếu bạn vẫn sử dụng cổng 22 mặc định, lệnh sẽ là:
sudo ufw allow 22

Tiếp theo, nếu bạn dự định chạy một web server, bạn cũng nên mở các cổng cho HTTP (cổng 80) và HTTPS (cổng 443). UFW có các cấu hình ứng dụng được định sẵn giúp việc này trở nên dễ dàng hơn.
sudo ufw allow 'Nginx Full'
(Hoặc sudo ufw allow 'Apache Full' nếu bạn sử dụng Apache). Lệnh này sẽ mở cả hai cổng 80 và 443.

Sau khi đã thiết lập các quy tắc cần thiết, bạn có thể kích hoạt tường lửa:
sudo ufw enable

Hệ thống sẽ cảnh báo rằng việc này có thể làm gián đoạn các kết nối SSH hiện có. Hãy nhập y và nhấn Enter.
Để kiểm tra trạng thái và các quy tắc đang hoạt động, sử dụng lệnh:
sudo ufw status

Kết quả sẽ hiển thị tường lửa đang hoạt động và danh sách các quy tắc bạn đã thiết lập, đảm bảo máy chủ của bạn được bảo vệ.

Hình minh họa

Cài đặt các phần mềm hỗ trợ và quản lý máy chủ

Sau khi đã thiết lập các lớp bảo mật cơ bản, bước tiếp theo là cài đặt một số công cụ hữu ích giúp bạn quản lý, giám sát và bảo vệ máy chủ của mình một cách hiệu quả hơn. Những công cụ này không phải lúc nào cũng được cài đặt sẵn nhưng lại vô cùng cần thiết trong quá trình vận hành hàng ngày.

Các phần mềm thường dùng (htop, fail2ban, net-tools)

Dưới đây là một số gói phần mềm mà hầu hết các quản trị viên hệ thống đều cài đặt trên máy chủ Ubuntu của họ:

  • htop: Đây là một công cụ giám sát tiến trình hệ thống tương tác. Nó là một phiên bản cải tiến của lệnh top truyền thống, cung cấp một giao diện dễ nhìn hơn với màu sắc, cho phép bạn cuộn qua danh sách các tiến trình và thực hiện các hành động như “kill” một tiến trình một cách dễ dàng.
    Cài đặt: sudo apt install htop
  • fail2ban: Một công cụ bảo mật cực kỳ quan trọng. Fail2ban quét các file log của hệ thống (ví dụ: log của SSH) và tự động cấm các địa chỉ IP có hành vi đáng ngờ, chẳng hạn như cố gắng dò mật khẩu quá nhiều lần. Điều này giúp ngăn chặn hiệu quả các cuộc tấn công brute-force.
    Cài đặt: sudo apt install fail2ban
  • net-tools: Gói này cung cấp các công cụ mạng cơ bản và quen thuộc như ifconfig, netstat, route. Mặc dù các công cụ mới hơn như ip đã thay thế chúng, nhiều người vẫn quen thuộc và thấy chúng hữu ích cho việc chẩn đoán nhanh các vấn đề về mạng.
    Cài đặt: sudo apt install net-tools

Công cụ quản lý và giám sát hiệu suất server cơ bản

Ngoài htop, có một số lệnh tích hợp sẵn mà bạn nên làm quen để theo dõi sức khỏe của máy chủ.

  • free -m: Lệnh này hiển thị thông tin về việc sử dụng bộ nhớ RAM (cả vật lý và swap) trên hệ thống. Tùy chọn -m hiển thị dung lượng theo Megabytes, giúp dễ đọc hơn.
  • df -h: Lệnh df (disk free) cho biết dung lượng ổ cứng đã sử dụng và còn trống trên các phân vùng. Tùy chọn -h (human-readable) giúp hiển thị dung lượng dưới dạng GB, MB, giúp bạn dễ dàng nắm bắt tình hình.
  • uptime: Một lệnh đơn giản cho biết máy chủ đã hoạt động được bao lâu kể từ lần khởi động cuối cùng, cùng với số lượng người dùng đang đăng nhập và tải trung bình của hệ thống (system load average). Bạn có thể tìm hiểu thêm về ý nghĩa của uptime là gì.

Nắm vững các công cụ và lệnh này sẽ giúp bạn nhanh chóng xác định các vấn đề về hiệu suất và giữ cho máy chủ của mình luôn hoạt động ở trạng thái tốt nhất.

Hình minh họa

Các bước bảo mật cơ bản và khuyến nghị cho người mới

Bảo mật không phải là một công việc làm một lần rồi thôi, mà là một quá trình liên tục. Bên cạnh việc cấu hình SSH và tường lửa, có một số thói quen và biện pháp cơ bản khác mà bạn nên áp dụng ngay từ đầu để giữ cho máy chủ Ubuntu của mình được an toàn.

Tạo user mới và phân quyền đúng cách

Một trong những nguyên tắc bảo mật quan trọng nhất là “nguyên tắc đặc quyền tối thiểu”. Điều này có nghĩa là bạn không nên sử dụng tài khoản root cho các công việc hàng ngày. Tài khoản root có toàn quyền trên hệ thống, một lệnh gõ nhầm có thể gây ra hậu quả nghiêm trọng.

Thay vào đó, hãy tạo một tài khoản người dùng thường và cấp cho nó quyền sudo. Quyền sudo cho phép người dùng đó thực thi các lệnh với quyền quản trị khi cần thiết bằng cách thêm sudo vào trước lệnh và nhập mật khẩu của chính họ.

Để tạo người dùng mới (ví dụ, tên là bmd):
adduser bmd

Bạn sẽ được yêu cầu đặt mật khẩu và điền một số thông tin (có thể bỏ qua bằng cách nhấn Enter). Sau đó, thêm người dùng này vào nhóm sudo để cấp quyền quản trị:
usermod -aG sudo bmd

Từ bây giờ, bạn nên đăng nhập vào máy chủ bằng tài khoản bmd này, thay vì tài khoản root.

Hình minh họa

Các biện pháp nâng cao bảo mật: cập nhật thường xuyên, sao lưu dữ liệu

An ninh mạng là một cuộc rượt đuổi không ngừng. Các lỗ hổng bảo mật mới được phát hiện liên tục, và các nhà phát triển cũng nhanh chóng tung ra các bản vá. Do đó, việc cập nhật hệ thống thường xuyên là vô cùng quan trọng. Hãy tạo thói quen chạy lệnh sudo apt update && sudo apt upgrade -y ít nhất một lần mỗi tuần để đảm bảo máy chủ của bạn luôn được bảo vệ.

Bên cạnh đó, không có biện pháp bảo mật nào là tuyệt đối. Luôn có rủi ro về lỗi phần cứng, tấn công mạng hoặc lỗi do con người. Vì vậy, việc sao lưu dữ liệu Backup là gì là tấm lưới an toàn cuối cùng của bạn. Hãy thiết lập một lịch trình sao lưu tự động cho các dữ liệu quan trọng (ví dụ: mã nguồn website, cơ sở dữ liệu) và lưu các bản sao lưu đó ở một nơi an toàn, tách biệt với máy chủ chính.

Cách kiểm tra và xác nhận máy chủ đã được thiết lập thành công

Sau khi đã thực hiện tất cả các bước cấu hình, làm thế nào để bạn biết chắc rằng mọi thứ đang hoạt động đúng như mong đợi? Việc kiểm tra và xác thực lại các thiết lập là bước cuối cùng để đảm bảo máy chủ của bạn vừa có thể truy cập được, vừa an toàn.

Kiểm tra trạng thái các dịch vụ quan trọng (SSH, tường lửa)

Đầu tiên, hãy xác minh rằng các dịch vụ cốt lõi mà bạn đã cấu hình đang chạy đúng cách.

  1. Kiểm tra dịch vụ SSH: Dịch vụ này phải luôn hoạt động để bạn có thể quản lý từ xa. Sử dụng lệnh sau:
    sudo systemctl status ssh
    Bạn nên thấy dòng chữ active (running) màu xanh lá. Nếu không, có thể đã xảy ra lỗi trong file cấu hình. Bạn có thể xem log lỗi để tìm nguyên nhân.
  2. Kiểm tra trạng thái tường lửa UFW: Tường lửa là tuyến phòng thủ đầu tiên, vì vậy nó phải được kích hoạt.
    sudo ufw status
    Kết quả phải là Status: active. Bên dưới, bạn sẽ thấy danh sách các quy tắc đã thiết lập, ví dụ như cho phép truy cập vào cổng SSH (2222/tcp) và các cổng web (80, 443). Đảm bảo rằng các cổng bạn cần đều được liệt kê là ALLOW.

Hình minh họa

Test kết nối và truy cập từ xa an toàn

Bây giờ là bài kiểm tra quan trọng nhất: thử kết nối vào máy chủ từ một máy tính khác.

Mở terminal hoặc một ứng dụng SSH client (như PuTTY trên Windows) trên máy tính cá nhân của bạn. Sử dụng tài khoản người dùng mới mà bạn đã tạo (ví dụ: bmd) và cổng SSH đã tùy chỉnh (ví dụ: 2222).

Lệnh kết nối sẽ có dạng:
ssh bmd@your_server_ip -p 2222

Thay bmd bằng tên người dùng của bạn và your_server_ip bằng địa chỉ IP của máy chủ.

Nếu kết nối thành công và bạn được yêu cầu nhập mật khẩu, điều đó có nghĩa là:

  • Dịch vụ SSH đang hoạt động.
  • Quy tắc tường lửa cho phép kết nối của bạn đi qua.
  • Tài khoản người dùng mới của bạn đã được tạo và hoạt động chính xác.

Sau khi đăng nhập, hãy thử chạy một lệnh yêu cầu quyền quản trị, ví dụ: sudo apt update. Nếu hệ thống yêu cầu bạn nhập mật khẩu của tài khoản bmd và lệnh chạy thành công, điều đó xác nhận rằng quyền sudo đã được cấp đúng cách.

Common Issues/Troubleshooting

Ngay cả khi đã làm theo hướng dẫn cẩn thận, đôi khi bạn vẫn có thể gặp phải một số sự cố phổ biến. Đừng lo lắng, hầu hết các vấn đề này đều có nguyên nhân rõ ràng và cách giải quyết tương đối đơn giản. Dưới đây là hai trong số các sự cố thường gặp nhất khi thiết lập server lần đầu.

SSH không thể kết nối – Nguyên nhân và cách xử lý

Đây là vấn đề “kinh điển” nhất. Bạn cố gắng kết nối SSH và nhận được thông báo lỗi như “Connection timed out” hoặc “Connection refused”. Nguyên nhân có thể là:

  1. Tường lửa chặn kết nối: Đây là nguyên nhân phổ biến nhất. Có thể bạn đã kích hoạt tường lửa (ufw enable) nhưng quên tạo quy tắc cho phép cổng SSH (sudo ufw allow 2222/tcp). Hãy kiểm tra lại trạng thái UFW (sudo ufw status) để chắc chắn quy tắc đã tồn tại và đúng cổng.
  2. Sai địa chỉ IP hoặc cổng: Kiểm tra lại xem bạn đã nhập đúng địa chỉ IP của máy chủ và cổng SSH hay chưa, đặc biệt là nếu bạn đã đổi cổng mặc định.
  3. Dịch vụ SSH không chạy: Có thể dịch vụ SSH đã bị dừng hoặc gặp lỗi khi khởi động lại. Hãy kiểm tra trạng thái của nó bằng sudo systemctl status ssh. Nếu nó không hoạt động, hãy thử khởi động lại: sudo systemctl restart ssh.
  4. Vấn đề về mạng: Đôi khi vấn đề không nằm ở máy chủ mà ở mạng của bạn hoặc của nhà cung cấp dịch vụ hosting. Hãy thử ping your_server_ip để xem máy chủ có phản hồi hay không.

Lỗi tường lửa chặn truy cập – Kiểm tra và điều chỉnh cấu hình

Bạn đã cài đặt một dịch vụ web (ví dụ: Nginx), nhưng khi truy cập địa chỉ IP của máy chủ trên trình duyệt thì không thấy gì. Rất có thể tường lửa UFW đang chặn các cổng HTTP (80) và HTTPS (443).

Để kiểm tra, hãy chạy lệnh sudo ufw status numbered. Lệnh này sẽ hiển thị các quy tắc tường lửa kèm theo số thứ tự.
Status: active
To Action From
-- ------ ----
[ 1] 2222/tcp ALLOW IN Anywhere

Nếu bạn không thấy các quy tắc cho cổng 80 và 443, bạn cần thêm chúng vào:
sudo ufw allow http
sudo ufw allow https

Hoặc nếu dùng profile ứng dụng:
sudo ufw allow 'Nginx Full'

Sau khi thêm, hãy kiểm tra lại trạng thái để chắc chắn các quy tắc mới đã được áp dụng. Nếu bạn lỡ tạo một quy tắc sai, bạn có thể xóa nó bằng số thứ tự. Ví dụ, để xóa quy tắc số 3: sudo ufw delete 3.

Hình minh họa

Best Practices

Để đảm bảo máy chủ của bạn luôn hoạt động một cách ổn định, an toàn và hiệu quả trong dài hạn, việc tuân thủ các thực hành tốt nhất (best practices) là vô cùng quan trọng. Đây là những nguyên tắc đã được cộng đồng quản trị viên hệ thống đúc kết và công nhận.

  • Luôn cập nhật và sao lưu định kỳ server: Đây là hai trụ cột của việc quản lý máy chủ. Hãy thiết lập một lịch trình để thường xuyên chạy sudo apt update && sudo apt upgrade. Đồng thời, tự động hóa việc sao lưu dữ liệu quan trọng hàng ngày hoặc hàng tuần và lưu trữ các bản sao lưu ở một vị trí an toàn khác. Đừng bao giờ đánh giá thấp tầm quan trọng của một bản backup cho đến khi bạn thực sự cần nó.
  • Không sử dụng tài khoản root để kết nối SSH trực tiếp: Như đã đề cập, việc vô hiệu hóa đăng nhập root qua SSH (PermitRootLogin no) là một bước bảo mật cơ bản nhưng cực kỳ hiệu quả. Luôn sử dụng một tài khoản người dùng thường có quyền sudo. Điều này tạo thêm một lớp bảo vệ và giúp ghi lại dấu vết các hành động quản trị một cách rõ ràng hơn.
  • Sử dụng mật khẩu mạnh hoặc xác thực khóa công khai cho SSH: Nếu bạn vẫn phải dùng mật khẩu, hãy đảm bảo đó là một mật khẩu dài, phức tạp, kết hợp chữ hoa, chữ thường, số và ký tự đặc biệt. Tuy nhiên, phương pháp được khuyến nghị và an toàn hơn nhiều là sử dụng xác thực bằng cặp khóa SSH (SSH key authentication) và vô hiệu hóa hoàn toàn việc đăng nhập bằng mật khẩu (PasswordAuthentication no).
  • Giới hạn quyền truy cập dịch vụ và port không cần thiết: Tuân thủ “nguyên tắc đặc quyền tối thiểu” không chỉ với người dùng mà còn với các dịch vụ. Chỉ mở những cổng trên tường lửa mà bạn thực sự cần. Nếu một dịch vụ không cần phải truy cập từ bên ngoài Internet, hãy cấu hình nó để chỉ lắng nghe trên giao diện mạng nội bộ (localhost). Điều này làm giảm đáng kể bề mặt tấn công của máy chủ.

Hình minh họa

Kết luận

Vậy là chúng ta đã cùng nhau đi qua một hành trình chi tiết, từ những bước đầu tiên cho đến các cấu hình bảo mật quan trọng để thiết lập một máy chủ Ubuntu 20.04 hoàn chỉnh. Bằng cách thực hiện tuần tự các bước trên, bạn đã xây dựng được một nền tảng vững chắc và an toàn cho các dự án của mình.

Hãy cùng tóm tắt lại những bước quan trọng nhất: chúng ta đã bắt đầu bằng việc chuẩn bị môi trường, sau đó tiến hành cập nhật hệ thống để vá các lỗ hổng bảo mật. Tiếp theo, chúng ta đã cài đặt và tăng cường bảo mật cho dịch vụ SSH – cửa ngõ quản lý máy chủ từ xa. Việc thiết lập tường lửa Firewall UFW đã giúp tạo ra một lớp lá chắn vững chắc, chỉ cho phép các kết nối cần thiết. Cuối cùng, việc tạo một người dùng mới với quyền sudo và tuân thủ các thực hành tốt nhất là những mảnh ghép hoàn thiện bức tranh về một máy chủ được quản lý chuyên nghiệp.

Bảo mật và quản lý máy chủ là một quá trình học hỏi và cải tiến không ngừng. Những gì bạn đã học được hôm nay là một nền tảng vô cùng quan trọng. Bùi Mạnh Đức khuyến khích bạn hãy thực hành thường xuyên các biện pháp bảo mật đã đề cập, đặc biệt là việc cập nhật và sao lưu định kỳ Backup. Đừng ngần ngại tiếp tục khám phá, tìm hiểu sâu hơn về hệ điều hành Linux và nâng cao kỹ năng quản lý server của mình. Chúc bạn thành công trên con đường làm chủ công nghệ

Đánh giá
Tác giả

Mạnh Đức

Có cao nhân từng nói rằng: "Kiến thức trên thế giới này đầy rẫy trên internet. Tôi chỉ là người lao công cần mẫn đem nó tới cho người cần mà thôi !"

Chia sẻ
Bài viết liên quan