Задать вопрос
Ответы пользователя по тегу CentOS
  • Iptables и правильное перенаправление на 80 порт?

    Тут фича в том, что после REDIRECT пакет не проходит цепочку PREROUTING далее или еще раз. Поэтому можно сделать так: маркировать пакет в PREROUTING и дропать в INPUT маркированные пакеты.

    iptables -t mangle -A PREROUTING -i eth0 -p tcp --dport 8000 -j MARK --set-mark 1
    iptables -I INPUT  -i eth0 -m mark --mark 1 -j DROP

    Существующее у вас правило

    iptables -A INPUT -i eth0 -p tcp --dport 8000 -j ACCEPT

    убирать нельзя, т.к. пакет далее идет в цепочку INPUT, где дропнется (политика по умолчанию у вас DROP) без этого правила. Однако дропать маркированные пакеты нужно до него, иначе оно пропустит их (поэтому в правиле выше флаг "-I", что, возможно, вы захотите изменить, расставив правила по порядку).

    Еще один путь: можно повесить веб-сервер на localhost и использовать DNAT, но для этого нужно еще net.ipv4.conf.all.route_localnet=1, иначе пакет будет отброшен (martian packet).
    Ответ написан
    Комментировать