Делаем доступ в Интернет для сети

Чо то черканул про раздачу интернета в локальной сети. Предназначена для улусных локальных админов. Может кому нибудь здесь полезно будет. Ваши замечания....

http://it.icmp.ru/postimages/1474/6906/thumb/1.jpg

Для того чтобы подключить ваши компьютеры в сети к Интернету через устройство доступа необходимо настроить шлюз (компьютер) через который другие пользователи будут выходить в сеть Интернет.

Для организации этого мероприятия нам понадобится:

1. Компьютер (не слишком навороченный, процессор не ниже Pentium IV, ОЗУ не ниже 128 мб., дисковый обьем не менее 40 гб.)
2. Настроенный терминал доступа в сеть Интернет (в нашем случае терминал LinkStar)
3. Дистрибутив Ubuntu 9.10 Server
4. Наличие двух сетевых карт на компьютере (одна пойдет в терминал, одна в сеть)

Порядок наших действий:

1. Готовим размещение оборудования, подключаем терминал Linkstar
2. Устанавливаем операционную систему Ubuntu 9.10 Server на компьютер
3. Производим настройку сетевых интерфейсов
4. Организовываем NAT средствами NETFILTER (IPTABLES)
5. Организуем кеширование WEB страниц кеширующим прокси-сервером SQUID
6. Поднимаем DHCP (раздатчик IP адресов) на нашем компьютере
7. Подключаем клиентские компьютеры к шлюзу, делаем разграничение доступа на WEB страницы средствами SQUID

Статья расчитана на локальных улусных администраторов

1. Размещение оборудования

Предполагается что сеть (связка коммутатора с компьютерами) уже натянута, все кабели обжаты. Учить как протягивать сеть надеюсь не надо необходимости (при необходимости в разделе Ещё есть техника обжатия кабелей RJ45). Предпологается что кабели от одного коммутатора протянуты во все компьютеры в сети топологией "звезда" обжимом типа "прямой". Предпочтительней если шлюз, терминал, и коммутатор будут находится в одном помещении (импровизированная "серверная").

Требования к помещению:

1. Хорошая вентиляция, в то же время отутствие пыли (желательно прохладное помещение)
2. Наличие источника бесперебойного питания (предпочтителен APC Smart UPS 1500 Perfect)
3. Наличие устойчивого электропитания, и сетевого фильтра с предохранителем-кнопкой

Подключаем оборудование:

1. Настроенный терминал Linkstar подключаем к 2 шнурам приема и передачи которые идут в уже настроенную тарелку VSAT, электропитание включаем в UPS
2. Системный блок с 2 сетевыми интерфейсами аккуратно подключаем к монитору, клавиатуре (мышь нам не понадобится!), и к UPS.
3. Первый сетевой интерфейс (верхний) обжатый по принципу кросса подключаем к терминалу Linstar
4. Второй сетевой интерфейс обжатый обычным способом подключаем к коммутатору в любой порт
5. К UPS подключаем коммутатор, монитор (системный блок и Linkstar уже подрубали), включаем в сеть
6. Включаем Linkstar, ждем синхронизации, не трогаем.
7. Включаем системный блок, заходим в BIOS, проверяем первичную загрузку, ставим на CD (если нету)

2. Устанавливаем операционную систему Ubuntu 9.10 Server на компьютер

Итак, начинаем установку ОС. После того как поставили в BIOS загрузку с CD, происходит загрузка установочного диска

1. После загрузки компьютера с CD, появится меню выбора языка, выбираем язык на Русский
2. Выбираем "Установить сервер Ubuntu"
3. После выбора первого же пункта ("Установить сервер Ubuntu") установщик попросит настроить языковые параметры, выбираем Российская Федерация
4. Отказываемся от предложения автоопределения раскладки клавиатуры - Нет
5. Вручную указываем язык и раскладку - Russia, Russia
6. Задаем комбинацию клавиш для переключения раскладок, выбираем (я выбрал Alt+Shift)
7. Процесс пошел, идет установка...
8. Выйдет окошко "Настройка сети", выбираем основной как eth0 (это верхний интерфейс куда подрублен Linkstar ;D)
9. Указываем имя компьютера - именуем свой сервер (я именовал как server)
10. Выставляем часовой пояс - Якутск
11. Разметка дисков - выбираем "Авто - использовать весь диск и настроить LVM"
12. Подтверждаем
13. После завершения разбивки диска начинается непосредственно установка (5-10 минут)
14. Далее нас просят указать свое полное имя пользователя: (указываем свое. Например: Andrey E Stepanov)
15. Имя пользователя, под которым будем работать в системе - (я выбрал user)
16. Придумываем пароль, и пароль для root
17. Отказываемся от создания зашифрованной папки
18. Система спросит о настройках прокси-сервера, если таковой есть. А так как его нет, то просто жмем Enter
19. Настраиваем обновления - отказываемся (No automatic updates)
20. Далее остается выбрать заранее готовые наборы сервисов (web-сервер, принт-сервер и т.д.) - выбираем OpenSSH server, жмем Продолжить
21. После установки выбранных компонентов убунта вежливо попросит вынуть диск - Продолжить
22. Перезагрузка
23. После перезагрузки заходим в свою систему, не пугаемся чёрной консоли (всё нормально), логинимся под пользователем который мы указали в процессе установки, вводим пароль, видим открывшуюся консоль вида

user@server:~$

Это значит мы произвели вход в систему.

3. Производим настройку сетевых интерфейсов

После того как произвели вход в систему сразу начинаем настраивать интерфейсы. Вводим команду

user@server:~$ sudo su

Вводим пароль root который мы указали в процессе установки... Убеждаемся что консоль у нас стала иметь знак # в конце, и имя пользователя стало root

root@server:/home/user#

Дальше все команды мы будем производить от имени root. Так что дальше я буду писать только команды без root@server:/home/user# . Вводим команду

cd /etc/network/

Входим в директорию сетевых настроек, стираем старый файл интерфейсов

rm interfaces

Создаем но уже пустой файл

touch interfaces

Входим редактором

vi interfaces

Уже в редакторе сразу нажимаем клавишу i чтобы войти в режим редактирования. (В редакторе vi есть 2 режима - командный и режим редактирования. По умолчанию включен командный режим, поэтому надо каждый раз нажимать i чтобы редактировать файл).

Руками пишем следующий код в редакторе:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address ваш_IP_адрес_вычисленный_из_MAC_адреса_Linkstar
netmask маска_подсети_из_Linkstar
gateway шлюз_из_квитка_Linkstar
nameserver DNS_сервер_из_квитка_Linkstar

auto eth1
iface eth1 inet static
address 172.16.1.254
netmask 255.255.0.0
nameserver DNS_сервер_из_квитка_Linkstar

Пример правильного исполнения:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.177.175.2
netmask 255.255.0.0
gateway 10.177.175.1
nameserver 95.167.167.95

auto eth1
iface eth1 inet static
address 172.16.1.254
netmask 255.255.0.0
nameserver 95.167.167.95



Трижды проверяем правильно ли написали (это самый важный этап). Затем выходим из редактора: нажимаем Esc (выходим из режима редактирования), вводим wq! и нажимаем Enter. Выйдя обратно на консоль вводим команду:

/etc/init.d/networking restart

Это мы сделали рестарт сетевых сервисов. При успешном выполнении выйдет такое сообщение:

* Reconfiguring network interfaces... [ OK ]

Если выйдет:

* Reconfiguring network interfaces... [ failed ]

То снова и снова проверьте веденные данные в /etc/network/interfaces

Если же все прошло нормально то проверяем командой ifconfig адреса, выйдет примерно следующее:

eth0 Link encap:Ethernet HWaddr 40:61:86:ff:c9:ff
inet addr:10.177.175.2 Bcast:10.177.255.255 Mask:255.255.0.0
inet6 addr: fe80::4261:86ff:feff:c9ff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:38055137 errors:0 dropped:0 overruns:0 frame:0
TX packets:54431198 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3796819530 (3.7 GB) TX bytes:3559795487 (3.5 GB)
Interrupt:26 Base address:0x6000

eth1 Link encap:Ethernet HWaddr 00:c0:26:a1:30:1b
inet addr:172.16.1.254 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::2c0:26ff:fea1:301b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20695326 errors:0 dropped:0 overruns:0 frame:0
TX packets:17551894 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2473848775 (2.4 GB) TX bytes:96591615 (96.5 MB)
Interrupt:16 Base address:0xe800

Проверяем настройку интернета, сначала пингуем терминал

ping 10.177.175.1

Если пинг успешен - нажимаем Ctrl+C чтобы остановить пинговку, далее пингуем интернет ресурс:

ping ya.ru
PING ya.ru (77.88.21.3) 56(84) bytes of data.
64 bytes from www.yandex.ru (77.88.21.3): icmp_seq=1 ttl=59 time=149 ms
64 bytes from www.yandex.ru (77.88.21.3): icmp_seq=2 ttl=59 time=149 ms

Если пинг есть - то интернет у нас есть.

Если не пингуется терминал - проверяем синхронизацию - если Sync мигает - то ждем еще, если не проходит синхронизация - звоним в техподдержку
Если не пингуется интернет ресурс, но пингуется терминал - проверяем настройки сетевых интерфейсов.

Настройка интерфейсов окончена.

4. Организовываем NAT средствами NETFILTER (IPTABLES)

Идем в директорию пользователя, в моем случае /home/user/

cd /home/user/

Создаем sh файл nat.sh

touch nat.sh

Редактором входим в него, заходим в режим редактирования

vi nat.sh

Пишем следующее:

#bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Сохраняем - Esc+wq! Enter

В консоли пишем sh nat.sh

Дальше, на одном из компьютеров в сети вводим IP адрес 172.16.1.1 маску 255.255.0.0 шлюз 172.16.1.254 DNS первичный 172.16.1.254 вторичный из квитка Linkstar (в моем примере 95.167.167.95). Пингуем наш шлюз, если получен ответ - пробуем зайти браузером на какую нибудь Интернет страничку. Если успешно - то приступаем к дальнейшей настройке. Если интернета нету - проверяем настройки интерфейсов, звоним в техподдержку.

NAT средствами NETFILTER выполнен

5. Организуем кеширование WEB страниц кеширующим прокси-сервером SQUID

Для начала создадим директорию кеша

mkdir /cache

Дадим ей доступ полный на запись

chmod 777 -R /cache

Зачастую спутниковый канал бывает очень медленным, и тем более за него трафик капает. Для экономии, и для акселерации загрузки WEB страниц будем ставить кеширующий прокси-сервер SQUID, который будет кешировать WEB траффик. Для того чтобы не париться с забиванием параметров прокси в браузер сделаем его прозрачным.

На шлюзе вводим команду

sudo apt-get install squid squid-common

дальше ждем пока squid установится.

После установки переходим в директорию squid

cd /etc/squid/

Создаем для начала файл acl.txt

touch acl.txt

Cтираем существующий конфигурационный файл (если есть). В общем содержимое директории смотрим командой ls. Если нет - создаем

touch squid.conf

Заходим, редактируем

vi squid.conf

Пишем конфигурацию такую:

http_port 3128 transparent
cache_mem 32 MB
maximum_object_size 8092 KB
ipcache_size 4096
fqdncache_size 8192
cache_dir ufs /cache 512 16 256
client_lifetime 1 day

acl all src 0.0.0.0/0.0.0.0

acl cantora src "/etc/squid/acl.txt"
http_access allow cantora

http_access deny all

То есть этим самым мы сделали так:

http_port 3128 transparent - сделали порт 3128 (прокси-порт squid) прозрачным
cache_mem 32 MB - ёмкость памяти кеша 32 мегабайта
cache_dir ufs /cache 512 16 256 - указали директорию для кеша squid

acl all src 0.0.0.0/0.0.0.0 - создали акцесс лист "все - all" (лист доступа)
http_access deny all - запретили акцесс листу all доступ (то есть запретили есть на прокси кому попало)

acl cantora src "/etc/squid/acl.txt" - создали акцесс лист "cantora" (в /etc/squid/acl.txt мы запишем IP адреса которые выдадим DHCP сервером столбиком)
http_access allow cantora - разрешили доступ акцесс листу "cantora" в прокси

Сохраняем - Esc+wq! Enter

Вводим команду

squid -z

Начнется формирование кеша в /cache

После формирования вводим команду /etc/init.d/squid start

После старта squid в /etc/squid/acl.txt вводим ip адрес 172.16.1.1 (тот комп с которого проверяли инет через iptables), затем вводим команду

/etc/init.d/squid reload

Затем на компе с ip 172.16.1.1 в настройках обозревателя вводим адрес нашего шлюза - 172.16.1.254, порт 3128, открываем браузер, убеждаемся что интернет странички открываются.

Затем на шлюзе делаем заворот на squid, чтобы все входящие подключения которые используют 80 порт заворачивались на 3128 (squid). Для этого на /home/user/nat.sh добавляем в редакторе

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Значит полный конфиг выглядит вот так:

#bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Затем выходим из редактора, вводим команду iptables -F (для очистки правил), затем снова вводим sh nat.sh

Далее на компьютере где проверяли убираем с настроек браузера адрес нашего прокси с портом, просто так вводим интернет-адрес, убеждаемся что страничка открывается.

Далее делаем так чтобы файл nat.sh запускался автоматически, для этого в файле /etc/init.d/rc.local в самом конце добавляем:

sh /home/user/nat.sh

На этом кеширующий прокси-сервер squid настроен.

6. Поднимаем DHCP (раздатчик IP адресов) на нашем компьютере

Для того чтобы на конторские компьютеры не вбивать каждый раз ip адреса сделаем автоматический раздатчик ip адресов.

Будем использовать dhcp3

apt-get install dhcp3-server

установился... Теперь:

vi /etc/dhcp3/dhcpd.conf

Подправляем конфиг:

# A slightly different configuration for an internal subnet.
# адрес сети и маска
subnet 172.16.1.0 netmask 255.255.0.0 {
# диапазон адресов для клиентов
range 172.16.1.2 172.16.1.50;
# адрес dns сервера (по квитку)
option domain-name-servers 95.167.167.95;
# option domain-name "internal.example.org";
# шлюз
option routers 172.16.1.254;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
}
...

Выходим: Esc+wq! Enter

рестарт:

/etc/init.d/dhcp3-server restart

Включаем компьютеры, все должны получить IP адреса из того диапазона который мы задали. Эти IP адреса прописываете в /etc/squid/acl.txt столбиком типа:

172.16.1.2
172.16.1.3
172.16.1.4
172.16.1.5
172.16.1.6
и тд.

На этом DHCP настроен.

7. Делаем разграничение доступа на WEB страницы

В /etc/squid/ создайте файл badsites.txt

touch /etc/squid/badsites.txt

Редактируем

vi /etc/squid/badsites.txt

Добавляем сайты к которым вы хотите ограничить доступ:

http://vkontakte.ru/
http://youtube.com/

и тд.

Далее заходим в /etc/squid/squid.conf, делаем акцесс-лист Bad

acl Bad dstdomain "/etc/squid/badsites.txt"
http_access deny Bad

Выходим Esc+wq! Enter, делаем релоад

/etc/init.d/squid/reload

Все.
  • 23 февраля 2011, 04:59
  • leonard
  • просмотров: ~4429
  • рейтинг: ?

Комментарии (10)

Вы - anonymous, войти ?

можно использовать bbcode-теги
[b]жирный текст[/b]
[i]курсив[/i]
[u]underline[/u]
[s]зачеркнутый текст[/s]
[size=20px]размер шрифта[/size]
всякие изменения текста
[left][/left]
[right][/right]
[center][/center]
позиционирование элементов: картинки, текст и т.д
[url][/url]
[email][/email]
внутри тега [url] помещайте ссылки, а внутри [email] адрес электронной почты;
так же [url] можно использовать в виде:
[url=http://example.com]пример[/url],
[url=http://test.ru][img]http://flickr.com/givemeimg.png[/img][/url]
[code][/code]
[quote][/quote]
внутри тега [code] можно помещать программный код (подстветка попытается включиться автоматически); для выделения цитат используйте [quote]
также можно напрямую указать язык [code=cpp]int i;[/code]
[list][/list]
создаем списки, каждый элемент пишется после [*].

Можно указывать маркер - [list=marker].
возможные маркеры 1(decimal), i(lower-roman), I(upper-roman), a(lower-alpha), A(upper-alpha). Примеры:

[list][*]1 элемент[*]2 элемент[*]3 элемент[/list]
[list=1][*]1 элемент[*]2 элемент[*]3 элемент[/list]
[list=A][*]1 элемент[*]2 элемент[*]3 элемент[/list]
[table][/table]
оформляем таблицу, используя внутренние теги [tr] и [td].
[tr] - строка, [td] - поле в строке,
[table=100%] - можно задавать ширину в процентах, по-умолчанию ширина 100%
[td=2] - можно задавать сколько столбцов входит в это поле. Пример:

[table=50%][tr][td]столбец 1[/td][td]столбец 2[/td][/tr][tr][td]значение 1[/td][td]значение 2[/td][/tr][tr][td=2]сразу 2 столбца[/td][/tr][/table]
[img][/img]
тег для вставки фото или картинок, мы любим картинки. Примеры использования:

[img]http://ya.ru/logo.png[/img],
[img=100x100px]http://ya.ru/logo.png[/img]
[img=fullimg.url]thumbimg.url[/img],
Пожалуйста загружайте картинки на наш сайт, либо вставляйте с бекбоновских ресурсов.
[video][/video]
Проигрывает видео, внутрь вставляем ссылки на видео, поддерживается Play.Ykt.Ru(нужно вставить ссылку на страницу с видео) и tv.ykt.ru(нужно вставить ссылку на адрес файла)