ReactJS: Thiết lập máy chủ ban đầu với Ubuntu
Giới thiệu
Sau khi tạo máy chủ Ubuntu mới, bạn nên thực hiện một số bước cấu hình như một phần của thiết lập máy chủ ban đầu để tăng tính bảo mật và tạo điều kiện quản lý sau này.
Bài hướng dẫn này sẽ hướng dẫn bạn một số thủ tục mà bạn nên hoàn thành sớm để tạo nền tảng vững chắc cho máy chủ mới của mình, trước khi chuyển sang cài đặt và cấu hình bất kỳ phần mềm hoặc dịch vụ nào.
Bước 1 - Đăng nhập với tư cách là Root
Các máy chủ mới được cài đặt thường chỉ có một tài khoản gốc được thiết lập và đó là tài khoản bạn sẽ sử dụng để đăng nhập vào máy chủ của mình lần đầu tiên.
Người dùng root là người dùng quản trị có các đặc quyền rất rộng. Do các đặc quyền cao của tài khoản gốc, bạn không nên sử dụng nó một cách thường xuyên. Điều này là do một phần sức mạnh vốn có của tài khoản gốc là khả năng thực hiện những thay đổi rất dễ phá hoại, thậm chí là do tình cờ. Vì lý do đó, phương pháp được khuyến nghị là thiết lập người dùng hệ thống thông thường và cấp cho người dùng này quyền sudo
để nó có thể chạy các lệnh quản trị với một số hạn chế nhất định. Trong bước tiếp theo, bạn sẽ thiết lập một người dùng như vậy.
Để bắt đầu, bạn cần đăng nhập vào máy chủ của mình. Đảm bảo rằng bạn biết địa chỉ IP công cộng của máy chủ của bạn. Để xác thực, bạn sẽ cần mật khẩu của tài khoản hoặc khóa riêng SSH cho tài khoản của người dùng gốc, trong trường hợp bạn đã thiết lập khóa SSH để xác thực trong máy chủ.
Nếu bạn chưa kết nối với máy chủ của mình, hãy tiếp tục và đăng nhập với tư cách người dùng gốc bằng lệnh sau. Đảm bảo thay thế phần được đánh dấu của lệnh bằng địa chỉ IP công cộng của máy chủ của bạn:
ssh root@your_server_ip
Chấp nhận cảnh báo về tính xác thực của máy chủ nếu nó xuất hiện. Nếu bạn đang sử dụng xác thực bằng mật khẩu, hãy cung cấp mật khẩu gốc của bạn để đăng nhập. Ngoài ra, nếu bạn đang sử dụng khóa SSH được bảo vệ bằng cụm mật khẩu, bạn có thể được nhắc nhập cụm mật khẩu vào lần đầu tiên bạn sử dụng khóa mỗi phiên. Ngoài ra, nếu đây là lần đầu tiên bạn đăng nhập vào máy chủ bằng mật khẩu, bạn cũng có thể được nhắc thay đổi mật khẩu gốc .
Trong bước tiếp theo, bạn sẽ thiết lập một tài khoản người dùng hệ thống mới với các đặc quyền bị giảm bớt và định cấu hình người dùng này để chạy các lệnh quản trị thông qua sudo
.
Bước 2 - Tạo người dùng mới
Sau khi bạn đã đăng nhập với quyền root, bạn có thể tạo một người dùng mới, người dùng này sẽ là người dùng hệ thống thông thường của bạn kể từ bây giờ.
Ví dụ sau tạo một người dùng mới có tên là sammy, nhưng bạn nên thay thế nó bằng một tên người dùng mà bạn muốn:
adduser sammy
Bạn sẽ được hỏi một số câu hỏi, bắt đầu với mật khẩu tài khoản.
Nhập một mật khẩu mạnh và tùy chọn điền vào bất kỳ thông tin bổ sung nào nếu bạn muốn. Điều này không bắt buộc và bạn có thể đánh ENTER
vào bất kỳ trường nào bạn muốn bỏ qua.
Trong bước tiếp theo, bạn sẽ thiết lập sudo
các đặc quyền cho người dùng này. Điều này sẽ cho phép người dùng thực thi các tác vụ quản trị với tư cách là người dùng gốc thông qua chương trình sudo
.
Bước 3 - Cấp đặc quyền quản trị
Bây giờ bạn có một tài khoản người dùng mới với các đặc quyền thông thường. Tuy nhiên, đôi khi bạn sẽ cần thực hiện các tác vụ quản trị, như quản lý máy chủ, chỉnh sửa tệp cấu hình hoặc khởi động lại máy chủ.
Để tránh phải đăng xuất khỏi người dùng thông thường của bạn và đăng nhập lại bằng tài khoản gốc, bạn có thể thiết lập những gì được gọi là “superuser” hoặc đặc quyền root cho tài khoản thông thường của mình. Điều này sẽ cho phép người dùng thông thường của bạn chạy các lệnh có đặc quyền quản trị bằng cách thêm từ vào đầu mỗi lệnh sudo
.
Để thêm các đặc quyền này cho người dùng mới, bạn cần thêm người dùng mới vào nhóm sudo. Theo mặc định trên Ubuntu 18.04, người dùng thuộc nhóm sudo được phép sử dụng lệnh sudo
.
Lệnh sau sẽ sửa đổi cài đặt người dùng mặc định, bao gồm nhóm sudo
trong danh sách các nhóm mà người dùng đã thuộc về. Hãy chú ý đến đối số -a
, là viết tắt của append. Nếu không có tùy chọn này, các nhóm hiện tại mà người dùng được liên kết sẽ bị thay thế sudo
, điều này sẽ gây ra hậu quả không mong muốn. Đối số -G
yêu cầu usermod
thay đổi cài đặt nhóm của người dùng.
Với tư cách là người chủ, hãy chạy lệnh này để thêm người dùng mới của bạn vào nhóm sudo (thay thế từ được đánh dấu bằng người dùng mới của bạn):
usermod -aG sudo sammy
Người dùng hệ thống của bạn hiện đã được thiết lập. Trong bước tiếp theo, bạn sẽ định cấu hình tường lửa cơ bản cho máy chủ của mình.
Bước 4 - Thiết lập tường lửa cơ bản
UFW (Uncomplicated Firewall - Tường lửa không phức tạp) là một công cụ cấu hình tường lửa đi kèm với máy chủ Ubuntu. Bạn có thể sử dụng tường lửa UFW để đảm bảo rằng chỉ cho phép các kết nối đến một số dịch vụ nhất định trên máy chủ của bạn.
Các ứng dụng có thể đăng ký hồ sơ của họ với UFW khi cài đặt. Các cấu hình này cho phép UFW quản lý cài đặt từng ứng dụng theo tên. OpenSSH, dịch vụ cho phép bạn kết nối với máy chủ của mình ngay bây giờ, có một hồ sơ được đăng ký trong UFW.
Chạy lệnh sau để nhận danh sách tất cả các cấu hình hiện có sẵn:
ufw app list
Available applications: OpenSSH
Bạn cần đảm bảo rằng tường lửa cho phép kết nối SSH để bạn có thể đăng nhập lại vào lần sau. Bạn có thể cho phép các kết nối này bằng cách nhập:
ufw allow OpenSSH
Sau đó, bạn có thể kích hoạt tường lửa bằng:
ufw enable
Nhập "y
" và nhấn ENTER
để tiếp tục. Bạn có thể thấy rằng các kết nối SSH vẫn được phép bằng cách nhập:
ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Vì tường lửa hiện đang chặn tất cả các kết nối ngoại trừ SSH, nếu bạn cài đặt và định cấu hình các dịch vụ bổ sung, bạn sẽ cần điều chỉnh cài đặt tường lửa để cho phép lưu lượng truy cập được chấp nhận. Bạn có thể tìm hiểu một số thao tác UFW phổ biến trong hướng dẫn này.
Bước 5 - Bật quyền truy cập bên ngoài cho người dùng thông thường của bạn
Bây giờ bạn có một người dùng thông thường để sử dụng hàng ngày, bạn cần đảm bảo rằng bạn có thể SSH trực tiếp vào tài khoản.
Lưu ý: Cho đến khi xác minh rằng bạn có thể đăng nhập và sử dụng sudo với tư cách là người dùng mới của mình, chúng tôi khuyên bạn nên đăng nhập với tư cách server. Bằng cách này, nếu bạn gặp sự cố, bạn có thể khắc phục sự cố và thực hiện bất kỳ thay đổi cần thiết nào với tư cách gốc .
Quá trình định cấu hình quyền truy cập SSH cho người dùng mới của bạn phụ thuộc vào việc tài khoản gốc của máy chủ của bạn sử dụng mật khẩu hoặc khóa SSH để xác thực.
Nếu tài khoản gốc sử dụng xác thực mật khẩu
Nếu bạn đã đăng nhập vào tài khoản gốc của mình bằng mật khẩu, điều đó có nghĩa là xác thực mật khẩu đã được bật cho SSH. Bạn có thể SSH vào tài khoản người dùng mới của mình bằng cách mở một phiên đầu cuối mới và sử dụng SSH với tên người dùng mới của bạn:
ssh sammy@your_server_ip
Sau khi nhập mật khẩu của người dùng thông thường, bạn sẽ được đăng nhập. Hãy nhớ rằng, nếu bạn cần chạy một lệnh có đặc quyền quản trị, hãy nhập sudo
trước nó như sau:
sudo command_to_run
Bạn sẽ được nhắc nhập mật khẩu người dùng thông thường của mình khi sử dụng sudo
lần đầu tiên mỗi phiên (và định kỳ sau đó).
Để tăng cường bảo mật cho máy chủ của bạn, chúng tôi thực sự khuyên bạn nên thiết lập khóa SSH thay vì sử dụng xác thực mật khẩu. Làm theo hướng dẫn của chúng tôi về cách thiết lập khóa SSH trên Ubuntu để tìm hiểu cách định cấu hình xác thực dựa trên khóa.
Nếu tài khoản gốc sử dụng xác thực khóa SSH
Nếu bạn đã đăng nhập vào tài khoản gốc của mình bằng khóa SSH, có khả năng xác thực mật khẩu đã bị vô hiệu hóa đối với SSH. Bạn sẽ cần thêm một bản sao của khóa công khai cục bộ của mình vào file ~/.ssh/authorized_keys
của người dùng mới để đăng nhập thành công.
Vì khóa công khai của bạn đã có trong tệp của tài khoản gốc ~/.ssh/authorized_keys
trên máy chủ, bạn có thể sao chép tệp và cấu trúc thư mục đó vào tài khoản người dùng mới trong phiên hiện có của mình.
Cách đơn giản nhất để sao chép các tệp có quyền sở hữu và quyền chính xác là sử dụng lệnh rsync
. Thao tác này sẽ sao chép thư mục của người dùng gốc .ssh
, bảo toàn quyền và sửa đổi chủ sở hữu tệp, tất cả chỉ trong một lệnh duy nhất. Đảm bảo thay đổi các phần được đánh dấu của lệnh sau để khớp với tên người dùng thông thường của bạn:
Lưu ý: Lệnh rsync xử lý các nguồn và đích kết thúc bằng dấu gạch chéo khác với các nguồn không có dấu gạch chéo. Khi sử dụng rsync bên dưới, hãy đảm bảo rằng thư mục nguồn (~/.ssh) không bao gồm dấu gạch chéo (kiểm tra để đảm bảo rằng bạn không sử dụng ~/.ssh/).
Nếu bạn vô tình thêm dấu gạch chéo vào lệnh, rsync sẽ sao chép nội dung của thư mục của tài khoản gốc ~/.ssh vào thư mục chính của sudo người dùng thay vì sao chép toàn bộ cấu trúc thư mục ~/.ssh. Các tệp sẽ ở sai vị trí và SSH sẽ không thể tìm thấy và sử dụng chúng.
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Bây giờ, hãy mở một phiên đầu cuối mới và cố gắng đăng nhập bằng tên người dùng mới của bạn:
ssh sammy@your_server_ip
Bạn sẽ có thể đăng nhập vào tài khoản người dùng mới mà không bị nhắc nhập mật khẩu SSH của người dùng từ xa để xác thực. Nếu khóa SSH của bạn được thiết lập bằng cụm từ khóa, bạn có thể được yêu cầu mở khóa khóa SSH bằng cách cung cấp mật khẩu đó khi bạn sử dụng khóa lần đầu tiên trong phiên đầu cuối.
Hãy nhớ rằng, nếu bạn cần chạy một lệnh có đặc quyền quản trị, hãy nhập sudo
trước nó như sau:
sudo command_to_run
Bạn sẽ được nhắc nhập mật khẩu người dùng thông thường của mình khi sử dụng sudo
lần đầu tiên mỗi phiên (và định kỳ sau đó).