Всем добра. Учусь настраивать iptables. Задача разрешить всем инет, но определенным ip заблокировать.
создал *.sh файл для удобства и туда пишу правила. Настроил так что у всех в сети инет есть, при условии того что есть правило
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN1_IP_RANGE -j MASQUERADE
для запрета пытаюсь добавить правило в цепочку FORWARD. На сколько я понимаю транзитные пакеты там и надо обрабатывать.
$IPT -A FORWARD -s 192.168.1.7 -j DROP
Но после применения всех правил. Инет есть везде, даже где пакеты должны быть отброшены.
Я не совсем разобрался с иерархией применения правил. Может не туда запрет вставляю?
Вот код файла *.sh
#!/bin/bash
export IPT="iptables"
# Внешний интерфейс
export WAN=eth0
export WAN_IP=10.0.2.15
# Локальная сеть
export LAN1=eth1
export LAN1_IP_RANGE=192.168.1.0/24
# Очищаем правила
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
# Запрещаем все, что не разрешено
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# открываем доступ к SSH
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i $LAN1 -p tcp --dport 22 -j ACCEPT
# разрешаем установленные подключения
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешаем localhost и локалку
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A INPUT -i $LAN1 -j ACCEPT
$IPT -A OUTPUT -o $LAN1 -j ACCEPT
$IPT -A INPUT -i $WAN -j ACCEPT
$IPT -A OUTPUT -o $WAN -j ACCEPT
# Разрешаем порты
$IPT -A INPUT -p tcp -m tcp --dport 3128 -j ACCEPT
#$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#$IPT -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
#$IPT -A FORWARD -i $LAN1 -j DROP #?????????
#$IPT -A INPUT -i $LAN1 -j REJECT #?????????
# Разрешаем доступ из локалки наружу
$IPT -A FORWARD -i $LAN1 -o $WAN -j ACCEPT
# Закрываем доступ снаружи в локалку
$IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT
# Включаем NAT
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN1_IP_RANGE -j MASQUERADE
$IPT -A FORWARD -s 192.168.1.7 -j DROP
# Сохраняем правила
/sbin/iptables-save > /etc/iptables.rules