Это старая версия документа.
Содержание
Шлюз Интернета на базе Ubuntu-Server / Internet Connection Sharing + Squid,Firestarter
Автор(ы) статьи | Поддерживаемые версии Ubuntu |
---|---|
Vadim Bilalov | All Ubuntu |
Краткое описание руководства
Имеется сервер,подключенные к нему клиенты по локальной сети,сервер имеет выход в интернет.Необходимо устроить раздачу Интернета сервером.
Основная часть
Собственно, установка шлюза на базе Ubuntu-Server занимает не больше 10-15 минут.
- Устанавливаем систему (я ставил ubuntu-6.06-server-i386.iso)
- У меня подключение по локальной сети с использованием PPPoE. Для этого просто-напросто было запущено
sudo pppoeconf
и даны ответы на вопросы. По окончании работы pppoeconf соединение было установлено, о чем свидетельствовал положительный вывод на команду
ifconfig ppp0
- На установленной машине Интернет появился. Теперь надо добавить включить все репозитарии в /etc/apt/source.list и выполнить
sudo apt-get update
- Для доступа с других машин вашей локальной сети необходимо поставить всего лишь навсего два малюсеньких пакета: dnsmasq - чтобы переправлялись ваши DNS-запросы,и ipmasq - собственно для NAT'a.
- На машинках локальной сети получаем IP по DHCP от dnsmasq либо прописываем шлюз по умолчанию вручную.
- Вот и всё!
Прокси-сервер squid
Доустановим на наш сервер кэширующий прокси-сервер squid:
- Репозитарии мы уже подключали ранее, так что просто ставим пакет
apt-get install squid
- Теперь редактируем конфигурационный файл. Открываем /etc/squid/squid.conf, ищем нужные строки и корректируем следующим образом:
... http_port 3128 #<<< раскомментировать эту строчку ... cache_dir ufs /var/spool/squid 100 16 256 #<<< раскомментировать эту строчку ... acl our_networks src 192.168.0.0/24 #<<< раскомментировать эту строчку http_access allow our_networks #<<< раскомментировать эту строчку ... visible_hostname proxy.localdomain #<<< добавить строчку, скорее всего взамен строки 2161 ...
- Перезапускаем прокси:
/etc/init.d/squid restart
- Настраиваем браузеры на клиентских машинах на использование прокси: адрес прокси - пишем IP-адрес интерфейса, обращенного в локальную сеть. Скорее всего,это будет 192.168.0.1, порт прокси - указанный в конфигурационном файле 3128
- Желающим сделать прозрачное проксирование необходимо изменить в конфиге squid.conf одну строчку:
... http_port 3128 transparent ...
Затем для заворачивания нужных портов на сквид прописывается правило
iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
Раздача Интернета в локальную сеть c помощью firestarter
- Для начала установим firestarter:
sudo apt-get install firestarter
при настройке указываем интерфейс с Интернетом — ppp0 раздавать на eth11) или:
- Дано:
- Сетевая карточка eth0 подключенная с помощью PPPoE к интернету и eth1 подключенная к сети с адресом 192.168.0.1,к которой подключена сеть с адресами 192.168.0.* ,в которой нужно раздать интернет.
- Перейдём в режим суперпользователя:
sudo su
- Для начала включим форвардинг:
echo 1 > /proc/sys/net/ipv4/ip_forward
Чтобы форвардинг автоматически включался при запуске системы,открываем файл:
gedit /etc/sysctl.conf
и добавляем в него строчку:
net.ipv4.ip_forward = 1
- Затем включаем NAT:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Где ppp0 название вашего интерфейса через который выходите в интернет.
- Чтобы NAT работал после перезагрузки делаем следующее:сохраняем настройки iptables в файл
iptables-save > /etc/iptables.up.rules
и добавляем в конец файла:
gedit /etc/network/interfaces
эту строчку, для автоматической подгрузки правил
pre-up iptables-restore < /etc/iptables.up.rules
- Также в этот файл добавляем правила роутинга:
up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1 up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0
- Проверяем DNS на клиенте и радуемся расшаренному Интернету
Ссылки
- Обсуждение статьи на форуме forum.ubuntu.ru
- Сообщение на форуме о firestarter:http://forum.ubuntu.ru/index.php?topic=47337.msg352852#msg352852