2023年11月27日 星期一

阿里雲建立 ECS 後安裝 Docker

 

1. 先在阿里雲創建一台ECS,此處以ecs.c6.2xlarge為範本


2. 選擇要安裝的OS,依據官方文檔以下幾個OS皆可相容DockerCentOS 7.x 64位、CentOS 8.x 64位、Alibaba Cloud Linux 3 64位、Alibaba Cloud Linux 2 64此處以CentOS 7.8 64位為範例,其餘設定可依需求調整


3. 設定網路 (可依需求使用專有網路或是預設網路)>分配公網IPv4地址(帶寬計費模式與帶寬峰值可依需求調整)>點選重新選擇安全組


4. 點選要使用的安全組>點選查看規則


5. 選擇入方向>點選手動添加開放TCP端口:80228080Port,授權對象的源如無法得知請設定0.0.0.0/0


6. 設定登入憑證,此處以自定義密碼為範例(可依需求選擇其它設定)


7. 登入機器後執行以下命令:
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

下載完成後如下圖


8. 執行以下命令安裝Dockersudo yum -y install docker-ce

安裝完成後如下圖


9. 執行以下命令確認Docker是否安裝成功:sudo docker -v

安裝成功後顯示的訊息如下圖


10. 執行以下命令啟動Docker服務:sudo systemctl start docker
接著執行以下命令查看Docker是否啟動:sudo systemctl status docker

如下圖表示Docker已啟動


ECS於測試完成後已關機並終止。


阿里雲部屬Docker官方文檔:

https://help.aliyun.com/zh/ecs/use-cases/deploy-and-use-docker-on-alibaba-cloud-linux-2-instances#471afb3005tua

 

Azure 建立 VM 後安裝 Docker

建立Azure虛擬網路&虛擬主機

 

《建立虛擬網路》 

1. 選擇或新建資源群組,設定虛擬網路名稱及區域



2. 此例以Azure Bastion連線,所以要啟用並設定名稱及IP



 3. 設定虛擬網路的IP位址範圍(測試機用預設的私人IP,正式運營環境以實際IP範圍去設),完成後點“檢閱+建立” 


4. 驗証完成後點“建立”


5. 等待部屬完成

 


《建立虛擬主機》 

1. 設定虛擬主機名稱、鏡像版本(此例選擇Ubuntu)、虛擬主機規格(此例以Azure Bastion連線,故選擇密碼驗証)


2. 設定子網及網路安全組(此為測試機故勾選“刪除VM時刪除NIC”,正式運營環境視需求而定),完成後點“檢閱+建立”


3. 驗証完成後點“建立”等待部屬完成


 

 

 連線至虛擬主機及安裝Docker

 

1. 選擇剛剛建立的虛擬主機,點“前往Bastion


2. 輸入使用者名稱及密碼後,點“連線”


3. 連線成功


4. 測試機使用Ubuntu系統鏡像,Ubuntu安裝Docker時依序輸入以下指令:

《解除安裝所有可能衝突的Docker套件》

$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

 

《設定 Docker apt儲存庫》

# Add Docker's official GPG key:

$ sudo apt-get update

$ sudo apt-get install ca-certificates curl gnupg

$ sudo install -m 0755 -d /etc/apt/keyrings

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

 

# Add the repository to Apt sources:

$ echo \

  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \

  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \

  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

$ sudo apt-get update

 

《安裝 Docker 套件》

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

《驗證Docker Engine安裝是否成功》

$ sudo docker run hello-world

 

5. 驗証安裝成功



參考來源:

部署獨立Linux Docker主機的容器網路功能

Ubuntu 上安裝 Docker 引擎




2023年11月24日 星期五

AWS 將原機器恢復初始狀態

【AWS 是否能將原機器恢復初始狀態?相當於重灌】


針對此案件,符合需求的功能為:取代根磁碟區

https://docs.aws.amazon.com/zh_tw/AWSEC2/latest/WindowsGuide/replace-root.html



而較有可能產生混淆的功能為:AWS Backup

https://docs.aws.amazon.com/zh_tw/aws-backup/latest/devguide/restoring-vm.html


※AWS Backup 是統一管理,並不是做不到還原,而是一開始要備份,主要應用在已經存在備份後再還原。單就此案件來說,並不符合需求,沒法馬上重灌還原。



★★ 案件重點 ★★

不管哪一朵雲,一定要記得在對虛擬機做任何機器異動之前,都務必先將需要保留資料備份後再操作,確保重要資料不會遺失。




2023年11月17日 星期五

ALIYUN DDOS 高防 並發及新增串連數

 

以下列DDOS高防為例,可由串連數圖像可選擇查看並發串連數及新增串連數



串連數:

1.並發串連數: 客戶端同一時間與DDoS高防建立的TCP連線數量。並發連接數:單一IP進入後,新增TCP連線數的數據會記錄在此

活躍連接數目前所有狀態為EstablishedTCP連線數量。

非活躍連接數: 目前除了Established狀態以外,所有其他狀態的TCP連線數量。

2.新增串連數: 客戶端每秒內新增的與DDoS高防通訊的TCP連線數。單一IP進入後的數據會在此,且若此IP之前也有訪問,tcp尚未斷開,報表將無新建數據,只會顯示並發連接數

 

範例1

 

IP:192.168.0.1 透過專線新增TCP連線數100

報表會呈現

 

並發連接數:+100

新增連接數:+1

 

範例2

 

IP:192.168.0.1 透過專線新增TCP連線數100,且此IP之前有訪問,TCP連接(120s會斷連)尚未斷開,

報表會呈現

 

並發連接數:+100

新增連接數:+0

(舊有IP尚未超時或尚未斷連,在報表的資訊就不會顯示新增)

 

2023年11月15日 星期三

AWS AMI相關費用

AWS上,我們可以直接購買他人配置好的亞馬遜機器鏡像(AMI),也可以把自己配置好的亞馬遜機器鏡像(AMI)賣給別人

 

AMI類型又分為兩種,EBSEC2的兩種AMI

 

Amazon EBS AMI -- AMI 啟動之執行個體的根設備是從 Amazon EBS 快照建立的 Amazon Elastic Block Store (Amazon EBS) 磁碟區。

 

Amazon 執行個體 AMI -- AMI 所啟動之執行個體的根設備是從 Amazon S3 中存放的範本建立的執行個體存放區磁碟區。

資訊如下

如果要使用他人創立的AMI,需要支付使用費

具體的需求可在AWS Marketplace中尋找適合的鏡像

每次新建一個AMI時,都需支付儲存在AWS上的儲存費

建立EBS和建立EC2AMI 都有不同的儲存費用產生


如果只是自建AMI後,想分享給公司內部的同仁但不同帳號下使用呢?

因為目前AWS 23/09/13已公告預設將關閉鏡像的默認分享

那麼又要如何分享創建的AMI給他人使用呢?

分享EC2AMI需要按照下列的操作進行

或是直接使用CLI執行以下命令


參考網址

https://docs.aws.amazon.com/zh_tw/marketplace/latest/userguide/pricing-ami-products.html

https://aws.amazon.com/marketplace

https://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/sharingamis-explicit.html

AWS 相關區域確認是否開通

 如想確認自己的EC2服務開啟區域可以透過如下圖確認
登入AWS帳號,選擇-> 東京




如圖下列皆可直接架設EC2







          如要開啟反白區域建議以下幾點:
1.安全性上要確認系統操作
2.全開通可做好啟用地區資源的管控

 




如要開啟反白區域使用來架設EC2,按照以下步驟進行啟用

路徑: 
登入 AWS 管理主控台 -> 從導覽列中選擇 設定、帳戶設定->
在地區下,選取您要啟用的區域 ->選擇動作,然後選擇啟用



      

以下補充:為何區域預設是不開的要透過點選做設定開啟

1.確保區域的基礎設施準備就緒,能夠提供可靠的服務。
2.防止過使用,導致資源耗盡。
3.根據客戶的需求,逐步推出區域。





2023年11月14日 星期二

Azure CDN 被攻擊時容易出現Http Status code 429

Azure CDN被攻擊的時候,出現Http Status code 429


分析: 

CDN 不會自己產出 429 狀態碼,緩存服務器應該也不會產出 429,很大的可能是

1. 源站回覆給CDN, 然後CDN 回覆給最終用戶, 這理指的源站也不會是您 VM 那CDN 角色

2. WAF 配置. 因為官方網站有提及, 如果匹配到指定的過濾條件, 也是有可能回覆 429


處理方法:

建議【先確認哪裡發出 429】

1、檢查源站 Log: 如果是, 表示源站有資源瓶頸.

2、檢查 WAF Log: 如果是, 表示有過濾到目標. (這也是使用WAF的目的)


如何檢查 WAF Log? 可參考下面連結:

https://learn.microsoft.com/zh-cn/azure/web-application-firewall/afds/waf-front-door-monitor?pivots=front-door-standard-premium

在產出 WAF log 後需要檢查 WAF log (JSON格式), 找出 Block 429 的資訊.上面文件也有提及如何觀察 WAF Log.


如果已確認是CDN (WAF) 產生429,建議開啟WAF紀錄,調整WAF條件,使其滿足真實的需求,例如有擋到不該擋的,就放開條件;要調整就必須參考WAF 阻擋紀錄來進行調整



※Http Status code 429:Too Many Requests

詳細說明可參考此頁面:HTTP response status codes 429 Too Many Requests














參考資料:

Azure Web 应用程序防火墙监视和日志记录

HTTP response status codes



2023年11月9日 星期四

telnet虛擬機器No route to host的解決方法

如SERVER主機要開特殊PORT可telnet 

netstat -rn 指令看一下路由

(用於檢視和管理網路路由表。 顯示系統中的路由資訊)

netstat -na|grep 8089 看一下listen port

(確認8089端口狀態)

還有vpc firewall是否有開通8089 確認:A client   B Host 主機狀況

netstat -rn 如下圖




Telnet虛擬機器No route to host的解決方法:

知道虛擬機器的ip位址,而且可以ping的通,但是telnet連不通

telnet 192.168.62.110 7000

Trying 192.168.62.110...

telnet: connect to address 192.168.62.110: No route to host

解決方案

把虛擬機器中的防火牆清一下

指令: sudo iptables -F  (會服務中斷)

 

1firewalld的查詢:

firewall-cmd --zone=public --query-port=8089/tcp

2、結果顯示no的話,代表 tcp port 沒有開

如果這是在"" telnet的主機端開啟就可以了!

telnet要添加: firewalld 參考配置

firewall-cmd --zone=public --add-port=8089/tcp --permanent

也要注意要telnet 別人那一台, 確保他的 tcp 8089 請求也是可以送得出去的

 

指令

netstat -rn 看路由

netstat -na|grep 8089 看一下listen port




https://blog.csdn.net/fygkchina/article/details/103425183


搜尋此網誌