То, что я пытаюсь сделать, должно ОТБРОСИТЬ любые пакеты к определенному порту UDP, кроме тех один от моей защищенной подсети 10.8.0.0/24.
iptables -t nat -A --src 10.8.0.0/24 -p udp --destination-port 63210 -j ACCEPT
Я получаю эту ошибку: Bad argument: 10.8.0.0/24
Я не понимаю, почему это не работает...
Я нашел решение как это:
ОБНОВЛЕНИЕ
iptables -N xchain
iptables -A xchain --source 10.8.0.0/24 -j ACCEPT
iptables -A xchain -j DROP
iptables -I INPUT -p udp --dport 63210 -j xchain
После применения этого я не могу порт доступа ни от КАКОГО IP...
ПРОБЛЕМА мне установили сервер OpenVPN в интерфейсе tun0, передав пакеты к eth0 как это:
iptables -I FORWARD -i tun0 -o eth0 \
-s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
-j ACCEPT
iptables -t nat -I POSTROUTING -o eth0 \
-s 10.8.0.0/24 -j MASQUERADE
Вопрос, как поймать tun0 трафик и отфильтровать его, вместо eth0, где возвращающийся к реальности дюйм/с.
В первом примере вы используя «--src», что является неправильным переключателем, вы должны использовать либо --source, либо -s.
Во втором примере вы создаете новую цепочку с именем «xchain» и фильтруете в ней пакеты. Но если вы не укажете пакетам из других цепочек для прохождения через xchain, эти фильтры никогда не будут сопоставлены.
Кроме того, вы отправляете пакеты из цепочки INPUT в xchain:
# iptables -I INPUT -j xchain
Это правило будет отправлять только пакеты, чьи destination - это хост, на котором запущены iptables в xchain. Если ваш хост является маршрутизатором для сети, вы также должны отправлять пакеты из цепочки FILTER:
# iptables -I FILTER -j xchain
Примечание. Я изменил ваш -A на -I, что помещает правило в верхнюю часть списка правил, что означает, что оно будет конечно, пройдут.