Thiết lập cấu hình ban đầu trên cloud server CentOS 7

2 năm trước

 

Giới thiệu

Nếu là lần đầu tiên bạn tạo một server mới thì cần lưu ý một vài bước cấu hình căn bản sau đây, nó sẽ giúp bạn bảo mật cũng như tăng khả năng khai thác sử dụng server để đem đến cho bạn một nền tảng vững chắc để thực hiện các thao tác sau này.

Yêu cầu cơ bản

  • Máy chủ Cloud Server chạy hệ điều hành CentOS 7. (Nếu chưa có Bạn có thể tham khảo bảng giá Cloud Server hiệu năng cao tại ViCloud );
  • Thông tin kết nối máy chủ bao gồm (IP; username; password) được cung cấp bởi nhà cung cấp dịch vụ.

Bước 1 - Đăng nhập root

Để đăng nhập vào server thì cần có địa chỉ IP công khai của server và mật khẩu tài khoản người dùng root. Nếu chưa đăng nhập thì bạn cần tham khảo thêm cách đăng nhập mà chúng tôi cung cấp trên trang này.

Nếu chưa kết nối với server thì cần đăng nhập với tư cách người dùng root bằng cách sử dụng lệnh dưới đây, thay thế các ký tự tô màu bằng địa chỉ IP công khai của bạn:

ssh root@SERVER_IP_ADDRESS

Hoàn thành quá trình đăng nhập bằng cách chấp nhận cảnh báo xác thực host, nếu cảnh báo xuất hiện thì bạn cần cung cấp mật khẩu hoặc khóa bí mật. Nếu như đây là lần đầu tiên truy cập thì bạn cũng sẽ bị yêu cầu đổi mật khẩu.

Đôi điều về root

Người dùng root là người dùng quản trị trong hệ điều hành Linux với đặc quyền sử dụng rất lớn. Chính vì lý do đó nên chúng tôi khuyến cáo bạn không nên sử dụng tài khoản đó cho các thao tác trên nền tảng chung chung vì khả năng tài khoản root bị thay đổi rất cao thậm chí có thể bị tấn công.

Bước tiếp theo sẽ tạo một tài khoản người dùng thay thế để giảm nguy cơ bị ảnh hưởng khi sử dụng chúng hàng ngày. Chúng tôi sẽ hướng dẫn bạn cách tăng đặc quyền sử dụng khi bạn cần.

 

Bước 2 - Tạo người dùng mới

Khi đăng nhập với tư cách  root,  ta sẽ bắt đầu thêm người dùng mới để sử dụng từ bây giờ.

Ví dụ tạo một người dùng tên là "demo" , bạn có thể đổi tên nếu muốn:

adduser demo

Tiếp đến là tạo mật khẩu cho người dùng 'demo":

passwd demo

Tạo một mật khẩu thật mạnh, sau đó là xác nhận lại một lần nữa.

 

Bước 3 -  Lấy đặc quyền root

Giờ thì chúng ta sử dụng tài khoản mới với đặc quyền cho tài khoản ở mức độ bình thường, nhưng ta lại muốn sử dụng nó để thực hiện các thao tác quản trị cơ.

Để tránh việc đăng xuất ra rồi lại đăng nhập vào với tài khoản root thì giải pháp là chúng ta sẽ cài đặt cho nó với tư cách là "super user " hoặc đặc quyền root cho tài khoản bình thường ấy, để cho phép người dùng bình thường cũng có thể thao tác được lệnh sudo như người dùng root.

Để thêm đặc quyền root cho người dùng mới thì chúng ta cần thêm người dùng mới vào nhóm 'wheel',  theo mặc định trên CentOS 7 thì người dùng thuộc nhóm 'wheel ' sẽ được phép sử dụng lệnh sudo như thường.

Giống như  root,  ta cần chạy dòng lệnh này để thêm người dùng mới vào nhóm 'wheel' (bạn có thể thay chữ demo bằng tên người dùng bạn muốn):

gpasswd -a demo wheel 

Giờ thì người dùng mới có thể chạy lệnh với đặc quyền "super user " rồi.

Ta sẽ thêm công cụ xác thực khóa công khai để tăng tính bảo mật cho server . Ta sẽ cần khóa SSH riêng tư để đăng nhập.

Tạo cặp khóa

Nếu chưa có cặp khóa SSH gồm một khóa riêng tư và một khóa công khai thì bạn cần tạo một cặp khóa đó. Nếu có rồi thì bỏ qua bước "copy khóa công khai " nhé.

Ta nhập dòng lệnh dưới đây ở terminal của  local machine:

ssh-keygen 

Giả sử local user của bạn được gọi là "localuser", kết quả hiển thị sẽ thế này:

ssh-keygen output
Generating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa): 

Quay lại để chấp nhận tên file và đường dẫn này ( hoặc là nhập một tên mới).

Sau đó bạn được thông báo cần nhập passphrase để bảo mật khóa, bạn có thể nhập hoặc bỏ trống đều được.

Note:Nếu bỏ trống thì bạn cần dùng khóa riêng tư để xác thực . Còn nếu nhập passphrase thì bạn cần cả khóa riêng tư và passphrase đó để xác thực, tất nhiên là nó bảo mật hơn rất nhiều. Tuy nhiên cả hai cách này đều bảo mật hơn so với việc xác thực qua mật khẩu thông thường.

Tạo một khóa riêng tư id_rsa, và một khóa công khai, id_rsa.pub,trong mục .sshcủa mục chính localuser. Nhớ rằng không nên để cho người khác biết khóa riêng tư của mình để tránh việc truy cập trái phép vào server của bạn.

Copy khóa công khai

Sau khi tạo cặp khóa SSH , bạn cần copy khóa công khai cho server mới của mình. Chúng tôi giới thiệu cho bạn 2 cách dễ ợt để thực hiện.

Cách 1: Sử dụng ssh-copy-id

Nếu máy của bạn đã cài tập lệnh ssh-copy-id  rồi thì bạn sẽ dùng nó để cài khóa công khai dành cho bất kỳ ai mà bạn trao cho nhãn quyền đăng nhập.

Chạy lệnh ssh-copy-id bằng cách xác định người dùng và địa chỉ IP của server bạn muốn cài khóa cho nó như sau:

ssh-copy-id demo@SERVER_IP_ADDRESS

Sau khi cung cấp mật khẩu thì khóa công khai của bạn sẽ được thêm vào file   .ssh/authorized_keys của người dùng truy cập từ xa. Và khóa riêng tư tương ứng sẽ được sử dụng để đăng nhập vào server .

Cách 2 : Cài đặt bình thường theo cách truyền thống

Giả sử bạn đã tạo một cặp khóa SSH thì lúc này bạn sẽ chạy dòng lệnh ở terminal của local machine để in khóa công khai  (id_rsa.pub):

cat ~/.ssh/id_rsa.pub 

Nó sẽ in ra khóa công khai SSH như sau:

id_rsa.pub contents
ssh-rsa 
AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local 

Chọn khóa công khai và copy tới clipboard của bạn.

Thêm khóa công khai cho người dùng truy cập từ xa

Để dùng khóa SSH cho việc xác thực bởi người truy cập từ xa thì bạn cần thêm khóa công khai vào một file cụ thể trong danh mục chính của người dùng.

Trên server , đăng nhập với tư cách người dùng  root , nhập lệnh sau để chuyển đổi sang người dùng mới( thay bằng tên bạn đã đặt trước):

su - demo

Bạn sẽ được điều hướng tới danh mục chính của người dùng mới.

Tạo một danh mục mới gọi là .ssh và hạn chế quyền hoạt động của nó bằng lệnh sau:

mkdir .ssh 
chmod 700 .ssh 

Mở file trong mục .ssh được gọi là authorized_keys Ta sẽ sử dụng công cụ 'vi' để chỉnh sửa:

vi .ssh/authorized_keys 

Nhập trạng thái insert bằng cách nhấn nút i, Sau đó dán khóa công khai trên clipborad vào rồi nhấn  ESC để rời trạng thái insert ..

Nhập :x sau đó nhấn ENTER để lưu rồi đóng file.

Giờ thì hạn chế quyền hoạt động của file authorized_keys với lệnh sau:

chmod 600 .ssh/authorized_keys 

Gõ lệnh này một lần để trở về trạng thái người dùng root :

exit 

Giờ thì bạn có thể đăng nhập SSH với người dùng mới, sử dụng khóa riêng tư để xác thực.

 

Bước 5 - Định cấu hình SSH Daemon

Ta đã có tài khoản mới , nên sẽ cần bảo mật hơn chút nữa bằng cách chỉnh cấu hình SSH daemon để SSH từ xa không thể truy cập vào tài khoản gốc được.

Mở file cấu hình của nó :

vi /etc/ssh/sshd_config 

Ta có vài lựa chọn để vô hiệu hóa đăng nhập root thông qua SSH. Đây là cách cài đặt bảo mật khá là chung chung vì ta có thể truy cập thông qua người dùng bình thường hoặc đặc quyền leo thang khi cần thiết.

Để vô hiệu hóa đăng nhập từ xa thì ta cần tìm file đó:

/etc/ssh/sshd_config (before)
#PermitRootLogin yes

Gợi ý: Gõ /PermitRoot sau đó nhấn ENTER

Hữu hiệu hóa lệnh bằng cách bỏ ký tự "#"  (nhấn  Shift-x).

Di chuyển con trỏ tới lựa chọn 'yes' bằng cách nhấn c.

Thay thế "Yes" bằng cách nhấn cw, sau đó điền "no". Nhấn Escape khi hoàn thành, kết quả hiển thị như sau:

/etc/ssh/sshd_config (after)
PermitRootLogin no

Khuyến cáo: tất cả các server nên thực hiện thao tác này.

Nhấn :x và sau đó nhấn ENTER để lưu và thoát file.

Tải lại SSH

Sau khi thay đổi ta cần khởi động lại SSH để lưu thay đổi mới:

Nhập lệnh sau để khởi động  SSH:

systemctl reload sshd 

Giờ thì bạn có thể đăng xuất ra khỏi server và sau đó kiểm tra lại cấu hình mới

Mở một terminal window mới. Ta sẽ tạo một kết nối mới cho server, thay vì sử dụng tài khoản root , ta sẽ dùng tài khoản mới.

Để kết nối , ta sử dụng lệnh sau( Bạn có thể thay những thông tin sao cho phù hợp):

ssh demo@SERVER_IP_ADDRESS

Note: Nếu bạn sử dụng PuTTY để kết nối server thì bạn cần update số cổng của session để phù hợp với cấu hình của server .

 Bạn sẽ nhập mật khẩu mới rồi đăng nhập bình thuờng như nguời dùng mới.

Nhớ rằng cần chạy lệnh với đặc quyền root, nên sẽ phải gõ "sudo" trước mỗi lệnh:

sudo command_to_run

Sau đó thoát:

exit 
 

Kết luận

Giờ này thì bạn đã tạo một nền tảng vững chắc cho server , để từ giờ bạn có thể thoải mái cài đặt phần mềm mà bạn cần trên server rồi nhé!