Разбираем основы синтаксиса iptables
-
# установка
sudo apt -y install iptables-* && sudo apt -y install ufw
# Дибилизм ситуации в том, что сразу после установки
sudo systemctl disable ufw.service && sudo systemctl stop ufw.service
# Почему? Потому что в состав зависимостей ufw входит netfilter (сам фаерфолл) && iptables-persistent, # который сразу криво перехватывает управление траффиком в системе у iptables (при чем не смотря на # то, что это ubuntu firewall, он всюду и его вырубают с тем же успехом, что в Debian, что в CentOS7)
# после установки надо увериться, что в корне /etc/ находится папка iptables (там уже будут какие-то # правила, но это никому не интресно, ибо все равно все перепишем под себя =)) Последний пакет # сохраняет правила (после перезапуска фаерволла (iptables-persistent)
# . Это чистая практика, сам видел такое на шлюзах, управляющих траффиком и вот, наконец:
sudo iptables -F чистит все цепочки правил (даже те, что были по умолчанию)
sudo iptables -P INPUT DROP && sudo iptables -P OUTPUT DROP установить по умолчанию запрещающую #политику на все исходящие и входящие пакеты
## УПРАВЛЕНИЕ ПОРТАМИ И ТРАФФИКОМ
sudo iptables -A INPUT -p (protocol) tcp --match multiport --dports 80,443 (что там еще надо) -j ACCEPT разрешить сетевой серфинг
sudo iptables -A INPUT -p udp --dport 1194 -j DROP запретить vpn траффик через порт 1194 по протоколу udp
sudo iptables -I INPUT 1 -s 1.1.1.1 -p tcp --dport 25 -j DROP - запрет на траффик на порт 25 с адреса 1.1.1.1, #заметитм, что перед указанным адресом есть буква s (source, источник), буква d - destination # (назначение)
# Переводим входящий траффик на интрефейс eth1 хоста 1.15 по 22 порту
sudo iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 22 -j DNAT --to-destination 192.168.1.15:22
sudo iptables -A FORWARD -p tcp -d 192.168.1.15 --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Перенаправим входящий траффик с порта 8022 на порт 22 хоста 1.15 по протоколу tcp
sudo iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 8022 -j DNAT --to-destination 192.168.1.15:22
sudo iptables -A FORWARD -p tcp -d 192.168.1.15 --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j #ACCEPT
# Удалить правила за номером 4 и перезапустить фаерволл
sudo iptables -D INPUT 4 && sudo systemctl restart iptables.service
# запрет входящего траффика на порт 25 по протоколу tcp
sudo iptables -A INPUT -p tcp --dport 25 -j DROP
sudo iptables -L - чтение правил
sudo iptables -L -n -v чтение правил, но несколько более детально
# Как переместить правило из конца списка вначало
sudo iptables-save > rules.v4 перенаправлоение листинга правил в создаваемый файл rules.v4
sudo nano rules.v4 - открываем файл rules.v4 редактором nano и редактим правила
sudo iptables-restore < rules.v4 перенаправляем содержимое файла rules.v4
sudo systemctl restart iptables.service перезапусаем фаерволл (иногда из-за этого правила могут слететь) -
ставится sudo apt -y install iptables-* ufw && sudo systemctl disable/stop ufw (в числе прочего ставится пакет iptables-netfilter-persistent (он и отвечает за сохранность правил после перезагрузки). Данный способ установки имеет отношение только к Debian, на счет CentOS && Ubuntu информации нет