我正在通过互联网共享打印机,这有什么意义?

在路由器的相应端口上对TCP / IP打印机进行NAT转换是否安全? 我会收到来自黑客的不需要的文件吗?这不是一个大问题吗?

请记住,即使打印机固件(假设它是打印机,而不是像CUPS这样的打印服务器)也存在安全漏洞。 有报道说打印机上安装了“机器人”。 您可能会收到来自用户的随机信息,就像垃圾传真一样。

如果你可以运行ssh(和Linux等),你可以设置一个VPN。 你也可以考虑OpenVPN或IPSec。 然而,对于小型的,特别是特别的部署… ssh可能是最简单的,并且可以在大多数地方,通过大多数NAT / NAPT和其他奇怪的本地networking工作。 (可以在我们的笔记本电脑随机的咖啡店里思考WiFi)。

OpenSSH 4.3及更高版本支持VPN隧道function。 所以你可以使用-w0:0这样的选项来启动你的ssh连接(假设你已经创build了/dev/net/tun设备并且完成了相应的tunctl魔术来启用任何types的TAP / tunnetworking) 。

一旦你build立了这样一个隧道,你应该能够通过该隧道安全地访问你的打印机,文件共享,电子邮件,内部networking交互等。

最后我会写一个适当的HOWTO(我在网上发现的大部分都缺less一些细节)。 另外,我会想摆弄其中的一些让它作为非root用户运行,并把它包装在自动重新启动的东西断开,等等。但这里有一些基本的注意事项。

我假设你正在运行Linux … Debian或Ubuntu。 (应该在任何新的发行版下工作,并且可能对于RHEL / CentOS或Novell稍微简单一些,因为我认为这些命令将在不同的包中包含tunctl命令)。

  • 创build一个静态高度拒绝路由:

    路由join主机172.31.1.2拒绝

  • 创build您的主要tun设备:

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

  • 运行tunctl来设置下一个可用隧道( tun0等)的持久性。

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

tunctl命令似乎可以从uml-utilities软件包中得到,这似乎很奇怪,因为它与OpenVPN,Vtun,现在的OpenSSH / VPNconfiguration一起使用,除了用户模式的Linux以外,它似乎也使“魔术”我还没有弄清楚存储在哪里,我真的必须去阅读这些资料)!

  • 添加PermitTunnel yesPermitTunnel point-to-point/etc/ssh/sshd_config
  • 创build一个密钥对

    SSH-凯基

  • 从客户端部署公钥到服务器:

    猫/…/.ssh/id_*.pub | ssh“root @ $ VPNGATE”'cat >> /root/.ssh/authorized_keys'

(注意:有关使用受限访问密钥的详细信息,将所述限制添加到authorized_keys中的密钥末尾,为ifupifdown等添加sudo NOPASSWD:条目(请参阅: 主显影阴影以了解更多详细信息) 。

  • 运行以下脚本:

    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 mtu 536 up

…你现在应该有一个工作的VPN隧道。 ifconfig将创build一个具有较低度量标准的路由,以便工作。 您现在可以访问$ VPNGATE上的任何服务(包括其打印机,NFS等),只要您通过专用的PPP调制解调器连接拨入它即可。

注意:要访问$ VPNGATE 背后的其他系统你必须确保这些系统知道你的172.31。 (VPN)的路由(至less他们的默认路由器应该有静态路由指向$ VPNGATE …当然返回旅途,或者你可以在$ VPNGATE执行NAT,使所有的远程/笔记本电脑的stream量“看起来像”stream量从$ VPNGATE到networking的其余部分,无论哪种方式,你也必须像在任何其他types的路由中一样对sysctl -w net.ipv4.ip_forward (在$ VPNGATE上)。

正如你所看到的,这是一个非常粗略的概述,我必须弄清楚我自己用法的一些细节。

  • tunctl在做什么? 它在哪里存储这些设置更改?
  • 这些隧道最好的MTU是多less? (通过1500MTU的encryption/多路复用通道运行1500MTU接口听起来是错误的)!
  • 我应该如何检测链接并将其重新启动? (什么时候应该使用tunctl -d或明确的ifconfig tun0 0.0.0.0 down )。
  • 有关限制访问非root用户的详细信息。