Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:sharing_internet [2009/07/23 00:14] создано |
wiki:sharing_internet [2014/05/16 22:39] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== Шлюз Интернета на базе Ubuntu-Server / Internet Connection Sharing + Squid,Firestarter ====== | + | ====== Интернет-шлюз на базе Ubuntu Server / Internet Connection Sharing + Squid, Firestarter ====== |
| + | Имеется сервер и подключенные к нему клиенты по локальной сети. Сервер имеет выход в интернет. Необходимо устроить раздачу интернета сервером. | ||
| + | ===== Основная часть ===== | ||
| + | Собственно, установка шлюза на базе Ubuntu Server занимает не больше 10-15 минут. | ||
| - | ^ Автор(ы) статьи ^ Поддерживаемые версии Ubuntu ^ | + | ===== PPPoE ===== |
| - | | Vadim Bilalov | All Ubuntu | | + | Если Вы используете для подключения по локальной сети [[wpru>PPPoE|PPPoE]], вам необходимо просто-напросто ввести в терминале команду: <code>sudo pppoeconf</code> |
| + | и дать ответы на вопросы. По окончании работы ''pppoeconf'' соединение должно быть установлено. | ||
| - | ===== Краткое описание руководства ===== | + | ===== L2TP ===== |
| + | Если Вы используете для подключения к провайдеру[[wpru>L2TP|L2TP]], то | ||
| + | для этого понадобится установить xl2tpd — демон l2tp и pppd — демон ppp.((Настройка на примере Билайна)) | ||
| - | Имеется сервер,подключенные к нему клиенты по локальной сети,сервер имеет выход в интернет.Необходимо устроить раздачу Интернета сервером. | + | Устанавливаем: |
| + | <code bash>sudo apt-get install pppd xl2tpd</code> | ||
| + | Редактируем файл настроек xl2tpd: | ||
| - | ===== Основная часть ===== | + | <code bash>sudo nano /etc/xl2tpd/xl2tpd.conf</code> |
| - | Собственно, установка шлюза на базе Ubuntu-Server занимает не больше 10-15 минут. | + | |
| - | - Устанавливаем систему (я ставил ubuntu-6.06-server-i386.iso) | + | |
| - | - У меня подключение по локальной сети с использованием PPPoE. Для этого просто-напросто было запущено <code bash>sudo pppoeconf</code>и даны ответы на вопросы. По окончании работы **pppoeconf** соединение было установлено, о чем свидетельствовал положительный вывод на команду <code bash>ifconfig ppp0</code> | + | |
| - | - На установленной машине Интернет появился. Теперь надо добавить включить все репозитарии в **/etc/apt/source.list** и выполнить <code bash>sudo apt-get update</code> | + | |
| - | - Для доступа с других машин вашей локальной сети необходимо поставить всего лишь навсего два малюсеньких пакета: **dnsmasq** - чтобы переправлялись ваши DNS-запросы,и **ipmasq** - собственно для NAT'a. | + | |
| - | - На машинках локальной сети получаем IP по DHCP от dnsmasq либо прописываем шлюз по умолчанию вручную. | + | |
| - | - Вот и всё! | + | |
| + | <file bash>[global] | ||
| + | access control = yes # разрешать соединения только с адресами из lac секций | ||
| + | |||
| + | [lac beeline] | ||
| + | lns = tp.internet.beeline.ru # адрес для подключения | ||
| + | redial = yes # "перезвонить" при потере связи | ||
| + | redial timeout = 10 # время между попытками переустановить связь после обрыва(в секундах) | ||
| + | max redials = 100 # максимальное количество попыток | ||
| + | autodial = yes # устанавливать соединение при запуске xl2tpd | ||
| + | require pap = no # не использовать pap аутентификацию | ||
| + | require chap = yes # использовать chap аутентификацию | ||
| + | require authentication = no # не использовать аутентификацию удаленного сервера | ||
| + | name = 000ххххххх # логин | ||
| + | pppoptfile = /etc/ppp/options.l2tp # файл с опциями ppp | ||
| + | ppp debug = yes # вывод подробной информации pppd в syslog | ||
| + | tx bps = 100000000 # скорость туннеля</file> | ||
| + | |||
| + | Затем редактируем: | ||
| + | |||
| + | <code bash>sudo nano /etc/ppp/options.xl2tp</code> | ||
| + | |||
| + | <file>000ххххххх #номер договора | ||
| + | noauth | ||
| + | nobsdcomp # | ||
| + | nodeflate # параметры сжатия пакетов | ||
| + | nopcomp # | ||
| + | noaccomp # | ||
| + | connect /bin/true | ||
| + | remotename beeline # метка для удаленного сервера | ||
| + | ipparam beeline # дополнительный параметр для системных скриптов | ||
| + | defaultroute # маршрут по умолчанию через ppp интерфейс | ||
| + | replacedefaultroute | ||
| + | mtu 1460</file> | ||
| + | |||
| + | Записываем в файл chap-secrets логин и пароль: | ||
| + | |||
| + | <code bash>sudo nano /etc/ppp/chap-secrets:</code> | ||
| + | |||
| + | |||
| + | <file>login * password</file> | ||
| + | |||
| + | |||
| + | Запускаем xl2tpd, | ||
| + | |||
| + | <code bash>sudo service xl2tpd start</code> | ||
| + | |||
| + | соединение должно быть установлено. | ||
| + | |||
| + | На установленной машине Интернет появился. Теперь надо добавить включить все репозитарии в ''/etc/apt/source.list'' и выполнить: <code>sudo apt-get update</code> | ||
| + | |||
| + | Для доступа с других машин вашей локальной сети необходимо поставить всего лишь навсего два малюсеньких пакета: | ||
| + | * Установите и запустите пакет для раздачи пакетов по сети: <code>sudo apt-get install dnsmasq</code> Или, вы можете использовать DNS провайдера. | ||
| + | * Так же необходимо установить пакет ''ipmasq'' для NAT: <code>sudo apt-get install ipmasq</code> | ||
| + | |||
| + | Вот и всё! | ||
| ===== Прокси-сервер squid ===== | ===== Прокси-сервер squid ===== | ||
| + | [[wpru>Squid|Squid]] — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и HTTPS. | ||
| - | Доустановим на наш сервер кэширующий прокси-сервер **squid**: | + | Для установки прокси-сервера [[squid]] необходимо выполнить команду: |
| - | - Репозитарии мы уже подключали ранее, так что просто ставим пакет <code bash>apt-get install squid</code> | + | <code>apt-get install squid</code> |
| - | - Теперь редактируем конфигурационный файл. Открываем **/etc/squid/squid.conf**, ищем нужные строки и корректируем следующим образом:<file>... | + | |
| + | Теперь редактируем конфигурационный файл. Открываем ''/etc/squid/squid.conf'', ищем нужные строки и корректируем следующим образом: | ||
| + | <file>... | ||
| http_port 3128 #<<< раскомментировать эту строчку | http_port 3128 #<<< раскомментировать эту строчку | ||
| ... | ... | ||
| Строка 33: | Строка 92: | ||
| visible_hostname proxy.localdomain #<<< добавить строчку, скорее всего взамен строки 2161 | visible_hostname proxy.localdomain #<<< добавить строчку, скорее всего взамен строки 2161 | ||
| ...</file> | ...</file> | ||
| - | - Перезапускаем прокси:<code bash>/etc/init.d/squid restart</code> | + | |
| - | - Настраиваем браузеры на клиентских машинах на использование прокси: адрес прокси - пишем IP-адрес интерфейса, обращенного в локальную сеть. Скорее всего,это будет **192.168.0.1**, порт прокси - указанный в конфигурационном файле **3128** | + | Перезапускаем прокси-сервер командой: <code>/etc/init.d/squid restart</code> |
| - | - Желающим сделать прозрачное проксирование необходимо изменить в конфиге squid.conf одну строчку:<file>... | + | |
| + | Настраиваем браузеры на клиентских машинах на использование прокси: адрес прокси - пишем IP адрес интерфейса, обращенного в локальную сеть. Скорее всего,это будет **192.168.0.1**, порт прокси - указанный в конфигурационном файле **3128**. | ||
| + | |||
| + | Желающим сделать прозрачное проксирование необходимо изменить в файле настроек ''squid.conf'' одну строчку: | ||
| + | <file>... | ||
| http_port 3128 transparent | http_port 3128 transparent | ||
| - | ...</file>Затем для заворачивания нужных портов на сквид прописывается правило<code bash>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</code> | + | ...</file> |
| - | ====== Раздача Интернета в локальную сеть c помощью firestarter====== | + | Затем для заворачивания нужных портов на прокси-сервер прописывается правило: |
| - | * Для начала установим firestarter:<code>sudo apt-get install firestarter</code>при настройке указываем интерфейс с Интернетом — ppp0 раздавать на eth1((В Вашем случае может быть eth0,eth2 и т.д.)) или: | + | <code>iptables -t nat -A PREROUTING -i eth0 ! -d 192.168.0.0/24 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.0.1:3128</code> |
| - | * **Дано:** | + | |
| - | * Сетевая карточка eth0 подключенная с помощью PPPoE к интернету и eth1 подключенная к сети с адресом 192.168.0.1,к которой подключена сеть с адресами 192.168.0.* ,в которой нужно раздать интернет. | + | |
| - | - Перейдём в режим суперпользователя:<code bash>sudo su</code> | + | |
| - | - Для начала включим форвардинг:<code>echo 1 > /proc/sys/net/ipv4/ip_forward</code>Чтобы форвардинг автоматически включался при запуске системы,открываем файл:<code bash>gedit /etc/sysctl.conf</code>и добавляем в него строчку:<file>net.ipv4.ip_forward = 1 </file> | + | |
| - | - Затем включаем NAT:<code bash>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</code>Где ppp0 название вашего интерфейса через который выходите в интернет. | + | |
| - | - Чтобы NAT работал после перезагрузки делаем следующее:сохраняем настройки iptables в файл<code bash>iptables-save > /etc/iptables.up.rules</code>и добавляем в конец файла:<code bash>gedit /etc/network/interfaces</code>эту строчку, для автоматической подгрузки правил<file>pre-up iptables-restore < /etc/iptables.up.rules</file> | + | |
| - | - Также в этот файл добавляем правила роутинга:<file>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</file> | + | |
| - | - Проверяем DNS на клиенте и радуемся расшаренному Интернету | + | |
| - | ---- | + | ====== Раздача Интернета в локальную сеть c помощью firestarter ====== |
| + | [[http://www.fs-security.com/|Firestarter]] – это средство для создания межсетевых экранов для Linux, использующее [[GNOME]]. С помощью мастера можно создать базовый межсетевой экран, в дальнейшем его возможности расширяются с помощью динамических правил. Несколькими щелчками мыши можно открывать и закрывать порты или скрывать сервисы, оставляя доступ только к некоторым из них. В программе имеется монитор, который в режиме реального времени показывает попытки поиска злоумышленниками открытых портов. | ||
| - | ===== Ссылки ===== | + | Для начала установим ''firestarter'': |
| + | <code>sudo apt-get install firestarter</code> | ||
| - | * Обсуждение статьи на форуме [[http://forum.ubuntu.ru/index.php?topic=3244.0|forum.ubuntu.ru]] | + | При настройке указываем интерфейс с Интернетом — ppp0 раздавать на eth1((В Вашем случае может быть eth0, eth2 и т.д.)) |
| - | *Сообщение на форуме о firestarter:[[http://forum.ubuntu.ru/index.php?topic=47337.msg352852#msg352852]] | + | |
| + | ====== Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing) ====== | ||
| + | Для организации совместного доступа в Интернет с помощью общего доступа к подключению Интернета на сервере должна быть одна сетевая карта для подключения к внутренней сети и еще одна карта или модем для подключения к Интернету. | ||
| + | |||
| + | ==== На сервере ==== | ||
| + | Для настройки общего доступа к подключению Интернета необходимо выполнить на сервере указанные ниже действия. | ||
| + | |||
| + | Исходные данные: | ||
| + | Оба компьютера соединены по сети. На сервере установлено две сетевые карты: | ||
| + | * eth0 - к ней подключен интернет; | ||
| + | * eth1 - к ней подключена локальная сеть. | ||
| + | |||
| + | [[настройка_сети_вручную|Настройте вторую карту]] (eth1) так: | ||
| + | * IP: 192.168.0.1 | ||
| + | * Netmask: 255.255.255.0 | ||
| + | |||
| + | Это можно сделать вручную или используя [[терминал]]: | ||
| + | <code> | ||
| + | sudo ifconfig eth1 192.168.0.1 netmask 255.255.255.0 | ||
| + | sudo ifconfig eth1 up | ||
| + | </code> | ||
| + | |||
| + | Разрешите направление пакетов. Чтобы сделать это, отредактируйте ''/etc/sysctl.conf''. | ||
| + | Откройте сам файл командой: | ||
| + | <code>sudo gedit /etc/sysctl.conf</code> | ||
| + | А затем вставьте следующую строчку: | ||
| + | <code>net.ipv4.ip_forward=1</code> | ||
| + | |||
| + | Для того, чтобы применить это правило до перезагрузки выполните: | ||
| + | <code>sysctl -w net.ipv4.ip_forward="1"</code> | ||
| + | |||
| + | Затем добавляем правило для [[wpru>NAT|NAT]]: | ||
| + | <code>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</code> | ||
| + | Где eth0 название вашего интерфейса через который выходите в интернет. Измените его если используете другой интерфейс (напрмер ppp0) тогда команда будет выглядит иначе: | ||
| + | <code>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</code> | ||
| + | |||
| + | Установите и запустите пакет для раздачи пакетов по сети: | ||
| + | <code>sudo apt-get install dnsmasq</code> | ||
| + | Или, вы можете использовать DNS провайдера. | ||
| + | |||
| + | Чтобы NAT работал после перезагрузки сохраняем настройки ''iptables'' в файл: | ||
| + | <code>iptables-save > /etc/iptables.up.rules</code> | ||
| + | |||
| + | И добавляем в конец файла: | ||
| + | <code>sudo gedit /etc/network/interfaces</code> | ||
| + | Эту строчку, для автоматической подгрузки правил: | ||
| + | <code>pre-up iptables-restore < /etc/iptables.up.rules</code> | ||
| + | |||
| + | Также в этот файл добавляем правила роутинга: | ||
| + | <code>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</code> | ||
| + | |||
| + | ==== На клиентском компьютере ==== | ||
| + | Установите на втором компьютере: | ||
| + | * IP: 192.168.0.2 | ||
| + | * Netmask/Маска: 255.255.255.0 | ||
| + | * Gateway/Шлюз: 192.168.0.1 | ||
| + | * DNS: 192.168.0.1 | ||
| + | |||
| + | Второй компьютер теперь должен быть подключён к интернету. | ||
| + | |||
| + | ====Если компьютеров несколько==== | ||
| + | Можно использовать dnsmasq как [[wpru>DHCP|DHCP]] сервер. | ||
| + | Для этого на сервере редактируем файл dnsmasq.conf: | ||
| + | |||
| + | <code bash>sudo nano /etc/dnsmasq.conf</code> | ||
| + | |||
| + | <file bash>interface=eth1 # интерфейс, который будет слушать dnsmasq | ||
| + | |||
| + | listen-address=192.168.0.1 # адрес, на котором будет находиться dnsmasq | ||
| + | |||
| + | bind-interfaces eth1 # слушать только интерфейс | ||
| + | |||
| + | dhcp-range=192.168.0.5,192.168.0.50,255.255.255.0,24h1 # диапазон выдаваемых адресов | ||
| + | |||
| + | dhcp-option=3,192.168.0.1 # шлюз по умолчанию </file> | ||
| + | |||
| + | Перезапускаем dnsmasq: | ||
| + | |||
| + | <code bash>sudo service dnsmasq restart</code> | ||
| + | |||
| + | Настраиваем клиентские компьютеры на автоматическое получение адреса. | ||
| + | |||
| + | Если после перезагрузки правила iptables не восстанавливаются, добавьте: | ||
| + | <code>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</code> | ||
| + | в любой стартовый скрипт (rc.local например). | ||
| + | Вместо eth0 надо написать ppp0, если этот интерфейс получает интернет от провайдера: | ||
| + | <code>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</code> | ||
| + | |||
| + | ===== Ссылки ===== | ||
| + | * [[настройка_сети_вручную|Настройка сети вручную]] | ||
| + | * [[http://easylinux.ru/node/117|Раздача интернета]] | ||
| + | * [[http://forum.ubuntu.ru/index.php?topic=47337.msg352852#msg352852|Обсуждение статьи на форуме (ICS: Internet Connection Sharing)]] | ||
| + | * [[http://support.microsoft.com/kb/306126/ru|Настройка общего доступа к подключению Интернета в Windows XP]] | ||
| + | * [[http://forum.ubuntu.ru/index.php?topic=3244.0|Обсуждение статьи на форуме]] | ||
| + | * [[http://forum.ubuntu.ru/index.php?topic=47337.msg352852#msg352852|Сообщение на форуме о firestarter]] | ||
| - | {{tag> Howto squid ICS proxy firestarter}} | + | {{tag>squid ICS proxy firestarter Администрирование Server Linux_на_предприятии, HOWTO}} |