2022年11月29日 星期二

在windows中使用ssh、scp命令

 1.windows安裝openssh server

首先需要用管理員身份啟動 PowerShell,使用如下命令看一下,要確保 OpenSSH 可用於安裝:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

輸出應該是類似的結果:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

然後使用 PowerShell 安裝伺服器即可:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

輸出結果類似:

Path          :
Online        : True
RestartNeeded : False

這樣就可以完成 OpenSSH 的安裝。參考https://www.gushiciku.cn/pl/2GFQ/zh-tw

接下來用系統管理員身分打開 PowerShell,並輸入以下指令:

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

第一行是用來開啟 Server,第二行則是讓系統開機是自動啟用。


最後確認一下防火牆是否是放開的:

Get-NetFirewallRule -Name *ssh*

如果是放開的,那麼結果會提示 OpenSSH-Server-In-TCP 這個狀態是 enabled。


SH 連線登入

到這一步總算是完成啦!基本上最後是最簡單的部分,也就是用其他電腦連線到你的桌機。要注意的是如果其他電腦是 Windows 10,也是要到設定去安裝 OpenSSH 用戶端。
接下來輸入以下指令

ssh 使用者名稱@實體IP位置

使用者名稱為主機的使用者,輸入完主機的密碼就大功告成啦!


SCP 指令使用教學


scp [參數] [使用者@主機IP]:來源檔案 [使用者@主機IP]:目的檔案
Bash
常用參數:
-p: 保留原本檔案資訊和權限
-C: 壓縮
-r: 遞迴複製整個資料夾的所有資料
-P: 後面接連接埠號碼,使用指定連接埠
-v: 顯示詳細資訊
-4: 強制使用 IPv4
-6: 強制使用 IPv6

例如將windows 本機的檔案傳到 遠端windows 桌面上

scp D:\Desktop\1111.txt sct@192.168.137.104:C:\Users\sct\Desktop

例如將 遠端windows 桌面上的檔案傳回本機

scp sct@192.168.137.104:C:\Users\sct\Desktop\1111.txt e:\test

參考:https://medium.com/@fortunatemaker2603/ssh-%E9%81%A0%E7%AB%AF%E9%80%A3%E7%B7%9A%E5%9B%9E%E5%AE%B6%E4%B8%AD%E7%9A%84-windows-%E9%9B%BB%E8%85%A6-7e5267ae1e93

https://www.ruyut.com/2022/04/scp-copy-file.html

2022年11月21日 星期一

ubuntu 簡易安裝docker zabbix

 ubuntu要先安裝docker及docker-compose

Detailed Guide – Method: 1

The example demonstrates how to run Zabbix server with MySQL database support, Zabbix web interface based on the Nginx web server and Zabbix Java gateway.


1. Create network dedicated for Zabbix component containers:

# docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net


2. Start empty MySQL server instance

# docker run --name mysql-server -t \

      -e MYSQL_DATABASE="zabbix" \

      -e MYSQL_USER="zabbix" \

      -e MYSQL_PASSWORD="zabbix_pwd" \

      -e MYSQL_ROOT_PASSWORD="root_pwd" \

      --network=zabbix-net \

      -d mysql:5.7 \

      --character-set-server=utf8 --collation-server=utf8_bin


3. Start Zabbix Java gateway instance

# docker run --name zabbix-java-gateway -t \

      --network=zabbix-net \

      --restart unless-stopped \

      -d zabbix/zabbix-java-gateway:alpine-5.4-latest


4. Start Zabbix server instance and link the instance with created MySQL server instance

# docker run --name zabbix-server-mysql -t \

      -e DB_SERVER_HOST="mysql-server" \

      -e MYSQL_DATABASE="zabbix" \

      -e MYSQL_USER="zabbix" \

      -e MYSQL_PASSWORD="zabbix_pwd" \

      -e MYSQL_ROOT_PASSWORD="root_pwd" \

      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \

      --network=zabbix-net \

      -p 10051:10051 \

      --restart unless-stopped \

      -d zabbix/zabbix-server-mysql:alpine-5.4-latest


5. Start Zabbix web interface and link the instance with created MySQL server and Zabbix server instances

# docker run --name zabbix-web-nginx-mysql -t \

      -e ZBX_SERVER_HOST="zabbix-server-mysql" \

      -e DB_SERVER_HOST="mysql-server" \

      -e MYSQL_DATABASE="zabbix" \

      -e MYSQL_USER="zabbix" \

      -e MYSQL_PASSWORD="zabbix_pwd" \

      -e MYSQL_ROOT_PASSWORD="root_pwd" \

      --network=zabbix-net \

      -p 80:8080 \

      --restart unless-stopped \

      -d zabbix/zabbix-web-nginx-mysql:alpine-5.4-latest


Zabbix web interface instance exposes 80/TCP port (HTTP) to host machine.



Zabbix server主机安装Zabbix agent2服务

#sudo mkdir /var/lib/docker/volumes/zabbix-agent2-volume

#docker volume create zabbix-agent2-volume

#docker run -v /etc/localtime:/etc/localtime \

      --name zabbix-agent2 \

      -v zabbix-agent2-volume:/etc/zabbix \

      -e ZBX_HOSTNAME="zabbix-server" \

      -e ZBX_SERVER_HOST="zabbix-server-mysql" \

      -p 10050:10050 \

      -e ZBX_SERVER_PORT=10051 \

      -v ${server_dir}/agent2/modules:/var/lib/zabbix/modules \

      --privileged \

      --network=zabbix-net \

      --restart unless-stopped \

      -d zabbix/zabbix-agent2:ubuntu-6.0-latest

ubuntu 20.04.5安裝harbor

安裝ubuntu 20.04.5後

設定固定IP

sudo vi /etc/netplan/00-installer-config.yaml

例如:

# This is the network config written by 'subiquity'

network:

  version: 2

  ethernets:

    eth0:

      dhcp4: false

      addresses: [192.168.0.50/24]

      routes:

      - to: default

        via: 192.168.0.1

      nameservers:

        addresses: [1.1.1.1,8.8.8.8]


重啟網路設定

sudo netplan apply


進入ubuntu

sudo apt-get update && sudo apt-get upgrade -y


更改系統的時區

看目前時區

timedatectl


修改時區

sudo timedatectl set-timezone Asia/Taipei


安裝docker

更新軟件存儲庫

sudo apt update


下載依賴項:允許您的 Ubuntu 20.04 系統通過 HTTPS 訪問 Docker 存儲庫

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common


添加 Docker 的 GPG 密鑰

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


安裝 Docker 存儲庫

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"


安裝最新的 Docker

先再次更新存儲庫

sudo apt update


安裝最新的 Docker 版本

sudo apt-get install docker-ce


驗證 Docker 安裝

docker --version


啟用 Docker 服務

sudo systemctl start docker

sudo systemctl enable docker


檢查服務的狀態

sudo systemctl status docker


在沒有 Sudo 的情況下運行 Docker 命令

創建docker組

sudo groupadd docker


鍵入以下命令(確保將[user]替換 為您的用戶名,但別保留[])

sudo usermod -aG docker [user]

例如

sudo usermod -aG docker sct


啟用新設置

su - [user]

例如

su - sct


檢查以確認用戶現在是 docker 組的一部分

id -nG


測試

docker run hello-world


-----------------------------------------------------------------

安裝Docker Compose

sudo curl -L https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose


設定執行權限

sudo chmod +x /usr/local/bin/docker-compose


看版本

docker-compose --version


----------------------------------------------------------------

安裝Harbor

要先安裝 Docker 與 Docker Compose

獲得的安裝包位置

wget https://github.com/goharbor/harbor/releases/download/v2.6.2/harbor-offline-installer-v2.6.2.tgz


解壓縮

tar xvf harbor-offline-installer-v2.6.2.tgz


修改harbor.yml

cd harbor

sudo cp harbor.yml.tmpl harbor.yml

sudo vi harbor.yml

修改hostname、先將happs拿掉、登入admin密碼及資料庫密碼

hostname: 192.168.137.200

#https:

  # https port for harbor, default is 443

  #  port: 443

  # The path of cert and key files for nginx

  #  certificate: /your/certificate/path

  #  private_key: /your/private/key/path

harbor_admin_password: Windows1

database:

  password: Windows1


修改完成後執行 sudo ./install.sh


完成後開啟瀏覽器http://192.168.137.200登入

也可以docker login 192.168.137.200

重開機後要輸入sudo docker-compose up -d 


-------------------------------------------------------------

使用HTTPS

建置放證書的目錄

sudo mkdir -p /data/certs

cd /data/certs


產生CA證書

創建key文件:

sudo openssl genrsa -out ca.key 4096

產生證書

sudo openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/CN=192.168.137.200" -key ca.key -out ca.crt


產生服務器證書

創建私鑰

sudo openssl genrsa -out server.key 4096

產生證書簽名請求

sudo openssl req -new -sha512 -subj "/CN=192.168.137.200" -key server.key -out server.csr


產生harbor倉庫主機的證書

產生一個x509 v3擴展文件

sudo vim v3.ext


authorityKeyIdentifier=keyid,issuer

basicConstraints=CA:FALSE

keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

extendedKeyUsage = serverAuth

subjectAltName = IP:192.168.137.200



使用此v3.ext文件為您的Harbor主機產生證書

sudo openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt


配置和安裝證書

將server.crt文件和server.key文件拷貝到此目錄/data/cert下

因為我前面一直是在這個路徑操作的就省略了該步驟

修改harbor的配置文件 修改以下配置項

root@eb7023:/data/certs>sudo vim ~/harbor/harbor.yml

hostname: 192.168.137.200

https:

port:443

certificate: /data/certs/server.crt

private_key: /data/certs/server.key


可以重啟一下harbor倉庫了,注意這里要CD到harbor解壓目錄

cd /home/sct/harbor/

sudo ./prepare


停止當前運行的harbor

sudo docker-compose down -v


後台運行的harbor

sudo docker-compose up -d


為docker配置harbor認證

將server證書cp到docker所在的機器固定目錄中

sudo mkdir -p /etc/docker/certs.d/192.168.137.200

cd /data/certs/

sudo cp server.crt /etc/docker/certs.d/192.168.137.200/server.crt


然后docker直接login即可

docker login 192.168.137.200


將 Harbor 設置為系統服務

編輯文件 sudo vim /lib/systemd/system/harbor.service


[Unit]

Description=Harbor

After=docker.service systemd-networkd.service systemd-resolved.service

Requires=docker.service

Documentation=http://github.com/vmware/harbor


[Service]

Type=simple

Restart=on-failure

RestartSec=5

ExecStart=/usr/local/bin/docker-compose -f /home/sct/harbor/docker-compose.yml up

ExecStop =/usr/local/bin/docker-compose -f /home/sct/harbor/docker-compose.yml down


[Install]

WantedBy=multi-user.target


sudo systemctl start harbor

sudo systemctl enable harbor



------------------------------------------------------------------------------------

測試建置Harbor倉庫主機是否可行

以瀏覽器登入

https://192.168.137.200

在左邊點選項目-->選新建項目-->填入項目名稱(例如ithome),確定即可


透過 Docker login 到 https://192.168.137.200

下載我本來放在 Docker hub 上的 Image,並透過 docker tag 將其重新命名

docker pull hwchiu/netutils

docker tag hwchiu/netutils 192.168.137.200/ithome/netutils:latest


將新命名的 docker image 推向我們建置的 Harbor container registry

docker push 192.168.137.200/ithome/netutils:latest


瀏覽器登入192.168.137.200 看netutils是否在ithome項目目錄中


-------------------------------------------------------------------------

安裝掃描器(掃漏洞)

先停止服務

sudo systemctl stop harbor


安裝掃描器

cd /home/sct/harbor

sudo ./install.sh --with-notary --with-trivy --with-chartmuseum


啟動服務

sudo systemctl start harbor


登入瀏覽器,進入項目,點選項目名稱,再點選鏡像倉庫名稱,選工作,選掃描即可


安裝ubuntu 20.04.5後 設定固定IP

 sudo vi /etc/netplan/00-installer-config.yaml

例如:

# This is the network config written by 'subiquity'

network:

  ethernets:

    eth0:

      dhcp4: no

      addresses: [192.168.137.200/24]

      optional: true

      gateway4: 192.168.137.1

      nameservers:

        addresses: [8.8.8.8, 8.8.4.4]

  version: 2


重啟網路設定

sudo netplan apply


更改系統的時區

看目前時區

timedatectl

修改時區

sudo timedatectl set-timezone Asia/Taipei