iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Но у меня это как-то странно работает (вернее - не работает). Например, браузер (хром, огнелис, wget) заходит на яндекс и гугл, но не заходит на хабр и вконтакт. Но пингуются все четыре сайта и телнетом соединяются, днс вроде тоже пашет. Если на сервере вместо nat запустить http-прокси - все нормально, сайты открываются.
Другими словами. Есть сервак, через который должно идти общение с "реальным миром". На серваке две сетевухи и один виртуальный интерфейс ppp0. eth2 смотрит в локалку (реально - пока просто на клиентскую машину), ppp0 - в инет. На серваке стоит debian etch со всеми обновлениями. Нат поднят вышеприведенной командой, плюс прописыванием форвардинга в sysctl.conf (как в мануалах пишут). Других настроек iptables не имеет.
Есть клиентская тачка с убунтой, от ее сетевухи к серверному eth0 протянут кабель и шлюзом прописан ip сервака. И на ней через нат не открывается часть сайтов. С сервака эти сайты открываются. Если запустить на серваке прокси, то чероез него с клиентской тачки эти сайты тоже открываются. А через нат почему-то нет.
Собственно вопрос: что за фигня? Вроде я трезвый, все перепроверил по 10 раз, всеравно не пашет.