А зачем прописывать шлюз серверу если провайдер выдает статический адрес? И какое значение имеет статический или динамический IP, который дает провайдер? Особо никакого. Я так понимаю, если у тебя сервер некой сети, в которую нужно подать интернет - то именно он (сервер) будет раздавать инет в сеть. Соответственно и шлюзом для локалки будет именно он. Если сервак получает инет по PPPoE - то /etc/network/interfaces примерно такой должен быть:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface (Local)
auto eth0
iface eth0 inet static
address 192.168.100.250
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
# The seconday network interface (Farlep Internet)
auto eth1
iface eth1 inet ppp
pre-up /sbin/ifconfig eth1 up
provider farlep
eth0 смотрит в локаль, eth1 - на провайдера. eth1 можно пока не настраивать, он настроится автоматом после выполнения следующего шага.
Собственно вот и этот следующий шаг: запускаешь /usr/sbin/pppoeconf eth1. Там все пошагово в виде диалога. У тебя после этого настроится PPPoE соединение с провайдером и пропишутся все настройки в /etc/network/interfaces для интерфейса eth1 (подразумевается, что кабеля локалки и интернета конечно же подключены к сетевым картам).
Затем создаешь например файл /etc/rc.rules (должен быть исполняемым файлом):
#!/bin/sh
PATH=/bin:/sbin
# Очищаем все настройки
iptables -F
iptables -X
iptables -t nat -F
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Активируем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
# Всегда принимаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT
# Разрешаем соединения, которые инициированы внутри (eth0)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешаем доступ из LAN-сети к внешнему миру на глобальном уровне
iptables -A FORWARD -i eth0 -j ACCEPT
# Включаем маскарадинг
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Тут важно проследить чтобы именно
ppp0 смотрел на интернет.
Вызываешь этот файл например из rc.local. И получаешь счастье в виде инета в локали после перезагрузки сервака. На машинах внутри сети прописываешь ДНС и шлюз 192.168.100.250 (в моем случае именно этот адрес имеет eth0). IP-адреса машин прописываешь любые из этой же подсети. Если не хочешь прописывать вручную IP-адреса локальным машинам - поставь DHCP-сервер. Но это уже разговор отдельного топика. Дальше уже именно в файле rc.rules можно кому-то разрешать что-то а кому-то запрещать что-то. Для примера:
iptables -A FORWARD -s vkontakte.ru -d 192.168.100.202 -j ACCEPT
iptables -A FORWARD -s vkontakte.ru -d 192.168.100.0/24 -j DROP
Такая последовательность разрешает посещение
http://vkontakte.ru для машины 192.168.100.202, а для всех остальных запрещает. Подобные правила следует вставлять в rc.rules ПЕРЕД последней строкой (перед включением маскарадинга).
Все вышеизложенное проверено и работает на практике. И все это справедливо именно в том случае если тебе надо подать инет в локалку через сервак. Своего рода роутер с большим количеством настроек.