# Настройка iptables
Для создания правила используй командру iptables со следующими возможными аргументами:
-t raw/mangle/nat/filter (выбор таблицы, в которую будет добавлено правило. По-умолчанию будет filter);
-A INPUT/OUTPUT/FORWARD (INPUT для входящего трафика, OUTPUT для исходящего трафика, FORWARD для пересылаемого трафика);
-i *название интерфейса* (правило будет действовать только на трафик, входящий в указанный интерфейс);
-o *название порта* (правило будет действовать только на трафик, исходящий из указанного интерфейса);
-d *ip-адрес или адрес сети* (ip-адрес или адрес сети назначения);
-s *ip-адрес или адрес сети* (ip-адрес или адрес сети источника);
-p *протокол*;
-dport *номер порта*;
-j ACCEPT/DROP/REJECT/LOG/QUEUE (требуемое действие);
-L (вывод всех правил);
Для удаления определенных правил используй аргумень -D INPUT/OUTPUT/FORWARD. Чтобы удалить все правила используй аргумент -F.
!!!ВАЖНО!!! Разрешающие правила должны быть над запрещающими.
Сохранять правила можно с помощью утилиты iptables-persistent. Команда для сохранения правил netfilter-persistent save.
Сохранённые правила находятся в файле /etc/iptables/rules.v4. Правила можно менять, добавлять или удалять прямо в этом файле. После внесения изменений их нужно применить командой netfilter-persistent reload.
Статьи по теме:
https://losst.ru/nastrojka-iptables-dlya-chajnikov
https://1cloud.ru/help/linux/nastrojka_linus-firewall_iptables
Правила по заданию из лекции:
//правило разрешает определенной машине из ДМЗ подключаться к Linux-FW по ssh
-A INPUT -i ens3 -s 172.16.12.10/32 -p tcp -m tcp --dport 22 -j ACCEPT
// правило разрешае трафик в рамках установленного соединения для Linux-FW
-A INPUT -i ens3 -m state --state RELATED,ESTABLISHED -j ACCEPT
//правило разрешает подключаться с машины из ДМЗ к определенной машине во vlan 20 по ssh
-A FORWARD -i ens3 -s 172.16.12.10/32 -d 192.168.20.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
// правила разрешают трафик в рамках установленного соединения для машин в vlan-по-умолчанию и vlan 10
-A FORWARD -i ens4 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ens4.10 -m state --state RELATED,ESTABLISHED -j ACCEPT
// правило для доступа из vlan-по-умолчанию к определенной машине во vlan 20 по ssh
-A FORWARD -i ens4 -d 192.168.20.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
// правило для доступа из vlan 10 к определенной машине во vlan 20 по ssh
-A FORWARD -i ens4.10 -d 192.168.20.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
// правило для доступа из vlan-по-умолчанию к определенной машине во vlan 20 по HTTP
-A FORWARD -i ens4 -d 192.168.20.1/32 -p tcp -m tcp --dport 80 -j ACCEPT
// правило для доступа из vlan 10 к определенной машине во vlan 20 по HTTP
-A FORWARD -i ens4.10 -d 192.168.20.1/32 -p tcp -m tcp --dport 80 -j ACCEPT
// блокирую весь проходящий трафик на интерфейсе ens3 Linux-FW, чтобы из ДМЗ во Vlan нельзя было попасть
-A FORWARD -i ens3 -j DROP
// блокирую весь входящий трафик на интерфей ens3 Linux-FW
-A INPUT -i ens3 -j DROP
// правила для блокировки всего трафика между vlan
-A FORWARD -i ens4 -o ens4.10 -j DROP
-A FORWARD -i ens4 -o ens4.20 -j DROP
-A FORWARD -i ens4.10 -o ens4 -j DROP
-A FORWARD -i ens4.10 -o ens4.20 -j DROP
-A FORWARD -i ens4.20 -o ens4.10 -j DROP
-A FORWARD -i ens4.20 -o ens4 -j DROP