Điểm:0

Khi nào nên vô hiệu hóa tài khoản root trên máy chủ Ubuntu

lá cờ jp

Tôi đã thiết lập Ubuntu 20.xx làm máy chủ web trên đám mây do Digital Ocean cung cấp và muốn cài đặt Node, Express, Mongo và có thể cả NginX. Trong một số bài báo có đề cập đến việc vô hiệu hóa người dùng root để cải thiện bảo mật và tạo người dùng mới có quyền truy cập quản trị. Theo thứ tự, tôi đã tạo một người dùng mới và sau đó sử dụng người dùng này để thiết lập tất cả các ứng dụng nhưng gặp sự cố với nginx.

Thay vào đó, tôi có nên sử dụng người dùng root để thiết lập tất cả các ứng dụng trước và cho phép các ứng dụng chạy dưới quyền root không? Sau đó, tạo người dùng quản trị thứ hai có quyền truy cập ssh rồi tắt ssh cho root?

CẬP NHẬT1: Cảm ơn tất cả sự hỗ trợ của bạn, tôi đã cập nhật câu hỏi và thêm bản cài đặt trên đám mây.

CẬP NHẬT2:

Cảm ơn vì lời giải thích chi tiết. Như tôi hiểu nó :

  1. Người dùng Sudo có các đặc quyền giống như quyền root
  2. Người dùng Sudo có thể được theo dõi ai đã thực hiện hành động (có liên quan khi có nhiều người dùng quan tâm)
  3. Các ứng dụng web (nút, pm2, mongo) có thể được cài đặt HOẶC với tài khoản root và/hoặc tài khoản người dùng sudo, bởi vì các ứng dụng này sẽ chạy với tài khoản người dùng mặc định của riêng chúng.
  4. Vô hiệu hóa root ssh đúng hạn để bảo vệ chống lại các cuộc tấn công vũ phu
Điểm:3
lá cờ cn

Trên một cài đặt chứng khoán của Ubuntu Server trên kim loại trần hoặc máy ảo tự lưu trữ, người dùng root đã bị vô hiệu hóa. KHÔNG kích hoạt root. Sử dụng Ubuntu theo cách mà nó được thiết kế để sử dụng.

Trên một cài đặt đám mây của Ubuntu, bạn không phải cài đặt; thùng chứa/VM đã hoàn thành được giao cho bạn. Người dùng đám mây thường có lời nhắc gốc đang hoạt động để họ có thể tạo người dùng sudo quản trị viên. Lời khuyên: Sau khi bạn tạo những người dùng đó và cài đặt khóa SSH của họ, hãy tắt đăng nhập gốc (và tất cả đăng nhập bằng mật khẩu) để bảo vệ hệ thống của bạn khỏi những kẻ tấn công.

Nếu bạn đang gặp sự cố với nginx, vui lòng mở một câu hỏi mới cụ thể về sự cố đó.

Orange Juice Jones avatar
lá cờ jp
Tôi đang sử dụng hình ảnh Digital Ocean và root đã được bật. Có một bài viết giải thích cách tạo người dùng mới và tắt quyền root - https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04
Orange Juice Jones avatar
lá cờ jp
Câu hỏi đặt ra là nên sử dụng tài khoản nào để cài đặt và chạy Node.Js Mongo và PM2. Cảm ơn
user10489 avatar
lá cờ in
Câu hỏi nhận xét của bạn (và câu hỏi gốc) cho thấy sự thiếu hiểu biết cơ bản về lý do tại sao root nên bị vô hiệu hóa và sudo làm gì ở vị trí của nó. Tài khoản nào được sử dụng để cài đặt là tranh luận. Tài khoản nào để chạy các ứng dụng phải được tranh luận hoặc một phần của tập lệnh khởi động để khởi động chúng.
user535733 avatar
lá cờ cn
Câu hỏi của bạn không làm rõ rằng đây là phiên bản đám mây. Có một số điểm khác biệt giữa các phiên bản trên đám mây và các bản cài đặt bare-metal/VM. Chỉnh sửa lớn để giải quyết.
Orange Juice Jones avatar
lá cờ jp
Cảm ơn, tôi đã cập nhật câu hỏi sau phản hồi của bạn.
Điểm:1
lá cờ in

Thay vào đó, lý do "vô hiệu hóa root" và sử dụng sudo với tài khoản thông thường có nhiều mục đích, không mục đích nào ảnh hưởng đến câu trả lời cho câu hỏi của bạn.

Phần mềm hệ thống luôn được cài đặt với quyền root. Đôi khi phần mềm ứng dụng được cài đặt với tư cách là người dùng dành riêng cho ứng dụng, nhưng thông thường thì không. Vô hiệu hóa đăng nhập cho tài khoản gốc không thay đổi điều này và nó không thay đổi cách các ứng dụng được khởi động khi khởi động.

Mục đích của việc vô hiệu hóa tài khoản root là để bạn đăng nhập với tư cách người dùng bình thường và thực hiện phiên người dùng giống như mọi thứ như người dùng bình thường chứ không phải root. Sau đó, bạn sử dụng sudo để nâng cấp lên root để cài đặt phần mềm và làm những việc nguy hiểm khác. Điều này cũng có tác dụng phụ là khi bạn sử dụng sudo, tài khoản người dùng đã thực hiện việc này cũng được ghi lại, điều này không thú vị lắm trừ khi có nhiều tài khoản người dùng có thể sử dụng sudo, trong trường hợp đó, sẽ dễ dàng đổ lỗi hơn khi một sai lầm được thực hiện. Vì vậy, việc cài đặt phần mềm vẫn được thực hiện với quyền root -- chỉ thông qua sudo thay vì đăng nhập trực tiếp.

Khi một ứng dụng (như NginX, mysql, mogodb, v.v.) được định cấu hình để bắt đầu khi khởi động, thông thường, các tập lệnh khởi động systemd (hoặc initd) sẽ khởi động ứng dụng với tư cách là một người dùng ứng dụng đặc biệt. Người dùng này được tạo khi ứng dụng được cài đặt. Bạn không nên khởi động ứng dụng bằng tay mà nên cho phép các tập lệnh hệ thống đã cài đặt khởi động ứng dụng đó (ví dụ: với systemctl start ...) để ứng dụng chạy với quyền chính xác trong môi trường chính xác. Triết lý thiết kế đằng sau điều này là ứng dụng bị cô lập trong chính người dùng của nó và các vấn đề bảo mật với ứng dụng (hy vọng) sẽ bị mắc kẹt trong id người dùng đó. Hầu hết các ứng dụng không nên chạy trực tiếp với quyền root.

Đã nói tất cả những điều này, trên một hệ thống có một quản trị viên duy nhất, việc ghi nhật ký ai sử dụng sudo sẽ kém thú vị hơn và nếu bạn có hình ảnh trên đám mây mà bạn có thể chỉ cần sao chép và tải lại từ một bản sao mới, thì người dùng nào bạn chạy mọi thứ bên trong vùng chứa cũng vậy ít quan trọng hơn. Đây có thể là lý do tại sao hình ảnh đám mây của bạn đi kèm với quyền root được bật và không có người dùng quản trị riêng biệt.

Orange Juice Jones avatar
lá cờ jp
Cảm ơn vì lời giải thích, tôi đã cập nhật câu hỏi theo hiểu biết của mình - bạn có nhận xét gì về điều này không?
user10489 avatar
lá cờ in
Gần như. tài khoản sudo không giống như root. Tài khoản có quyền truy cập sudo có quyền của một tài khoản bình thường ngoại trừ việc nó có thể chạy sudo để trở thành root. Không phải tài khoản sudo và tài khoản root giống nhau, mà tài khoản sudo có thể chạy mọi thứ với quyền root bằng cách sử dụng sudo.
Orange Juice Jones avatar
lá cờ jp
Khi một người dùng mới được tạo (sudo hoặc không sudo), một thư mục cũng được tạo trong thư mục chính có tên người dùng. Khi các ứng dụng web được cài đặt bằng tài khoản mới này, thư mục mới này có liên quan đến quá trình cài đặt không hay nó chỉ chứa thông tin cụ thể cho người dùng?
user10489 avatar
lá cờ in
Điều đó phụ thuộc vào cài đặt. Chẳng hạn, nếu bạn cài đặt phần mềm bằng `sudo apt install` thì nó không sử dụng bất kỳ thứ gì từ thư mục của người dùng.
Điểm:1
lá cờ cn

Khi nào thì vô hiệu hóa tài khoản root trên máy chủ ubuntu?

Tôi khuyên bạn không nên làm điều đó mà hãy làm những việc để tối đa hóa bảo mật. Hãy đối mặt với nó, nếu chính phủ muốn vào máy chủ của bạn, họ sẽ sử dụng một cách dễ dàng để xem các tệp của bạn. Chúng tôi chỉ lo lắng về các tin tặc ngoài kia.

Tôi có một phiên bản trên RamNode mà tôi sử dụng cho các trang web của mình. Khi tôi lần đầu tiên học cách thiết lập một máy chủ Ubuntu không giám sát, tôi đã phát hiện ra một số điều quan trọng. Ngay khi bạn thiết lập máy chủ, ai đó sẽ cố xâm nhập!

  1. Tạo một mật khẩu gốc mạnh. Nó phải dài ít nhất 32 ký tự. Không trùng lặp các phím cạnh nhau. Sử dụng tất cả các phím ký tự trên bàn phím trong một lựa chọn ngẫu nhiên ngoại trừ phím backtick '. Sử dụng các ký tự đặc biệt như $%& và không sử dụng bất kỳ từ hoặc cụm từ nào. Tôi lưu trữ dữ liệu đăng nhập của mình như thế này trong tệp văn bản trên máy tính chính của mình: gốc [email protected] 6^g0)6)nS3@sGh^7*9L:pR%bS@3d9

  2. Ngay sau khi bạn đã tạo máy chủ của mình, hãy làm điều này: ufw cho phép ssh kích hoạt ufw cập nhật apt danh sách apt --upgradable nâng cấp thích hợp

Bây giờ bạn đã khóa tất cả những người đang cố xâm nhập vào thư mục gốc của bạn và cập nhật các tệp Ubuntu của bạn. Không có cổng nào khác được mở để cho phép bất kỳ quyền truy cập nào khác ngoài ssh.

Tôi cũng chỉ sử dụng ipv4 nên tôi khóa quyền truy cập ipv6 thông qua tệp sshd_config, tệp/etc/default/ufw và tệp/etc/default/grub.

Để xem ai đang tấn công bạn, hãy sử dụng lệnh này: trạng thái dịch vụ sshd Bạn có thể ngạc nhiên khi thấy họ bắt đầu tấn công máy chủ của bạn nhanh như thế nào. Tôi bị Trung Quốc tấn công gần như không ngừng. ĐCSTQ đã đánh cắp dữ liệu từ bất cứ đâu có thể trong nhiều thập kỷ. Nhưng nó là một câu chuyện khác.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.