Я пытаюсь использовать portmapper-2.1.1 (https://github.com/kaklakariada/portmapper), чтобы получить upnp-сопоставление на моем компьютере ubuntu 16.04LTS.
У меня настроен UFW, чтобы разрешить все исходящие и блокировать входящие (кроме нескольких конкретных портов).
Я думал, что это сработает, потому что я запускаю portmapper в поле ubuntu (например, исходящий), но это не так. Я думаю, это связано с тем, как upnp настроен на поиск клиентов. Чтобы быть ясным, с отключенным UFW, portmapper работает так, как ожидалось.
Моя первая мысль заключалась в том, чтобы просто разрешить порт, на который служба upnp «отвечает», но это кажется случайным. Ex (из моего журнала UFW):
Apr 26 19:07:34 [UFW BLOCK] IN = enp2s0 OUT = SRC = 192.168.1.1 DST = 192.168.1.161 LEN = 411 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 0 DF PROTO = UDP SPT = 1900 DPT = 41927 LEN = 391
Apr 26 19:33:32 [UFW BLOCK] IN = enp2s0 OUT = SRC = 192.168.1.1 DST = 192.168 .1.161 LEN = 411 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 0 DF PROTO = UDP SPT = 1900 DPT = 60212 LEN = 391
(192.168.1.1 - мой маршрутизатор, 192.168.1.161 - это ubuntu)
Я не хочу просто открывать большинство / все порты для входящих пакетов udp для этого, так что возникает вопрос: существует ли правило UFW / iptables, которое позволит этому работать, t просто «разрешить все»?
Похоже, что пакеты, которые вам нужно разрешить, имеют следующие характеристики:
Они поступают на интерфейс enp2s0 Они имеют исходный IP-адрес 192.168.1.1 У них есть исходный UDP-порт 1900Итак, вам нужно разрешить всем входящим UDP-пакетам с 192.168.1.1 порт 1900.
Используйте эту команду, чтобы добавить правило:
sudo ufw allow from 192.168.1.1 port 1900 to any proto udp
Проверьте добавлено правило:
me@ubuntu:~$ sudo ufw status
Status: active
To Action From
-- ------ ----
Anywhere ALLOW 192.168.1.1 1900/udp
Надеюсь, что это поможет!