В правилах, задаваемых для iptables есть такие строки, отвечающие за форвардинг:
Код: Выделить всё
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -p tcp -m multiport --dports 80,8080,81,443,21,20,995,110,465,25,3128,5190,5222,5223 -j ACCEPT
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADEВременно был использован такой метод:
Код: Выделить всё
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -p tcp -m multiport ! --dports 80,8080,81,443,21,20,995,110,465,25,3128,5190,5222,5223 -j DROP
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADEОн работает, но все же это не то, что нужно, т.к. проходят и icmp пакеты и вообще все подряд. Естесственно, вариант с $IPTABLES -A FORWARD -i $INTIF -o $EXTIF ! -p tcp -j DROP работать нормально не будет, а прописывать каждый отдельный протокол - нерациональный метод. ИМХО существует способ сделать это проще.
Интересно, почему не отрабатывает первый вариант правил, или как можно иначе пропускать только траффик по определенным портам? Буду рад услышать ваше мнение, т.к. себя я уже за всю ночь исчерпал.
Спасибо.