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

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

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

  • почему существуют разные форматы для файла hosts между OpenSuSE и Ubuntu?
  • Как я могу заставить свою Linux-систему широковещать свой IP-адрес динамически?
  • iptables для блокировки всех веб-сайтов
  • попытки подключения к журналу из IP заблокированы iptables
  • Does -o и -i имеют смысл, когда целевой хост уже подключен к указанному интерфейсу?
  • Как включить входящий трафик IPv6 для перенаправления на мою машину?
  • Не точно для 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.

  • Почему пакеты отвергаются даже через правило, которое принимает их все перед рукой?
  • Как добавить несколько user.rules в ufw?
  • Какие порты я должен открыть для apt-get для работы?
  • туннель tcp внутри локальной сети с использованием iptables и моста
  • Разница между командами «ifconfig» и «ip»
  • Переслать сетевой трафик хоста на другой хост, за исключением трафика SSH
  • 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 . Он будет управлять брандмауэром более подходящим образом. Некоторые демоны могут быть настроены так, чтобы ограничивать открытые порты запрашивающему клиенту, а не всем хостам в сети.

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