Я думаю, что нужно немного подробнее. Я открыл новое кафе в моем районе, и люди загружают вещи, которые увеличивают мои счета, поэтому я хочу заблокировать протоколы на моем маршрутизаторе, а затем снова включить его для любого ПК, если ПК понадобится позже, что может быть дней или месяцев
Мой роутер работает под управлением Openwrt Attitude Adjustment
Я блокировал http, чтобы протестировать его, а затем добавлял протоколы с помощью фильтра l7
Привет, я новичок в Iptables и возился с ним, чтобы получить его.
Вот система
Router IP-192.168.1.10
PC1 IP-192.168.1.11
PC2 IP-192.168.1.12
Laptop IP-192.168.1.13
Mobile IP-192.168.1.14
Я применил приведенное ниже правило, и все HTTP-пакеты были отброшены.
iptables -I FORWARD -m layer7 --l7proto http -j DROP
а затем я хотел включить http для ПК1, я написал следующее правило, но http не работает.
iptables -I FORWARD -mlayer7 --l7proto http -s 192.168.1.11 -j ACCEPT
Работает только когда я ввожу правило
iptables -I FORWARD -m layer7 --l7proto http -j ACCEPT
но теперь он доступен во всех системах.
Что мне делать, чтобы сначала заблокировать http во всех системах, а затем включить его, скажем, только на ПК1.
Спасибо за помощь!
Вывод
Chain FORWARD (policy DROP 12 packets, 2700 bytes)
pkts bytes target prot opt in out source destination
5 200 ACCEPT all -- * * 192.168.1.113 0.0.0.0/0 LAYER7 l7proto http
25 1036 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 LAYER7 l7proto http
iptables -I -INPUT -p tcp ! -s [IP address here] --dport 80 -j DROP
Обратите особое внимание на символ "!" оператор. Он сбрасывает весь трафик, не с исходного IP-адреса.
Однако в более позднем комментарии вы говорите:
Натан, чего я пытаюсь достичь, это сначала заблокировать все http, а затем повторно включить любое устройство по одному по моему желанию
Это немного другое. В этом случае вам нужно полагаться на порядок. Вам нужно явно запретить весь HTTP, но затем добавить одно правило выше это правило отбрасывания для каждого хоста, который вы хотите принять. Ответ Натана более точен.
Сделайте следующее:
iptables -I INPUT -p tcp -s 192.168.1.11 --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j DROP
Это разрешит трафик с этого IP-адреса на порт 80 (http), иначе он будет отброшен. Не уверен, почему вы используете FORWARD
цепь.