Разбираем основы синтаксиса iptables

  • VadimAndyVadimAndy 12.10.2021
    # установка
    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 перезапусаем фаерволл (иногда из-за этого правила могут слететь)
  • VadimAndyVadimAndy 01.11.2022
    ставится sudo apt -y install iptables-* ufw && sudo systemctl disable/stop ufw (в числе прочего ставится пакет iptables-netfilter-persistent (он и отвечает за сохранность правил после перезагрузки). Данный способ установки имеет отношение только к Debian, на счет CentOS && Ubuntu информации нет