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.
Mục Lục
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
Code language: Nginx (nginx)
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
Code language: Nginx (nginx)
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
Code language: Nginx (nginx)
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
Code language: Nginx (nginx)
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 []:
Code language: PHP (php)
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
Code language: Nginx (nginx)
Để 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
Code language: Nginx (nginx)
Tiếp theo, gõ thử lệnh sau
sudo ls -la /root
Code language: Nginx (nginx)
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:
Code language: CSS (css)
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
Code language: YAML (yaml)
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
Code language: YAML (yaml)
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. Mình đã chia sẻ hướng dẫn trong bài viết dưới đây.
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.
Nếu cần hỗ trợ gì bạn có thể đặt câu hỏi bên dưới nhé. Chúc bạn cài đặt và cấu hình thành công.
Ad cho hỏi đã tạo máy ảo rồi, giờ làm sao bỏ hoac cai lại hệ điều hành mới lại không vậy?
Oracle Cloud không có chức năng cài lại hệ điều hành. Cách duy nhất là bạn phải xoá máy ảo và tạo lại cái mới. IP sẽ bị thay đổi.
bạn trước khi làm gì thì nên tạo cái backup, nó cho backup free 5 lần á, nếu bị gì restore là đc
*edit: backup hơi khó xài, nên mới khi vô sử dụng nên cài timeshift để backup rồi restore, y như ghost bên windows nha.
cài thì dùng lệnh
apt update
apt instal timeshift
backup thì dùng lệnh
timeshift –create
Hi, mình đã cài ufw, enable và allow port 9000, nhưng cũng không access portainer được. bạn ơi, hic.
Mình vừa mới tạo 1 VPS mới trên Oracle, cài Docker / Docker Compose, sau đó chỉnh Subnet / UFW, thấy truy cập Portainer ngon lành. Không bị gì cả.
Nhiều khả năng bạn làm sai bước nào đó rồi.
Bạn có thể kiểm tra lại xem Portainer có đang hoạt động không bằng lệnh:
docker ps
. Nhiều khả năng Portainer bị lỗi gì dó chưa hoạt động nên mới không truy cập được.Hoặc kiểm tra lại Subnet đã chỉnh đúng chưa.
Hello,
Bên dưới là nội dung của docker ps:
kopi@instance-20220105-0756:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ac60a7ccc9c portainer/portainer-ce “/portainer” 6 hours ago Up 3 minute s 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000-> 9000/tcp, 9443/tcp portainer
Chứng tỏ mình cài portainer thành công rồi, mở cổng ufw 9000 rồi, mở trong subnet luôn rồi.
Bạn có discord không bạn ơi, nếu có time thì mình hỏi nhờ hướng dẫn, post trong này lâu quá 🙂
Mình không dùng Discord. Tốt nhất bạn nền xoá làm lại từ đầu. Mình làm lại từng bước theo các bài hướng dẫn và thấy truy cập được ngay.
Chú ý phần thiết lập subnet trên Oracle phải làm cho đúng, mở cổng 9000 TCP / UDP.
Mình vừa xong rồi bạn, trong subnet phải mở cổng all to 9000 mà mình mở 9000 to 9000, nên vào mãi ko dc, sau khi có một bạn xem qua và bảo sửa lại thì đươc. Thanks bạn.
“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.
………….
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.”
Mình lính mới tò te, xin hỏi cách đă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?
Bạn làm theo hướng dẫn đăng nhập bằng Putty ở đây: https://thuanbui.me/thiet-lap-vps-mien-phi-oracle-cloud/#iii-ket-noi-vao-may-ao . Nhưng chỉ cần nhập IP của VPS và nhấn Opên luôn, không cần chọn Key. Sau đó nhập tài khoản và mật khẩu vào Terminal để đăng nhập vào VPS.
Gần đây mình tạo cái mới làm theo hướng dẫn vẫn dính lỗi này ta.
ssh 158.101.137.254
Permission denied (publickey).
Bạn gõ lệnh thế nó không biết dùng key nào để đăng nhập nên báo lỗi. Nếu dùng Windows bạn có thể xem hướng kết nối bằng Putty ở đây: https://thuanbui.me/thiet-lap-vps-mien-phi-oracle-cloud/#iii-ket-noi-vao-may-ao
Chào bạn, mình trầy trật mãi mới lấy dc 1 con ubuntu :v ko biết có cách nào cài window lên ubuntu vps của oracle ko ? cám ơn bạn nhiều.
Mình chưa tìm hiểu bao giờ. Nhưng e là khó vì nếu bạn dùng AMD VPS: nó quá yếu dể chạy Windows, còn ARM VPS thì không tương thích với Windows
Mình cài thành công ubuntu, truy cập bằng ssh bình thường. Sau đó mình chạy script larvps để quản lý. Ở các vps khác thì mình chỉnh sửa file qua sftp bình thường mà ở vps oracle toàn báo failed, permission denied là lỗi làm sao hả bác. Mong bác hỗ trợ ạ.