Я пытаюсь заблокировать весь трафик, который идет и идет на внутренний IP-адрес (этот сервер действует как маршрутизатор для сети). до сих пор я пробовал следующее: iptables -A INPUT -s 192.168.1.111 -j DROP & iptables -A OUTPUT -d 192.168.1.111 -j DROP, где 192.168.1.111 - это IP-адрес, с которого я пытаюсь заблокировать трафик. Локальная сеть подключается к br0. Вот моя текущая настройка iptables (я удалил переадресацию портов и т. Д., Чтобы упростить выполнение):
# Generated by iptables-save v1.4.8 on Sat Feb 16 21:21:16 2013
*nat
:PREROUTING ACCEPT [184556:41149689]
:POSTROUTING ACCEPT [13698:835740]
:OUTPUT ACCEPT [77252:6378101]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Sat Feb 16 21:21:16 2013
# Generated by iptables-save v1.4.8 on Sat Feb 16 21:21:16 2013
*filter
:INPUT DROP [10054:2687428]
:FORWARD ACCEPT [1377:76856]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 192.168.1.0/24 -i br0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A FORWARD -i eth0 -o Br0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i br0 -o eth0 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j ACCEPT
-A OUTPUT -s 127.0.0.1/32 -j ACCEPT
COMMIT
# Completed on Sat Feb 16 21:21:16 2013
Как я могу заблокировать весь трафик на IP-адрес и обратно с этой текущей настройкой? Я не лучший в мире с iptables, так что любая помощь будет очень благодарна, спасибо!
В INPUT
и OUTPUT
Цепочки iptables применяются к трафику, направляемому на локальный сервер. Любой пакет, маршрутизируемый через брандмауэр, обрабатывается FORWARD
цепь. Итак, в этом случае вам нужно предотвратить пересылку пакетов маршрутизатором linux внутреннему клиенту с помощью FORWARD
цепь.
Я бы посоветовал вам начать с политики DROP по умолчанию для цепочки FORWARD. Поскольку ваша текущая настройка показывает, что по умолчанию ваша политика FORWARD - ACCEPT, что не является самой безопасной настройкой. Итак, начните с политики отбрасывания для пересылки с -
iptables -P FORWARD DROP
Затем разрешите пересылку пакетов внутренним клиентам с помощью -
iptables -A FORWARD -s source-net/subnet -d destination-net/subnet -j ACCEPT
iptables -A FORWARD -m state –state NEW,ESTABLISHED -s source-net/subnet -j ACCPET
iptables -A FORWARD -m state –state ESTABLISHED -j ACCEPT
Если внутренний клиент находится в разрешенной подсети, установите правило для явного отбрасывания пакетов, предназначенных этому клиенту -
iptables -I FORWARD -s 0/0 -d 192.168.1.111 -j DROP
iptables -I FORWARD -s 192.168.1.111 -d 0/0 -j DROP
Ошибка, которую вы сделали, заключалась в том, что вы добавили (-A) правила блокировки для 192.168.1.111 вместо того, чтобы вставлять его (-I), потому что, если вы обратите внимание, некоторые правила в INPUT / OUTPUT разрешили трафик из сегмента 192.168.1.X . Так сделай это:
iptables -I INPUT -s 192.168.1.111 -j DROP
iptables -I OUTPUT -d 192.168.1.111 -j DROP
Если 192.168.1.111 использует тот же сервер в качестве маршрутизатора, чем добавить правило similra в цепочку FORWARD
iptables -I ВПЕРЕД -d 192.168.1.111 -j ОТКАЗ