Возможно я и не прав. Но если и править, то не левой ногой.
ИМХО, строка
-A PREROUTING -p tcp -m multiport ! -d 192.168.1.0/24 -i eth1 -j DNAT --to-destination 192.168.1.253:3128 --dports 80,8080
самописная и не совсем по правилам...
как и
-A PREROUTING -i 192.168.0.2 -p tcp -m tcp --dport 9025 -j DNAT --to-destination 192.168.1.251:9025
Если бы это правило вводилось через iptables, то ТС ошибку сразу бы увидел
А уж применение двух механизмов ввода правил при поднятии eth1.... А если при старте шлюза eth1 будет ещё не поднят?
Хотя там только логгирование не запустится, остальное всё не участвует..... ПОКА не участвует
И ещё. В скрипте используете 192.168.1.253/24. netfilter сжуёт, но Вас как-нибудь введёт в заблуждение, так как в правиле будет работать не хост, а вся сеть 192.168.1.0/24. Сейчас, при настройке, Вы именно её и имеете ввиду, но через полгода-год, Вы об этом уже не вспомните и можете посчитать, что в правиле участвует один единственный хост 192.168.1.253