Thiết lập ban đầu cho server dùng Ubuntu 16.04

3 năm trước

 

Mở đầu

Khi khởi tạo server dùng Ubuntu 16.04, bạn nên thiết lập một số bước cấu hình cơ bản. Điều này sẽ tăng tính bảo mật và tính khả dụng cho server của bạn và cung cấp cho bạn một nền tảng vững chắc cho những thao tác tiếp theo.

 

Bước 1 — Root Login

Để đăng nhập vào server của bạn, bạn sẽ cần phải biết public IP address của server. Bạn cũng sẽ cần mật khẩu hoặc nếu bạn đã cài đặt một SSH key để xác thực thì sẽ cần private key cho tài khoản của root user. Nếu bạn chưa đăng nhập vào server của bạn, hãy xem cách kết nối SSH tới Cloud Server của ViCloud.

Nếu chưa sẵn sàng để kết nối tới server,tiếp tục log in như root user với lệnh:

ssh root@your_server_ip

Chú ý phần chữ vàng là public IP's address của bạn.

Hoàn tất quá trình login bằng cách chấp nhận cảnh báo về tính xác thực của server nếu nó xuất hiện, sau đó cung cấp chứng thực quyền root của bạn (password hoặc private key). Nếu đây là lần đầu tiên bạn login vào server với một mật khẩu, bạn cũng sẽ được nhắc nhở để thay đổi mật khẩu gốc.

Sơ lược về Root

Root user là user có quyền admin quản lí với quyền truy cập sâu vào hệ thống. Với những đặc quyền ấy, bạn phải rất cẩn thận vì những thay đổi với quyền root có thể gây ra sự ảnh hưởng đáng kể đến hệ thống.

Bước tiếp theo là để user thay thế với quyền hạn thấp hơn cho công việc. Bạn sẽ được học cách sử dụng những đặc quyền mạnh hơn sau này, ở đây ta chỉ tạo ra một non-root user với quyền sudo.

 

Bước 2 — Tạo User mới

Khi đăng nhập với quyền  root, ta sẽ tạo ra một acccount khác để sử dụng từ giờ trở đi.

Ví dụ này thêm một user mới với tên sammy với lệnh:

adduser sammy

Nhập vào một mật khẩu mạnh, xong đó điền vào những mục đi kèm nếu muốn hoặc ENTER nếu muốn bỏ qua.

 

Bước 3 — Cấp quyền Root

User mới được tạo đã có thể thực hiện những truy cập thông thường. Tuy nhiên đôi khi ta sẽ phải thực hiện những lệnh với quyền root mà nó không thực hiện được.

Để tránh phải log out và log in lại vào root user, bạn có thể thiết lập "superuser" hay đặc quyền root cho user vừa tạo. Điều này sẽ cho phép user đó chạy các lệnh với quyền admin bằng cách đặt từ khóa sudo phía trước lệnh.

Với quyền root, chạy lệnh này để thêm user vừa tạo vào sudo group ( nhóm những người dùng được cấp quyền dùng lệnh sudo )

usermod -aG sudo sammy

Đến đây user của bạn đã có thể thực hiện những lệnh với quyền root bằng lệnh sudo

 

 

Bước tiếp theo trong việc bảo mật server của bạn là để thiết lập xác thực public key cho user của bạn. Thiết lập này sẽ tăng tính bảo mật của server bằng cách yêu cầu xác thực một private SSH key mỗi khi login.

Tạo SSH Key pair

Nếu chưa có một  SSH key pair ( gồm một public và một private key) ,bạn cần khởi tạo nó. Nếu đã có, hãy chuyển sang bước Copy Public Key.

Nhập lệnh sau vào terminal thuộc local machine (chẳng hạn máy tính) của bạn:

ssh-keygen 

 

Giả sử tên local user của bạn là "localuser", output sẽ như sau:

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

Bấm Enter để xác nhận .

Tiếp theo, nhập và một mật khẩu để bảo mật bộ key hoặc bỏ trống .

Lưu ý: Nếu để trống, bạn có thể dùng private key để log in mà không cần nhập mật khẩu. Nếu nhập vào mật khẩu, bạn sẽ cần cả mật khẩu và private key. Sử dụng mật khẩu sẽ an toàn hơn, nhưng cả 2 cách đều có ưu điểm của nó và đều an toàn hơn việc sử dụng mật khẩu thông thường.

Quá trình trên tạo ra một private key id_rsa, và một public key  id_rsa.pub,trong thư mục .ssh  trong đường dẫn gốc của localuser. Hãy bảo mật private key của bạn!

Copy the Public Key

Sau khi khởi tạo, hãy copy public key của bạn vào server mới. Ở đây trình bày 2 cách để thực hiện điều này

Chú ý: Phương thức ssh-copy-id sẽ không hoạt động trên ViCloud nếu SSH key đã được thêm vào khi tạo Cloud Server, vì ViCloud vô hiệu hóa việc xác thực mật khẩu, và ssh-copy-id dựa vào xác thực mật khẩu để copy key.

Nếu bạn đã thêm vào một SSH key trong lúc tạo Cloud Server, hãy sử dụng cách 2.

Cách 1: Dùng ssh-copy-id

 

Nếu local machine của bạn đã cài đặt ssh-copy-id, bạn có thể dùng nó để thêm public key vào bất cứ user nào bạn có quyền truy cập đến.

Chạy ssh-copy-id bằng cách nhập vào tên user và địa chỉ IP của server bạn muốn cài key vào như sau ( chú ý phần hightlight):

ssh-copy-id sammy@your_server_ip

 

Sau  khi cung cấp mật khẩu, public key của bạn sẽ được thêm vào file .ssh/authorized_keys. Private key đi kèm với nó đã có thể dùng để login vào server.

Cách 2: Thêm một cách thủ công

 

Giả sử bạn đã tạo một SSH key pair, chạy những lệnh sau ở terminal thuộc local machine của bạn để  in ra public key (id_rsa.pub):

cat ~/.ssh/id_rsa.pub 

 

Public key sẽ được hiển thị:

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

Copy Pubkey vào clipboard. Tiếp theo ta sẽ thêm nó vào một file trong thư mục gốc của user để kích hoạt.

Trên server, với root user, dùng lệnh sau để tạm thời chuyền tới user có tên "sammy"

su - sammy

Tạo đường dẫn có tên .ssh và cấm truy cập vào nó với lệnh:

mkdir ~/.ssh 
chmod 700 ~/.ssh 

 

 

Mở file authorized_keys trong .ssh  bằng một trình soạn thảo, ở đây dùng nano :

nano ~/.ssh/authorized_keys 

 

Paste public key của bạn vào đây.

Bấm tổ hợp CTRL-x để thoát khỏi file, rồi bấm y để lưu thay đổi, ENTER để xác nhận file name.

Cấm truy cập tới file authorized_keys bằng lệnh:

chmod 600 ~/.ssh/authorized_keys 

 

Quay lại root user:

exit

 

Vậy là xong.

Tiếp theo hãy tăng tính bảo mật của hệ thống bằng cách vô hiệu hóa những xác thực bằng mật khẩu.

 

Bây giờ hãy tăng thêm tính bảo mật cho hệ thống băng cách vô hiệu hóa những yêu cầu truy cập chỉ bằng mật khẩu để cho việc SSH đến server của bạn chỉ được thực hiện bằng private key được ghép đôi với public key trên server.

Note: Chỉ thực hiện bước này khi bạn đã thêm vào một public key cho server của mình. Nếu không bạn sẽ không thể truy cập vào server

Các bước thực hiện như sau:

Mở SSH daemon configuration( bằng root user hoặc sudo user):

sudo nano /etc/ssh/sshd_config 

 

Tìm dòng PasswordAuthentication, xóa kí tự trước nó rồi thay đổi giá trị của nó về "no" :

sshd_config — Disable password authentication
PasswordAuthentication no

Đây là 2 phần cấu hình quan trọng để chỉ cho phép xác thực bằng key. Nếu chưa bao giờ đông đến nó, bạn không cần thay đổi gì cả.

sshd_config — Important defaults
PubkeyAuthentication yes
ChallengeResponseAuthentication no

Bấm tổ hợp CTRL-x để thoát khỏi file, rồi bấm y để lưu thay đổi, ENTER để xác nhận file name.

Reload SSH daemon:

sudo systemctl reload sshd 

 

Đến đây bạn đã vô hiệu hóa thành công xác thực bằng mật khẩu trên server của mình.

 

Bước 6 — Kiểm tra bằng cách Log In

Bây giờ, trước khi bạn log out khỏi server, hãy kiểm tra cấu hình mới của bạn. Không ngắt kết nối cho đến khi bạn xác nhận rằng bạn có thể đăng nhập qua SSH.

Trên terminal của local machine, log in to vào server bằng account vừa tạo:

ssh sammy@your_server_ip

 

Nếu bạn đã thêm thành công public key như ở các bước trên, private key của bạn sẽ được dùng để xác nhận, nếu không bạn sẽ các nhận bằng mật khẩu.

Note: Nếu bạn tạo key pair của bạn cùng với một mật khẩu, bạn sẽ cần nhập nó vào. Nếu bạn tạo key pair không có mật khẩu, bạn sẽ log in thẳng vào server. 

Nhớ rằng nếu cần thực hiện một lệnh vưới quyền root, gõ sudo ngay trước lệnh

sudo command_to_run

 

 

Bước 7 — Thiết lập firewall cơ bản

Ubuntu 16.04 server có thể dùng UFW firewall để đảm bảo rằng tất cả kết nối tới một dịch vụ nào đó được cho phép. Dùng ứng dụng này để thiết lập một firewall cơ bản.

Những ứng dụng có thể đăng kí profile với UFW. Những profile này cho phép UFW quản lí những ứng dụng ấy qua tên của chúng. OpenSSH, dịch vụ kết nối tới server cũng có một profile như thế.

Gõ:

sudo ufw app list
Output
Available applications: OpenSSH
 
 

Cho phép tất cả kết nối SSH qua Open SSH bằng lệnh:

sudo ufw allow OpenSSH 

 

Sau đó bật firewall bằng lệnh:

sudo ufw enable 

 

Gõ "y" rồi bấm ENTER để xác nhận.

Kiểm tra bằng lệnh:

sudo ufw status 

 

Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
 

Nếu cài đặt và cấu hình những ứng dụng khác, bạn cũng cần thêm profile của nó vào UFW để kết nối được thực thi.

Đến đây bạn đã cài xong một nền tảng cơ bản nhất cho server của mình. Cài đặt thêm những ứng dụng khác bạn cần trên server thông qua những bài hướng dẫn tại đây
 
Cảm ơn đã theo dõi bài viết tại cộng đồng IT ViCloud Community, vui lòng để lại comment bên dưới!