Thiết lập cấu hình ban đầu trên cloud server CentOS 7
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.
Bước 4 - Thêm công cụ xác thực khóa công khai ( đề xuất cho bạn )
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 .ssh
củ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 đó:
#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:
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é!