Internet

我正在考慮通過 Internet 共享列印機,這意味著什麼?

  • August 29, 2009

NAT 到路由器適當埠上的 TCP/IP 列印機是否安全?我會從黑客那裡得到不需要的文件,還是這不是一個大問題?

請記住,即使是列印機韌體(假設它是列印機而不是像 CUPS 這樣的列印伺服器)也存在安全漏洞。有報導稱列印機安裝了“機器人”。您可能會收到來自人們的隨機消息,就像垃圾傳真一樣。

如果您可以執行 ssh(和 Linux 等),則可以設置 VPN。你也可以考慮 OpenVPN 或 IPSec。但是,對於小型且特別是ad hoc部署……ssh可能是最簡單的,並且可以在大多數地方以及通過大多數 NAT/NAPT 和其他奇怪的本地網路工作。(想想我們的筆記型電腦在隨機當地咖啡店的 WiFi)。

OpenSSH 4.3 及更高版本支持 VPN 隧道功能。因此,您可以使用…和ssh等選項開始連接-w0:0(假設您已經製作了/dev/net/tun設備並完成了適當的tunctl魔法以啟用任何類型的 TAP/tun 網路)。

一旦您建立了這樣的隧道,您應該能夠通過該隧道安全地訪問您的列印機、文件共享、電子郵件、內部網路介面等。

最終我會為此寫一個適當的 HOWTO(我在網上找到的大多數都缺少一些細節)。另外,我想擺弄其中的一些,讓它以非 root 身份執行,並在其周圍放置一個包裝器,以便在斷開連接時自動重啟等等。但這裡有一些基本說明。

我假設您正在執行 Linux … Debian 或 Ubuntu。(應該在任何較新的發行版下工作,並且對於 RHEL/CentOS 或 Novell 來說可能更容易一些,因為我認為這些tunctl命令將在不同的包中具有)。

  • 創建靜態高度量拒絕路由:

路由添加 -host 172.31.1.2 拒絕

  • 創建您的主tun設備:

cd /dev/ && MAKEDEV tun; ls -l /dev/net/tun*

  • 執行tunctl以在下一個可用隧道(tun0等)上設置持久性。

tunctl -t tun0 ## -u $SOMEUSER ???

(該tunctl命令似乎可從uml-utilities包中獲得,這似乎很奇怪,因為它與 OpenVPN、Vtun 以及現在的 OpenSSH/VPN 配置一起使用,與使用者模式 Linux 完全不同;而且它似乎做出了“神奇”的持久更改,我還沒弄清楚這個儲存在哪裡。我真的必須去閱讀原始碼)!

  • 添加PermitTunnel yesPermitTunnel point-to-point/etc/ssh/sshd_config
  • 創建密鑰對

ssh-keygen

  • 從客戶端將公鑰部署到伺服器:

貓 /…/.ssh/id_*.pub | ssh “root@$VPNGATE” ‘cat >> /root/.ssh/authorized_keys’

(注意:有使用受限訪問密鑰執行此操作的詳細資訊,在authorized_keys添加sudoNOPASSWD: 條目ifup等時將所述限制添加到密鑰末尾ifdown。(有關更多詳細資訊,請參見:Shadows of Epiphany)。

  • 執行以下腳本:

ssh -f -w0:0 “root@$VPNGATE” ‘ifconfig tun0 172.31.1.2 pointopoint 172.31.1.1 mtu 536 up’

ifconfig tun0 172.31.1.1 pointopoint 172.31.1.2 person 536 up

…您現在應該有一個有效的 VPN 隧道。這ifconfig將創建一個具有較低指標的路由,這樣就可以了。您現在可以訪問 $VPNGATE 上的任何服務(包括其列印機、NFS 等),只要您通過專用的 PPP 調製解調器連接撥入它即可。

注意:要訪問$VPNGATE後面的其他系統, 您必須確保這些系統知道您的 172.31。. (VPN) 路由(至少它們的預設路由器應該有指向的靜態路由 $ VPNGATE … for the return trips, of course. Alternatively you could perform NAT on $ VPNGATE 使您的所有遠端/筆記型電腦流量“看起來像”從 $VPNGATE 到網路其餘部分的流量。無論哪種方式,您都必須sysctl -w net.ipv4.ip_forward(在 $VPNGATE 上),就像對任何其他類型的路由一樣。

如您所見,這是一個非常粗略的大綱,我必須為自己的使用找出更多細節。

  • 究竟在tunctl做什麼?它在哪裡儲存這些設置更改?
  • 這些隧道的最佳 MTU 是多少?(通過同樣以 1500 MTU 執行的加密/多路復用通道執行 1500 MTU 介面聽起來是錯誤的)!
  • 我應該如何檢測到它關閉的連結並將其恢復?(例如,我應該何時使用tunctl -d或明確使用ifconfig tun0 0.0.0.0 down)。
  • 關於限制非 root 使用者訪問的繁瑣細節。

引用自:https://serverfault.com/questions/57551