使用 certbot 向 Let’s Encrypt 申請憑證

安裝 certbot

官方建議使用 Canonical 的 snapcraft 來進行安裝。
Ubuntu 通常都已預裝好 snapcraft (因為 Ubuntu 的爸爸就是 Canonical),可以使用下方的指令確保使用最新的 snapcraft 版本。

sudo snap install --classic certbot

設定軟連結讓 Certbot 指令可以執行。

sudo ln -s /snap/bin/certbot /usr/bin/certbot

向 Let’s Encrypt 申請憑證

啟動 Certbot,使用手動授權方法搭配 DNS 查問以驗證網域所有權,這會為您的頂層網域及其子網域請求萬用字元憑證。

sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
  • –manual:使用手動驗證。
  • –preferred-challenges dns:使用 dns (亦可改用http)的方式 challenge 。
  • certonly:只產生憑證,讓 Certbot 不要自動產生或修改 Nginx 的設定檔案。

解決ssh遇到[no matching host key type found]的問題

當你使用ssh要連線某主機時,竟發現這個訊息,並且無法連線時怎麼辧 ?

解決的辦法是把ssh指定加密的算法就可以連線,舉例如下

ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa aliok@192.168.7.14

或者sftp也可以使用

sftp -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa aliok@192.168.7.14

如果是經常性要連線的主機,可以在設定檔中修改,不必每次下這麼多參數

~/.ssh/config

內容範例如下

Host 192.168.7.14
  HostName 192.168.7.14
  User john
  Port 22
  HostKeyAlgorithms +ssh-rsa
  PubkeyAcceptedKeyTypes +ssh-rsa

Rocky與CentOS 8 網卡指令

Rocky 與 CentOS 的網卡指令從第8版後已經不再是systemctl restart network, 而是改用『nmcli』 這個指令。

查看網卡IP

ip address

可簡化為

ip a

列出網卡資訊

nmcli

查看網卡狀態

nmcli device status

秀出網卡詳細資訊

nmcli device show

查看網卡en160詳細資訊

nmcli device show ens160

重啟網卡

nmcli connection restart

啟動或關閉網卡

nmcli c up ens160
nmcli c down ens160

設定網卡開機自動啟動

nmcli c modify ens160 connection.autoconnect yes

剛除連接網卡

nmcli c delete ens160

新增/刪除一個IP位址和閘道

nmcli c modify ens160 +ipv4.address 192.168.0.3/24  #新增ip
nmcli c modify ens160 -ipv4.address 192.168.0.3/24  #删除ip
nmcli c modify ens160 ipv4.gateway 192.168.0.1  #設定閘道

設定DNS

nmcli c modify ens160 ipv4.dns 8.8.8.8  #新增DNS
nmcli c modify ens160 -ipv4.dns 8.8.8.8  #删除DNS

設定IP取得方式

nmcli connection modify ens160 ipv4.method manual  #手動設定
nmcli connection modify ens160 ipv4.method auto  #DHCP自動取得

讓設定重效(修改後要執行才能生效)

nmcli connection reload

立刻生效網卡設定, 不必重新啟動系統(三擇一)

nmcli c up ens160
nmcli device connect ens160
nmcli device reapply ens160

snmp v2 設定mrtg

方法只是差別在多一個參數而已,另外產出的cfg檔裡, IP後面也都會加5個冒號

SNMPv1:
cfgmaker public@192.168.1.1 > kh.cfg

SNMPv2:
cfgmaker –snmp-options=:::::2 public@192.168.1.1 > kh.cfg

2022高中會考

今天會考第二天, 終於完成小朋友的國中階段。

二年前是姊姊, 今年是弟弟, 都在建中考場, 今年是108課綱的完整第一屆, 聽說考題比較活, 但弟弟說其實還好, 他已經適應了。

今年的疫情嚴峻,新聞報導有3000多考生確診,還好中正的同學們都安好,順利的完成會考。

祝福大家都能考上心中理想的學校。

聯合智網今天離職

今天是到聯合智網的最後一天, 辦理離職手續, 今天因為早上有事反而8點半才到公司, 害龍哥8點就在門口等, 真是不好意思。

龍哥還幫我拿去給總經理簽文件,真是貼心的好主管。後續….

2022-04-04兒童節單車遊八里

從蘆洲捷運總站租用Ubike, 走堤外單車專用到至八里漁港。

早上騎機車到蘆洲捷運總站,停好車後步行到捷運站出口處租借UBike,本來還猶豫是借1.0還是2.0的車, 但這裡看到的幾乎都是1.0, 就租吧~ 也怕到了八里要還是找不到停車柱可以還, 因為不清楚八里是1.0 還是2.0的車柱。

從成蘆橋旁的腳踏車越堤道牽引過橋後, 順著橋下騎,就可以接到往八里的腳踏車道, 但今天這條道上也很多步行者,因為我們也是第一次騎, 不知道這樣的情形是否很正常, 騎到第一個里程碑–觀音坑溪橋, 要拍照時, 因為沒有帶三腳架, 也沒有自拍棒,所以拍起來有點不順利; 而剛好4位步行者之中的一位媽媽很熱情的說要幫我們拍, 才順利的拍下了全家都入鏡的照片。同樣的我也幫他們拍了幾張, 順口問一下他們的目的在那裡? 結果居然是台北港,看來比我們的八里還要更遠。

待補充

3月3日全台大停電

今天早上7點半到公司附近, 在seven吃完早餐, 帶著一杯咖啡8點到公司門口, 看著鎖住的鐵門, 猜想著幾點會有人來開門? 直到9點才有一位同仁來開門, 說她叫Amy,並熱心的介紹公司有咖啡及茶包可以使用, 並放置位址介紹讓我知道, 真是很感謝她。

到座位後開啟電腦, 看著網路共用資料夾的前人交接文件, 結果9點17分左右突然就停電, 一開始還以為是這棟大樓停電而已,結果在LINE群組中,院長說他們也停電, 而且seven也說信義區也停電, 才發現不是小規模的。

誤傳了多年的八句俗語

1,“嫁雞隨雞,嫁狗隨狗”,原為“嫁乞隨乞,嫁叟隨叟”意思是一個女人即使嫁給乞丐或者是年齡大的人也要隨其生活一輩子。隨著時代的變遷,這一俗語轉音成雞成狗了。

2
,“三個臭皮匠,頂個諸葛亮”,“皮匠”實際上是“裨將”的諧音,“裨將”在古代是指“副將”,原意是指三個副將的智慧合起來能頂一個諸葛亮。流傳中,人們將“裨將”說成了“皮匠”。

3
,“不見棺材不落淚”,本是“不見親棺不落淚”,並不是見了任何棺材都落淚。訛變為“不見棺材不落淚”,如果不管誰的棺材,只要見到就落淚,那就有點太莫名其妙了。

4
,“有眼不識金鑲玉”,本是“有眼不識荊山玉”。荊,指古代楚國;“荊山玉”,是玉匠在荊山發現的玉。

5
,“不到黃河心不死”,本是“不到烏江心不死”。烏江,項羽他老人家自刎的地方。烏江訛變成黃河,真是讓人無從解釋了。

6
,“捨不得孩子套不住狼”,本是“捨不得鞋子套不住狼”意思是要打到狼,就要不怕跑路,不怕費鞋。不過這個我還能理解點,因為好像四川那邊管鞋叫孩子。如果真的拿活生生的孩子去套狼,也太狠心啦!

7
,“狗屁不通”,這個成語最初是“狗皮不通”。狗的表皮沒有汗腺,酷夏,狗要借助舌頭來散發體內的燥熱。“狗皮不通”就是指狗的身體這個特點,“屁”是污濁的象徵,對於文理不通的東西,以屁來喻,也就將就些吧!

8
,“王八蛋”這是民間的一句罵人話。實際上,這句話的原來面目是“忘八端”。古代“八端”是指“孝,悌,忠,信,禮,義,廉,恥”,此八端指的是做人之根本,忘記了這“八端”也就是忘了基本的做人根本,可是後來卻被訛變成“王八蛋”。

遇到馬路上的無賴……要冷靜以對!

最近街上無賴很多(提供善心人士的經驗談)。

話說上週六晚上,我老婆和他姊夫去台南市買東西,回程途中,在勝利路與小東路交叉口停紅燈,突然有一個年輕人走到駕駛座旁,不知道一直對他們罵什麼,我老婆他們不以為意,想說是路上的神經病,綠燈亮了就繼續開車。

開車之後,對方就一直跟在他們的車後面,我老婆就叫姊夫趕快把車開到附近的警察局,不過一時之間搞不清楚到底附近哪裡有警察局,這時已經到了小東路和光明街交叉口,又遇上了紅燈。

這次對方就直接把車斜停在他們的車前面,接著這個年輕人又下車了,非常兇惡的用力拍打擋風玻璃,說是我老婆他們撞到他的車,要我老婆他們下車。當時我老婆真的是嚇到了,不過還是冷靜的記得打電話報警。

對方仍然是在車外叫囂,我老婆他們也不下車,因為他們車速比較慢,一直開在外側車道,前方一直都是沒有車的,所以有絕對的把握沒有撞到任何車子。

警察大概過了�抴X分鐘才到現場,這時我老婆才下車,接著就是由警察來協調,弄清楚到底發生什麼事。對方一直說我老婆的車子撞到他,警察要他指出到底撞到哪裡,他說撞到車頭,但是這個年輕人卻無法指出任何確切的撞擊位置和痕跡。而我老婆他們在路上一直都是第一部車,前面沒有車可以撞,更不可能在停紅燈時倒車去撞後面的車。由於對方提不出任何證據,我老婆也堅持沒有任何擦撞,警察就勸雙方各退一步,當做沒什麼事發生。

但是這個年輕人這時居然要求我老婆向他道歉,原本我老婆已經打算息事寧人,被嚇到都還沒要求他道歉,一把火就這麼升上來,「你憑甚麼叫我跟你道歉?」接著我老婆說:「你無緣無故把我在路上攔下來,我要告你妨礙自由。」

此話一出,對方馬上就安靜下來,警察在旁邊也說:「小姐,如果你要提出告訴,我們到時可以作證。」我老婆拿出相機,把兩部車停在路上的位置拍了幾張不同角度的照片。這時這個年輕人態度不一樣了。他說:「你們都是有背景的啦!我們這種人就是壞人啦!我就給你道歉可以了吧!」

我老婆說:「你最好是道歉,不然我告你告到死。」接下來就是對方一直的道歉,對方車上還有另外一個女的,這時也下來道歉。警察說對方道歉他們都有錄音錄下來。最後我老婆要求警察將對方扣留一段時間,讓他們先離開現場,以確保對方不會馬上報復。

後來警察也有和我們聯繫,說當天的錄音都存在警察局,有需要的話可以過去聽。整件事大略的過程就是這樣,警察說我老婆的處置不錯,在此歸納幾個要點供大家參考:

1、警察說最近的確是有越來越多的假車禍勒索事件,開車時要提高警覺。

2、遇到不明人士攔車叫囂,儘快將車開到附近警察局(報警)。

3、如果車子被攔下無法駛離,留在車上不要下車,趕快報警及聯絡朋友。
(後來也聽說有朋友遇到類似情況,想下車理論,一下車對方就動手先打人。)

4、數位相機或照相手機要記得拿出來用,把現場記錄下來保護自己。

5、對方道歉要錄音下來,以免事後對方反悔糾纏不清。

6、如覺得個人安全受到威脅,可以要求警方填寫報案三聯單,以留下事發紀錄。
(這是一位法律系的朋友建議的)

7、可以要求警方當場扣留對方一小段時間,讓自己能安全離開現場。

希望大家都不要碰上這種事情,我們倒楣遇上了,在這邊和大家分享一下,大家萬一遇到了,也就比較不會那麼緊張,有個處理程序可以供參考。

[script]備份排程

保留5個備份檔, 把最舊的刪除

#!/bin/bash
mkdir /web/backup
cd /opt
NEWFILE="`date +%Y%m%d-%H%M`"
TARGET="/web/backup"
FILES_LIMIT=5
# backup httpd  data
tar -zcf $TARGET/web_$NEWFILE.tar.gz webdir
FILES_NUM=`/bin/ls -l $TARGET |grep "gz" |wc -l`
# Delete over files
cd $TARGET
for d in `ls`
do
        if [ $FILES_NUM -gt $FILES_LIMIT ]; then
             BACKUP_LIST=`ls -tr *gz`
             DEL_FILE=`echo $BACKUP_LIST | cut -d ' ' -f 1 | head -1`
             rm -f $DEL_FILE
             FILES_NUM=`/bin/ls -l $TARGET |grep "gz" |wc -l`
        fi
done
chown backup /web/backup/*

利用SSH上傳、下載(使用sz與rz命令)

1、情境簡述

通常,利用SSH管理遠端Linux伺服器時,經常需要與本地互動檔案。當然,我們可以利用FTP方式,比如通過Filezilla客戶端軟體。不過直接使用Xshell軟體自帶的上傳和下載功能無疑使最方便快捷的。通常SSH軟體支援的檔案傳輸協議主要有ASCII、Xmodem、Zmodem等。

rz,sz是便是Linux/Unix同Windows進行ZModem檔案傳輸的命令列工具。

使用前提:

  1. 首先,你的Linux端(CentOS, Ubuntu)需要安裝rz/sz命令,也就是 lrzsz 包。
  2. 其次,windows端需要支援ZModem的telnet/ssh客戶端(像Xshell)。

2、檔案傳輸協議

檔案傳輸是資料交換的主要形式。在進行檔案傳輸時,為使檔案能被正確識別和傳送,我們需要在兩臺計算機之間建立統一的傳輸協議。這個協議包括了檔案的識別、傳送的起止時間、錯誤的判斷與糾正等內容。常見的傳輸協議有以下幾種:

  • ASCII:這是最快的傳輸協議,但只能傳送文字檔案。
  • Xmodem:這種古老的傳輸協議速度較慢,但由於使用了CRC錯誤偵測方法,傳輸的準確率可高達99.6%。
  • Ymodem:這是Xmodem的改良版,使用了1024位區段傳送,速度比Xmodem要快
  • Zmodem:Zmodem採用了串流式(streaming)傳輸方式,傳輸速度較快,而且還具有自動改變區段大小和斷點續傳、快速錯誤偵測等功能。這是目前最流行的檔案傳輸協議。

3、在Linux上安裝lrzsz

單單是SSH客戶端軟體支援以上檔案傳輸協議(ASCII,Xmodem,Ymodem,Zmodem)還不行,我們的Linux伺服器上也得安裝相應的軟體,以支援這些檔案傳輸協議才行。在Linux上,lrzsz就是完成此任務的,lrzsz就是一個支援 Zmodem 傳輸協議的工具。我們通過sz/rz兩個命令,分別傳送/接收檔案。如果我們的系統中沒有安裝lrzsz這個包,就會報錯,安裝即可解決。

##以ubuntu為例

aliok@ulab01:~$ rz
Command 'rz' not found, but can be installed with:
sudo apt install lrzsz
aliok@ulab01:~$ sudo apt install lrzsz
[sudo] password for aliok:
Sorry, try again.
[sudo] password for aliok:
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Suggested packages:
minicom
The following NEW packages will be installed:
lrzsz
0 upgraded, 1 newly installed, 0 to remove and 20 not upgraded.
Need to get 74.8 kB of archives.
After this operation, 531 kB of additional disk space will be used.
Get:1 http://tw.archive.ubuntu.com/ubuntu focal/universe amd64 lrzsz amd64 0.12.21-10 [74.8 kB]
Fetched 74.8 kB in 0s (303 kB/s)
Selecting previously unselected package lrzsz.
(Reading database ... 232559 files and directories currently installed.)
Preparing to unpack .../lrzsz_0.12.21-10_amd64.deb ...
Unpacking lrzsz (0.12.21-10) ...
Setting up lrzsz (0.12.21-10) ...
Processing triggers for man-db (2.9.1-1) ...

4、用法簡述

  • sz中的s意為send(傳送)
### 下載一個檔案:
# sz filename
### 下載多個檔案:
# sz filename1 filename2
### 下載dir目錄下的所有檔案,不包含dir下的資料夾:
# sz dir/*
  • rz中的r意為received(接收)
### 直接鍵入rz命令即可
# rz
### 直接拖動檔案到 xshell即可

輸入rz回車後,會出現檔案選擇對話方塊,選擇需要上傳檔案,一次可以指定多個檔案,上傳到伺服器的路徑為當前執行rz命令的目錄。

5、操作示範

rz命令(下載)

當我們鍵入rz命令之後,會彈出檔案選擇對話方塊,選擇需要傳輸的檔案,點選 Add 即可。

接收的目錄就是我們當前執行rz命令的目錄。

更簡單直接的方法,直接選中檔案,用滑鼠點住檔案往Xshell裡面一拖就可以了。

sz命令(上傳)

假設我要傳送檔案,直接使用sz命令, 其後接上檔名即可。同理,敲下ENTER後,也會跳出對話方塊,讓我們選擇存放的資料夾。

6、檔案大小限制

使用lrzsz非常方便,但是有一點不足之處: 無法傳輸大於 4G 的檔案。