iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 29
0
DevOps

Oops Step ( Home lab of a kind ) 系列 第 30

Piping in ssh

在現代文明生活中,最常被忽略的運輸型態"管道運輸",如自來水、瓦斯等。建立基礎架構時應該考慮這類管道,這樣才能顯出好棒棒工科不是唸假的,思考果然有夠全面。
就像維運人員最害怕的就是遠端更改網路設定,尤其是防火牆設定。因為一旦斷線,就要收拾流浪天涯小包包 回家吃自己 去機房收拾善後。因此總是有個管理用網路通道簡直是一種恩賜,就像iLO點亮了工程師黑暗的人生。但是沒有錢的前提下怎麼做?
目前最棒的,最普及的連線技術就是SSH。還好目前系統被刪減成兩種,ubuntu & openwrt。那就建立ssh reverse tunnel, everwhere.

  • OpenWrt init.d
    編輯/etc/config/autossh
config autossh
	option ssh	'-i /home/icekimo/.ssh/id_dropbear -y -y -N -T -R 50201:localhost:22 -R 7000:192.168.1.139:7000 -R 50200:192.168.1.192:22 icekimo@icekimo.mooo.com'
	option gatetime	'0'
	option monitorport	'0'
	option poll	'60'
	option enabled	'1'

像這個設定檔裡面直白的說參數範例重點只是在option ssh那行

  • -i /home/icekimo/.ssh/id_dropbear 連線的金鑰,跟最後面的登入帳號要匹配
  • -y -y 江湖一點訣,講破不值錢
  • -N -T 指定dropbear準備只是做tunnel的標準參數
  • -R 50201:localhost:22 把本機的port 22映射到遠方主機的50201埠
  • -R 7000:192.168.1.139:7000 把本地主機192.168.1.139的port 7000映射到遠方主機的7000埠
  • -R 9000:192.168.1.192:9000 把本地主機192.168.1.192的port 9000映射到遠方主機的9000埠
  • icekimo@icekimo.mooo.com 把連線的帳號與主機撰寫在一起的格式
    三個Port Forwarding,一次達成,比出奇蛋還厲害;更厲害的是連隔壁(同LAN)的也一起被出賣。
    再來重起一下服務
sudo /etc/init.s/autossh start || sudo /etc/init.s/autossh reload 
  • Ubuntu 18.04 systemd
    編輯/etc/systemd/system/littlepiggygohome.service ,範例如下,請更換帳號等資訊
[Unit]
Description=little piggy go home
ConditionPathExists=|/usr/bin
After=network.target

[Service]
User=icekimo
ExecStart=/usr/bin/ssh -NTC -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -i /home/icekimo/.ssh/id_rsa -R 50999:localhost:22 icekimo@ts109ii.myqnapcloud.com

# Restart every >2 seconds to avoid StartLimitInterval failure
RestartSec=5
Restart=always

[Install]
WantedBy=multi-user.target

而重啟服務可以用systemctl(也可以用service)

sudo systemctl enable littlepiggygohome.service
sudo systemctl restart littlepiggygohome.service

這樣可以在主機間建立複雜的管道,作為管理與傳遞設定檔用。若是在較大型的環境中,會希望採用outband的管理網路,意思就是管理封包是另一個網路(孔),不會佔用服務流量。但是我們沒有這樣的本錢,所以inband加上一點點QoS就很讚了。

誠如Day 5 Races to Zion裡面暗喻的,ssh tunnel裡面頻寬其實很窄,一個連線大約3MB/s而已。如果要真正作為加密通道使用,那就要美國痞子匹茲堡高速計算中心創造出來的High Performance SSH/SCP (HPN-SSH),加速的原理在人家網頁都講了,我就英文不好不拾人牙慧,人云亦云了。


上一篇
Access your lab, securely
下一篇
Nginx naxsi + 色情守門員
系列文
Oops Step ( Home lab of a kind ) 34
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言