Remote Desktop Connection Manager【RDCMan】有安全性漏洞

 

真的傷腦筋,RDCMan很好用說,Microsoft 已經很久沒更新了,這次剛好順勢將它除役了…

以後要改用其他的遠端桌面工具了…

CVE-2020-0765 | Remote Desktop Connection Manager Information Disclosure Vulnerability

自家遠端桌面連線工具RDCMan爆資訊外洩漏洞,微軟直接宣布除役

image

張貼在 Secure資訊安全, Windows, Windows 10, Windows 2016 | 發表留言

OVA/OVF 部署虛擬機失敗 – SHA digest of file XXX-disk1.vmdk does not match manifest.

 

從 vSphere 5.5 匯出一台虛擬機,匯出成 OVA

在 VMware Workstation 15.5 匯入,結果會出現 SHA1 不一致的錯誤。

殘念~~~

在回到 vSphere 5.5,重新匯出虛擬機,這次選擇 OVF

到 VMware Workstation 15.5 匯入,依舊是 SHA1 的錯誤訊息

image

先觀察 OVF 的相關檔案,要修改 *.mf,先備份一個 *.mf.bak 檔

image

用 Notepad++ 打開 *.mf

image

 

執行 SHA1 檢查工具,檢查 *.vmdk 的 SHA1

image

 

的確跟 *.mf 檔案中的 SHA1 不一樣

手動修改 *.mf ,將 vmdk 的 SHA1 值換掉

image

 

回到 VMware Workstation 15.5,重新再匯入 OVF,這次就大功告成了!

張貼在 Bookmark, 虛擬化, VMware | 發表留言

小米手機定時開關機

 

這篇是單純的做個紀錄,手邊的小米MAX1、小米MAX2已經除役,現在拿來當作打電動專用,設定成為每天定期的開關機,這樣比較省事。

小米MAX2,MIUI版本是11.0.2

【設定】->【電池與性能】

imageimage

【定時開關機】,這裡是釘成,每天凌晨三點關機,五點開機

imageimage

實測的結果,小米6是 MIUI 11.0.3,也是一樣的設定,每天的鬧鐘也可以正常運作。

再來是小米MAX1,最新的版本,只能到 MIUI 10.2

一樣是【設定】->【電量和性能】

imageimage

【省電最佳化】->【定時開關機】

imageimage

時間一樣就是自行指定了。

image

張貼在 Android, 小米機 | 發表留言

Apache 中文檔名亂碼

 

RHEL 8 的 Apache,版本是 2.4.x

 

# rpm -q httpd
httpd-2.4.37-10.module+el8+2764+7127e69e.x86_64

預設中文的檔案/目錄名稱是亂碼

image

編輯 /etc/httpd/conf/httpd.conf,在大約 128 行加入以下設定

    134 
    135
    136     Options Indexes FollowSymLinks
    137     #IndexOptions NameWidth=*
    138     IndexOptions NameWidth=* Charset=UTF-8
    139
    140     AllowOverride None
    141
    142     Order allow,deny
    143     Allow from all
    144

重新啟動服務

# systemctl restart httpd

這樣就可以正常顯示中文了!

image

張貼在 CentOS 6, CentOS 7, CentOS 8, Docker, Linux, RHEL 6, RHEL 7, RHEL 8, ubuntu | 發表留言

Reverse SSH Tunnel – 反向 SSH Tunnel

 

Reverse SSH Tunnel,通常拿來應用在客戶端的 Linux Server,是在 NAT 之後,不能直接使用 ssh,連線到 Public IP,或是,透過 DNAT 轉進去的情況!對於 SI 維護而言,能夠遠端維護,是 C/P 值很高的,但是,要注意安全就是了!

這裡是使用兩台同網段,直接連線的電腦【兩台都是 RHEL 8】做測試,但是,實際上,請想像左手邊的 servera【172.25.250.10】是在客戶端的 NAT 之後的 Linux Server右手邊的 serverb【172.25.250.11】是無法直接連線的。右手邊的 serverb,需要 Public IP,或是 DNAT 可以轉進去的連線!

 

遠端 – 客戶端的Linux Server           本地端 – SI 廠商的Linux【Public IP】

servera【172.25.250.10】            serverb【172.25.250.11】

 

在遠端 – 客戶端的Linux Server【servera】,先產生一組 ssh key pair,用來登入 SI 廠商的 Linux,可以自動登入,不需要密碼【因為要自動登入,要設定為 no passphrase

[root@servera ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+eyuXfR5ObDqyy2yHyWnURHmdNHSPE0Kqm7roKX5Ou0 root@servera.lab.example.com
The key's randomart image is:
+---[RSA 2048]----+
|            .=.*=|
|           .+.+o=|
|          .  o...|
|         o  .    |
|        S  o.+   |
|       . o .*.o..|
|     .o o oo..oo.|
|    .=.o =.o+  ..|
|    ==E.++O*o.   |
+----[SHA256]-----+
[root@servera ~]#

 

在本地端 – SI廠商的Linux【serverb】,建立一個非root帳號,專門給特定廠商連線,這台Linux最好是台專用的虛擬機,不提供其他服務,要注意安全。

[root@serverb ~]# useradd test1
[root@serverb ~]#
[root@serverb ~]# echo "12345678" | passwd test1 --stdin
Changing password for user test1.
passwd: all authentication tokens updated successfully.
[root@serverb ~]#

切換到遠端 – 客戶端的Linux Server【servera】,將剛剛產生的 ssh 的 Public Key,複製過去

[root@servera ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub test1@172.25.250.11
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
test1@172.25.250.11's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'test1@172.25.250.11'"
and check to make sure that only the key(s) you wanted were added.

[root@servera ~]#

 

遠端 – 客戶端的Linux Server【servera】,手動建立連線

參數說明:
-N:不執行任何指令
-f:在背景執行
-R:建立Reverse Tunnel
測試時,可以考慮拿掉 -N -f,只使用 -R

[root@servera ~]# /usr/bin/ssh -NfR 2222:localhost:22 test1@172.25.250.11 -p 22
[root@servera ~]#

 

在本地端 – SI廠商的Linux【serverb】,應該要看到一個 TCP(2222) 的連線

[root@serverb ~]# netstat -tupln | grep 2222
tcp        0      0 127.0.0.1:2222          0.0.0.0:*               LISTEN      1422/sshd: test1
tcp6       0      0 ::1:2222                :::*                    LISTEN      1422/sshd: test1
[root@serverb ~]#

 

試著從本地端 – SI廠商的Linux【serverb】,登入到遠端 – 客戶端的Linux Server【servera】,這時候可以觀察到一個 ::1 的登入

[root@serverb ~]# ssh -p 2222 -o StrictHostKeyChecking=no root@localhost
root@localhost's password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Mon Feb  3 11:52:49 2020 from 172.25.250.11
[root@servera ~]# w
 12:34:10 up 45 min,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    172.25.250.250   11:51    5:11   0.04s  0.04s -bash
root     pts/1    ::1              12:33    2.00s  0.02s  0.00s w
[root@servera ~]#

 

人雖然在本地端 – SI廠商的Linux【serverb】,但,已經透過 Reverse SSH Tunnel 登入到 客戶端的Linux Server【servera】,使用 last 觀察登入紀錄

[root@servera ~]# last
root     pts/1        ::1              Mon Feb  3 12:33   still logged in
root     pts/1        172.25.250.11    Mon Feb  3 11:52 - 11:52  (00:00)
root     pts/0        172.25.250.250   Mon Feb  3 11:51   still logged in
root     pts/0        172.25.250.250   Mon Feb  3 11:50 - 11:50  (00:00)
reboot   system boot  4.18.0-80.el8.x8 Mon Feb  3 11:48   still running
reboot   system boot  4.18.0-80.el8.x8 Tue Nov 12 11:22   still running
reboot   system boot  4.18.0-80.el8.x8 Wed May 22 11:20 - 11:22  (00:01)

wtmp begins Wed May 22 11:20:27 2019
[root@servera ~]#

 

只要在本地端 – SI廠商的Linux【serverb】,kill 掉 TCP(2222) 的連線,就可以成功斷線。

[root@servera ~]# exit
logout
Connection to localhost closed.
[root@serverb ~]# netstat -tupln | grep 2222
tcp        0      0 127.0.0.1:2222          0.0.0.0:*               LISTEN      1422/sshd: test1
tcp6       0      0 ::1:2222                :::*                    LISTEN      1422/sshd: test1
[root@serverb ~]# kill 1422
[root@serverb ~]#
[root@serverb ~]# ssh -p 2222 -o StrictHostKeyChecking=no root@localhost
ssh: connect to host localhost port 2222: Connection refused
[root@serverb ~]#

 

手動的連線已經 ok,再來要來加工,先將本地端 – SI廠商的Linux【serverb】,設定成為 crontab 排程自動建立 Reverse SSH Tunnel,這樣可以解釋,剛剛為何要先建立 ssh key pair

想要留下 LOG,可以使用這個語法

* * * * * /usr/bin/ssh -NfR 2222:localhost:22 test1@172.25.250.11 -p 22 2>&1 > /dev/null | /usr/bin/tee -a /var/log/debug | /usr/bin/logger

每分鐘自動重新連線,這樣可以省掉使用 autossh,自動重連的需求…

 

等待一分鐘之後,在遠端 – SI廠商的Linux【serverb】,就應該要看到連線已經建立了!

[root@serverb ~]# netstat -tupln | grep 2222
tcp        0      0 127.0.0.1:2222          0.0.0.0:*               LISTEN      1492/sshd: test1
tcp6       0      0 ::1:2222                :::*                    LISTEN      1492/sshd: test1
[root@serverb ~]#

 

最後要解決的是,從 遠端 – SI廠商的Linux【serverb】,登入到 本地端 – 客戶端的Linux Server【servera】,是需要回答密碼【password】的

[root@serverb ~]# ssh -p 2222 -o StrictHostKeyChecking=no root@localhost
root@localhost's password: <-- 需要回答 root password
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Mon Feb  3 12:33:57 2020 from ::1
[root@servera ~]#

 

在本地端 – SI廠商的Linux【serverb】,產生 ssh key pair

[root@servera ~]# exit
logout
Connection to localhost closed.
[root@serverb ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:GSyljBJuuBeM8shHx8Bfs1ML0XMARoShVPK9JgM0U+o root@serverb.lab.example.com
The key's randomart image is:
+---[RSA 2048]----+
|  oBo+=*=..      |
| =ooX+oB + .     |
|+ *=o+=.B +      |
|o=ooo. +.+       |
|o.oE o oS        |
| ..   +          |
|                 |
|                 |
|                 |
+----[SHA256]-----+
[root@serverb ~]#

 

本地端 – SI廠商的Linux【serverb】的 Public key –> /root/.ssh/id_rsa.pub,複製到 遠端 – 客戶端的Linux Server【servera】

[root@serverb ~]# scp -P 2222 /root/.ssh/id_rsa.pub root@localhost:/root/.ssh/authorized_keys
root@localhost's password:
id_rsa.pub                                                    100%  410   315.2KB/s   00:00
[root@serverb ~]#

 

這樣子就可以從 本地端 – SI廠商的Linux【serverb】,自動登入到 遠端 – NAT 後面的 客戶端的Linux Server【servera】

[root@serverb ~]# ssh -p 2222 -o StrictHostKeyChecking=no root@localhost
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Mon Feb  3 13:45:26 2020 from ::1
[root@servera ~]#

 

最後,是抹掉痕跡的方式,剛剛在 本地端 – SI廠商的Linux【serverb】,crontab 排程的語法,可以改成不寫 LOG

[root@servera ~]# crontab -e
crontab: installing new crontab
[root@servera ~]#
[root@servera ~]# crontab -l
#* * * * * /usr/bin/ssh -NfR 2222:localhost:22 test1@172.25.250.11 -p 22 2>&1 > /dev/null | /usr/bin/tee -a /var/log/debug | /usr/bin/logger
* * * * * /usr/bin/ssh -NfR 2222:localhost:22 test1@172.25.250.11 -p 22 2>&1 > /dev/null
[root@servera ~]#

 

遠端 – 客戶端的Linux Server【servera】,如果不想留下登入紀錄及 history,可以在 遠端 – 客戶端的Linux Server【servera】改成以下指令

[root@serverb ~]# ssh -p 2222 -o StrictHostKeyChecking=no root@localhost 'hostname'
servera.lab.example.com
[root@serverb ~]#

這樣無論是 history、w、last,通通都不會留下紀錄

已經可以隱身登入執行指令之後,最後是雙向 scp 檔案

人當然都是在本地端 – SI廠商的Linux【serverb】

本地端 – SI廠商的Linux【serverb】/etc/motd,複製檔案到 遠端 – 客戶端的Linux Server【servera】/tmp/motd

要注意,不可以加 -o StrictHostKeyChecking=no

[root@serverb ~]# scp -P 2222 /etc/motd root@localhost:/tmp/motd
motd                                                          100%   24    16.5KB/s   00:00
[root@serverb ~]#

 

將檔案從遠端 – 客戶端的Linux Server【servera】/etc/passwd,複製回到本地端的  SI廠商的Linux【serverb】/tmp/passwd1

[root@serverb ~]# scp -P 2222 -o StrictHostKeyChecking=no root@localhost:/etc/passwd /tmp/passwd1
passwd                                                        100% 1563     1.0MB/s   00:00
[root@serverb ~]#

 

最後還是要特別再次提醒安全問題!

張貼在 CentOS 6, CentOS 7, Docker, Linux, RHEL 6, RHEL 7, RHEL 8, ubuntu | 發表留言

How to Install macOS High Sierra 10.13.6 on VMware on Windows – bookmark

 

這篇應該是比較舊的版本

How to Install macOS High Sierra 10.13.6 on VMware on Windows

以前有寫過類似的內容:

利用 VMware Workstation 7.1.3 安裝 Mac OS 10.6.4

Win10+VMware Workstation15,安裝MacOS10.14【這篇應該是最新的版本】

張貼在 Bookmark, 網路, Mac, MacOS, VMware, Windows, Windows 10 | 發表留言

日期格式的轉換 –> 使用 Regular Expression

寫 LOG 時,日期格式的轉換,其實還蠻傷腦筋的,到底是年月日,日月年,中間要用 –【ex:2019-11-29】 或 / 【ex:2019/11/29】 或直接連起來【ex:20191129】

先看一下 sample –>

[root@server0 ~]# more redata4
2009-07-05
2008-09-09
2007-12-31
2009-02-02
2010-08-08
2009-07-08

這個範例是使用年-月-日,使用 sed + Regular Expression,就可以自由轉換格式

[root@server0 ~]# sed -r -e 's/^([0-9]{4})-([0-9]{2})-([0-9]{2})/\3-\2-\1/g' redata4        
05-07-2009
09-09-2008
31-12-2007
02-02-2009
08-08-2010
08-07-2009

這樣子就將日期換成日-月-年

[root@server0 ~]# sed -r -e 's/^([0-9]{4})-([0-9]{2})-([0-9]{2})/\1\/\2\/\3/g' redata4
2009/07/05
2008/09/09
2007/12/31
2009/02/02
2010/08/08
2009/07/08

轉換成年/月/日

[root@server0 ~]# sed -r -e 's/^([0-9]{4})-([0-9]{2})-([0-9]{2})/\1\2\3/g' redata4
20090705
20080909
20071231
20090202
20100808
20090708

將 – 拿掉,轉換成年月日

如果原本的日期格式,是沒有 – ,直接連起來的也可以

先 Standard Output 轉向,自己產生範例

[root@server0 ~]# sed -r -e 's/^([0-9]{4})-([0-9]{2})-([0-9]{2})/\1\2\3/g' redata4 > reddata6  [root@server0 ~]#
[root@server0 ~]# cat reddata6
20090705
20080909
20071231
20090202
20100808
20090708
[root@server0 ~]# sed -r -e 's/^([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/g' reddata6
2009-07-05
2008-09-09
2007-12-31
2009-02-02
2010-08-08
2009-07-08

在年月日之間,插入 –

[root@server0 ~]# sed -r -e 's/^([0-9]{4})([0-9]{2})([0-9]{2})/\1\/\2\/\3/g' reddata6
2009/07/05
2008/09/09
2007/12/31
2009/02/02
2010/08/08
2009/07/08

在年月日之間,插入 /

使用 Regular Expression + sed,基本上,任何格式應該都拿不倒才對!

張貼在 Bookmark, CentOS 6, CentOS 7, Linux, RHEL 6, RHEL 7, ubuntu | 發表留言