Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:sharing_internet [2010/04/09 09:10] |
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 Server занимает не больше 10-15 минут. |
- | Если Вы используете для подключения по локальной сети [[http://ru.wikipedia.org/wiki/PPPoE|PPPoE]]. Вам необходимо просто-напросто ввести в терминале команду: <code>sudo pppoeconf</code> | + | ===== PPPoE ===== |
- | И дать ответы на вопросы. По окончании работы //pppoeconf// соединение должно быть установлено. | + | Если Вы используете для подключения по локальной сети [[wpru>PPPoE|PPPoE]], вам необходимо просто-напросто ввести в терминале команду: <code>sudo pppoeconf</code> |
+ | и дать ответы на вопросы. По окончании работы ''pppoeconf'' соединение должно быть установлено. | ||
- | На установленной машине Интернет появился. Теперь надо добавить включить все репозитарии в /etc/apt/source.list и выполнить: <code>sudo apt-get update</code> | + | ===== 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> | ||
+ | |||
+ | <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 провайдера. | * Установите и запустите пакет для раздачи пакетов по сети: <code>sudo apt-get install dnsmasq</code> Или, вы можете использовать DNS провайдера. | ||
- | * Так же необходимо установить пакет //ipmasq// для NAT: <code>sudo apt-get install ipmasq</code> | + | * Так же необходимо установить пакет ''ipmasq'' для NAT: <code>sudo apt-get install ipmasq</code> |
Вот и всё! | Вот и всё! | ||
===== Прокси-сервер squid ===== | ===== Прокси-сервер squid ===== | ||
- | Установим на наш сервер кэширующий прокси-сервер [[squid]]: | + | [[wpru>Squid|Squid]] — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и HTTPS. |
- | - Репозитарии мы уже подключали ранее, так что просто ставим пакет <code bash>apt-get install squid</code> | + | |
- | - Теперь редактируем конфигурационный файл. Открываем **/etc/squid/squid.conf**, ищем нужные строки и корректируем следующим образом:<file>... | + | Для установки прокси-сервера [[squid]] необходимо выполнить команду: |
+ | <code>apt-get install squid</code> | ||
+ | |||
+ | Теперь редактируем конфигурационный файл. Открываем ''/etc/squid/squid.conf'', ищем нужные строки и корректируем следующим образом: | ||
+ | <file>... | ||
http_port 3128 #<<< раскомментировать эту строчку | http_port 3128 #<<< раскомментировать эту строчку | ||
... | ... | ||
Строка 28: | Строка 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> |
+ | |||
+ | Затем для заворачивания нужных портов на прокси-сервер прописывается правило: | ||
+ | <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> | ||
====== Раздача Интернета в локальную сеть c помощью firestarter ====== | ====== Раздача Интернета в локальную сеть c помощью firestarter ====== | ||
[[http://www.fs-security.com/|Firestarter]] – это средство для создания межсетевых экранов для Linux, использующее [[GNOME]]. С помощью мастера можно создать базовый межсетевой экран, в дальнейшем его возможности расширяются с помощью динамических правил. Несколькими щелчками мыши можно открывать и закрывать порты или скрывать сервисы, оставляя доступ только к некоторым из них. В программе имеется монитор, который в режиме реального времени показывает попытки поиска злоумышленниками открытых портов. | [[http://www.fs-security.com/|Firestarter]] – это средство для создания межсетевых экранов для Linux, использующее [[GNOME]]. С помощью мастера можно создать базовый межсетевой экран, в дальнейшем его возможности расширяются с помощью динамических правил. Несколькими щелчками мыши можно открывать и закрывать порты или скрывать сервисы, оставляя доступ только к некоторым из них. В программе имеется монитор, который в режиме реального времени показывает попытки поиска злоумышленниками открытых портов. | ||
- | Для начала установим firestarter: | + | Для начала установим ''firestarter'': |
<code>sudo apt-get install firestarter</code> | <code>sudo apt-get install firestarter</code> | ||
- | При настройке указываем интерфейс с Интернетом — ppp0 раздавать на eth1((В Вашем случае может быть eth0,eth2 и т.д.)) | + | При настройке указываем интерфейс с Интернетом — ppp0 раздавать на eth1((В Вашем случае может быть eth0, eth2 и т.д.)) |
====== Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing) ====== | ====== Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing) ====== | ||
Строка 47: | Строка 118: | ||
==== На сервере ==== | ==== На сервере ==== | ||
Для настройки общего доступа к подключению Интернета необходимо выполнить на сервере указанные ниже действия. | Для настройки общего доступа к подключению Интернета необходимо выполнить на сервере указанные ниже действия. | ||
- | <code>sudo apt-get install firestarter</code> | ||
- | **Исходные данные:** | + | Исходные данные: |
Оба компьютера соединены по сети. На сервере установлено две сетевые карты: | Оба компьютера соединены по сети. На сервере установлено две сетевые карты: | ||
* eth0 - к ней подключен интернет; | * eth0 - к ней подключен интернет; | ||
Строка 64: | Строка 134: | ||
</code> | </code> | ||
- | Разрешите направление пакетов. Чтобы сделать это, отредактируйте /etc/sysctl.conf. | + | Разрешите направление пакетов. Чтобы сделать это, отредактируйте ''/etc/sysctl.conf''. |
Откройте сам файл командой: | Откройте сам файл командой: | ||
- | <code>gedit /etc/sysctl.conf</code> | + | <code>sudo gedit /etc/sysctl.conf</code> |
А затем вставьте следующую строчку: | А затем вставьте следующую строчку: | ||
<code>net.ipv4.ip_forward=1</code> | <code>net.ipv4.ip_forward=1</code> | ||
Строка 73: | Строка 143: | ||
<code>sysctl -w net.ipv4.ip_forward="1"</code> | <code>sysctl -w net.ipv4.ip_forward="1"</code> | ||
- | Затем добавляем правило для [[http://ru.wikipedia.org/wiki/NAT|NAT]]: | + | Затем добавляем правило для [[wpru>NAT|NAT]]: |
<code>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</code> | <code>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</code> | ||
Где eth0 название вашего интерфейса через который выходите в интернет. Измените его если используете другой интерфейс (напрмер ppp0) тогда команда будет выглядит иначе: | Где eth0 название вашего интерфейса через который выходите в интернет. Измените его если используете другой интерфейс (напрмер ppp0) тогда команда будет выглядит иначе: | ||
Строка 82: | Строка 152: | ||
Или, вы можете использовать DNS провайдера. | Или, вы можете использовать DNS провайдера. | ||
- | Чтобы NAT работал после перезагрузки сохраняем настройки iptables в файл: | + | Чтобы NAT работал после перезагрузки сохраняем настройки ''iptables'' в файл: |
<code>iptables-save > /etc/iptables.up.rules</code> | <code>iptables-save > /etc/iptables.up.rules</code> | ||
И добавляем в конец файла: | И добавляем в конец файла: | ||
- | <code>gedit /etc/network/interfaces</code> | + | <code>sudo gedit /etc/network/interfaces</code> |
Эту строчку, для автоматической подгрузки правил: | Эту строчку, для автоматической подгрузки правил: | ||
<code>pre-up iptables-restore < /etc/iptables.up.rules</code> | <code>pre-up iptables-restore < /etc/iptables.up.rules</code> | ||
Строка 102: | Строка 172: | ||
Второй компьютер теперь должен быть подключён к интернету. | Второй компьютер теперь должен быть подключён к интернету. | ||
+ | |||
+ | ====Если компьютеров несколько==== | ||
+ | Можно использовать 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 не восстанавливаются, добавьте: | Если после перезагрузки правила iptables не восстанавливаются, добавьте: | ||
<code>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</code> | <code>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</code> | ||
- | в любой стартовый скрипт (rc.local например) | + | в любой стартовый скрипт (rc.local например). |
+ | Вместо eth0 надо написать ppp0, если этот интерфейс получает интернет от провайдера: | ||
+ | <code>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</code> | ||
===== Ссылки ===== | ===== Ссылки ===== | ||
- | * [[[[настройка_сети_вручную|Настройка сети вручную]] | + | * [[настройка_сети_вручную|Настройка сети вручную]] |
* [[http://easylinux.ru/node/117|Раздача интернета]] | * [[http://easylinux.ru/node/117|Раздача интернета]] | ||
- | * [[http://forum.ubuntu.ru/index.php?topic=47337.msg352852#msg352852|Обсуждение даной статьи на форуме]] | + | * [[http://forum.ubuntu.ru/index.php?topic=47337.msg352852#msg352852|Обсуждение статьи на форуме (ICS: Internet Connection Sharing)]] |
* [[http://support.microsoft.com/kb/306126/ru|Настройка общего доступа к подключению Интернета в Windows XP]] | * [[http://support.microsoft.com/kb/306126/ru|Настройка общего доступа к подключению Интернета в Windows XP]] | ||
- | * Обсуждение статьи на форуме [[http://forum.ubuntu.ru/index.php?topic=3244.0|forum.ubuntu.ru]] | + | * [[http://forum.ubuntu.ru/index.php?topic=3244.0|Обсуждение статьи на форуме]] |
- | * Сообщение на форуме о firestarter:[[http://forum.ubuntu.ru/index.php?topic=47337.msg352852#msg352852]] | + | * [[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}} |