пакет с IP-адреса поступает на определенный порт => open portrange to IP для x секунд

Я работаю с проблемой iptables:

Я пытаюсь сделать portrange открытым для определенного IP за x секунд / минут в результате отправки одного пакета на конкретный порт.

Не точно для portknocking, но тот же принцип – однако я просто не могу заставить его работать. Вот что я сделал до сих пор – я, возможно, совершенно ничего не понял, потому что я только начал работать с брандмауэрами и особенно с iptables.

Код:

######### UPnP ########### #Opens up for all udp ports on local network - not so good. #-A INPUT -s 10.10.10.254/24 -i eno1 -p udp -m udp -j ACCEPT #Opens for the needed ports for syncthing but still too many #-A INPUT -s 10.10.10.254/24 -i eno1 -p udp --match multiport --dports 40000:65000 -j ACCEPT #allows for related ports to be opened along with ones already established. Does not work -A INPUT -s 10.10.10.254/24 -i eno1 -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT ###### Opening op selected portrange when udp package is received on port 1900 for x seconds #Creating chain STATE0-1 -N STATE0 -A INPUT -j STATE0 #Opening and receiving package from port 1900 -A STATE0 -s 10.10.10.254/24 -i eno1 -m state --state NEW -p udp -m udp --dport 1900 -m recent --name UPnPpacket --set -j ACCEPT -A STATE0 -j DROP -N STATE1 #Looking at recent with name UPnPpacket and if it exists open ports 40000:65000 for 10 seconds ### #-A STATE1 -s 10.10.10.254/24 -i eno1 -m state --state NEW -p udp --match multiport --dports 40000:65000 -m recent --rcheck --seconds 10 --name UPnPpacket -j ACCEPT ### #trying this instead -A STATE1 -m recent --name UPnPpacket --remove -A STATE1 -s 10.10.10.254/24 -i eno1 -p udp --match multiport --dports 40000:65000 -j ACCEPT -A STATE1 -j STATE0 

Как вы можете видеть, я пытаюсь заставить UPnP работать с аркой linux … Нелегкая задача, которую я мог бы добавить 🙂

Ура,

———— ########## ———–

ОБНОВИТЬ:

  ######################################## ######### UPnP ########### #allows for related ports to be opened along with ones already established. Does not work on its own -A INPUT -s 10.10.10.254/24 -i eno1 -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT #Open up for the multicast discovery (THESE SHOULD BE DELETED ONE BY ONE TO TEST WHICH ARE NEEDED) -A INPUT -i eno1 -d 224.0.0.0/8 -p igmp -j ACCEPT -A INPUT -i eno1 -s 0.0.0.0/32 -d 224.0.0.1/32 -p igmp -j ACCEPT -A INPUT -p igmp -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT # Upon a udp package being received on port 1900 from the local subnet # the port range 40000:65000 is opened for 30 seconds. #0 Create chain and give packages received name -N INTO-PHASE2 #3 Take all packages arriving in chain INTO-PHASE2 and rename them from PHASE1 to PHASE 2 and log the event -A INTO-PHASE2 -m recent --name PHASE1 --remove -A INTO-PHASE2 -m recent --name PHASE2 --set -A INTO-PHASE2 -j LOG --log-prefix "INTO PHASE2: " #1 Name incoming packages -A INPUT -s 10.10.10.254/24 -p udp -m recent --update --name PHASE1 #1 Name packages from port 1900 from local subnet and name it PHASE1 -A INPUT -s 10.10.10.254/24 -i eno1 -p udp -m udp --dport 1900 -m recent --set --name PHASE1 -j INTO-PHASE2 # Check for whether a package received on portrange has a sender with the same IP as sender of package PHASE1, if so, pass package into the INTO-PHASE2 chain. -A INPUT -s 10.10.10.254/24 -p udp --match multiport --dports 30000:65000 -m recent --rcheck --name PHASE1 -j ACCEPT # Check packages arriving at portrange from local subnet to see if they have the name "PHASE2" - they they do and they are recent open accepting all packages the portrange for 30 seconds -A INPUT -s 10.10.10.254/24 -p udp --match multiport --dports 30000:65000 -m recent --rcheck --seconds 30 --name PHASE2 -j ACCEPT #test #-A INPUT -s 10.10.10.254/24 -p udp --match multiport --dports 30000:65000 -j ACCEPT ############# 

Я не знаю, в чем проблема, но пакет получен и принят в 1900 udp, однако он отказывается открывать op portange.

One Solution collect form web for “пакет с IP-адреса поступает на определенный порт => open portrange to IP для x секунд”

Это набор правил, который может делать то, что вы хотите. (Изменено из аналогичного правила, используемого для разрешения стука на внешний порт.

 -A INPUT -p udp --dport 30000:65000 -m recent --rcheck --seconds 60 --name UPnP -j ACCEPT' -A INPUT -p upd --dport 1899 -m recent --name UPnP --remove -j DROP -A INPUT -p udp --dport 1900 -m recent --name UPnP --set -j DROP -A INPUT -p udp --dport 1901 -m recent --name UPnP --remove -j DROP 

Возможно, вам будет лучше с настоящим демоном UPnP, таким как miniupnpd . Он будет управлять брандмауэром более подходящим образом. Некоторые демоны могут быть настроены так, чтобы ограничивать открытые порты запрашивающему клиенту, а не всем хостам в сети.

  • Запуск прозрачного прокси для локальной сети и веб-сервера для WAN
  • Невозможно получить работу NAT через цепочку iptables PREROUTING
  • Открытие порта на IPTables не работает
  • Сервис активен, но (выходит)
  • Знак по умолчанию для пакетов с использованием iptables
  • Эквивалент Linux-фильтра «xt_bpf» для Linux
  • iptables LOG только один раз
  • Redhat / Centos 7 Лучшая практика Firewalld для правил pptp или L2TP / IPsec
  • Может ли iptables отфильтровывать UNREPLIED соединения?
  • Пакеты, не перенаправленные из-за второй таблицы маршрутизации
  • Как я могу определить, какая программа или пользователь подключен к определенному порту после факта?
  • Как вы настраиваете правила ограничения iptables на openSUSE Tumbleweed?
  • Interesting Posts

    Изменение свойств X-объекта Zombie из состояния Iconic в нормальное состояние

    Beaglebone: резервное изображение монтирует root как только для чтения

    Применение NAT для трафика из туннеля GRE в OpenBSD PF

    Как перебирать несколько расширений файлов, не заботясь о чувствительности к регистру?

    Альтернатива технологическому трубопроводу

    Как использовать и / или условно в сценарии оболочки

    Обходной путь для изменения поведения привязки между свистящими и jessie?

    Неправильное смещение временной зоны. Как это исправить? (помощь с компилятором zic timezone)

    Как загрузить на сервер unix?

    Как создать хранилище ключей и доверительное хранилище с использованием самозаверяющего сертификата?

    Как разрешить «ваш браузер не разрешает доступ к буферу вашего компьютера» в Документах Google?

    Как отключить автоматическое отключение звука после загрузки в gnome?

    Использование даты / времени файла в качестве метаданных: надежный?

    Что происходит для последней строки при использовании команды N с sed

    Что делает :: делает в скрипте sed

    Linux и Unix - лучшая ОС в мире.