Это старая версия документа.
Содержание
Шлюз Интернета на базе Ubuntu-Server / Internet Connection Sharing + Squid,Firestarter
Имеется сервер,подключенные к нему клиенты по локальной сети,сервер имеет выход в интернет.Необходимо устроить раздачу Интернета сервером.
Основная часть
Собственно, установка шлюза на базе Ubuntu-Server занимает не больше 10-15 минут/
Если Вы используете для подключения по локальной сети PPPoE. Вам необходимо просто-напросто ввести в терминале команду:
sudo pppoeconf
И дать ответы на вопросы. По окончании работы pppoeconf соединение должно быть установлено.
На установленной машине Интернет появился. Теперь надо добавить включить все репозитарии в /etc/apt/source.list и выполнить:
sudo apt-get update
Для доступа с других машин вашей локальной сети необходимо поставить всего лишь навсего два малюсеньких пакета:
- Установите и запустите пакет для раздачи пакетов по сети:
sudo apt-get install dnsmasq
Или, вы можете использовать DNS провайдера.
- Так же необходимо установить пакет ipmasq для NAT:
sudo apt-get install ipmasq
Вот и всё!
Прокси-сервер squid
Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и HTTPS.
Для установки прокси-сервера 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 – это средство для создания межсетевых экранов для Linux, использующее GNOME. С помощью мастера можно создать базовый межсетевой экран, в дальнейшем его возможности расширяются с помощью динамических правил. Несколькими щелчками мыши можно открывать и закрывать порты или скрывать сервисы, оставляя доступ только к некоторым из них. В программе имеется монитор, который в режиме реального времени показывает попытки поиска злоумышленниками открытых портов.
Для начала установим firestarter:
sudo apt-get install firestarter
При настройке указываем интерфейс с Интернетом — ppp0 раздавать на eth11)
Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing)
Для организации совместного доступа в Интернет с помощью общего доступа к подключению Интернета на сервере должна быть одна сетевая карта для подключения к внутренней сети и еще одна карта или модем для подключения к Интернету.
На сервере
Для настройки общего доступа к подключению Интернета необходимо выполнить на сервере указанные ниже действия.
sudo apt-get install firestarter
Исходные данные: Оба компьютера соединены по сети. На сервере установлено две сетевые карты:
- eth0 - к ней подключен интернет;
- eth1 - к ней подключена локальная сеть.
Настройте вторую карту (eth1) так:
- IP: 192.168.0.1
- Netmask: 255.255.255.0
Это можно сделать вручную или используя терминал:
sudo ifconfig eth1 192.168.0.1 netmask 255.255.255.0 sudo ifconfig eth1 up
Разрешите направление пакетов. Чтобы сделать это, отредактируйте /etc/sysctl.conf. Откройте сам файл командой:
gedit /etc/sysctl.conf
А затем вставьте следующую строчку:
net.ipv4.ip_forward=1
Для того, чтобы применить это правило до перезагрузки выполните:
sysctl -w net.ipv4.ip_forward="1"
Затем добавляем правило для NAT:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Где eth0 название вашего интерфейса через который выходите в интернет. Измените его если используете другой интерфейс (напрмер ppp0) тогда команда будет выглядит иначе:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Установите и запустите пакет для раздачи пакетов по сети:
sudo apt-get install dnsmasq
Или, вы можете использовать DNS провайдера.
Чтобы 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
На клиентском компьютере
Установите на втором компьютере:
- IP: 192.168.0.2
- Netmask/Маска: 255.255.255.0
- Gateway/Шлюз: 192.168.0.1
- DNS: 192.168.0.1
Второй компьютер теперь должен быть подключён к интернету.
Если после перезагрузки правила iptables не восстанавливаются, добавьте:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
в любой стартовый скрипт (rc.local например). Вместо eth0 надо написать ppp0, если этот интерфейс получает интернет от провайдера:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE