====== iptables ======
----
__**ftp forwarding**__\\
[[https://www.linuxquestions.org/questions/linux-networking-3/iptables-forward-all-ftp-to-other-server-692717/]] - Forward All FTP to Other Server
>$ modprobe nf_nat_ftp
>$ iptables -t nat -A PREROUTING -p tcp -d serverA --dport 21 -j DNAT --to-destination serverB
>$ iptables -t nat -A PREROUTING -p tcp -d serverB --dport 21 -j SNAT --to-source serverA
----
__**iptables-persistent**__\\
[[https://losst.ru/kak-sohranit-pravila-iptables]] {{it:iptables:kak_soxranit_pravila_iptables.mht|mht}}
#установка
sudo apt install iptables-persistent
# использование
sudo netfilter-persistent [действие]
Где [действие] может принимать следующие значения:
>start - вызывает все плагины с параметром start, для загрузки правил в netfilter;
>stop - если настроена конфигурация сброса настроек Netfilter при остановке плагина, сбрасывает все настройки firewall на значения по умолчанию. Иначе просто выдает предупреждение;
>flush - плагины вызываются с параметром flush, что приводит к сбросу правил межсетевого экрана на значения по умолчанию;
>save - вызывает плагины с параметром save, позволяя сохранить значения правил брандмауэра в файлы на диске;
>reload - не задокументированный параметр, возникали случаи когда параметр start не срабатывал, помогал вызов этого параметра для загрузки правил из файла на диске;
#!/bin/bash
IPT=/sbin/iptables
IPTS=/usr/sbin/netfilter-persistent
IFLAN=enp1s0
IFWAN=enp1s0
# -------------------------------
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# -------------------------------
# lo
$IPT -A INPUT -p all -i lo -j ACCEPT
$IPT -A OUTPUT -p all -o lo -j ACCEPT
$IPT -A OUTPUT -p all -o $IFLAN -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p all -o $IFWAN -m state --state NEW -j ACCEPT
# -------------------------------
# allow
$IPT -A INPUT -p all -s 10.0.68.0/25 -m state --state NEW -j ACCEPT
$IPT -A INPUT -p all -s 10.0.69.0/25 -m state --state NEW -j ACCEPT
$IPT -A INPUT -p all -s 10.0.70.128/25 -m state --state NEW -j ACCEPT
$IPT -A INPUT -p tcp -s 10.110.140.226/32 -m multiport --dports 80,5432 -m state --state NEW -j ACCEPT #mz.rostvertol.ru
$IPT -A INPUT -p tcp -s 10.110.140.28/32 -m multiport --dports 80,5432 -m state --state NEW -j ACCEPT #cpc.rostvertol.ru
# -------------------------------
$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 ESTABLISHED,RELATED -j ACCEPT
# -------------------------------
$IPTS save