阿舍用下面的指令起了一個 CouchDB 資料庫 Docker Container,然後,因為,阿舍在 CouchDB 的前面有用 Nginx Porxy 來讓外部用 SSL/TLS 連進來,所以,阿舍的 CouchDB 就不用直接對外開放 5984 埠,因此,阿舍就以為,阿舍沒有用 UFW 來打開 5984 埠,那麼外面的世界就應該看不到阿舍有 5984 埠才對哩 ...
docker run --name couchdb-ayu -p 5984:5984 -d couchdb
不過,阿舍運氣不錯,突然心血來潮,用下面第一行的指令檢查完成 UFW 的設定 後,確定沒有開啟 5984 埠後,就用自己的電腦用下了下面第二行的 nc 指令來試了一下,結果,竟然是傳回 "Successed" 的訊息,阿舍不想信,所以,再用了 telnet 指令來確認一下,喔 ! 真的有連線成功哩 .... 怎會這樣呢 ?
$ sudo ufw status verbose
$ nc -zv xyz.arthurtoday.com 5984
$ telnet xyz.arthurtoday.com 5984
阿舍的 UFW 的設定看來就明明沒有打開 5984 埠哩 ! 好,看來,阿舍看到的設定不是最終的結果,阿舍記得,有人說 UFW 是 iptable 的一個 Shell,所以,阿舍也許可以直接來看一下 iptable 的設定是如何,也許就可以找出問題吧 ! 因此,阿舍就用了下面的指令來列出 iptable 的內容 ... 結果,其實,也看不出個所以然來,因為 Ubuntu 版的 iptable 已經和 UFW 的規則整合過,會直接讀 UFW 的規則而不是直接轉換成 iptable 的規則哩 ~~ (不過,阿舍對 iptable 沒有很熟,也許有方式可以查的出來哩 ! )
$ sudo iptables -L
後來,阿舍再查了一下 UFW 的指令後才發現,其實,是可以用下面這一行指令來詳列出 UFW 的規則的,然後,阿舍就發現,怎麼有一個 Docker 的 ACCEPT ALL 的規則插在 DROP ALL 的前面,難怪阿舍的 5984 埠不用設定就自動開啟了哩 !
$ sudo ufw show raw
於是,阿舍就去找了一下,嗯 ! 果然,這是一個常見的問題,在這一篇文裡有提到一種解法,就是在 /etc/default/docker 的設定檔裡,把「DOCKER_OPTS」這個選項改成下面這樣來讓 Docker 不去調整 iptable 的設定。
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --iptables=false"
不過,阿舍似乎是不太能用這一招,因為,阿舍在同一台機器上還有另一個 Docker Container 是有綁外部 IP 來直接對外做服務的,如果這樣設定,阿舍可能就要再調整相關設定,有點麻煩哩 ! 所以,阿舍就再花時間看看有沒有其它的方法 ... 結果,是有的。
原來,一切都是阿舍的習慣的問題,就是在用 Docker 的 run 指令的 -p 選項的時候,沒習慣加上綁定的 IP 位址,所以,就會讓 Docker 聰明的幫忙開啟防火牆了哩 ! 舉例來說,阿舍習慣用下面第一行指令的方式來把 Container 的 port 給 Expose 到 Host,但是,比較安全且正確的作法應該是下第二行的方式,也就是要明確的把 IP 位址給指定出來哩 !
$ docker run -p 5984:5984 -d couchdb
$ docker run -p 127.0.0.1:5984:5984 -d couchdb
阿舍用上面第二行的方式後,再測了一下,果然,就不會讓防火牆漏洞了,而且,也不需要去調整 Docker 的 iptable 設定就可以解決了哩 ! 所以,阿舍是建議,各位在用 Docker 的 -p 選項時,請多加注意,儘量明確的指出它綁定的 IP 位址,這樣,似乎就可以避掉一些麻煩哩 ... 供參囉 !
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
2 則留言 :
太感謝了!
太感謝了!!
太可怕了吧!
我都不知道這件事情....
我覺得這件事情很嚴重餒.....
張貼留言
歡迎留言提問和討論 .... 😁