Назад | Перейти на главную страницу

Я собираюсь поделиться принтером через Интернет, каковы последствия?

Безопасно ли использовать NAT для принтера TCP / IP на соответствующем порту маршрутизатора? Получу ли я нежелательные документы от хакеров или это не большая проблема?

Если вы можете запустить ssh (и Linux и др.), Вы можете настроить VPN. Вы также можете рассмотреть OpenVPN или IPSec. Однако для небольших и особенно для этого случая развертывания ... 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 $ НЕКОТОРЫЙ ПОЛЬЗОВАТЕЛЬ ???

(The tunctl команда, похоже, доступна из uml-утилиты пакет, который кажется странным, поскольку он используется с OpenVPN, Vtun, а теперь и с конфигурациями OpenSSH / VPN, причем совершенно отдельно от Linux в пользовательском режиме; также кажется, что он вносит "волшебные" постоянные изменения, и я не понял, где это хранится. Мне действительно нужно пойти почитать источники)!

  • Добавить PermitTunnel yes или PermitTunnel point-to-point к /etc/ssh/sshd_config
  • Создайте пару ключей

    ssh-keygen

  • Разверните открытый ключ на сервере от клиента:

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

(ПРИМЕЧАНИЕ: есть подробности о том, как сделать это с помощью ключа ограниченного доступа, добавив указанные ограничения в конец ключа в authorized_keys добавление sudo NOPASSWD: записи для ifup и ifdown и так далее. (видеть: Тени Богоявления Больше подробностей).

  • Запустите следующий сценарий:

    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 вверх

... и теперь у вас должен быть рабочий VPN-туннель. В ifconfig создаст маршрут с более низкой метрикой, так что это будет работать. Теперь вы можете получить доступ к любым службам в $ VPNGATE (включая его принтер, NFS и т. Д.), Просто если вы были подключены к нему через выделенное модемное соединение PPP.

Примечание: для доступа к другим системам позади $ VPNGATE, вам нужно будет убедиться, что эти системы знают о вашем 172.31.. (VPN) маршруты (по крайней мере, их маршрутизаторы по умолчанию должны иметь статические маршруты, указывающие на $ VPNGATE ... для обратных поездок, конечно. В качестве альтернативы вы можете выполнить NAT для $ 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.

Имейте в виду, что даже прошивка принтера (при условии, что это принтер, а не сервер печати, такой как CUPS) имеет уязвимости безопасности. Поступали сообщения о том, что на принтеры устанавливали ботов. Вы можете получать случайные сообщения от людей, что очень похоже на факс.