Интернет-шлюз на базе Ubuntu Server / Internet Connection Sharing + Squid, Firestarter Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:sharing_internet [2011/01/25 12:32]
[На сервере]
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 =====
-[[http://​ru.wikipedia.org/​wiki/​Squid|Squid]] — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и HTTPS.+[[wpru>Squid|Squid]] — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и HTTPS.
  
 Для установки прокси-сервера [[squid]] необходимо выполнить команду:​ Для установки прокси-сервера [[squid]] необходимо выполнить команду:​
 <​code>​apt-get install squid</​code>​ <​code>​apt-get install squid</​code>​
  
-Теперь редактируем конфигурационный файл. Открываем /​etc/​squid/​squid.conf,​ ищем нужные строки и корректируем следующим образом:​+Теперь редактируем конфигурационный файл. Открываем ​''​/​etc/​squid/​squid.conf''​, ищем нужные строки и корректируем следующим образом:​
 <​file>​... <​file>​...
 http_port 3128 #<<<​ раскомментировать эту строчку http_port 3128 #<<<​ раскомментировать эту строчку
Строка 37: Строка 97:
 Настраиваем браузеры на клиентских машинах на использование прокси:​ адрес прокси - пишем IP адрес интерфейса,​ обращенного в локальную сеть. Скорее всего,​это будет **192.168.0.1**,​ порт прокси - указанный в конфигурационном файле **3128**. Настраиваем браузеры на клиентских машинах на использование прокси:​ адрес прокси - пишем IP адрес интерфейса,​ обращенного в локальную сеть. Скорее всего,​это будет **192.168.0.1**,​ порт прокси - указанный в конфигурационном файле **3128**.
  
-Желающим сделать прозрачное проксирование необходимо изменить в файле настроек squid.conf одну строчку:​+Желающим сделать прозрачное проксирование необходимо изменить в файле настроек ​''​squid.conf'' ​одну строчку:​
 <​file>​... <​file>​...
 http_port 3128 transparent http_port 3128 transparent
Строка 43: Строка 103:
  
 Затем для заворачивания нужных портов на прокси-сервер прописывается правило: ​ Затем для заворачивания нужных портов на прокси-сервер прописывается правило: ​
-<​code>​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>​+<​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) ======
Строка 59: Строка 119:
 Для настройки общего доступа к подключению Интернета необходимо выполнить на сервере указанные ниже действия. Для настройки общего доступа к подключению Интернета необходимо выполнить на сервере указанные ниже действия.
  
-**Исходные данные:​**+Исходные данные:​
 Оба компьютера соединены по сети. На сервере установлено две сетевые карты: Оба компьютера соединены по сети. На сервере установлено две сетевые карты:
   * eth0 - к ней подключен интернет;​   * eth0 - к ней подключен интернет;​
Строка 74: Строка 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>​
Строка 83: Строка 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) тогда команда будет выглядит иначе:
Строка 92: Строка 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>​
Строка 112: Строка 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 не восстанавливаются,​ добавьте:​
Строка 127: Строка 209:
   * [[http://​forum.ubuntu.ru/​index.php?​topic=47337.msg352852#​msg352852|Сообщение на форуме о firestarter]]   * [[http://​forum.ubuntu.ru/​index.php?​topic=47337.msg352852#​msg352852|Сообщение на форуме о firestarter]]
  
-{{tag> ​Howto squid ICS proxy firestarter Администрирование Server Linux_на_предприятии}}+{{tag>​squid ICS proxy firestarter Администрирование Server Linux_на_предприятии, HOWTO}}