Мне нужно настроить IPtables для приема трафика на многих внутренних IP-адресах. Есть ли подстановочный знак, который я могу использовать для части IP-адреса? Например: 192.168..
Или есть альтернатива лучше?
iptables не знает подстановочных знаков, но использовал метод CIDR. Например: -s 192.168.0.0/24 будет охватывать все хосты от 192.168.0.1 до 192.168.0.254.
Вы можете найти больше информации о CIDR Вот
Сам по себе подстановочный знак отсутствует, но вы можете указать сетевую маску CIDR:
192.168.0.0/16
Вышеупомянутое будет эквивалентом CIDR приведенного вами примера.
Не совсем подстановочный знак, вы можете сопоставить IP-адреса по подсетям:
192.168.0.0/16 192.168.1.0/24 192.168.2.0/25
Другой способ - использовать ipranges следующим образом: iptables -A INPUT --destination-port 80 -m iprange --src-range From_IP-To_IP -j ACCEPT
Также есть второй модуль для --dest-range.
iptables
поддерживает использование нотации CIDR, поэтому для вашего примера вы можете использовать 192.168.0.0/16
.
Вне связи, рассмотрите возможность работы над своей скоростью приема.
Для будущих гуглеров, начиная с текущей версии iptables 1.4.7.
Диапазон IP-адресов одного порта
iptables -A INPUT -p tcp --dport 8080 -m iprange --src-range 192.168.0.0-192.168.254.254 -j ACCEPT
Диапазон IP-адресов с несколькими портами
iptables -A INPUT -p tcp -m multiport --dports 21,8080 -m iprange --src-range 192.168.0.0-192.168.254.254 -j ACCEPT