Tiếp tục với loạt bài viết về Oracle Cloud Free Tier, bài viết này mình sẽ hướng dẫn cách cấu hình căn bản máy ảo chạy Ubuntu sau khi vừa thiết lập xong. Việc này nhằm giúp bạn kết nối và sử dụng máy ảo dễ dàng hơn.
I. Cấu hình mạng cho máy ảo
Việc đầu tiên bạn cần làm sau khi thiết lập máy ảo trên Oracle Cloud là cấu hình mạng cho nó. Mặc định Oracle sẽ chặn hết tất cả kết nối đến máy ảo, ngoại trừ port 22 dành cho kết nối SSH. Chúng ta cần phải cấu hình lại để có thể sử dụng máy ảo cho các ứng dụng cài đặt sau này: Web server, DNS server,…
Nhập vào nội dung:
- Source Type: giữ nguyên CIDR
- Souce CIDR: 0.0.0.0/0
- IP Protocol: chọn TCP / UDP hay giao thức nào đó bạn cần. Nếu không chắc thì chọn All Protocol
- Source Port Range: để trống
- Destination Port Range: nhập vào port bạn cần mở, ví dụ: 80, 443, 51820
- Description: chú thích, ghi gì cũng được.
Vậy là xong. Máy ảo đã được mở kết nối cho cổng 80 – TCP.
Bạn thao tác tương tự khi cần mở kết nối cho các cổng khác.
II. Cho phép kết nối SSH bằng mật khẩu
Việc mình thường làm đầu tiên sau khi tạo máy ảo mới là là chỉnh sửa lại cấu hình Open-SSH Server để cho phép kết nối SSH bằng mật khẩu. Không cần phải dùng SSH key nữa.
Đăng nhập bằng mật khẩu sẽ không thể bảo mật bằng cách sử dụng SSH Key, nhưng sẽ tiện lợi hơn nhiều nếu bạn sử dụng nhiều máy tính để kết nối đến máy ảo. Đỡ mất thời gian copy Private Key qua lại giữa các máy. Chỉ cần chú ý tạo mật khẩu đủ dài và phức tạp là yên tâm khó mà bị hack.
Để cho phép kết nối SSH vào máy ảo bằng mật khẩu, cần phải chỉnh sửa lại thông số trong file sshd_config
sudo nano /etc/ssh/sshd_config
Tìm đến dòng PasswordAuthentication
và đổi thành yes
. Bạn có thể dùng phím tắt Ctrl+W để tìm cho nhanh.
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
Lưu lại bằng lệnh Ctrl+O, chọn Yes và bấm Ctrl+X để thoát ra. Giờ khởi động lại dịch vụ ssh bằng lệnh
sudo service ssh restart
III. Tạo tài khoản sudo
Tiếp theo, mình sẽ tạo thêm 1 tài khoản sudo trên máy ảo dùng để đăng nhập và quản lý.
Tạo tài khoản mới với tên đăng nhập thuanbui. Bạn nhớ thay thế bằng bất kỳ tên đăng nhập nào khác tuỳ thích.
sudo adduser thuanbui
Hệ thống sẽ yêu cầu tạo mật khẩu và cung cấp thông tin cá nhân cho tài khoản mới. Nhớ tạo mật khẩu phức tạp (đừng dùng 123456 hay abcdef). Phần thông tin Full Name, Room Number,… bạn có thể để trống và Enter nhiều lần, sau đó chọn Y để xác nhận là xong
Adding user `thuanbui' ...
Adding new group `thuanbui' (1002) ...
Adding new user `thuanbui' (1002) with group `thuanbui' ...
Creating home directory `/home/thuanbui' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for thuanbui
Enter the new value, or press ENTER for the default
Full Name []: Thuan Bui
Room Number []:
Work Phone []:
Home Phone []:
Thêm tài khoản mới này vào group sudo. Group sudo là group có quyền quản trị trên Linux.
sudo usermod -aG sudo thuanbui
Để kiểm tra lại quyền sudo của tài khoản mới, đầu tiên cần chuyển qua dùng tài khoản mới này
su - thuanbui
Tiếp theo, gõ thử lệnh sau
sudo ls -la /root
Nhập mật khẩu của tài khoản mà bạn đã tạo lúc nãy
[sudo] password for thuanbui:
Kết quả nhận được như sau có nghĩa là tài khoản mới đã có quyền sudo, có thể cài đặt, cấu hình máy ảo thoải mái.
thuanbui@instance-20210822-1516:~$ sudo ls -la /root
total 28
drwx------ 5 root root 4096 Aug 22 09:59 .
drwxr-xr-x 19 root root 4096 Aug 22 08:23 ..
-rw-r--r-- 1 root root 3106 Dec 5 2019 .bashrc
drwxr-xr-x 3 root root 4096 Aug 22 09:59 .local
-rw-r--r-- 1 root root 161 Dec 5 2019 .profile
drwx------ 2 root root 4096 Aug 22 08:23 .ssh
drwxr-xr-x 4 root root 4096 Aug 22 08:23 snap
Giờ bạn có thể tắt Putty và đăng nhập lại vào máy ảo bằng tài khoản và mật khẩu vừa mới thiết lập.
IV. Cấu hình tường lửa
Ngoài việc cấu hình mạng subnet trên trang quản trị của Oracle Cloud. Bạn còn phải cấu hình thêm cấu hình mạng trên Ubuntu thì mới kết nối được đến các dịch vụ trên máy ảo.
Mặc đinh, hệ điều hành Ubuntu trên Oracle sẽ chặn hết tất cả các port. Bạn cần phải cấu hình tường lửa bằng iptables
để truy cập đến máy ảo thông qua Internet.
Ví dụ nếu muốn truy cập webserver (port 80 TCP) đến máy ảo, bạn cần gõ lệnh sau
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo netfilter-persistent save
Thay thế port 80 và giao thức tcp bằng port hay giao thức nào khác bạn cần sử dụng.
Cách đơn giản hơn là cài đặt UFW để quản lý tường lửa.
Vậy là xong. Bạn đã có 1 máy ảo miễn phí để tha hồ nghiên cứu, làm quen với Linux / Web Server /…
Bạn cũng có thể cài đặt AdGuard Home lên máy ảo này để dùng làm DNS Server chặn quảng cáo cho mạng ở nhà.
Hoặc thiết lập VPN Server trên máy ảo bằng WireHole-UI để truy cập mạng bảo mật hơn.