Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
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}} |