我正在考虑通过互联网共享打印机,这会产生什么影响?

我正在考虑通过互联网共享打印机,这会产生什么影响?

将 TCP/IP 打印机通过 NAT 连接到路由器相应端口是否安全?我会从黑客那里得到不需要的文档吗?或者这不是一个大问题?

答案1

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

答案2

如果您可以运行 ssh(以及 Linux 等),则可以设置 VPN。您也可以考虑 OpenVPN 或 IPSec。但是,对于小型且特别特别指定部署...ssh可能是最简单的,可以在大多数地方、通过大多数 NAT/NAPT 和其他奇怪的本地网络工作。(想想我们在当地咖啡店的笔记本电脑上的 WiFi)。

OpenSSH 4.3 版及更高版本支持 VPN 隧道功能。因此,您可以ssh使用以下选项启动连接:-w0:0... 和(假设您已制作好/dev/net/tun设备并执行了适当的tunctl操作以启用任何类型的 TAP/tun 网络)。

一旦建立了这样的隧道,您就应该能够通过该隧道安全地访问您的打印机、文件共享、电子邮件、内部网络交互等。

最终我会写一个关于这个的正确 HOWTO(我在网上找到的大多数 HOWTO 都缺少一些细节)。我还想尝试一些方法,让它以非 root 身份运行,并给它加上一个包装器,以便在断开连接时自动重启等等。但这里有一些基本说明。

我假设您运行的是 Linux ... Debian 或 Ubuntu。(应该可以在任何较新的发行版下工作,并且对于 RHEL/CentOS 或 Novell 来说可能更容易一些,因为我认为它们的命令tunctl在不同的包中)。

  • 创建静态高度量拒绝路由:

    路由添加-主机 172.31.1.2 拒绝

  • 创建您的主tun设备:

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

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

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

(该tunctl命令似乎可以从uml 实用程序这个包看起来很奇怪,因为它与 OpenVPN、Vtun 以及现在的 OpenSSH/VPN 配置一起使用,与用户模式 ​​Linux 完全不同;而且它似乎做出了“神奇的”持久更改,我还没弄清楚它存储在哪里。我真的得去读一下源代码了!

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

    ssh-keygen

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

    cat /.../.ssh/id_*.pub | ssh "root@$VPNGATE" 'cat >> /root/.ssh/authorized_keys'

authorized_keys(注意:使用受限访问密钥执行此操作的详细信息,在添加sudoNOPASSWD:条目的密钥末尾添加所述限制,ifup等等ifdown。(请参阅:显圣的阴影更多细节)。

  • 运行以下脚本:

    ssh -f -w0:0“root@$VPNGATE”'ifconfig tun0 172.31.1.2 pointopoint 172.31.1.1 mtu 536 启动'

    ifconfig tun0 172.31.1.1 pointopoint 172.31.1.2 mtu 536 启动

... 现在您应该有一个可以正常工作的 VPN 隧道。它将ifconfig创建一个具有较低度量的路由,以便可以正常工作。现在您可以访问 $VPNGATE 上的任何服务(包括其打印机、NFS 等),就像您通过专用 PPP 调制解调器连接拨入它一样。

注意:访问其他系统在后面 $VPNGATE 你必须确保这些系统知道你的 172.31。(VPN)路由(至少它们的默认路由器应该具有指向 $VPNGATE 的静态路由...当然,这是回程的路由。或者,您可以在 $VPNGATE 上执行 NAT,以便您的所有远程/笔记本电脑流量“看起来像”从 $VPNGATE 到您网络其余部分的流量。无论哪种方式,您还必须sysctl -w net.ipv4.ip_forward(在 $VPNGATE 上)像对任何其他类型的路由一样进行操作。

正如您所看到的,这是一个非常粗略的轮廓,我必须弄清楚更多细节以供自己使用。

  • 它到底在tunctl做什么?它将这些设置更改存储在哪里?
  • 这些隧道的最佳 MTU 是多少?(通过同样以 1500 MTU 运行的加密/多路复用通道运行 1500 MTU 接口听起来是不对的)!
  • 我应该如何检测链接是否断开并将其重新建立?(例如,我应该何时tunctl -d明确使用或)。ifconfig tun0 0.0.0.0 down
  • 关于限制非 root 用户访问的繁琐细节。

相关内容