Я такой же вопрос решил через Squid.
Отвечу почему:
Сначала использовал просто IPTables. Маскарадинком раздавал инет на нужные компы. Все было хорошо, за исключением моментов, когда какой-нибудь пида..с начинал смотреть ролики на ютуб или вконтакте, а я в это время получал люлей от бухгалтерии, потому что у них важный отчет не уходил в банк/центр отчетности.
Поэтому сверху поставил скид3, прикрутил к нему кламАВ. Инет сейчас раздаю сквидом (настроил прозрачную проксю).
Плюсы:
+ Трафик кешируется - плюсы заметны невооруженным глазом. А сетка то у меня тоже не очень большая (около 40-50 компов).
+ Трафик сканиться на вири. Конечно от крупной заразы не спасет, но салите не проходит (а судя по логам пытался).
+ Пользаки теперь не сидят весь день на однокласниках/вконтакте. А любители посмотреть онлайн-видео смотрят на низкой скорости, не мешая работе бухов.
+ Постоянно просматриваю статистику с помощью лигхтсквид - надо сказать очень удобная штука.
Даже на несколько компов стоит раздать инет при помощи сквида.
Что же касается инета, раздавать просто средствами IpTables, то правило для форвардинга - это мало.
Попробуй так:
#!/bin/bash
#scriptname '/etc/network/firewall.sh'
##Перейдем в режим root, если не сделали этого раньше
sudo -i
##Включим форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
##Очистим старые правила
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X
##Опишем необходимые правила
# Разрешаем локальтый траф
sudo iptables -A INPUT -i lo -j ACCEPT
# Разрешаем себе конектиться по SSH (192.168.0.xxx - твой IP)
iptables -A INPUT -p tcp -s 192.168.0.xxx --syn -m conntrack --ctstate NEW --dport 22 -j ACCEPT
# Правила для форвардинга на нашу подсеть (форвардин не значит инет, но разрешает транзитный трафик)
iptables -A FORWARD -d 192.168.0.0/24 -o eth0 -j ACCEPT (форвардинг из инета в локалку)
iptables -A FORWARD -s 192.168.0.0/24 -o eth0 -j ACCEPT (форвардинг из локарки в инет)
# Коментарии к ^этим правилам:
# Так конечно делать нельзя. Нужно открыть только те порты/протоколы,
# которые будут использоваться, что бы не осталось каких либо лазеек извне.
# Но так как все делается для быстрого старта, то пока пойдет и так,
# а потом исправить по обстоятельствам
# Правила для проброса инета
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.104 -j MASQUERADE #Иванов
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.204 -j MASQUERADE #Петров
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.115 -j MASQUERADE #Сидоров
# ip взял от балды, впрочем как и имена в коментах. Добавь свой вариант
#Запрещаем остальное
iptables -P INPUT DROP #Запрещаем любые входящие соединения к процессам сервера (!SSH)
iptables -P FORWARD DROP #Запрещаем транзитный поток трафика кроме описного выше
iptables -P OUTPUT ACCEPT #На выход — можно все
Вроде так. Возможно в моем коде есть ошибки, так как писал на скорую руку и по памяти. Если кто то найдет - поправьте.
Сохрани этот код в файл, сделай исполняющим (можно добавить бит запуска от рута). А в файл /etc/network/interfaces добавь в конец строчку post-up /etc/network/firewall.sh
Как видишь, я форвард разрешаю всем машиноам, а маскарадин только там где нужет инет.
Конечно, если делать все по совести, то нужно создать отдельный файл со списком IP. А в данном скрипте написать обработку данного файла, что бы скрипт и форвардинг и инет открывал только нужным IP. Но на скорую руку можно и так. Если у тебя внешний IP статический, то лучше тогда использовать SNAT.
Попробуй, удачи в настройке.
Пользователь решил продолжить мысль 05 Сентября 2011, 13:34:24:
Я то же сначала пользовался данной схемой.
Причины: Это очень быстро настроить, около 15 минут на установку, плюс 5 минут на написание скрипта.
Но потом я сверху накатил сквид (как писал выше). В таком скрипте вместо маскарадинга для пользаков, добавил правила на переброс на сквид:
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.1:8888
Порт 8888 прослушивает сквид.
Форвард оставил. Впрочем маскарадинг для нескольких машин я все же оставил, но только по определенным портам. Для тех программ, которые не умею пользоваться проксей (гребанные банки-клиенты и системы эл.отчетности).
Пользователь решил продолжить мысль 06 Сентября 2011, 07:21:57:
P.S. Как сделаешь, отпишись, интересно увидеть твое решение...