Как поднять шлюз для локальной сети

Posted by

Тема (Как поднять шлюз для локальной сети) данной заметки в последствии ляжет в серию заметок по практическому развертыванию PXE сервера в локальной сети, данный сервер будет служить удаленным развертыванием операционных систем на рабочих местах. В роли таких систем будут иметь место рассмотрены на моем блоге: Windows, Ubuntu. Согласитесь не хочется же каждый раз проделывать такие шаги (на месте), как:

  • Записать образ на cdrom или флешку
  • Выставить загрузку с флешки или cdrom’а
  • И грузиться с нее для установки системы.

Прогресс и облегчение действий уже работает и каждый системный администратор сможет оценить данную прелесть.

Но что-то я отошел немного в сторону от темы данной заметки. Немного объясню что же есть такое «шлюз для локальной сети» —

это в моем случае станция (а именно .4 Server amd64) выступающая в роли сопряжения двух сетей, одна сеть в которой работают локальные пользователи (малое предприятие) и сеть с выходом в интернет. Вот эта станция и ведет маршрутизацию трафика изнутри сети наружу. Также на данной станции можно разворачивать различные сервисы, такие как прокси сервер, учет за использование интернета, логирование подключений во вне, предоставление различных сервисов снаружи так и многих других.

Предварительные требования:

Станция с установленной операционной системой:

Ubuntu 12.04.4 Server amd64

все обновления безопасности установлены.

Станция оснащена двумя сетевыми картами:

eth0 – смотрит интернет (может получать IP адрес динамически, может иметь статический, я опишу оба варианта)

eth1 – смотрит в локальную сеть (подключение к локальной сети, будет иметь статический IP 192.168.10.1 и маску 255.255.255.0

Также, для тестирования нам понадобится клиентская машина, которая будет находиться в локальной сети (операционная система значения не имеет).

Для справки:

Eth0 – от интернет центра (или провайдера интернет)получил по dhcp адрес 192.168.1.51

Далее редактируем сетевые настройки сетевых интерфейсов:

ekzorchik@srv-serv:~$ sudo nano /etc/network/interfaces

настраиваем eth0 (по которому осуществляется подключение к интернет)

auto eth0

iface eth0 inet dhcp

если IP адрес от провайдера статический, то настройки в файл вносятся так:

auto eth0

iface eth0 inet static

address 10.10.10.1

netmask 255.255.255.0

gateway 10.10.10.9

dns-nameservers 20.20.20.4

настраиваем eth1 (по которому идет подключение из локальной сети)

auto eth1

iface eth1 inet static

address 10.9.9.1

netmask 255.255.255.0

Сохраняем внесенные изменения и перезапускаем демон сети:

ekzorchik@srv-serv:~$ sudo /etc/init.d/networking restart

Проверим работу сетевого интерфейса (это eth1) с назначенным для него статическим адресом, для этого понадобиться машина (в моем случаем это рабочая станция с осью Windows 7) на которой произведем следующие изменения в настройках сетевой карточки (потому как, у меня пока отсутствует служба автоматического присваивания адресов в сети, т. е. DHCP), а именно из пула маски /24 пропишем произвольный адрес, к примеру: 10.9.9.5 и маску подсети 255.255.255.0 и шлюз 10.9.9.1

Прописываем сетевой адрес на рабочей станции Windows 7

, после чего нужно попробовать вызвав окно командной строки и послать ICMP запрос (с помощью утилиты ping) на адрес шлюза 10.9.9.1запросы должны проходить успешно:

C:\Users\ekzorchik>ping 10.9.9.1

ICMP ответ на нашего шлюза идет, сеть работает.

Отлично, теперь снова займемся настройкой шлюза, а именно произведем его дополнение установив пакет , он необходим для перенаправления DNS запросов, вышестоящим серверам:

ekzorchik@srv-serv:~$ sudo apt-get install dnsmasq -y

теперь снова переходим к нашей клиентской машине и выполняем на ней запрос вида:

C:\Users\ekzorchik>nslookup ekzorchik.ru

хЁтхЁ: UnKnown

Address: fec0:0:0:ffff::1

*** UnKnown не удалось найти ekzorchik.ru: No response from server

так произошло, потому как на шлюзе передача пакетов с одного интерфейса на другой не настроена, разрешим перенаправление пакетов: (сняв комментарий со строки)

ekzorchik@srv-serv:~$ sudo nano /etc/sysctl.conf

net.ipv4.ip_forward=1

Сохраненяем внесенные изменения и перечитываем настройки:

ekzorchik@srv-serv:~$ sudo sysctl -p

, по поводу что обозначает параметр советую обратиться к справочной системе (man sysctl), там довольно таки понятно изъяснено.

Также необходимы правила для маршрутизации пакетов:

ekzorchik@srv-serv:~$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

ekzorchik@srv-serv:~$ sudo iptables -A FORWARD -i eth1 -o eth0 -j REJECT

ekzorchik@srv-serv:~$ sudo iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS —clamp-mss-to-pmtu

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

ekzorchik@srv-serv:~$ sudo bash -c "iptables-save > /etc/ip"

ekzorchik@srv-serv:~$ sudo chmod +x /etc/ip

Вносим изменения в настройки сетевого интерфейса:

ekzorchik@srv-serv:~$ sudo nano /etc/network/interfaces

auto eth0

iface eth0 inet dhcp

pre-up iptables-restore /etc/ip

Сохраняем внесенные изменения в настройки сетевого интерфейса и перезапускаем службу сети:

ekzorchik@srv-serv:~$ sudo /etc/init.d/networking restart

Перезапускаем сервер:

ekzorchik@srv-serv:~$ sudo reboot

Перейдя к клиентской системе и в настройках сетевого интерфейса прописав адрес DNS сервера

Прописываем DNS сервер

 

 

, пробуем выполнить снова запрос к сайту ekzorchik.ru, результат должен быть уже другим: (к примеру)

C:\Users\ekzorchik>nslookup ekzorchik.ru

хЁтхЁ: UnKnown

Address: 10.9.9.1

Не заслуживающий доверия ответ:

ь : ekzorchik.ru

Address: 81.177.140.73

Отлично. Теперь если запустить браузер (IE) и в строке адреса ввести URL вида: http://www.ekzorchik.ru/ мы попадем на мой блог:

При открытии сайта в браузере он открывается

Работает, на основе этой заметки можно поднять и куда более сложные и интересные в реализации вещи, где в качестве шлюза будет использоваться система Ubuntu 12.04.4 Server amd64.

Но заметка еще не завершена, далее я покажу, как сделать, чтобы адреса в локальной сети назначались не вручную, а автоматически (т. е. Поднимем службу DHCP, некоторые нюансы взяты из моей заметки ориентированной на Ubuntu 10.10): — для этого также потребуется пакет dnsmasq:

Перед редактированием dnsmasq.conf советую сделать его резервную копию:

ekzorchik@srv-serv:~$ sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.original

Переходим к редактированию: (очищаем сперва его содержимое)

ekzorchik@srv-serv:~$ sudo bash -c "cat > /etc/dnsmasq.conf"

по сочетание клавиш Ctrl + C прерываем действие команды

Приводим конфигурационный файл к виду:

ekzorchik@srv-serv:~$ sudo nano /etc/dnsmasq.conf

interface=eth1

domain=polygon.local

server=/polygon.local/10.9.9.1

server=/9.9.10.in-addr.arpa/10.9.9.1

dhcp-range=10.9.9.5,10.9.9.10,7D

dhcp-option=3,10.9.9.1

log-dhcp

dhcp-option=1,255.255.255.0

Сохраняем внесенные изменения и проверяем, что конфигурационный файл по синтаксису корректен:

ekzorchik@srv-serv:~$ /usr/sbin/dnsmasq --test

dnsmasq: syntax check OK.

Перезагружаем службу dnsmasq:

ekzorchik@srv-serv:~$ sudo /etc/init.d/dnsmasq restart

* Restarting DNS forwarder and DHCP server dnsmasq

…done.

На клиентской системе изменяем настройки сетевого адаптера выставив со статического значения на динамическое:

Переводим получение сетевых настроек на рабочей станции в автоматический режим

Открываем командную строку и смотрим, какой IP адрес присвоился системе от DHCP сервера:

C:\Users\ekzorchik>ipconfig

, как видно из скриншота ниже адрес имеет значение: 10.9.9.8

Сетевые настройки от шлюза автоматически выдаются

Работает, согласитесь так лучше, когда задействована служба автоматического присвоения сетевых адресов, больше автоматизации меньше рутины.

Если нужно для определенной машины использовать только статический IP адрес, то не нужно указывать в ручную его, достаточно воспользоваться таким параметром, как резервирование нужного IP адреса и MACадреса сетевой карточки: (пример)

узнаем со шлюза mac адрес у ip адреса станции:

ekzorchik@srv-serv:~$ ping 10.9.9.8 -c 1 && arp -a | grep 10.9.9.8

PING 10.9.9.8 (10.9.9.8) 56(84) bytes of data.

64 bytes from 10.9.9.8: icmp_req=1 ttl=128 time=0.493 ms

— 10.9.9.8 ping statistics —

1 packets transmitted, 1 received, 0% packet loss, time 0ms

rtt min/avg/max/mdev = 0.493/0.493/0.493/0.000 ms

pc.polygon.local (10.9.9.8) at 08:00:27:a4:94:1d [ether] on eth1

и в файл dnsmasq.conf вносим параметр – dhcp-host:

ekzorchik@srv-serv:~$ sudo nano /etc/dnsmasq.conf

dhcp-host=08:00:27:a4:94:1d,10.9.9.9

Проверяем конфиг на ошибки:

ekzorchik@srv-serv:~$ /usr/sbin/dnsmasq --test

dnsmasq: syntax check OK.

Перезапускаем службу для принятия настроек:

ekzorchik@srv-serv:~$ sudo service dnsmasq restart

смотрим на клиенткой системе ip адрес — он должен быть 10.9.9.9все так и есть.

Обновляем настройки сетевой карточки:

C:\Users\ekzorchik>ipconfig /renew

См. какой сетевой адрес присвоился:

C:\Users\ekzorchik>ipconfig | findstr /i "IPv4-*"

IPv4-адрес. . . . . . . . . . . . : 10.9.9.9

Работает. Вот собственно и все минимальные действия чтобы поднять шлюз для малого предприятия на системе Ubuntu 12.04.4, ну а дальше советую смотреть мои заметки на моем блоге если нужны дополнительные усовершенствования или адаптация под конкретную задачу. С уважением автор блога – ekzorchik.

One comment

  1. Здравствуйте, очень полезна ваша статья….проделал как по инструкции на виртуальной машине, все работает.
    Вот только есть одна проблема sams не считает трафик и вообще такое ощущение что его нет в на сервере, так как он не блокирует и воооще ничего не делает.
    Подскажите как с помощью вашего руководства поднятия шлюза можно еще и заставить работать sams!?

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

20 + десять =