題目有點聳動,事實上,並沒有開洞,只是利用原來的洞作不同協定的事。
因為工作的關係,總是會幫別人代管主機,然而大公司有大公司的政策,所以代管主機通常只能露一個洞出來給大家用,也就是 80 port 。要用 ssh 管理主機時,得用 VPN 連線到公司的 VPN Gateway ,再作連線動作。
但目前我遇到的 VPN Gateway 有仲琦、思科兩家,我在 Linux 上實在找不到可用的 VPN client ,所以一直得用 VirtualBox 上的 XP 來作維護工作,這令人很不愉快。我只想打指令,卻得開個 GUI 來礙眼。
只是,答案早就在那了,我到昨天才撿起來。
/sbin/iptables -A PREROUTING -t nat -p tcp -s ${自己電腦的IP} --dport 80 -j DNAT --to ${伺服器IP}:22
先利用 VPN 連線進到主機中,加入這條規則,之後你就可以不用再透過 VPN Gateway ,直接從 ${自己電腦的IP} 遠端連入了。
若是你想要使用 https 連線,一樣的道理,規則改成如下:
/sbin/iptables -A PREROUTING -t nat -p tcp -s ${自己電腦的IP} --dport 80 -j DNAT --to ${伺服器IP}:443
只是這麼作只能用一個外部 IP 換得一個伺服器上的 Port 。
所以就把腦筋動到 netfilter-L7 模組上,正想大刀搞搞,結果看到官網上一句話:
"""Warning: Some users have reported kernel crashes when they using SMP with l7-filter. (Some have also reported that their SMP systems run fine.) If you have a multi-CPU machine, test carefully before putting it into production with l7-filter."""
興致全減,因為我代管的主機都是雙核心,我可不想費這個風險。還是拿 ip 換 port 吧!
P.S. 測試過程中,有個插曲,本想利用 apache 的 R-Proxy 功能直接作 http => https 的工作,然後花了很多時間才發現 R-Proxy 只能作到 http => http 及 https => https ,而不能作 http => https 及 https => http 的工作。
轉移公告
計劃把 http://blog.hoamon.info/ 文章全部轉移至 http://www.hoamon.info/blog/ 這裡,而本 Blogger 站台的文章近 500 篇,我預計在 2014-12-31 前移轉完畢,完成後 http://blog.hoamon.info/ 將只作代轉服務,一律把舊連結如 http://blog.hoamon.info/index.html 轉成 http://www.hoamon.info/blog/index.html ,敬請舊雨新知互相走告。
何岳峰 敬上
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。