Архив рассылок сообщества снова открыт. Читать письма 2003-2009
Главная/Архив/sllug-members / 2006-May

Переехал с dial-up на ADSL, вопросы по iptables и роутингу

От: Игорь Пастухов <ipastukhov@example.org>
Дата: 18 мая 2006
Список: sllug-members

Свершилось, наконец отключил модем, который пищал по ночам, и подключил ADSL. Провайдер дал вечный PPPoE, скорость по нынешним меркам роскошь. Теперь хочу раздать интернет на две домашние машины через старую железку с Linux в роли шлюза.

Поднял соединение через pppoeconf, интерфейс ppp0 появляется, пинг наружу с самого шлюза идёт. Дальше настраиваю NAT:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

С внутренних машин интернет заработал, но всплыли нюансы:

  • Некоторые сайты открываются наполовину, картинки рвутся. Грешу на MTU, у PPPoE он 1492, а клиенты шлют 1500. Правильно ли лечить это через clamp-mss?
  • Хочу закрыть шлюз снаружи, оставив только исходящие и established. Пока политику INPUT в DROP ставить боюсь, вдруг сам себя запру по ssh.

По MTU нашёл вот такой рецепт, но не уверен, что применяю его в нужной цепочке:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
    -j TCPMSS --clamp-mss-to-pmtu

Подскажите, кто через это прошёл: достаточно ли clamp-mss, или надо ещё руками резать MTU на интерфейсе? И как аккуратно закрыть INPUT, не потеряв доступ к самому шлюзу? Заранее спасибо, дефолтный шлюз на клиентах прописал, DNS от провайдера тоже.